Welcome to Modeling | Modeling News | Modeling Videos | Latest Modeling Trends


Tuesday, July 03, 2007

Rational software architect: a tool for domain-specific modeling

The development of the Unified Modeling Language ** (1) (UML **), standardized by the Object Management Group, Inc. (OMG **) in 1997, was an important step in focusing efforts to create a single object-oriented modeling language. An industry of services, consultants, and tools has sprung up around UML, and tools from IBM Rational* are among the market leaders. In 2005, a major revision of UML, UML Version 2.0 (2) (also called UML 2), was created, expanding the scope of concepts described in the UML standard.

One of the reasons for UML's success is that it contains abstractions for many standard object-oriented modeling concepts, such as class diagrams, state-machine diagrams, use-case diagrams, and sequence diagrams, with which users can describe the architecture, design, and even implementation of software systems. Despite this richness, users sometimes want to capture information in models not provided for in UML. For this purpose, UML provides the concept of a UML profile. UML profiles allow the definition of stereotypes, which are designed extensions of UML elements that allow users of UML to annotate UML elements with extra information. Stereotypes provide a simple but powerful mechanism for extending and adapting UML. If users want to model something that is not exactly the same as a UML concept, they can often find a UML concept that is close to what they want and customize it with a stereotype. Because UML tools support the concept of a stereotype, users can create their own UML modeling extensions and still exploit UML tools to display and edit their models.

This use of stereotypes to extend UML and UML tools is a good example of the value of reuse; defining a whole new modeling language and toolset would usually be prohibitively expensive. Still, the definition of stereotypes is not adequate if one needs to define a concept for which there is no similar UML concept. There are also cases where users need more control over the behavior of the modeling tool than can be achieved by customizing a UML modeling tool with stereotypes. Models that define concepts different from the standard concepts in UML are sometimes called domain-specific languages (DSLs) or domain-specific modeling (DSM) languages. Some DSLs describe concepts that are specific to a particular technical domain but outside the scope of UML. Other DSLs describe concepts unique to a particular application or solution domain. Many articles and books have described the value of DSM languages (3) or "software factories" (4) for particular domains.

Although UML is a powerful force for unifying modeling concepts within the object-oriented domain, there are many modeling languages from other domains, some of which predate UML. The entity-relationship (E-R) model, (5) first proposed in 1976, inspired some of the ideas that found their way into UML, but E-R modeling itself has also continued to be successful, especially in the relational database domain. There are enough differences between the E-R model and the concepts it inspired in UML, such as support for explicit keys, that E-R modeling has never been subsumed by UML. More recently, the Extensible Markup Language (6) (XML) and Internet standards have created modeling languages such as XML Schema (7) (XSD) and Web Services Description Language (8) (WSDL). XML Schema is a language for modeling XML data, and WSDL models the interfaces to Web services.

Recognizing the need for supporting the development of DSLs, and the continuing and emerging importance of non-UML standard modeling languages, the designers of Rational's next-generation modeling tools set out to make sure the tools could support a broad range of modeling languages equally. RSA supports the same UML extension capabilities as the previous Rational modeling tools, Rational Rose * and Rational XDE * (Extended Development Environment). These extensions enable users to quickly create UML profiles to address domain-specific concerns, but unlike the previous tools, RSA offers other means for integrating non-UML standard modeling languages and DSLs.

Rational Rose and XDE relied on reverse engineering and round-trip engineering to create UML from domain models such as Enterprise JavaBeans ** (KJBs **), Java **, and C++. (Reverse engineering in this context is the process of converting source code files into UML model elements. Round-trip engineering, found in XDE and Rose, allows the user to synchronize the contents of a UML model with a set of source code files.) A domain-specific profile was used in order to visualize, model, and reference existing domain models. This led to significant redundancy between the UML models and the domain models, and many issues related to synchronization of these artifacts. Users had to create large UML "library" models for referencing existing domain-specific libraries; for example, with Rational Rose, using a type from the standard Java library requires importing the Java library package into a model.