UML FAQ: Frequently Asked Questions about UML
UML FAQ: What is the Unified Modeling Language (UML)?
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 UML Specifications.)
UML 2 Diagram Taxonomy
Reproduced by Permission © 2003-2012 PivotPoint Technology Corp.
UML FAQ: Why use UML?
- 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
UML FAQ: Who created UML and how did it get its name?
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, who was then a 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 UML2 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 SysML open source specification project, which specified the Systems Modeling Language (SysML) dialect of UML for Systems Engineering applications.
UML FAQ: What is Agile Modeling?
For more information about Agile Modeling and Model-Driven Development check out the Model-Based Engineering Forum.
UML FAQ: What is Model-Driven Development (MDD)?
For more information about Model-Driven Development and related Model-Based Engineering subdisciplines check out the Model-Based Engineering Forum.
UML FAQ: What is the relationship between UML and Model-Driven Development (MDD)?
System Architecture Tetrad
Reproduced by Permission © 2003-2015 PivotPoint Technology Corp.
As an open standard Architecture Description Language (ADL) for software-intensive applications, UML is the Model-Based Language of choice for many 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.
UML FAQ: What is the relationship between MDD and other similar Model-Driven/Model-Based acronym expressions (MBSE, MDSE, MDE, MDA, MBE, MBSD)?
For a longer and more thorough explanation of the relationships among Model-Driven Development, Model-Based Engineering, and related MBE subdisciplines check out the Model-Based Engineering Forum and the Model-Based Engineering Visual Glossary.
UML FAQ: What is the relationship between UML and SysML?
Relationship between SysML & UML
Reproduced by Permission © 2003-2013 PivotPoint Technology Corp.
SysML offers systems engineers the following advantages over UML for specifying systems and systems-of-systems:
• SysML expresses systems engineering semantics (interpretations of notations) better than than UML. It reduces UML's software bias and adds two new diagram types for requirements management and performance analysis: Requirement diagrams and Parametric diagrams, respectively.
• SysML is smaller and easier to learn than UML. Since SysML removes many software-centric and gratuitous constructs, the overall language is smaller as measured in diagram types (9 vs. 13) and total constructs.
• SysML model management constructs support the specification of models, views, and viewpoints that are architecturally aligned with IEEE-Std-1471-2000 (IEEE Recommended Practice for Architectural Description of Software-Intensive Systems).
The following table compares SysML diagrams with their UML counterparts where one exists. Where no UML diagram counterpart exists for a SysML diagram (e.g., Parametric and Requirement diagrams), it is marked N/A; similarly, where no SysML diagram counterpart exists for UML diagram it is marked N/A (e.g., Communication diagram).
UML FAQ: What changes were made in UML 2.0, the last major revision of UML?
- 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 constructs. 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 the Activate Cruise Control process.
- 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.
UML FAQ: What is new in UML v. 2.4?
UML FAQ: What is new in UML v. 2.5 Beta?
While UML 2.5 Beta purports to simplify and clarify the UML 2.x specification, the vast majority of its clean up work is relevant to tool vendors rather than UML modelers. Unfortunately, UML 2.5 Beta fails to address the major shortcomings of the UML 2 series that make it problematic to apply as an architectural modeling language for Agile Architecture & Design purposes. Consequently, it shouldn’t be surprising that the reception to UML 2.5 Beta has been generally negative, ranging from blasé to scathing. (See Scott Ambler’s UML 2.5: Do You Even Care? article.)
What the UML user community really needs, of course, is a bona fide major revision (UML 3.0) that addresses Agile Architecture & Design needs, rather than yet another “dot release” patch for a bloated and flawed UML 2.x. Unfortunately, UML 2.5 remains in Beta, and the OMG has not yet announced a public roadmap for either finalizing UML 2.5 or working on a badly needed UML 3.0 major revision.
UML FAQ: What are the pros & cons of UML 2 as a visual architecture modeling language for software-intensive systems?
The following are some constructive recommendations for improving UML in its next major revision (UML 3.0) so that it will better meet the needs of Agile Architects and Designers.
- GENERAL ISSUES
- Language bloat.UML 2.x is that it is gratuitously large and complex. Although the UML 2.0 proposal was reasonably layered when it was proposed to the OMG and initially adopted in 2003, somehow its layering was lost in the OMG’s byzantine finalization process.
- Recommendations: Refactor UML into three common usage layers (e.g., Agile, Intermediate, Executable), define appropriate compliance points, and enforce compliance via a reference implementation and test suites.
- Voodoo Semantics for Behavioral Constructs.in general, UML 2.x semantics are ambiguous and imprecise. This is especially true to UML 2’s executable semantics for driving simulations and generating executable code.
- Recommendations: Architecturally align all major behavioral diagram types (Activities, Sequences, State Machines) to shore common elements for behavioral simulations and code generation.
- Dysfunctional interoperability.UML 2.x interoperability, like UML 1.y interoperability before it, is a sham based on a poorly designed model interchange standard called XMI.
- Recommendations: Define full interoperability standards for common usage layers, define appropriate compliance points, and enforce compliance via a reference implementation and test suites.
- Lack of a clear, concise glossary.Although the UML 2.0 proposal included a draft glossary when it was proposed to the OMG and initially adopted in 2003, somehow the glossary work was never completed and became lost in the OMG’s byzantine finalization process.
- Recommendations: Define clear, concise glossary of UML 2 terms that are used consistently by the UML 2 specification.
- SPECIFIC ISSUES
- Remove the syntactic and semantic overlap between Composite Structure and Component diagrams
- Provide a standard Model Library to support Service-Oriented Architectures (SOA) and its variants (SaaS, PaaS, IaaS).
- Provide a standard Model Library to support Network Architectures and Cybersecurity Frameworks.
- Provide a standard Model Library to support Cybersecurity Frameworks.
UML FAQ: What is the best way to learn UML?
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 (OTJ) 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 training resources on the UML Training page of this web.
You can find a listing of selected UML tutorials on the UML Tutorials page of this web.
You can find a listing of selected UML publications (including books, papers, and articles) on the UML Publications page of this web.
UML FAQ: How can I report a UML issue or make a UML change request?
UML Tools & Interoperability
UNIFIED MODELING LANGUAGE and UML are trademarks of the Object Management Group. All other product and service names mentioned are the trademarks of their respective companies.