Specifying Visual Design Critic Framework Norhayati Mohd Ali Department of Computer Science University of Auckland Auckland, New Zealand +64-9-3737-599
[email protected] ABSTRACT This paper describes part of the work in the development of a generic visual design critic framework embedded within an end user oriented domain specific visual language meta- tool. The focus of the research is to expand further the capability of the Marama meta-tools by proposing a visual design critic framework that allows tool critic support to be rapidly developed in parallel with the tools. Critic tools detect potential problems, give advice and alternative solutions, and, possibly, automated or semi-automated design improvements to the end user. This paper is divided into five parts. The first part deals with the concept of a design critic. The next describes background and motivation for this research. The third part overviews the research approach and the following part describes the current proof of concept prototype of a visual design critic tool implemented using the Marama meta-tools. Finally the conclusion summarises the progress and future work plans of the research and also the potential contributions of the research.
Categories and Subject Descriptors D.2.2 [Software Engineering]: Design Tools and Techniques – evolutionary prototyping.
General Terms Design
Keywords
quality of the software, improve design tasks and avoid careless mistakes. These critic tools have been applied to the domains of software architecture, design pattern, object-oriented analysis and design, and software modeling. Robbins [3] and Fischer et.al [4] detail the use of design critic tools in various domains. One of the most significant critic tools is ArgoUML [5], an open source Unified Modeling Language (UML) [11] CASE tool. Robbins and Redmiles [12] describe ArgoUML [5], a tool for object-oriented modeling. This tool supports the editing of UML notation diagrams and detects common errors made by software designers. Figure 1 show ArgoUML tool produced critiques that focus on diagram completeness. For example, after placing a class in a class diagram, several critiques are displayed reminding the user that the class requires a better attribute name, needs operations, constructor and associations with other classes, and its class name needs to be capitalized. Thus, the user is helped to improve the design through the critiques. There are various definitions of design critic or critic system found in the literature. A critic can be considered as an intelligent user interface that evaluates a design made by a user and provides feedback to assist the user to improve the design [3]. Generally, critic tools detect potential problems, give advice and alternative solutions, and, possibly, automated or semi-automated design improvements to the end user. The aim of this research is to develop a generic framework for a visual design critic tool to support end user (and other) software designers in the development of critics.
Design critic, critic, and visual design critic tool.
1. INTRODUCTION Many integrated support tools have been developed (e.g., ArgoUML and ArchStudio3 [6, 7]) to help designers develop complex software or systems. One component of such integrated support tools are design critics. Design critic tools have been used in design tools for various domains, including software engineering, design sketches, education, etc. However, only a few critic tools to support software development activities have been identified [1, 2]. Several studies have reported the benefits of applying design critic tools in software developments activities [1, 2, 3, 4, 5, 6]. Among the observable benefits, the tools offer critics to improve artifacts, enhance the
Figure 1: Lists of critiques in ArgoUML tool. This paper was published in the proceedings of the New Zealand Computer Science Research Student Conference 2008. Copyright is held by the author/owner(s).
NZCSRSC 2008, April 2008, Christchurch, New Zealand.
2. BACKGROUND AND MOTIVATION Much research has been devoted to design critic tools. ArgoUML [5], ArchStudio3 [6, 7], SoftArch [8], DAISY [2], IDEA [9], ABCDE-Critic [10] and AIR [1] are all critic-based tools. These critic tools are developed based on the context,
Specifying Visual Design Critic Framework purpose and focus of the tools. ArchStudio3 [6, 7] and SoftArch [8] provides design critics that monitor problems in architecture modelling. Domain and Application engineering using Integrated critiquing SYstems (DAISY) [2] uses three different critiquing systems to support the inconsistency detection in software engineering model. An Interactive DEsign Assistant (IDEA) [9] critic produces critiques that focus on design pattern to improve the UML design. Annotation Based Cooperative Diagram Editor (ABCDE)-Critic [10] implements a group critic system for object-oriented analysis and design. Finally the Advisor for Intelligent Reuse (AIR) tool [1] uses critics for intelligent assistance during requirements engineering. These tools provide knowledge to architects, designers, and requirement engineers who lack specific understanding of the problem or solution domains. These critic tools all produce critiques that are specific to their problem domain. They adopt various approaches, in order to design and define critiques constraints as illustrated in Table 1.
3. RESEARCH APPROACH The aim of this research is to propose a generic visual design critic framework to support especially end user software designers in development activities. The design critic tool will be embedded within the Eclipse-based Marama meta-tool [14] environment allowing tool designers to concurrently develop visual language environments and critic support for them. The research approach is based on the “Three examples” pattern of the Evolving Frameworks Pattern Language [15], initially hand crafting critic support for three Marama-implemented tools, and then generalizing from those exemplars to a generic visual language and support environment for design critic framework. The following methodology will be used during the research: • • •
Table 1: Some approaches for designing critics Critic tool
Critique domain
1.
ArgoUML [5]
2. 3.
ArchStudio 3 [6,7] DAISY [2]
4.
IDEA [9]
Software architecture / design Architecture modelling Object-oriented design, model inconsistency Design pattern
5
6.
ABCDECritic [10] AIR [1]
Object-oriented analysis and design Requirements engineering
Approach in designing critics Java API
Java API Java (with about 40 classes) Prolog rules and knowledge base First-order production system Rule-based expression
This table shows the limitations of existing tools in the context of a critic’s development. First, all these tools are bound to a particular code or design language, losing the opportunity to be reused across languages. Second, the customization of critics would not be easy because it requires overall comprehension of the approach employed and also the critic domain. These approaches (Table 1) demand deep understanding in order to design critics, and are thus-a heavy barrier to entry to end user designers. Thus, the need to specify and design critics in a simple way by using an easy to use, high-level language is the motivation of this research. Domain specific visual languages (DSVL) are a common approach to reduce such entry barriers, thus we see opportunity to develop a visual design critic framework to support end user software designers to naturally and efficiently construct critics. This research employs a DSVL approach as this approach has become important in many domains of software engineering and end user development as stated by Sprinkle and Karsai [13]. DSVLs are graphical notations specially devised for specific needs and knowledge. The languages allow anyone who is a domain expert to use the visual language as an application development tool for the domain [13]. In the remainder of this paper we explain our research approach, the Marama meta-tools and conclude with the potential contributions of this research.
185
• • • •
Conduct a literature review of critic tools, comparing and analyzing their approaches to critic specifications and implementation. Identify an initial set of requirements for a visual critic tool. Develop an initial prototype to explore issues in designing critic tool. Design three exemplars of critic tools in the Marama metatool environment [15]. Identify from this experience a core set of building blocks needed for specifying a visual design critic framework and design notation. Design and implement the visual design critic framework within a metatool. Evaluate the framework by using it to construct prototype systems and examples, testing them carefully against design examples developed for the initial prototype systems, and conducting an end user evaluation.
4. RESEARCH PORGRESS 4.1 Visual Design Critic Specification The initial stage of our research, reviewed literature relating to critic tools. This stage allows us to compare and identify common properties in critic tools [1, 2, 5, 6, 7, 8, 9, 10]. These properties are then applied for the visual design critic specification. The visual design critic specification consists of the following features: i)
Critic domain: Represent critics for a specific domain of a problem. (e.g., domains of software design, software requirement and business process flow).
ii)
Domain elements: Elements that represent the problem domain. (e.g., elements for a UML class diagram domain are package, class, attribute, operation, and association).
iii) Critic: Critic defines a critic name and checks for potential errors/ defects. iv) Critic rules: Rules that construct and specify a critic for the problem domain. v)
Suggestion: Suggestion provides alternative solutions to the user when a critic is violated.
vi) Explanation: Explanation provides detailed explanations or justifications for each critic. vii) Message: Message for each critic to inform to the user when a critic is violated. viii) Critic strategies: Strategies for when a critic should interrupt the user. These include active critic, passive critic and disabled critic [4, 5].
186
N.M. Ali
ix) Critic priority: Represents the importance level of each critic: high, medium or low priority. The specification is to show the concepts and relations present in the design critic tool. This specification led us to develop a meta-model to describe all the valid models the user can build [16]. This meta-model is expressed using an Extended Entity Relationship (EER) diagram [17] which specifies entities and relationships, together with their attributes. When the metamodel is equipped with additional information and additional constraints, tools can automatically generate the modelling environments. This is the approach we have taken with the visual design critic specification and tool, using the Marama meta-tools to realize the meta model and generation environment. Marama [14] is a meta-tool implemented as a set of Eclipse [13] plugins. Marama comprises both meta-tools and modeling tools. A detailed description of the Marama metatools can be found on the Marama website [14].
Figure 2: Metamodel of the visual design critic tool.
4.2 Visual Design Critic Tool The initial prototype of our visual design critic tool has been designed using the Marama meta-tools. The metamodel of visual design critic tool is created in the Marama Metamodel Definer views to specify the critic tool metamodel and is shown in Figure 2. This metamodel is based on the specification defined in previous section. Once the meta-model is created, shapes and connectors for the visual design critic tool are defined in the Marama Shape Designer views (as shown in figure 3). Then, the view type for the visual design critic tool is designed through the Marama Viewtype Definer views (as shown in figure 3). This is to specify mappings of metaelements to visual representations. Finally, an initial prototype of the visual design critic tool is created and a Marama diagram can be designed in the Marama Diagram views. The Marama Diagram views are used to create model instances or independent views of a selected view type. As shown in Figure 4, the visual design critic tool contains functions to define the domain of the tool, critics that are relevant to the tool, rules for each critic, suggestions to solve a critic identified by a critic, explanation for a critic, message to be displayed for a critic, and the type of elements associated with a critic. The tool lists five connectors: declareElements, declareRules, declareSuggestion, declareExplanation, and declareMessage, to describe the relationship between a Critic and other entities, such as Suggestion, Explanation, Message, Rule, and Element. The visual design critic tool can generates a critic model or visual critic diagram for any problem domain. Figure 4 shows the high-level representation of a critic model for a UML Class Diagram tool. The critiques identified are specific to a UML Class Diagram tool, such as dealing with duplicate class names and capitalizing class names. The critics’ definition is based on the domain of the selected tool. The next task is to define a critic model for two other examples to test the efficacy of the meta model and approach we have taken. We have chosen the business process and software architecture domains where we have available significant sources of domain expertise and exemplar tools which we can add critics to. The critic model will be implemented through code generation to test the critiques execution. We will take an incremental approach to develop the visual design critic tool and identify from this prototype experience a core set of building blocks needed for a generic visual design critic framework and design notation.
(i)
(ii) Figure 3: Marama Shape Designer views (i) and Marama Viewtype Definer views (ii).
Figure 4: Visual design critic tool generates a critic model for UML Class Diagram tool.
Specifying Visual Design Critic Framework
5. CONCLUSIONS Critic tools are viewed as an effective feedback mechanism that allows users to interact effectively with a design system. However, existing approaches make it difficult to define a critic’s constraints. This has motivated us to propose high abstraction level notations to represent the critics. We feel a visual design notation for specifying critics is preferable and will neatly complement the other parts of our Marama metatools. Our research to date includes reviewing critic tools and systems literatures, designing a critic specification meta model and using the Marama meta-tools to prototype a visual design critic specification tool. The research progress at the moment is to design three exemplars (prototype) of the visual design critic model. The future task plan is as follows: • Identify from the prototype experience a core set of building blocks needed in a generic visual design critic framework as well as the design notation for the critic tool. • Evaluate the generic framework by constructing prototype systems and examples, and conducting end user evaluation. • Update or refinement of the generic visual design critic framework based on the prototype and end user feedback. The potential contributions of this research are that the higher level visual abstraction and its proof of concept implementation in the generic framework will allow users to easily construct critics at the meta level. This will allow direct authoring of critics by users, both for initial tool development, and also, for local customisation of tools by users to support their particular business or design processes.
6. ACKNOWLEDGEMENTS The author wishes to thank Professor John Grundy and Professor John Hosking whose comments have helped me to improve this paper. I also thank the Computer Science Department, University of Auckland and the FRST Software Process and Product Improvement project for financial support. The helpful comments from anonymous reviewers on earlier drafts of this paper are also appreciated.
7. REFERENCES [1] Maiden, N.A.M. and Sutcliffe, A.G., Requirements Critiquing Using Domain Abstractions. In Proceedings of the First International Conference on Requirements Engineering, April 18-22 1994, pp. 184-193. [2] Souza, C.R.B., et al. Using Critiquing Systems for Inconsistency Detection in Software Engineering Models. In Proceedings of the Fifteenth International Conference on Software Engineering and Knowledge Engineering (SEKE 2003), Hotel Sofitel, San Francisco Bay, July 1-3 2003, pp.196-203. [3] Robbins, J.E. 1998. Design Critiquing Systems, Technical Report UCI-98-41. http://www.ics.uci.edu/~jrobbins/papers/CritiquingSurve y.pdf. [4] Fischer, G. et al. The Role of Critiquing in Cooperative Problem Solving, ACM Transactions of Information Systems, Vol.9, No.3, April 1999, pp. 123-151. [5] ArgoUML, http://argouml.tigris.org/ [6] ArchStudio3, http://www.isr.uci.edu/flyers/pdf/ArchStudio3.0.pdf
187
[7] Dashofy, E.M et al. Towards Architecture-Based SelfHealing Systems, In Proceedings of the first workshop on Self-healing Systems, Charleston, South Carolina, Nov 18-19 2002, pp. 21-26. [8] Grundy J.C., and Hosking J.G. SoftArch: Tool Support for Integrated Software Architecture Development, International Journal of Software Engineering and Knowledge Engineering, Vol.13, No.2, April 2003, pp. 125-151. [9] Bergenti, F. and Poggi.A. Improving UML Designs Using Automatic Design Pattern Detection, In th
Proceedings of the 12 International Conference on Software Engineering and Knowledge Engineering (SEKE, 2000), pp. 336-343. [10] Souza, C.R.B., et al. 2000. A Group Critic System for Object-Oriented Analysis and Design, In Proceedings of th
the 15 IEEE International Conference Automated Software Engineering, 2000, (ASE’2000), pp. 313-316. [11] Unified Modelling Language (UML), http://www.uml.org/ [12] Robbins, J.E. and Redmiles, D.F. “Cognitive Support, UML Adherence, and XMI Interchange in Argo/UML”, Journal of Information and Software Technology, Vol.42, Issue 2, 25 January 2000, pp. 79-89. [13] Sprinkle, J. and Karsai, G.” A Domain-Specific Visual Language for Domain Model Evolution”, Journal of Visual Languages and Computing, Vol.15, Issues 3-4, June-August 2004, pp 291-307. [14] Marama meta-tools, https://wiki.auckland.ac.nz/display/csidst/Marama+Meta -tools [15] Roberts, D., Johnson, R., Evolving frameworks a pattern language for developing object-oriented frameworks, http://st-www.cs.uiuc.edu/users/droberts/evolve.html. [16] Guerra, E., Diaz, P., and de Lara J. A Formal Approach to the Generation of Visual language Environments Supporting Multiple Views. In Proceedings of IEEE Symposium on Visual Languages and Human-Centric (VL/HCC’05), Dallas, Texas, USA, Sept 20-24 2005, pp. 284-286. [17] Markowitz, V. Extended Entity Relationship Diagram, http://sdm.lbl.gov/OPM/DM_TOOLS/OPM/ER/ER.html [18] Eclipse, http://www.eclipse.org/