Cognitive support, UML adherence, and XMI interchange in Argo/UML

https://doi.org/10.1016/S0950-5849(99)00083-XGet rights and content

Abstract

Software design is a cognitively challenging task. Most software design tools provide support for editing, viewing, storing, and transforming designs, but lack support for the essential and difficult cognitive tasks facing designers. These cognitive tasks include decision-making, decision ordering, and task-specific design understanding.

This paper describes Argo/UML, an object-oriented design tool using the unified modeling language (UML) design notation. Argo/UML supports several identified cognitive needs of software designers. This support is provided in the form of design tool features. We describe each feature in the context of Argo/UML and provide enough detail to enable other tool builders to provide similar support in their own tools. We also discuss our implementation of the UML and XMI standards, and our development approach.

Introduction

Software designers have used diagrammatic representations of their designs since the earliest days of software development. Over time, the nature of these design diagrams has changed and so have the tools used to produce them. Much like early word processors replaced typewriters, early CASE (computer-aided software engineering) tools served as electronic replacements for paper, pencil, and stencil. Many of these early CASE tools became “shelfware” because they did not provide significant value to software designers. Later CASE tools added sophisticated code generation, reverse engineering, and version control features. These features add value via increased automation of some design tasks, for example, converting a design into a source code skeleton. However, current CASE tools fail to address the essential cognitive challenges facing software designers.

Software design is not simply an automatable process of transforming one specification into another; it also involves complex decision making tasks that require the attention of skilled designers. Design tools that support designers in decision-making are a promising way to increase designer productivity and the quality of the resulting designs.

Helping designers make good design decisions is important because these design decisions will strongly influence the amount of implementation and maintenance effort needed later. Support for designers is also important because many software designers are overworked and pressured to attempt design tasks for which they lack proper training and experience. This is due, in part, to the current shortage of trained information technology workers.

In this paper, we present a set of novel design tool features intended to support design tasks. Each of these features is motivated by our experience in designing software systems and by published theories of the cognitive challenges of design. Using cognitive theories to guide the development of design tool features has resulted in several promising new features that we would not otherwise have been likely to invent. Section 2 briefly covers the theories and previous work that lead to these features. Section 3 presents several specific cognitive features.

Each feature is described in the context of Argo/UML, a tool for object-oriented design that uses the unified modeling language (UML). Argo/UML is a research system with an emphasis on novel features; however, it includes enough standard CASE tool functionality to be generally useful. It supports UML class diagrams, state diagrams, use case diagrams, activity diagrams, and collaboration diagrams. It can generate Java™ source code from class diagrams. Argo/UML is implemented in Java and consists of about 100,000 lines of code in 800 classes. Preliminary versions of Argo/UML have been distributed via our web site (www.ics.uci.edu/pub/arch/uml) since July 1998, and have been evaluated or used in dozens of companies and universities. Argo/UML is the fourth in a series of tools that we have developed or enhanced with cognitive support features. Although Argo/UML is the focus of this paper, the cognitive support features we describe are also applicable to other design tools. We will return to this point in the conclusion of this paper. Section 4 presents the implementation of Argo/UML.

The development of Argo/UML is the result of approximately two person-years of effort. This level of productivity was achieved, in part, by taking advantage of appropriate standards, namely, the unified modeling language (UML), the XML model interchange format (XMI), and the Java component model (JavaBeans). Also, development of Argo/UML has followed the open-source strategy of encouraging early users to become co-developers. Section 5 discusses our development approach in more detail.

Section snippets

Background and related work

UML [22] is a standard object-oriented design notation that combines work done previously on the Booch notation, OMT (object modeling technique), and OOSE (object-oriented software engineering). Standardization produces an economy of scale that leads to more and better tools, better interoperability between tools, more developers who are skilled in using the standard notation, and lower overall training costs. XMI is a standard file format for UML designs [25].

Design critics are active agents

Overview of cognitive features

Fig. 1 shows the Argo/UML user interface. Designers work with Argo/UML much as they would work with other CASE tools; in fact, we have tried to use standard user interface styles as much as possible to make Argo/UML more approachable. Design diagrams are edited in the large, upper-right pane. This large pane can also be used for table views of the design. Properties of the selected design element can be edited in the various property tabs located in the lower-right pane. The upper-left pane

Architecture

The JavaBeans change notification design pattern [10] is the primary, recurring theme in Argo/UML’s architecture (Fig. 8). The top-level component is responsible for the rough layout of the user interface and the loading of features. The bottom-level component is our implementation of the standard UML meta-model. The middle layer consists of user interface features.

Integration between layers is generally loose. Each feature implements an API that defines its role in the user interface. The

Development approach

It has been a great challenge to develop and support a product as large as Argo/UML in an academic setting. Since 1996 about two person-years of effort have gone into development, testing, documentation, and support. Students did essentially all of this work.

Three main factors allowed us to achieve so much. First, a very small team with the right tools can make huge strides, partly because of low communication overhead. Second, leveraging standards guides development and reduces the need to

Conclusion

In this paper we have described some of the cognitive features of Argo/UML and key parts of the system’s design. The cognitive features provide designers with support for decision-making, decision ordering, and task-specific design understanding. These features are inspired by published theories of human cognition during design tasks. We have discussed the features in the context of Argo/UML, however, we believe them to be useful in many design contexts and tools.

Our immediate research plans

References (25)

  • E. Gamma et al.

    Design Patterns: Elements of Reusable Object-Oriented Software

    (1994)
  • A.S. Gertner et al.

    TraumaTIQ: online decision support for trauma management

    IEEE Intelligent Systems

    (1998)
  • Cited by (56)

    • A knowledge-based system for improving the consistency between object models and use case narratives

      2012, Expert Systems with Applications
      Citation Excerpt :

      Critique focused approaches emphasize providing advice either during or after the development of a conceptual model, primarily through the modeling tools. For example, ArgoUML (Robbins & Redmiles, 1998, 2000) incorporates a set of critiquing agents that lower the cognitive load of software designers by continuously checking an existing model for potential problems and providing advice on areas of improvement. Sugumaran and Storey (2002) report an application that uses domain ontologies to validate a given data model and suggest missing entities and relationships.

    • A knowledge-based object modeling advisor for developing quality object models

      2012, Expert Systems with Applications
      Citation Excerpt :

      Critique-focused approaches emphasize the provision of advice either during or after the development of conceptual models. For example, ArgoUML (Robbins & Redmiles, 1998, 2000) incorporates a set of critiquing features that address the cognitive needs of software designers by using agents that continuously check the existing model for potential problems and advise improvements. The critiquing approach used by Robbins and Redmiles (1998) also includes correctness, completeness, consistency, and optimization recommendations that are generated through rules-based analysis.

    • Learning UML Sequence Diagrams with a New Constructivist Pedagogical Tool: SD4ED

      2021, SIGCSE 2021 - Proceedings of the 52nd ACM Technical Symposium on Computer Science Education
    • An automation framework design for secure software development

      2019, Journal of Software: Evolution and Process
    View all citing articles on Scopus

    Effort sponsored by the Defense Advanced Research Projects Agency, and Air Force Research Laboratory, Air Force Materiel Command, USAF, under agreement number F30602-97-2-0021 and F30602-94-C-0218, and by the National Science Foundation under Contract no. CCR-9624846. The US Government is authorized to reproduce and distribute reprints for governmental purposes notwithstanding any copyright annotation thereon. The views and conclusions contained herein are those of the authors and should not be interpreted as necessarily representing the official policies or endorsements, either expressed or implied, of the Defense Advanced Research Projects Agency, Air Force Research Laboratory or the US Government.

    View full text