- Project tools
- Using ArgoUML
- How do I...
|Over 500 more tools...
This chapter reflects on the feature generation approach described in the dissertation, reviews my contributions, and outlines possible research extensions.
Reflections on the Approach
Design is a cognitively challenging task and designers can benefit from tools that support their cognitive needs. There is a substantial body of theory that describes these cognitive needs in the cognitive science literature. These theories are the result of many direct observations and laboratory studies. As I learned more about these theories, I became more interested in their underlying assumptions and practical implications.
The strong internal validity of these theories makes them good inputs to my feature generation approach. However, each theory only addresses one aspect of the overall cognitive challenge that designers face. Relying on any one theory alone can leave other cognitive needs unaddressed. So, multiple theories must be taken into account when designing a new feature. For a given feature, some theories provide positive guidance as to what the feature should do, while others provide negative guidance as to what the feature should not do. Furthermore, the cognitive theories do not specifically deal with user interface issues, so standard usability guidelines are also needed.
My feature generation approach has risks. Specifically, it requires practicing tool builders to gain a partial understanding of cognitive theories and then apply that knowledge. Since CASE tool builders typically do not have a background in cognitive psychology, there is a significant chance of misunderstanding. Three aspects of the approach help mitigate this risk. First, supporting multiple theories helps to avoid the risk of relying too strongly on an incorrect, misunderstood, or misapplied cognitive theory. Second, evaluation techniques such as cognitive walkthroughs and user studies can find usability problems early. Third, cognitive support features are intended to support the designer in his or her design tasks; they should not interfere with the normal usage of the design tool and any potential interference is evaluated very closely.
The central and most difficult part of my feature generation approach is the invention of new features. How does one span the gap from theories to features? Although the gap may seem large, I have found the approach to be very productive. In some cases, features have been directly inspired by the theories; in other cases, the theories have merely guided feature development by confirming the value of intermediate development steps.
The opportunistic search utility and selection-action buttons are two examples of features directly inspired by cognitive theories. One interpretation of the theory of opportunistic design is that opportunistic task switching is normal and should be encouraged where appropriate. So, I reconsidered standard CASE tool features with the intent of providing additional information that might prompt opportunistic task switching while still aiding designers in returning from these design excursions. The result was Argo/UML's opportunistic search utility. Selection-action buttons were directly inspired by Fitts' Law and by the theory that limited short-term memory is used both for domain knowledge and tool interaction planning. The position of the selection-action buttons resulted directly from my understanding of Fitts' Law. The three modes of interaction with selection-action buttons resulted from my efforts to match user interface affordances to common design tasks.
The development of the broom alignment tool is an example of using a theory to guide feature development. Once I learned about secondary notation, I knew that I wanted a feature to support it, but I did not have any specific ideas for that feature. One day, on a TV cooking show, the chef used a knife to chop vegetables and move the small pieces into distinct areas of the cutting board. That gave me the idea for the push-into-alignment action of the broom and emphasized the importance of tight integration into the normal diagram editing user interface. From there, the theory helped me choose which visual properties were most important to secondary notation, and usability guidelines suggested the broom's direct and reversible action.
Review of Contributions
The four contributions of this dissertation are the following:
I described theories of design cognition in terms understandable and relevant to CASE tool builders. One of the reasons that current CASE tools do not satisfy their users is that CASE tool builders do not have a clear understanding of the user interface requirements of such tools. By describing the relevant cognitive theories in practical terms, I have helped clarify these requirements for myself and for other tool builders. These requirements inspired several novel features.
I proposed a basket of useful CASE tool features. Each feature in Chapter 4 was inspired and explained by cognitive theories and HCI guidelines. Several of these features have intrinsic appeal and many evaluated well in Chapters 6 and 7. My basket of features is, in itself, a contribution to the CASE tool research area. In fact, some features have already been recognized by CASE tool vendors and are starting to appear in commercial products. In addition to the immediate contribution of these features, they also serve as examples that bring out key aspects of my feature generation research approach.
I demonstrated the successful application of a theory-based user interface design approach to a large-scale software engineering tool. In a sense, every user interface is based on some tacit understanding of the user's cognitive needs. Some researchers have proposed tools with features based on a single cognitive theory (e.g., Guindon, 1992). However, relying on tacit understanding or individual theories of designers' cognitive needs has not yielded very useful and usable CASE tools. I have taken into account several complementary cognitive theories and user interface guidelines. The contribution of Argo/UML as a whole is the demonstration that theory-based user interface approaches can be scaled up to practical tools serving real designers, rather than research prototypes.
I described the design of a scalable, reusable infrastructure for building the proposed features in design tools. Two of the reasons that design critiquing and other design support systems have never been widely adopted are (1) the lack of an infrastructure that can scale up to offer significant knowledge support, and (2) the lack of a reusable infrastructure that can compound progress made by different researchers. My critiquing infrastructure achieves scalability and reusability with a critic scheduling algorithm that provides good interactive performance while allowing critic authors to use the full power of the Java programming language.
The work leading to this dissertation has generated many interesting and promising ideas. Many of these ideas are visible in the Argo/UML tool. Others are described in the appropriate "Potential Extensions" sections of this dissertation. Still more ideas extend beyond what I have done. Four classes of possible extensions are discussed below:
The first class of potential extensions continues along the same lines as my work to realize more of its potential benefits. One of the contributions of this dissertation is the demonstration of the productivity of my feature generation approach. Significant, immediate benefits have already been realized from this approach. Yet, the feature generation approach could be productively continued by adding new theories and features. Additional cognitive theories could be added to the body of theories considered. New features could be devised, current features could be refined, and features that are currently mock-ups could be fully implemented. Many of the proposed features could be evaluated in more depth and their heuristic evaluations can be further confirmed. Development of Argo/UML and user support could continue and the user population should continue to expand. These activities complement each other: additional theories inspire new features, new features require further evaluations, evaluation motivates the search for additional theories, further support for the design task would make Argo/UML more attractive to users, and more users would provide more feedback that can provide additional confirmation of heuristic evaluations. Integration with the Expectation Driven Event Monitoring (EDEM) system (Hilbert and Redmiles, 1999) can also greatly increase the amount and usefulness of feedback from users.
The second class of potential extensions would refine my reusable infrastructure to make it even more efficient, flexible, scalable, and understandable. Many of the trade-offs I have made in developing GEF, the Argo critiquing framework, and Argo/UML have emphasized simplicity and understandability. Only the critic scheduling algorithm and navigational perspectives have been optimized for efficiency. One of the simplifying assumptions of Argo/UML is that the entire system runs on a single Java virtual machine. This assumption could instead be relaxed to allow some critics to run on a remote Java virtual machine or be implemented in another language. Supporting critics in another language, such as C++, would require a translation of the Java critiquing framework into that language. Distributing the analysis load could scale up the amount of analysis carried out within the interactive time limit. However, a more significant benefit of distributed critiquing might be the ability to host critics on servers where they can be updated more easily by their authors.
The third class of potential extensions focuses on applying my feature generation method and infrastructure to other design domains. Some of my proposed features have already been applied in four software tools that address very different aspects of software development. One such tool is Prefer, a state-based requirements modeling tool that includes design critics and the dynamic "to do" list. I also see a clear match between some of the cognitive support features and the cognitive challenges of a new task-based user interface design method (Constantine and Lockwood, 1999). Furthermore, designers in non-software domains face some of the same cognitive challenges. In fact, the cognitive theories are derived from observations of design and problem solving activity in many domains. For example, a specialized word processor could include critics and views that aid the writer in successfully completing a structured document such as the script of a play, a conference paper in a given field, certain types of grant proposals, or even a dissertation.
The fourth class of potential research extensions would bridge the gap between the cognitive needs of individual designers and the needs of the development organization. These extensions would be based on theories of organizational memory, knowledge management, and on longitudinal studies of Argo/UML users. One of the advantages of design critics as they are described in this dissertation is that they can provide feedback that references the organizational context. For example, critics contain the email addresses of the experts who authored them. However, there is a body of research on organizational issues that has not been considered in my work. Refining and realizing the organizational aspects of design critics and investigating the interaction between cognitive theories and organizational theories should inspire many new features and lead to significant benefits.