This chapter reflects on the feature generation approach described in the dissertation, reviews my contributions, and outlines possible research extensions.
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.
The four contributions of this dissertation are the following:
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: