've learned from experience that the role of an architect in medium-sized and large software projects is challenging. Not only does it require high-level architecture and modeling, but the architect also must continuously monitor the development team's progress to ensure that they are implementing applications as he or she envisioned. Without the proper tool support, this job is even more daunting. When selecting modeling and development tools, an architect has two choices:
- Use two tools: one for modeling and another for development
- Use one tool that combines modeling and development
Using separate tools requires the architect to work in two different environments, which reduces productivity. The tools also must have some sort of integration/interface between them. Otherwise moving from modeling to implementation requires manual work, which would slow down the development team and make it difficult to maintain model and implementation synchronization.
Using a tool that combines modeling and development is the better approach, but selecting such a tool is not easy. Some tools do well with modeling but not as well with development and vice versa. These tools also tend to be biased towards a certain implementation language. For example, a tool for Java architects/developers usually offers a subset of UML (Unified Modeling Language) that is close to the Java language. While this means the user to model with the implementation language in mind, it also reduces the resulting model's abstraction level.
My search for a suitable combination tool ended when I discovered IBM Rational Software Architect (RSA), a complete solution for architects who need a single tool for design and development. RSA integrates comprehensive modeling features (full support for UML 2) with a standard Java/J2EE development IDE (IBM Rational Application Developer) while maintaining the needed model abstraction through various model-to-implementation transformations.
Based on the Eclipse platform, the latest RSA release (version 7) is built on Eclipse 3.2. Since it is Eclipse-based, RSA uses perspectives and views to display content according to tasks. A perspective defines the initial set of content editors and related views and their layout. For example, the RSA Modeling Perspective contains the tools needed for building UML models and diagrams (see Figure 1).
This article mainly discusses the RSA Modeling Perspective features, but it also touches on features from the Java Perspective. In all, it covers the following features:
- UML diagrams and model templates
- Design patterns
- Model analysis
- Architectural discovery and code review
- Publishing models