Rational Rose

CASE Tools

Developing complex applications is made easier by using so-called CASE, or Computer-Aided Software Engineering tools. A CASE tool often includes a class modeler tool that allows the developer to design the class structure of an application in UML notation. The collection of classes making up the application together with their relationships (aggregation, association, inheritance etc.) form the "logical view" or "logical model" of the application.

Froward and Reverse Engineering

A CASE tool often has two capabilities that are important to establish the connection between the logical view (model) and the actual implementation (code) of a program.

Forward Engineering:     Given the UML model, generate the corresponding code.
Reverse Engineering:     Given the code for some classes, generate the corresponding model.

In most cases the CASE tool allow a wide selection of programming languages for implementation (Java, C++, VB, C#, Pascal etc.) and sometimes notations that are different from UML (Booch, OMT etc.)

Rational Software, Inc. was a company founded by the "three amigos" (Booch, Jacobson, Rambaugh) , the creators of UML. The company's main product was Rational Rose, a CASE Tool to forward and reverse engineer UML models. It is now a division of IBM.

Rational Rose has multiple "views" or models of an application. The two most important ones are the "logical view" which is the actual class model (in UML notation), and the "physical view" that consists of "components" that contain the actual (code) implementation of the classes of in the logical view.

Rational Rose Development Environment

Example: University Model

Forward Engineering

In Rational Rose:

Reverse Engineering

In Rational Rose:

Printing a UML diagram

In Rational Rose:

Click here for a more detailed description of the Rational Rose Round-Trip Engineering process.