FAQ

Home
FAQ
Specifications
Tools
Training
Methods/Processes
Publications
UML Mailing List
News
Other Resources
Visual Modeling Forum
Business Modeling Forum
SysML Forum

Next

Questions

Answers

  •  What is the UML?
    The Unified Modeling Language (UML) is a general-purpose modeling language for visualizing, specifying, constructing and documenting the artifacts of software-intensive systems. The UML was originally derived from the object modeling languages of three leading object-oriented methods: Booch, Object Modeling Technique (OMT) and Object-Oriented Software Engineering (OOSE). It was first added to the list of OMG adopted technologies in 1997, and has since become the industry standard for modeling software-intensive systems.
    BACK TO TOP
  •  What is the current version of the UML specification, and how can I obtain a copy?
    The current version of the UML specification is UML 2.1.1. You can download the UML 2.1.1 Superstructure specification from the OMG web or the Specifications page of this web.
    BACK TO TOP
  •  What major improvements were made in the UML 2.0 major revision?
    The UML 2.0 major revision includes many significant improvements over UML 1.x. These include, but are not limited to the following:
    • Hierarchical decomposition of structures and support for component-based development. UML 2 introduces a major new diagram type, Composite Structure diagrams, that includes new constructs (Parts, Ports and Connectors) which allow you to recursively decompose a a system-of-systems into systems, subsystems, components, sub-components, etc.
    • Hierarchical decomposition of behavior. UML 2 enhances Activity and Sequence diagrams so that you can recursively decompose behaviors into sub-behaviors. For example, you can decompose Action Nodes into sub-Action Nodes, sub-sub-Action Nodes, etc.
    • Improved integration between structural and behavioral models. When properly applied UML 2 Parts allow you to seamlessly integrates structural and behavioral diagrams. For example, the same EFI Part in a Composite Structure diagram for an Engine might also be reused for a swimlane partition in an Activity diagram for Activate Cruise Control.
    • Enhanced support for executable models. UML 2 includes a fully integrated Action Semantics that enables executable models capable of driving simulations and automatically generating programming code.
      BACK TO TOP 
  • What significant changes were made in the UML 2.1 minor revision?
    The UML 2.1 minor revision changes address implementation issues, such as the implementation of redefinition and bidirectional associations in the metamodel. Consequently, these minor changes affect modeling tool vendors more than modelers (users).
    BACK TO TOP
  • What are the outstanding issues associated with UML 2.x, and how can they be addressed?
    The following are some of the common criticisms aimed at UML 2.x:
    • Language bloat: the language is gratuitously large and complex.
    • Imprecise and inconsistent semantics: The language contains are large number of "semantic variation points", which are places where the vendors could not agree, so they were purposefully left ambiguous. In addition, the various behavioral "sublanguages" for Interactions (Sequences), Activities, and State Machines are inconsistent with each other and poorly defined in relationship to the Action semantics.
    • Non-intuitive and inconsistent notation: The notation is a hodgepodge of notations from several legacy notations (Booch, OMT, Objectory, SDL, and MSCs) that is inconsistent with each other and difficult to learn and remember.
    • Dysfunctional interchange format: The XMI for UML 2.x is incompletely defined and inconsistently implemented, so there is no straightforward mechanism for exchanging UML 2.x models between modeling tools. (This issue is discussed further in response to the question "Why can't I easily interchange UML models between modeling tools?" below.)

    None of these issues is minor, so they can only be addressed in a major revision to UML 2.x (i.e., UML 3.0) or in a new modeling language that learns from the mistakes of UML 2.x.
    BACK TO TOP

  •  Who maintains the UML specification and how is it updated?
    The Object Management Group (OMG) maintains the UML specification. As with any OMG specification, minor revisions to UML are effected by Revision Task Forces (RTFs) and major revisions are effected by Requests for Proposals (RFPs). The OMG process for revising UML is explained in the article "UML 2001: A Standardization Odyssey," by Cris Kobryn, which can be downloaded from the Papers & Articles page of this web.
    BACK TO TOP
  • Why can't I easily interchange UML models between modeling tools?
    While the XML (XML Metadata Interchange) standard purports to facilitate the interchange of UML models, it has been largely ineffective in practice.There are at least two technical reasons for this. First and foremost, XMI attempts to solve a technical problem far more difficult than exchanging UML models; it attempts to provide a mechanism for facilitating the exchange of any language defined by the OMG's Metamodel Object Facility. Secondly, the UML 2.x Diagram Interchange specification lacks sufficient detail to facilitate reliable interchange of UML 2.x notations between modeling tools. Since UML is a visual modeling language, this shortcoming is a showstopper for many modelers who don't want to redraw their diagrams.

    Any modeler can empirically verify this shortcoming by defining a UML 2.x model in one modeling tool, and attempting to import it into another modeling tool without any loss of information. If you are concerned that XMI doesn't work for whatever UML tools you use or plan to use, you are encouraged to let UML modeling tool vendors and the OMG know about your concerns by contacting your tool vendor or sending an email to issues@omg.org.

BACK TO TOP

  • How can I learn the UML?
    There are many UML books, but as with any popular technology, they are uneven in coverage and quality so "let the reader beware." Some of the UML books we have found useful may be found on the UML Publications page.
    As for tutorials, you can found a selected listing of online tutorials that we found useful on the Tutorials page of this web.
    BACK TO TOP
  • How can I help improve the UML?
    Anyone can make submit problems or make recommendations to improve UML by submitting issues to the issues@omg.org In addition, you can also join the OMG and directly participate in one of the UML Revision Task Forces.
    BACK TO TOP
  • What UML modeling tools are available?
    There are many modeling tools that support UML. A selective list of modeling tools is available on the UML Tools page of this web.
    BACK TO TOP
  • What should I look for when selecting a UML modeling tool?
    To start with, you should assess you own modeling requirements to determine what UML support you need. Some things you may want to consider include support for:
    • compliance with the UML specification for both notation and semantics
    • team development
    • model simulation and code-generation
    • model interchange with other UML tools
    • tool customization

    Please note that the first support bullet may be problematic, since at the time of this writing we know of no UML modeling tool that completely complies with the UML 1.1 specification (which was adopted in 1997) let alone the UML 1.5 specification (which was finalized in H1 2003). Although UML vendors who partially implements the UML specification and claim compliance are expected to explain how they partially comply via compliance points, we know of no vendor that does this. Consequently, you will likely need to perform your own due diligence in this regard.

    Once you understand your modeling requirements you will be prepared to systematically evaluate modeling tools to determine how well they meet your requirements. We recommend that evaluate UML modeling tools in several phases:

    • "paper" evaluation: initially evaluate tools choices via paper and electronic sources, such as vendor literature and analyst/expert reviews to narrow your tool choices into a "short list" of candidates. During this phase you may also want to ask preferred vendors for references of users who have applied the tools in environments similar to yours.
    • "hands-on" evaluation: Perform a hands-on evaluation of the tools selected in your short list. Make sure that you use medium-to-large size models (with hundreds or thousands of classes) and exercise all the features in your requirements list. In addition, check the responsiveness and the quality of the tool's software support.
    • final selection: If you still have more than one viable tool candidate after the hands-on evaluation, you may want to consider business issues, such as pricing and upgrade policies, to make your final decision.

    BACK TO TOP

  • What processes and methods are available that use UML?
    There are many software methods that use UML. A selective list of UML methods is available on the UML Methods page of this web. 
    BACK TO TOP
  • What should I look for when selecting a process or method that uses UML?
    You should keep in mind that UML is a modeling language, and not a process or method. Since UML is a general-purpose modeling language and object-oriented, it is expected to work with most object methods. However, you may expect to encounter problems if the method is based on another paradigm (e.g., functional, relational, rule-based). You may also encounter difficulties with component-based methods if you are using UML 1.x, since support for component modeling is restricted. (The forthcoming UML 2.0 major revision is expected to improve support for component modeling.)

In particular, look out for methods that:

  • do not use all or most of the UML diagram techniques. This may indicate that the method doesn't address the full software lifecycle.
  • rely heavily on UML profiles for customizing the language. While some customization is expected and encouraged, excessive customization reduces the benefit of a general-purpose object modeling language.

BACK TO TOP

  • What is a UML profile?
    A UML profile customizes UML for a specific domain or purpose using extension mechanisms such as stereotypes and metaclasses. For example, the UML Profile for Testing customizes UML for testing systems.
    BACK TO TOP
  • Can UML be used to specify systems engineering applications?
    Yes. Although the UML was originally designed to specify software-centric systems, the major improvements included in UML 2.0 (see answer to "What major improvements were made in UML 2.0?') make it an effective language for modeling systems engineering applications.

However, you should also check out the SysML (Systems Modeling Language) dialect of UML, which is a general purpose systems engineering modeling language that is typically implemented as a UML 2.x profile. For more information about the SysML dialect see the SysML Forum.
BACK TO TOP

  • What UML mailing lists are available?
    UML Forum moderates a mailing list that you can join by clicking here. The OMG maintains mailing lists for UML Finalization Task Forces (FTFs) and Revision Task Forces (RFTs). You can request to join these mailing lists by sending an email to request@omg.org.
    BACK TO TOP
  • What other questions will this FAQ answer in the future?
    Some other frequently asked questions that we plan to address soon include:
    • How does UML 2.0 specify Service Oriented Architectures (SOAs)?
    • How does UML 2.0 support component-based development using J2EE/EJB and .NET/COM+?

    In addition, please feel free to submit your own questions to this FAQ by sending email to FAQ@UML-Forum.com.
    BACK TO TOP