Visualize Your Model with UML, Build It with Model Templates
RSA uses UML to model software. UML diagrams allow you to visualize your model or parts of it. RSA supports UML 2.1, which includes the latest UML additions such as object diagrams along with use case, class (see Figure 2
), object, sequence, activity, composite structure, state machine, communication, component, and deployment diagrams.
RSA enables you to add elements to UML diagrams in many convenient ways, such as drag-and-drop, the palette, and the context menu, but my favorite is the action bar; click anywhere on a diagram and an action bar containing UML elements needed for the diagram type appears (see Figure 3).
RSA includes predefined templates with guidelines for organizing your models. Some of the templates are the Use-Case Model template, the Analysis Model template, the Enterprise IT Design Model template, and the Service Design Model template. Discussing the details of each template is beyond the scope of this article, but Figure 4 provides an example of the structure created with a Use-Case Model template.
Design Patterns: Enforce Good Practice
A design pattern is a named solution to a problem that can be applied in new contexts. For an architect leading a large team of developers, patterns can become a way to ensure consistency in the way the team implements a design for a system.
RSA comes with a set of predefined design patterns based on the Gang of Four design patterns. You can see available patterns when you open the Patterns Explorer (see Figure 5).
With RSA, including patterns in your design is easy: just drag a design pattern from the Patterns Explorer into a class diagram, and then bind classes to the pattern definition to define the pattern participants (see Figure 6).
RSA also can transform patterns into Java domain implementations of those patterns (more on that shortly). For example, if you add the Observer design pattern to your model and run an UML-to-Java transformation, you will get a Java class that extends java.util.Observable and one or more Java classes that implement java.util.Observable.
You also can use RSA to author your own patterns and share them as Reusable Asset Specification (RAS) assets. RAS is an Object Management Group (OMG) standard for sharing assets.