Back to Tools

Rational (IBM) Rose

Background of UML & Rose

Rational Rose is a tool set produced and marketed by Rational Software Corporation (now owned by IBM).  Rose is an operational tool set that uses the Unified Modeling Language (UML) as its means for facilitating the capture of domain semantics and architecture/design intent.  UML has a number of different notations, allowing the specification of the artifacts of design from many different perspectives and for different objectives during the computer engineering life cycle.  Most of these notations are directly supported through the Rose tool set.  Link to Rational Software Corporation's Web Site

One of the unique characteristics of Rose is its ability to be extended through use of its "Add-In" capability.  This allows the tool functionality to be extended in a number of different directions, such as by adding new tools, modifying existing ones, and even adding/incorporating whole new complementary conceptual design methods into the Rose tool set.  The complete "fabric" of the UML and its realization in the Rose set of components is made available to the user/engineer.  I have found that these interfacing capabilities are poorly documented (and believe this to be so, as it is part of extended service offerings provided by Rational, and a bunch of consultant "hangers-on", to their clients).  They should do a better job of documenting this capability and making the information more widely available, as I think it is a valuable platform in which to explore research ideas in design and analysis methods.

I have found UML and Rose to be useful in a wide range of modeling situations, and typically will use it to simply organize the concepts of a domain I am studying, so that it is easier for me to organize and retain a basic comprehension of the information in that domain--leveraging the mind's ability for "chunking" (a term coined by the late Prof. Allen Newell of Carnegie Mellon University, see the book by A. Newell, Unified Theories of Cognition, Harvard University Press, 1992) information into organized structures to more easily manage complexity and enhance retention of knowledge structures.

Usage of UML & Rose in My Courses & Research

In my primary role as a design "methodologist", I use UML and Rational Rose to model and capture the essential semantics of a domain under consideration--whether to construct a hardware or software system.  During domain analysis, I'll use high-level Use Case, Class, Statechart, and Sequence Diagrams as a means to capture the core set of system transactions, domain concepts and interactions among various concepts or components of the system.  Usually, this is an iterative activity, whose intent is to identify the set of organizing principles around which a systems architecture can be developed.  Sometimes, I augment these notations with IDEF0 diagrams (a process method developed for the US Air Force) for modeling processes, resources and controls from a data flow perspective (a perspective absent in the primary UML notations).

Taking these abstract models, I then iterate and drill into these, while also making partitioning decisions (in the Object-Oriented Programming world, this is termed "class-responsibility-collaboration" or CRC analysis).  Some of these partitioning decisions can be made with respect to hardware-software partitioning, but usually it's with regard to what functional units (or components) should contain what functions and "responsibilities".  On iterating and refining in detail, the same notations are used to understand and articulate the more-detailed Use Cases, Class/Association semantics, state-based lifecycles, and Sequences among the various identified elements of the system.

At this stage, I also add and refine state machine analysis, using the UML Statechart notation, as a means to understand the state behavior of the components.  I typically look at the Classes to see which have a discernible "life cycle", i.e., sequence of states and transitions through some controlled sequence of behavior that makes some sense with how that concept or artifact is perceived in the real world.  At this point, I attempt to reconcile the behaviors associated with individual classes with that identifies in the sequence diagrams.

I teach this basic analysis methodology to my students in CSCE 491 and in CSCE 611 courses.  We use Rational Rose extensively in both classes to analyze the problem domains in which we will carry out systems design. We use the UML notations and methods to bring order and precision to our understanding of the domain, and to formalize a complete, consistent and "correct" (relative to requirements) set of models for the problem domain under consideration.  The primary domain on which we have been using this approach is the 802.11 Wireless LAN design and architecture.  Given the usefulness of UML in the analysis and partitioning or protocol-oriented applications, we have had very good success in using UML and Rose in the coursework.  In addition, we couple the UML models, and the semantics conveyed through its notational views, to Algorithmic State Machine (ASM) models for use in the architecture and design of digital VLSI systems.

Useful Documents

These are Manuals and White Papers authored by Rational (now part of IBM) concerning the use of Rose(R) and its Extensibility and Add-in programming interfaces.  In addition, there are documents authored by the Object Management Group (OMG) that relate to the level of standardization of UML and its planned/proposed extensions.  I have posted these documents for easy access for students in my classes and who work with me on research projects and independent study related analysis & programming projects.

Rose 2001A Users Guide OMG UML v1.5 Specification Rose 2001 Extensibility Guide Rose Guide for Team Development Rose 2001A Data Modeler
This is the User's Manual for the current version of the tools we are running on our PC and Sun labs. This is the specification of the most recent release of the UML specification.  It contains the definition of all notations with views supported in the modeling methods, and also documents the different model layers--most notably for us, the meta-model and meta meta-model. This is the API manual for the functions and the protocol for adding extended toolset capabilities to Rose.  Since much of our research involves making such extensions, the function definitions, coupled with the model definitions in the v1.5 specification, are used to select the appropriate functions and define the call sequence. This is a guide for how to use Rose and UML methods in a team-oriented development effort.  It is germane for our use as a guide on UML model-driven analysis and design projects. This is a guide for how to use Rose and UML methods in the conceptual modeling and logical modeling for database applications.  Instead of using the Entity-Relationship model, or IDEF1X (on which the ERwin(R) tool set is based), you can purportedly use UML to model databases.  This is true, but there are some caveats.

Back to Tools