UML Forum
Everything related to UML


UML Frequently Asked Questions

  • GENERAL
  • Back to Top
    What is the Unified Modeling Language (UML)?
    The Unified Modeling Language (UML) is a general-purpose visual modeling language for specifying software-intensive systems. More precisely, it is a graphical language for visualizing, specifying, constructing and documenting the artifacts of software-intensive systems. UML is a key enabling technology for Software Developers and Software Engineers who seek to transition from traditional, human-intensive, code-centric software development processes to Model-Driven Development (MDD) processes that are requirements-driven and architecture-centric.
    UML 2 & Visual Modeling Language Evolution

    UML 2 & Visual Modeling Language Evolution

    Reproduced by Permission © 2003-2012 PivotPoint Technology Corp.





    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 Object Management Group (OMG) adopted technologies in 1997, and has since become the industry standard for modeling software-intensive systems. The UML specification is an open standard that is publicly available for download. The most recent revision is UML v. 2.1.4. (See Specifications page.)

    UML 2 Diagram Taxonomy

    UML 2 Diagram Taxonomy

    Reproduced by Permission © 2003-2012 PivotPoint Technology Corp.



    Back to Top
    Rate This Entry
  • Back to Top
    Why use UML?
    If you are a Software Developer and want to improve the precision and efficiency of your communications with fellow Software Developers and other system and business stakeholders, then UML is an excellent choice for a lingua franca. (If on the other hand, you are a Systems Engineer or a Business Analyst who wants to improve communications with your peers and other system stakeholders, then SysML or BPMN may be better choices.) Here's a list of reasons why Software Developers may want to use SysML and a Model-Driven Development process for their work:
    • Facilitate communication among various stakeholders across the System Development Life Cycle
    • Capture and manage corporate Intellectual Property related to system architectures, designs, and processes
    • Compare and contrast “As Is” and “To Be” solutions
    • Provide scalable structure for problem solving
    • Furnish rich abstractions to manage size and complexity
    • Explore multiple solutions or ideas concurrently with minimal risk
    • Detect errors and omissions early in System Development Life Cycle

    Back to Top
    Rate This Entry
  • Back to Top
    Who created the UML?
    The short answer is that the Unified Modeling Language (UML) originated from the fusion of the three leading object methods of the early 1990's: Grady Booch's Booch Method, James Rumbaugh's Object Modeling Technique, and Ivar Jacobson's Objectory method.

    However, a longer and more accurate answer follows. James Rumbaugh, the primary methodologist for the Object Modeling Technique (OMT) method, joined Grady Booch, the Chief Scientist at Rational Software who authored the Booch Method, at Rational Software in 1994. At Rational Software Booch and Rumbaugh collaborated on the Unified Method v. 0.8, which combined their object modeling method notations and was released at the Object-Oriented Programming and LAnguages (OOPSLA) conference in 1995. After realizing that the problem of unifying their object modeling notations was more tractable than unifying their methods, Booch and Rumbaugh were joined by Ivar Jacobson, the primary methodologist for the Objectory method, at Rational Software at 1995. These three object modeling methodologists, were collectively referred to as the "Three Amigos".


    Seeing the business opportunity to exploit UML standardization leadership to further its marketing strategy for Rational Rose and other software development tools, Rational organized the UML Partners consortium in 1996 to respond to the OMG's RFP for object modeling tool interoperability. The original UML Partners consortium consisted of a strategic mix of software tool vendors and systems integrators, including Rational Software Corporation, Microsoft, Hewlett-Packard, Oracle, Texas Instruments, MCI Systemhouse, Unisys, ICON Computing, and Intellicorp. At first the Three Amigos functioned as technical co-chairs and Ed Eykholt, a Rational employee, was the project leader. The UML Partners' UML 1.0 specification draft was proposed to the Object Management Group (OMG) in January 1997, but its semantics were considered inadequate for OMG adoption. Consequently, the Three Amigos asked Cris Kobryn, the Chief Scientist at MCI Systemhouse with expertise in AI linguistics and formal languages, to chair a UML Semantic Task Force to finalize UML semantics and integrate them with related OMG standardization efforts. The result of this work, UML 1.1, was submitted to the OMG in August 1997 and was formally adopted by the OMG in November 1997.

    UML2 Postscript: Kobryn went on to chair the UML Revision Task Force that specified the UML 1.2-1.4 minor revisions (1997-2002). During 2000-2003 he organized and chaired the U2 Partners consortium, which successfully specified a UML 2.0 major revision that was formally adopted by the OMG in 2003. During 2003-2006 Kobryn chaired the open source SysML project, which specified the Systems Modeling Language (SysML) dialect of UML for Systems Engineering applications.

    Back to Top
    Rate This Entry
  • Back to Top
    Why do Software Developers need a precise visual modeling language? Why aren't informal whiteboard drawings and ad hoc Visio diagrams sufficient?
    Answer To Be Provided.

    You can request additional questions to be answered in the UML FAQ by sending email to FAQ@UMLforum.com.

    Back to Top
    Rate This Entry
  • Back to Top
    What is the current version of UML, and how can I obtain a copy?
    The latest version of the UML specification is OMG UML v. 2.4.1, which is available from the UML Specifications page of this web.

    Back to Top
    Rate This Entry
  • Back to Top
    Who maintains the UML specification and how is it updated?
    The Object Management Group (OMG) has adopted and 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). For more details regarding the OMG revision processes see the the OMG web.

    Back to Top
    Rate This Entry
  • Back to Top
    What changes were made during the last major revision of UML, UML 2.0?
    Noteworthy changes made in the UML 2.0 major revision include:
    • 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
    Rate This Entry
  • Back to Top
    What changes were made during the last minor revision of UML, UML 2.4?
    Answer To Be Provided.

    You can request additional questions to be answered in the UML FAQ by sending email to FAQ@UMLforum.com.

    Back to Top
    Rate This Entry
  • Back to Top
    How mature is UML 2.x?
    Although UML v. 2.x is a major revision of UML 1.x that fixes many of the shortcomings of first generation UML, many significant issues need to be resolved. These include, but are not limited to, the following:


    • GENERAL ISSUES
      • Language bloat.
        A common and fair criticism of UML 2.x is that it is gratuitously large and complex. While SysML marketecture indicates that SysML is a "smaller, simpler" language for systems engineers, the reality is that SysML itself also suffers from language bloat because it adds two new diagrams (Requirements and Parametrics) and increases the number of stereotypes with imprecise semantics (see Increase of UML 2.x voodoo semantics below), while failing to explicitly exclude many redundant and software-centric UML 2 constructs from the seven UML 2 diagrams that it inherits. The bloat is exacerbated because the SysML specification provides no guidelines regarding how to combine SysML models with UML models for engineering teams that include both software engineers and system engineers.
        • Recommendations: Explicitly remove UML constructs not needed for SysML. Provide concrete guidelines regarding how to combine SysML models with UML models for engineering teams that include both software engineers and system engineers. Encourage tool vendors to support automated translation of diagrams shared between the two languages.
      • Increase of UML 2.x voodoo semantics.
        Another common and fair criticism of UML 2.x is that its semantics, including its purported executable semantics (a.k.a. the Action Semantics) are ambiguous and imprecise. While SysML marketecture indicates that SysML supports precise semantics for specifying parametric constraints, the reality is SysML defines only vague natural language semantics for ConstraintBlock, ConstraintProperty, and Context-Specific Values/Constraints. Similarly, the semantics for Activity diagram extensions related to continuous/discrete rates and probabilities lack formal precision.
        • Recommendations: Add precise semantics for Parametric constructs and Activity diagram extensions.
    • SPECIFIC ISSUES
      • Structural constructs for Interfaces and Instances are complex and muddled.
        The semantics and notations for StandardPorts, FlowPorts, Provided/Required Interfaces, and ItemFlows are excessively complex and their usages are frequently counter-intuitive since they conflate dependencies with flows. Although Instance Specifications were recently added to SysML 1.2, Object diagrams were not, and many issues remain about their specialized usage within SysML.
        • Recommendations: Unify, simplify, and clarify the Ports/Interfaces/ItemFlows constructs. Add Object diagrams and clarify differences between SysML and UML Instance syntax semantics.
      • Requirement constructs are incomplete and confusing.
        Problems associated with Requirement diagrams include, but are not limited to, clarifying decomposition/containment semantics, categorization, defining basic properties, clarifying relationship semantics, and reducing the semantic overlap with Use Cases.
        • Recommendations: Replace Containment with Composition for Requirements decomposition. Retire Copy dependency. Provide additional properties for source, priority, risk, verifyMethod, etc.
      • Allocation relationships and tables are incomplete and ambiguous.
        With the exception of the AllocateActivityPartition stereotype the current specification fails to leverage the architectural integrity allocations of its parent language. In addition, the definitions of the Allocate and Allocated stereotypes strongly suggest conflated dependency and flow semantics, which are indicative of novice UML modelers ("which way does the arrow point?").
        • Recommendations: Replace Allocate dependencies with flows that use distinctive notation (not dashed arrrows labeled with keywords). Require that implementations automatically generate Allocate dependencies for AllocateActivityPartitions.
      • ValueType-Type integration needs simplification.
        The current usage of ValueTypes with Units and Dimensions and their integration with UML DataTypes needs to be clarified and simplified.
        • Recommendations: Simplify and predefine a standard ValueType library.

    Back to Top
    Rate This Entry
  • Back to Top
    What is Model-Driven Development (MDD)?
    Model-Driven Development (MDD), a.k.a. Model-Driven Software Engineering (MDSE), is a software development paradigm that emphasizes the use of rigorous visual modeling techniques throughout the Software Development Life Cycle (SDLC). MDD is a subdiscipline of the Model-Based Engineering paradigm that promotes the use of open standards for visual modeling (e.g., UML2, BPMN, SysML, ArchiMate), and encourages the integration of visual modeling and traditional Software Development best practices, including Agile Development.

    For more information about Model-Driven Development and related Model-Based Engineering subdisciplines check out the Model-Based Engineering Forum.

    Back to Top
    Rate This Entry
  • Back to Top
    What is the relationship between UML and Model-Driven Development (MDD)?
    A recommended best practice for any Model-Driven Development approach is the synergistic application of Model-Based Languages, Model-Based Tools, Model-Based Processes, and Model-Based Architecture Frameworks.

    System Architecture Tetrad

    System Architecture Tetrad


    Reproduced by Permission © 2003-2012 PivotPoint Technology Corp.



    As an open standard Architecture Description Language (ADL) for software-intensive applications, UML 2 is the Model-Based Language of choice for MDD endeavors. However, if you don't choose and apply the other key enabling MDD technologies properly (Modeling Tools, Model-Based Processes, and Architecture Frameworks) your MDD project will likely achieve poor or mixed results.

    Back to Top
    Rate This Entry
  • Back to Top
    What is the relationship between UML and its SysML dialect?
    SysML is a dialect (Profile) of UML for Systems Engineering applications that was originally developed as an open source specification by the SysML Partners, an informal association of modeling tool vendors and industry leaders. The open source SysML specification was eventually adapted and adopted by the OMG as OMG SysML. For more information about open source SysML and OMG SysML see SysML.org and the OMG SysML web pages.

    Back to Top
    Rate This Entry
  • Back to Top
    What is the best way to learn UML?
    Learning any new language is difficult, whether it is a natural language (e.g., Japanese, Swahili, English) or an artificial language, such as UML. Since SysML is a dialect (Profile) of UML 2, if you are fluent in UML 2and understand how Parts, Ports and Connectors support component-based designyou should be able to learn the SysML dialect relatively quickly. On the other hand, if you have only dabbled with UML 1 and have succumbed to UML 1 worst practices (e.g., Use Case Abuse), your previous bad exposure to UML 1 may be a liability rather than an asset.

    In order to increase your likelihood of achieving UML language fluency, you may want to consider a multi-pronged approach to learning UML. For example, if you have the opportunity you may want to start off with basic UML hands-on training, followed up by expert coaching (mentoring) for On The Job training, which in turn is followed up with advanced UML hands-on training. For the best learning experience, ensure that all your UML training is taught by expert practitioners with extensive application experience on large projects, and includes frequent hands-on practice sessions and Q&A sessions.


    In addition, you should also also read voraciously about UML techniques and best practices, so that you can further benefit from the experience (and mistakes) of others.

    You can find a listing of selected UML 2 training resources on the UML Training page of this web.

    You can find a listing of selected UML 2 tutorials on the UML Tutorials page of this web.

    You can find a listing of selected UML 2 publications (including books, papers, and articles) on the UML Publications page of this web.

    Back to Top
    Rate This Entry
  • Back to Top
    Which Architecture Description Language is easier to learn, UML or SysML?
    The answer likely depends on whether you are a Software Developer or a Systems Engineer. If you are a Systems Engineer, you should expect SysML to be easier to learn, since it is smaller language and it is customized for your systems engineering applications. If you are a Software Developer, you will likely prefer UML's software-centric bias.

    Back to Top
    Rate This Entry
  • Back to Top
    How can readers submit new questions for this FAQ?
    Please email your questions using the Contact page.

    Back to Top
    Rate This Entry
  • UML DIAGRAMS & MODELING TECHNIQUES
  • Back to Top
    What are the "Big Six Diagrams" of UML?
    The term the "Big Six Diagrams" of UML refers to the six essential diagrams of UML: Use Case, Activity, Class, Sequence, Composite Structure, and State Machine diagrams. The expression was coined by Cris Kobryn, the chair of the UML Partners' Semantic Task Force for UML 1.1 and the chair of the UML2 Partners' UML 2.0 specification proposal team, in 2003. Based on his extensive experience as a UML specification chair and as a consultant on large-scale modeling projects, Kobryn applied the Pareto Principle (a.k.a. 80/20 rule) to UML diagrams techniques and identified these six diagrams as the "vital few", with the remainder relegated to the "trivial many". He further postulated that any UML modeler who mastered the "Big Six Diagrams" should find it relatively straightforward to master the remaining UML diagrams as special usages.

    Back to Top
    Rate This Entry
  • Back to Top
    Which UML diagrams support Agile Modeling or Agile Methods (SCRUM, Crystal, etc.)?
    Answer To Be Provided.

    You can request additional questions to be answered in the UML FAQ by sending email to FAQ@UMLforum.com.

    Back to Top
    Rate This Entry
  • Back to Top
    What is the difference between a structural diagram and a behavioral diagram?
    As their names imply, a structural diagram emphasizes the static structures of the system entities, whereas a behavioral diagram emphasizes the dynamic behaviors of system entities.

    Back to Top
    Rate This Entry
  • Back to Top
    What is a UML Use Case diagram and how is it used?
    Answer To Be Provided.

    You can request additional questions to be answered in the UML FAQ by sending email to FAQ@UMLforum.com.

    Back to Top
    Rate This Entry
  • Back to Top
    What is a UML Activity diagram and how is it used?
    A UML Activity diagram shows system functional behavior using a control and data flow model.

    Systems Engineers can use Activity diagrams to specify function independent of structure (form) by not using Partitions (swimlanes)
    Business Analysts can use Activity diagrams to represent business processes.

    Compare and contrast: SA/SD EFFBDs, DFDs; BPMN Business Process Diagrams.

    Back to Top
    Rate This Entry
  • Back to Top
    What is a UML Class diagram and how is it used?
    Answer To Be Provided.

    You can request additional questions to be answered in the UML FAQ by sending email to FAQ@UMLforum.com.

    Back to Top
    Rate This Entry
  • Back to Top
    What is a UML Composite Structure diagram and how is it used?
    Answer To Be Provided.

    You can request additional questions to be answered in the UML FAQ by sending email to FAQ@UMLforum.com.

    Back to Top
    Rate This Entry
  • Back to Top
    What is a UML Sequence diagram and how is it used?
    Answer To Be Provided.

    You can request additional questions to be answered in the UML FAQ by sending email to FAQ@UMLforum.com.

    Back to Top
    Rate This Entry
  • Back to Top
    What is a UML State Machine diagram and how is it used?
    Answer To Be Provided.

    You can request additional questions to be answered in the UML FAQ by sending email to FAQ@UMLforum.com.

    Back to Top
    Rate This Entry
  • Back to Top
    What is a UML Package diagram and how is it used?
    Answer To Be Provided.

    You can request additional questions to be answered in the UML FAQ by sending email to FAQ@UMLforum.com.

    Back to Top
    Rate This Entry
  • Back to Top
    What is the difference between Generalization and Aggregation (Composition) relationships?
    Answer To Be Provided.

    You can request additional questions to be answered in the UML FAQ by sending email to FAQ@UMLforum.com.

    Back to Top
    Rate This Entry
  • Back to Top
    What is the difference between Composition ("black diamond") and Aggregation ("white diamond") relationships?
    Answer To Be Provided.

    You can request additional questions to be answered in the UML FAQ by sending email to FAQ@UMLforum.com.

    Back to Top
    Rate This Entry
  • Back to Top
    How can you define Requirements traceability across UML diagram types?
    Answer To Be Provided.

    You can request additional questions to be answered in the UML FAQ by sending email to FAQ@UMLforum.com.

    Back to Top
    Rate This Entry
  • UML TOOLS & INTEROPERABILITY
  • Back to Top
    What UML modeling tools are available?
    You can find a selected list of UML 2 tools that are available on the UML Tools page.

    Back to Top
    Rate This Entry
  • Back to Top
    How should I select a UML modeling tool for my project or team?
    Since the needs of Model-Driven Software Engineering projects and teams tend to be unique, the answer to this question will vary based on your project and team requirements. However, you can find general advice regarding UML modeling tool selection on the UML Tools web.

    Back to Top
    Rate This Entry
  • Back to Top
    What evaluation criteria should I use for UML modeling tool selection?
    Since the needs of Model-Driven Software Engineering projects and teams tend to be unique, the answer to this question will vary based on your project and team requirements. However, you can find an example of weighted UML tool evaluation criteria on the UML Tools web.

    Back to Top
    Rate This Entry
  • Back to Top
    What is the difference between UML compliance and conformance?
    In order to answer this question, we should first distinguish between the terms compliance and conformance as they relate to industry standards, since these terms are frequently conflated.

    Standards compliance is an informal industry term which indicates that a system or product provides at least partial support to a particular industry standard, but this partial support is typically not subjected to formal testing. In contrast, conformance is a more formal industry term which indicates that a system or product provides full support for a particular industry standard, where the conformance can be verified by formal testing. From these definitions it should be clear that compliance, which is loosely defined, is much easier for a vendor to claim than conformance, which should be subject to formal testing by a neutral third party, such as an international standards organization.


    Re OMG UML compliance: The OMG UML specification (see UML v. 2.4.1, Chapter 2) defines four compliance levels: Level 0, Level 1, Level 2, and Level 3, where Level 0 or L0 is the lowest level of compliance. In addition, compliance for any given level can be further refined by two sub-classifications: compliance by abstract syntax (metamodel compliance), compliance by concrete syntax (notational compliance with a diagram interchange option). Consequently, compliance for any given level can be expressed as:
    • abstract syntax compliance
    • concrete syntax compliance
    • abstract syntax with concrete syntax compliance
    • abstract syntax with concrete syntax and diagram interchange compliance

    Until recently, the OMG did not provide a standard test suite to formally and objectively test UML compliance; it was left up to UML tool vendors to informally and subjectively provide their own documentation to describe their product compliance level. It should nor be surprising then, that many UML tool vendors claim some sort of "OMG UML support" but UML language implementations are frequently inconsistent, and model interoperability is generally dysfunctional. However, in December 2011 six tool vendors participating in the OMG Model Interchange Working Group (MIWG) announced the public availability of a test suite and test case results that demonstrate UML and OMG SysML model interchange capability using the XML Metadata Interchange (XMI) standard. Information on the test suite is available at the MIWG Wiki.

    Given the past track records of UML tool vendors, it is too early to assume that UML tool interoperability problems have been completely resolved. However, UML users are encouraged to perform their own due diligence regarding UML tool interoperability by performing their own pragmatic tests. (For example, draw or borrow a medium-size UML model with a tool claiming UML compliance, export it using the OMG XMI interchange format, and attempt to import the exported XMI file into another competitive UML tool that claims comparable UML compliance. If you can successfully import into the competitive tool without significant loss of information, you have confirmed interoperability.) You can inform the OMG about any concerns that you have regarding UML compliance, conformance, or any other technical issue by sending email to issues@omg.org.

    Back to Top
    Rate This Entry
  • Back to Top
    What is UML certification, and how is it related to compliance and conformance?
    In order to answer this question, we must first distinguish between certification of products vs. certification of practitioners or users. In the context of international standards, product certification indicates that an accredited institution, such as an international standards body, affirms that a product complies or conforms with a specification standard. Achieving product certification generally requires that a product passes a formal testing process with a rigorous test suite. However, practitioner or user certification indicates that an accredited institution affirms that a practitioner of a standard has been tested to demonstrated knowledge or competency applying the subject standard.

    Re UML tool certification: Although the OMG does not yet formally certify UML tool compliance or performance, it has formed an informal working group to test UML compliance levels. See the answer to the What is the difference between UML compliance and conformance? FAQ for further information about UML tool conformance and compliance.

    Re OMG UML practitioner certification: The OMG has established a certification program, the OMG Certified UML Professional™ (OCUP™), that tests three levels of UML modeling knowledge. You can find out more about the OCUP certification from the OCUP web page.

    Back to Top
    Rate This Entry
  • Back to Top
    Where can I find a Visio template ("stencil") for UML?
    You can download free Visio templates and stencils for UML v. 2.2 from the UML page of the "Software Stencils" web.

    Caveat Modeler: While these free UML Visio templates may be a quick and inexpensive way for you and your Model-Driven Development team to start UML modeling, you should be clear that there is a fundamental difference between slick UML drawing tools that are clueless about UML's notational and semantic well-formedness rules, and executable UML modeling tools that enforce UML's well-formedness rules, model management rules, and model executability (e.g., simulation, code generation). Between these two UML modeling tool choice extremes, the free UML Visio templates cited above fall into the former category, whereas there are several bona fide UML modeling tools that fall into the latter category. Stated otherwise, it is relatively easy to draw ill-formed and even non-sensical UML diagrams with the free Visio templates if you are not yet fluent in the UML language.

    If you are seeking a free or open-source UML modeling tool, check out the Free & Open Source UML Tools page on the UML-Tools.com web.
    Back to Top
    Rate This Entry
  • Back to Top
    What does it mean for a UML model or a UML tool to be "executable"?
    Among visual modeling tools "executable" an umbrella term that describes one of several kinds of dynamic translation from a visual model:

    1) forward engineering (a.k.a. code generation): Forward engineering refers to the translation of a model into programming code that can be compiled and executed on a computer. In the case of SysML, several SysML modeling tools are capable of generating Object Oriented Programming Language (OOPL) code from SysML models or models in SysML's parent dialect (UML).
    2) model simulation (a.k.a. ModSim): Modeling simulation refers to the controlled interpretation of a behavioral model in discrete steps in order to imitate the behavior of the subject system. In the case of SysML, several behavioral diagrams are capable of simulation (State Machine, Activity, and Sequence diagrams), and several SysML modeling tools support model simulation either directly (within the modeling tool) or indirectly (via 3rd party plugins).
    3) constraint evaluation (a.k.a., constraint propagation, constraint enforcement): Constraint evaluation refers to the application of constraints or rules to a model in order to restrict its structure or behavior. Parametric diagrams are capable of parametric constraint evaluation, and several SysML modeling tools support parametric constraint evaluation either directly (within the modeling tool) or indirectly (via 3rd party plugins).

    You can find our more about executable UML modeling tools on the UML-Tools.com web.

    Back to Top
    Rate This Entry
  • Back to Top
    Why can't I interchange UML models between different UML modeling tools?
    UML tools claiming UML compliance are dependent upon the UML 2.x XMI (XML Metadata Interchange) standard format for interoperability. While the XMI standard purports to facilitate the interchange of SysML/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 (MOF). 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.

    There are some indications that this unfortunate situation may be improving; see the answer to the What is the difference between UML compliance and conformance? FAQ for further details. Keep in mind that you can communicate issues regarding OMG SysML interoperability, or any other OMG UML problem, to the OMG by sending email to issues@omg.org.

    Back to Top
    Rate This Entry
  • ADVANCED UML TOPICS
  • Back to Top
    What Model-Driven methods and processes are compatible with UML?
    You can find a selected list of Model-Driven methods and processes that are compatible with UML on the UML Processes page.

    Back to Top
    Rate This Entry
  • Back to Top
    What Model-Based architecture frameworks are compatible with UML?
    You can find a selected list of Model-Based architecture frameworks that are compatible with UML on the Architecture Framework Forum web.

    Back to Top
    Rate This Entry
  • Back to Top
    What is Model Management and why is it important?
    Answer To Be Provided.

    You can request additional questions to be answered in the UML FAQ by sending email to FAQ@UMLforum.com.

    Back to Top
    Rate This Entry
  • Back to Top
    What is relation between a View and a ViewPoint?
    Answer To Be Provided.

    You can request additional questions to be answered in the UML FAQ by sending email to FAQ@UMLforum.com.

    Back to Top
    Rate This Entry
  • Back to Top
    What is relation between a View and a Subsystem?
    Answer To Be Provided.

    You can request additional questions to be answered in the UML FAQ by sending email to FAQ@UMLforum.com.

    Back to Top
    Rate This Entry
  • Back to Top
    Can UML and SysML be used together in the same project?
    Yes, UML and SysML are designed to be used together in the same project, where the Software Engineers use SysML for Requirements and System Analysis, and the Software Engineers use UML for Software Design. Unfortunately, many important details about how UML-SysML joint usage will work efficiently in practice are not addressed in the OMG SysML specification. The underlying problem is not mixed UML-SysML tool support, since many SysML tool vendors are UML tool vendors who implement SysML as a UML profile. In the more detailed answer that follows we assume that most UML-SysML tool vendors will be able to provide their users with "SysML only," "UML only," and "UML-SysML combined" usage modes or perspectives (the Eclipse term).

    In order to understand the pragmatic problems of SysML-UML joint usage, let's consider the case of a large engineering project with many Systems Engineers and Software Engineers collaborating, where the former choose to specify Requirements and System Analysis in SysML and the latter select to specify Software Design in UML. The problems they encounter will range from linguistic overlap, where notations and semantics are similar, but differ in subtle yet important ways, to linguistic divergence, where there is no straightforward translation between the two. An example of relatively straightforward linguistic overlap is the translation between SysML Activity diagrams and UML Activity diagrams, where both diagram types use the same naming conventions, but the former make some modest notational extensions to the latter. UML profiles and stereotypes were designed to handle this case, so mixed teams using both SysML and UML Activity diagrams should not be confused by this mixed language usage.


    Less straightforward is the linguistic overlap between SysML Block Definition/Internal Block diagrams and UML Class/Internal Structure/Component diagrams, where there are several issues involved in translating the former to the latter. These range from gratuitously different naming conventions (Blocks vs. Classes vs. Components), to more substantial issues such as adding SysML constructs with ambiguous semantics (e.g., SysML Item Flows) and diverging from UML's Class-Part-Instance trichotomy. (SysML has only recently added Instance Specifications with the SysML 1.2 minor revision and the ramifications of this change have not yet been fully worked out.)

    There are also substantive linguistic divergence problems associated with at least one of SyML's new diagram types, Parametric diagrams. The SysML provides notation, but sparse semantics for this new diagram type, which introduces a constraint-logic paradigm that is not fully integrated into UML's object-component paradigm. In addition, SysML's Allocation relationships and UML's Trace/Refine relationships are ambiguous and overlap, so it is frequently unclear how to map SysML System Analysis constructs to UML Software Design constructs. For these reasons, project teams who plan to use both SysML and UML on large project should be aware that they will likely encounter both subtle and substantive translation and traceability problems. Hopefully vendors and methodologists will work out these problems soon, after they gain more experience applying SysML to real projects.

    Back to Top
    Rate This Entry
  • Back to Top
    Can UML be customized by vendors or users?
    Yes, UML can be customized by both vendors and users via its Profile mechanism. The current Profile mechanism does not allow users to define their own MetaClasses, but it does allow them to define Stereotypes, Tagged Values, and Constraints and apply them to first-class UML model elements.

    Back to Top
    Rate This Entry
  • Back to Top
    Will there be other variations or dialects of the UML?
    There are already many dialects (Profiles) of the UML. Perhaps the most successful UML dialect so far (based on popularity and tool support) is the SysML, which is customized for Systems Engineering applications.

    Will there be other distinctive modeling languages (cf. dialects) based on the UML? Cris Kobryn, the chair of the UML2 Partners UML 2.0 specification proposal team, speculated on the the future of UML and UML dialects in a paper entitled UML 3.0 and the Future of Modeling (Software and Systems Modeling, vol. 3, no. 1, 2004; link to be provided).

    Back to Top
    Rate This Entry
  • Back to Top
    What is the roadmap for a UML 3.0 major revision?
    Answer To Be Provided.

    You can request additional questions to be answered in the UML FAQ by sending email to FAQ@UMLforum.com.

    Back to Top
    Rate This Entry