Page title:Using IBM Rational modeling products

Caption:IBM Rational modeling products are integrated design and development tools that use model-driven development to create well-architected applications and services. These offerings are very flexible and highly adaptable to the needs of any software development process. You can use various types of models and different workflows depending on the phase of your project and whether your organization has a strictly governed process or a more agile development approach.

Page text:


Tour editable text

Page title:Workflows for IBM Rational modeling products

Caption: You can create and edit code visually in UML notational diagrams to help you better understand the domain model of a system, you can use small conceptual UML models to sketch the initial concepts of a system, or you can use semantically rich UML conceptual models to fully model an entire application. Complete UML semantic models can form the foundation for your application and can be transformed into code at any point in the development process, either to seed or to reconcile the design with the application code. This tour describes one of the many approaches that you can apply when you use IBM Rational modeling products to work with models and code.

Page text: Different projects, phases, and cultures often require different workflows. For software analysis and design, you can use either simple or semantically rich and complex UML conceptual models. During construction, you can use UML notational diagrams to understand and manipulate code.


Tour editable text

Page title:Using a concrete model to develop code

Caption:You can use IBM Rational modeling products to create a code model for languages, such as Java and C++, by depicting and visually editing the code in diagrams that use a style of notation very similar to UML. You can use these diagrams to add new code elements, such as classes, fields, and methods, or you can drag existing elements into diagrams. You can use tools such as topic diagrams, browse diagrams, and static method sequence diagrams to help visualize and understand your system.

Page text:


Tour editable text

Page title:Using the UML model to create a domain model

Caption:After you create your detailed class-level model using UML, you can apply transformations directly to the model to generate the structure, or often the actual compiling code, of your implementation. The detailed UML model that you created earlier in the development process becomes the seed for the domain model that is generated when the transformations run. IBM Rational modeling products include a transformation engine, a set of transformation authoring tools, some sample transformations with the source code provided, and a library of predefined transformations, such as UML-to-Java, UML-to-C++, and UML-to-CORBA IDL.

Page text:


Tour editable text

Page title:Evolving the conceptual model and the domain model

Caption:The developer can continue to work on the domain model after it is created, while the architect continues to develop the high-level UML model. This parallel workflow causes the UML model and the domain model to diverge, making communication and collaboration between the two roles difficult. To mitigate the risk inherent in parallel development, the architect must occasionally reconcile the code with the conceptual model. Because the initial transformations support model reconciliation, the developer can continue to develop the code even as the architect works on the conceptual model.

Page text:


Tour editable text

Page title:Performing the reverse transformation on the model

Caption:At a predefined checkpoint, the architect performs a reverse transformation on the domain model, which creates a temporary image that represents the current state of the implementation. The architect uses the Combine with model feature to open the temporary snapshot of the domain model in a read-only format, and the UML model in read-write mode. A reverse transformation dynamically constructs diagram entities for the purpose of UML diagrams and model entities for integration with other models. A compare-fuse operation is performed and any changes to the two models are reflected in the merged result.

Page text:


Tour editable text

Page title:Performing the forward transformation on the model

Caption:After the two models are merged, a forward transformation is applied to the combined model, which pushes the architect's changes to the UML model back into the domain model. This process can be repeated as often as necessary throughout the development process. Both models continue to evolve in parallel, and are merged and reconciled at predefined checkpoints. For some languages, such as Java, care must be taken during this reapplication stage to not overwrite key code such as method bodies.

Page text:


Tour editable text

Page title:Benefits of this approach

Caption:This workflow is beneficial for organizations that seek the cost savings of architecting with conceptual models instead of text documents or code, and that also want developers to have the freedom to change the architecture, as necessary. This workflow also enables architects to perform tool-assisted reviews of how an implementation has evolved from the original design, and apply decisions that either incorporate positive deviations into the conceptual model, or cause negative deviations to be superceded by regeneration from the conceptual model.

Page text:Benefits of this approach: