Columns
Rational Rose 98 Enterprise Edition
- By James Heires
- June 18, 2001
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.