The Unified Modeling Language (UML) is a non-proprietary, object modeling and specification language used in software engineering. UML is a general-purpose modeling language that includes a standardized graphical notation that may be used to create an abstract model of a system, sometimes referred to as the UML model. UML may be considered as an extensible modeling language since it offers a profile mechanism to customize the language. If a concept you need is not present in the base language, you may introduce it by defining a stereotype. The semantics of extension by profiles has been improved with the UML 2.0 major revision.
UML is officially defined at the Object Management Group (OMG)OMG → Object Management Group by the UML metamodel – a Meta-Object Facility metamodel (MOF). Like other MOF-based specifications, the UML meta-model and UML models may be serialized in XMI.XMI → XML Metadata Interchange UML is a general-purpose modeling language. While UML was designed to specify, visualize, construct, and document software-intensive systems, UML is not restricted to modeling software. UML is also commonly used for business process modeling, systems engineering modeling, and representing organizational structures. The Systems Modeling Language (SysML) is a domain-specific modeling for systems engineering that is defined as a UML 2.0 profile.
UML has been a catalyst for the evolution of model-driven technologies, which include ModelDriven Development (MDD), Model Driven Engineering (MDE), and model-driven architecture. By establishing an industry consensus on a graphic notation to represent common concepts like classes, components, generalization, aggregation, and behaviors, UML has allowed software developers to concentrate more on design and architecture.
In the initial MDAMDA → Model-driven architecture view, PIMsPIM → Platform-independent model and PSMsPSM → Platform-specific model could be expressed in the UML language. It is also possible to transform a UML model serialized in XMI into a Java or EJBEJB → Enterprise JavaBean implementation by using a Model Transformation Language or MTL. The standard way recommended by OMG for achieving this is to use the newly defined QVTQVT → Queries/Views/Transformations standard. UML has also an optional graph navigation and constraint language called OCL;OCL → Object Constraint Language in its navigational aspect, this has a similar relationship to UML as XPath has to XML.XML → Extensible Markup Language
They were soon assisted in their efforts by Ivar Jacobson, the creator of the OOSEOOSE → Object-oriented software engineering method. Jacobson joined Rational in 1995, after his company, Objectory, was acquired by Rational. The three methododologists were collectively referred to as the Three Amigos, since they were well known to argue frequently with each other regarding methodological preferences.
In 1996 the Three Amigos decided that a Unified Modeling Language was more viable than a Unified Method, and redirected their efforts to respond to the OMG Request for Proposal (RFP) for an object modeling language ("Object Analysis & Design RFP-1",OMG document ad/96-05-01), which was issued in June 2006.
Under the technical leadership of Three Amigos, an international team of modeling experts representing many companies was organized in 1996 to complete the Unified Modeling Language (UML) specification, and propose it as a response to the OMG RFP. This proposal team called themselves team the UML Partners. In addition to Rational Software, the consortium eventually included Hewlett-Packard, i-Logix, IntelliCorp, IBM, ICON Computing, MCI Systemhouse, Microsoft, ObjecTime, Oracle Corporation, Platinum Technology, Ptech, Reich Technologies, Softeam, Sterling Software, Taskon, Texas Instruments, and Unisys. Ed Eykholt chaired the overall UML proposal effort, and Cris Kobryn chaired the UML Semantics Task Force, which was tasked with defining the semantics for the UML notation. During the politicking associated with OMG "design-by-committee" standardization, several competing proposals were merged with the UML proposal. By the fall of 1997, after much public review and comment, the UML standard, (by now called UML 1.1) was approved by OMG.
As a modeling notation, the influence of the OMT notation dominates (e.g., using rectangles for classes and objects). Though the Booch "cloud" notation was dropped, the Booch capability to specify lower-level design detail was embraced. The use case notation from Objectory and the component notation from Booch were integrated with the rest of the notation, but the semantic integration was relatively weak in UML 1.1, and was not really fixed until the UML 2.0 major revision.
Concepts from many other OO methods were also loosely integrated with UML with the intent that UML would support all OO methods. For example CRC CardsCRC Card → Class-Responsibility-Collaboration card (circa 1989 from Kent Beck and Ward Cunningham), and OORamOORam → Object Oriented Role Analysis Method were retained. UML is useful in a variety of engineering problems, from single process, single user applications to concurrent, distributed systems, making UML rich but large.
It is now an international standard:
UML has matured significantly since UML 1.1. Several minor revisions (UML 1.3, 1.4, and 1.5) fixed shortcomings and bugs with the first version of UML, followed by the UML 2.0 major revision, which is the current OMG standard.
The first part of UML 2.0, the Superstructure which describes the new diagrams and modeling elements available, was adopted by the OMG in October 2004. Other parts of UML 2, notably the infrastructure, the object constraint language (OCL) and the diagram interchange were yet to be completed and ratified as of November 2005.
The final UML 2.0 specification has been declared available and has been added to OMG's formal specification library. The other parts of the UML specification, the UML 2.0 infrastructure, the UML 2.0 Diagram Interchange, and UML 2.0 OCL specifications have been adopted but are not yet considered available.
As change is inevitable, a UML 2.1 revision has been underway for some time now. The outcome of this work should be available soon (first semester 2006) in the form of an XMI 2.1 version of the UML 2.1 version. The corresponding XMI 2.1 file will be made available from the OMG ADTF group.
Most of the commercially successful modeling tools now support most of UML 2.0, leaving only the rarely used features left to implement. Of course, it will take some time for the tools that are in the hands of the developers to reach this level of compliance.
There are three prominent parts of a system's model:
Functional Model
Object Model
Dynamic Model
Models can be exchanged among UML tools by using the XMI format.
In UML 2.0 there are 13 types of UML diagrams. To understand them, it is sometimes useful to categorize them hierarchically, as shown in the hierarchy chart on the right.
Structure Diagrams emphasize what things must be in the system being modeled:
Behavior Diagrams emphasize what must happen in the system being modeled:
Interaction Diagrams, a subset of behavior diagrams, emphasize the flow of control and data among the things in the system being modeled:
The Protocol State Machine is a sub-variant of the State Machine. It may be used to model network communication protocols.
UML does not restrict UML element types to a certain diagram type. In general, every UML element may appear on almost all types of diagrams. This flexibility has been partially restricted in UML 2.0.
Diagrams can be exchanged among UML tools by using XMI (also DI, XMI*).
In keeping with the tradition of engineering drawings, a comment or note explaining usage, constraint, or intent is always allowed in a UML diagram.
For Structure
For Behavior
For Relationships
Other Concepts
Unified Modeling Language | ISO standards | Data modelling languages
UML | Unified Modeling Language | UML | Unified Modeling Language | Lenguaje Unificado de Modelado | UML | Unified Modeling Language | Unified Modeling Language | Linguaxe Unificada de Modelado | Unified Modeling Language | UML | Unified Modeling Language | Unified Modeling Language | 統一モデリング言語 | UML | UML | UML | UML | Unified Modeling Language | Unified Modelling Language | UML-mallinnus | UML | Ngôn ngữ mô hình hóa thống nhất | UML | 统一建模语言
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Unified Modeling Language".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world