QuickUML Introduction

QuickUML is an object-oriented design tool that implements a core set of UML models. The Windows or Mac OS X edition has similar features. Projects can be directly edited and shared from each platform. This introduction illustrates windows and dialogs captured from QuickUML running on Windows.

The key aspects of QuickUML are summarized here:

  • Highly Focused. QuickUML is focused exclusively on a core set of the most widely used UML models. These models are applicable to any object-oriented project.

  • Simple Interface. QuickUML present the entire project as one tabbed window that saves to an XML file. Each model is shown in a window panel with a tool palette and Contents view at the left and selected use case, diagram or code file at the right.

  • Extreme Integration. QuickUML automatically builds and maintains the project dictionary as graphic models are drawn, yet allows direct designer access to the dictionary information. It integrates use case entries, diagram objects, and code files so that changes are instantly reflected throughout the project when objects on a diagram are modified. A designer can click between related use cases, diagrams, dictionary entries, code files or even foreign documents.

This brief introduction to QuickUML will take you through a series of screens illustrating a small UML design project. In the process you'll see how easy it is to define your own use cases, draw class diagrams, show object interactions on Sequence diagrams, explore the project dictionary, generate code and see how QuickUML links and integrates the models of a UML design project.

QuickUML comes with a printed user's guide, sample projects and a comprehensive step-by-step tutorial that covers advanced features not discussed in the introduction below.

Use Cases

To create a new project, start QuickUML and click the New Project button. A tabbed window of the UML models will be presented. The project can be named and saved as an XML file.

The project in this introduction illustrates the design for a graphic drawing tool that creates boxes and circles in a drawing window and saves them to a file on disk.

The first step in the UML modeling process is to create use cases that describe how actors use the system in various roles. Each use case describes an externally visible interaction in terms of system inputs and outputs. The completed set of use cases provides a foundation for the design, implementation and testing effort.

The Use Case panel shows the names of five use cases listed on the left side of the window. The Name, Definition and References fields on the right side detail the selected use case entry, “DrawShape”. The Name field uniquely identifies the use case entry. The Definition field describes the use case, typically as a multiple line narrative of user inputs and system outputs. The References field links a use case entry to class models, object models, code files, foreign documents or other use case entries. In this example, the use case entry is linked to the class diagram title “Main” and to two object diagrams titled “Create A Shape” and “Draw Window Contents”.

Creating use case entries is easy, just click the New button and start typing. To link a use case entry to something, click the Add Reference button and use the presented dialog to select the type of target and specific item you want to link to. To edit or view a different use case, click its name in the list.

Class Diagrams

Once the use cases of a project have been identified and defined you'll have a good idea of what the system will do. Now you'll focus your attention on the class structure and object interactions that implement the system behavior.

Class diagrams drawn from the Class panel illustrate the static structure of objects and relationships in an object-oriented system. The first step in drawing a class diagram is to identify potential objects in the system and add them to the diagram with the Class tool. The left side of the window shows a tool palette with drawing tools and a Contents view that shows the title of each class diagram in the project.

The class diagram conveys alot amount of information. In the example below, we see the system has 10 class objects represented by named yellow boxes. Each class box is divided into sections that list the attributes and operations of that class.

Lines between class boxes represent associations. The TApplication class is a subclass of the TEventHandler class and that is a subclass of the TObject class. The generalization relationship is represented in UML as a hollow arrowhead on a connection line between two classes. UML represents aggregation with a hollow diamond symbol on the class that references another class. Notice that TDocument references TWindow and formalizes that relationship with the fWindow attribute in the TDocument class.

QuickUML offers many options to change the presentation of class diagrams. Default foreground and background colors can be applied to each type of diagram object across the project. Selected objects can be individually colored with the color boxes in the tool bar. You can choose how much detail to show on the diagram such as data types and function arguments. You can individually control the presentation of each class instance to show all of its attributes and operations, just the class name or show a specific subset of attributes and operations appropriate to the context of the diagram.

When you click the Class tool on the diagram, the Class Properties dialog is presented to identify what type of object you want to create. Likewise, when you draw connection lines between classes a property dialog is presented to define specific information about that relationship.

Once you've added a class to the diagram, you can define attributes and operations by clicking the Details button and filling in the Class Attributes and Operations dialog shown below. From this dialog you can define a lot of information about the class including its attributes, operations, textual notes and even custom data fields that you've configured. If the diagram object is a component instead of a simple class the dialog has additional tabs to define a list of properties and events.

Double-click on the name of an item in one of the member lists (attributes, operations, properties or events) and a language specific details dialog is presented to define detailed information about that class member.

Object Diagrams

The object model describes how groups of objects collaborate in some behavior. The Sequence diagram is a popular style of object model since it highlights the order in which things occur. Objects (class instantiations) are drawn as named boxes across the top of diagram with vertical lifelines below them. Horizontally named connections attach to these lifelines to represent operations or messages between objects. The diagram is read from top to bottom and either from left to right or from right to left depending on the connection arrows.

The Sequence diagram shown below titled “Open A Document” is selected in the Contents view of the Object Model panel. This diagram shows the objects involved in one mechanism of the design, namely opening a document. Four instantiated objects are shown along the top of the diagram with vertical lifelines underneath each one. In this example, the TApplication object calls the Initialize operation of the TDocument object. Within that operation, the Initialize operation is called in the TWindow object.

A Sequence diagram is typically created for each use case and includes only those objects involved in that part of the design. A designer draws a Sequence diagram with the palette tools and fills in property dialogs in a manner similar to that described for the class diagram. Most of the class objects and operations are defined when drawing the class model so the designer can just select the names from drop-down menus in the property dialogs. If new operations are added to a class when drawing the object model, those operations are instantly reflected in the associated class diagrams.

Dictionary

The Dictionary panel provides a direct view of all objects (classes, attributes, operations, types, stereotypes, etc.) defined in the project. QuickUML automatically maintains the dictionary as class and object models are created. Direct access to the dictionary gives a designer additional flexibility in adding, updating or querying project information.

As diagram objects and relationships are drawn or attributes and operations are defined in a class or object model, the data is automatically added to the dictionary. A class object may appear on several class diagrams and be instantiated on one or more object diagrams. Each instance may be presented with different visual presentations based on the context of its usage but the essential data of every object exists in one place, the dictionary.

If the entry name for an object or its member (attribute, operation, property or event) is selected, the References field shows a list of the related diagram and code references. References are automatically maintained by QuickUML as you add, edit or delete diagram objects. To go to a specific model or code reference for a dictionary entry, click on the reference line.

Use the List Dictionary and Import Dictionary commands to share information with other tools. For example, WinTranslator can process existing code files and generate a dictionary entry list as a text file. That file can be imported into QuickUML to populate the dictionary and automatically generate class models.

Code Files

Code generation in QuickUML is a natural extension of the design process. Simply select a class object on the diagram and click the Generate Code button. There's also a dialog to customize the generated code.

QuickUML currently supports C++, Java, Delphi and Objective-C (Mac OS X Edition) code generation. The language can be selected for each class object so a project can support multiple languages.

QuickUML has a code editor for viewing and editing source code files related to your project. Diagram objects in a class or object model click to specific locations in a code file. Likewise, use case entries can be linked to code files.

The Code panel shows a list of open files at the left and the editable text of a selected file at the right. The integrated code manager is a group of related commands for managing code files. It allows a designer to easily open, close, save, print or navigate through the code files in a project.

End of Introduction

This brief introduction to QuickUML gives you an overview of how use cases, class models, object models and code are integrated into an easy-to-use design tool. QuickUML comes with sample project files, online help, a printed manual and a step-by-step tutorial that covers advanced features.