Columns

Rational Rose 98 Enterprise Edition

A picture is worth a thousand words, and so it is with software design. Visual modeling gives a development team a bird's-eye view of a system and its component interactions without getting caught up in the details too soon. This allows for iterative development, which builds functionality gradually.

Rational Rose, a design tool from Cupertino, Calif.-based Rational Software Corp., achieves visual modeling through use of the Unified Modeling Language (UML) and component-based development. Rose supports multiple programming languages (C++, Visual Basic and Java) in the same model, and is extensible by way of add-ins and partner products available from third-party firms. Rose also supports the COM/DCOM (ActiveX), JavaBean and Corba component standards.

UML Version 1.1 is the latest de facto standard visual modeling notation. The language models data, processes, objects or components. Eight of UML's nine diagrams are supported by Rose. Component diagrams in Rose carry out component-based development: Each component fulfills a specific system function; components then interact with each other to achieve the overall functionality of the system. This way, components can be reused in other component-based applications.

STICK-MEN AND OVALS

The sample diagrams provided with Rose describe a university course registration system, documented in the book Visual Modeling with Rational Rose and UML (Addison-Wesley Publishing Co., 1998), by Terry Quatrani and Grady Booch. The book is provided with Rose.

A Use Case diagram -- comprising actors (people or other systems that interact with the system being designed), Use Cases and their Relationships -- gives designers the opportunity to consider modeling from the user perspective. Use Cases and Actors interact with each other, while Relationships identify paths of communication between Actors and Use Cases.

In the example provided with Rose, Actors in the course registration system are called Student and Billing System, while Register for Courses is the name of the Use Case. In the course registration system, the Student initiates Register for Courses, which in turn, requests services from the Billing System.

In the Use Case diagram, Actors appear as stick-men, Use Cases appear as ovals, and Relationships appear as arrows between Actors and Use Cases. A sequence diagram helps visualize the dynamic nature of a system.

Objects, Actors and the Messages that occur between them make up a sequence diagram. Objects are identified while considering how the system will be used. For example, the Actor-named Student sends a message to the Registration Form to begin the process of registering for a course (Rational Rose 101). Next, the Registration Form instructs the Registrar to add the Student to the Course. The Course then asks Section I of the requested course (Thursdays, 8-8:50 a.m.) if there is any space available. If there is room, the Course adds the Student to Section I. The final step is the Registrar telling the Bill to invoice the Student for the Course.

Objects appear as rectangles in the sequence diagram, while Messages are shown as arrows. As more objects are identified, it may be desirable to group them into classes of related objects. From the sequence diagram, the following objects can be identified:

  • Registration Form object belongs to RegForm class.
  • Registrar object belongs to Registrar class.
  • The Rational Rose 101 course object belongs to the object named Course.
  • The Section I object belongs to the CourseOffering class, which includes all sections of Rational Rose 101 offered by the university.

Once all of the classes for the system have been identified, the class diagram can be created. Classes appear as partitioned rectangles and Relationships appear as lines between classes. From the sequence diagram, the Relationships RegForm to Registrar, Registrar to Course, and Registrar to BillingSystem exist. This kind of Relationship is called an Association, due to the bi-directional nature of its communication. The final relationship between Course and CourseOffering is a special kind of Association called an Aggregation. This means that a Course consists of one or more course offerings.

Each class also has Attributes. For example, a CourseOffering starts at a particular time of day. StartTime, then, is an attribute of the CourseOffering class. Attributes appear in the center part of the class rectangle in the class diagram. The bottom part of the Class rectangle contains its Operations, which represent the external interfaces of the class. Operations are created in the sequence diagram.
Objects are first assigned to their appropriate classes. Messages received by the object are then assigned an operation.

Once modeling is completed, Rose can generate code in C++, Visual Basic, Java, Oracle8, Interface Design Language (Corba) and Data Definition Language. Code generation not only saves time, it allows Rose to maintain consistency between requirements, analysis, design and implementation.

Rose also supports iterative development through round-trip engineering. As understanding about a problem domain grows, earlier phases of development must be revisited. Requirements may also need to be refined to reflect a better understanding of customer needs. When this happens, Rose automatically updates the rest of the model to be consistent with the changed requirements. This reduces the chance of defects creeping into the system.

Rational Rose 98 Enterprise edition is a mature, full-featured modeling tool for serious application developers. Although the tool is not easy to learn, extensive online and telephone support is provided by Rational Software. Formal training is also available through "Rational University."

I had trouble installing the software to a laptop, but was successful when installing to a desktop computer. Curiously, a warning message displayed during installation implied that I had to download more files from the Internet in order to obtain full functionality.

Rose requires a PC with a 486 or Pentium compatible processor, 16Mb of RAM (24Mb is recommended), 50Mb of hard disk space, a CD-ROM drive for installation, a VGA or higher resolution monitor, and any pointing device with at least two buttons. Full hard-copy documentation and an installation CD-ROM are shipped with the tool. The enterprise edition is $3,600; however, there are two other editions available at lower price points. Rose is also available for Unix platforms.

About the Author

James Heires is a 12-year veteran of the software industry, primarily at a Fortune 100 aviation electronics company located in the Midwest. His current professional interest lies in software quality improvement based on the analysis of software project data.Rational Rose 98.