Unified Modeling Language (UML) is a standardized general­purpose modeling language in the field of object­oriented  software engineering. The standard is managed, and was created by, the Object Management Group.

UML includes a set of graphic notation techniques to create visual models of object­oriented software­intensive systems. •

[edit] Overview
The Unified Modeling Language (UML) is used to specify, visualize, modify, construct and document the artifacts of an  object­oriented software­intensive system under development.[1] UML offers a standard way to visualize a system's  architectural blueprints, including elements such as: • • • • • • •   activities      actors      business processes      database   schemas  (logical) components    programming language   statements  reusable software components.[2] 

UML combines techniques from data modeling (entity relationship diagrams), business modeling (work flows), object  modeling, and component modeling. It can be used with all processes, throughout the software development life cycle, and  across different implementation technologies.[3] UML has synthesized the notations of the Booch method, the Object­ modeling technique (OMT) and Object­oriented software engineering (OOSE) by fusing them into a single, common and  widely usable modeling language.[citation needed] UML aims to be a standard modeling language which can model  concurrent and distributed systems. UML is a de facto industry standard,[citation needed] and is evolving under the auspices  of the Object Management Group (OMG). UML models may be automatically transformed to other representations (e.g. Java) by means of QVT­like transformation  languages. UML is extensible, with two mechanisms for customization: profiles and stereotypes.

[edit] History

[6] . They were soon assisted in their efforts by Ivar Jacobson. [edit] Before UML 1. to finalize the semantics of  the specification and integrate it with other standardization efforts. The use case  notation from Objectory and the component notation from Booch were integrated with the rest of the notation. and 1. The result of this work.1. making UML  rich but also large.x UML has matured significantly since UML 1.1. [citation needed] so repositioning the work on a unified method.x After Rational Software Corporation hired James Rumbaugh from General Electric in 1994. Many others also contributed. after his company.x As a modeling notation. the Booch capability to specify lower­level design detail was embraced. as the group tried to ensure broad coverage in the real­time systems domain. but the  semantic integration was relatively weak in UML 1. chaired by Cris Kobryn and administered by Ed Eykholt. During the same month the UML  Partners formed a Semantics Task Force. 1. followed by the UML 2.[5] [edit] UML 1.[citation needed] they chose boxes for representing classes rather than the cloud symbols that were used in  Booch's notation. In 1996. Archie Bowen's use case and timing analysis. As a result. and propose it as a response to the OMG RFP.4. Objectory AB.0 specification draft was proposed to the OMG in January 1997. the company became the source  for the two most popular object­oriented modeling approaches of the day:[citation needed] Rumbaugh's Object­modeling  technique (OMT). g. Rational concluded that the abundance of modeling languages was slowing the adoption of object technology.1. using rectangles for classes and objects).. distributed systems.0 major revision that was adopted by the OMG in 2005. Jacobson joined Rational in 1995. and Grady Booch's Booch method. which was better  for object­oriented design (OOD). Several minor revisions (UML 1.[citation  needed] Concepts from many other OO methods were also loosely integrated with UML with the intent that UML would support all  OO methods. The  UML Partners' UML 1.0 major revision.3. The Unified Modeling Language is an international standard: ISO/IEC 19501:2005 Information technology – Open Distributed Processing – Unified Modeling Language (UML)  Version 1. Representatives of competing object technology companies were consulted during  OOPSLA '96.4. with their approaches flavouring the many models of the day. the creator of the object­oriented  software engineering (OOSE) method.2  [edit] UML 2. they tasked the Three Amigos with the development of a non­ proprietary Unified Modeling Language. the influence of the OMT notation dominates (e. Paul Ward's data analysis and David Harel's  "Statecharts". UML is useful in a  variety of engineering problems. UML 1. from single process. Though  the Booch "cloud" notation was dropped. Ray Buhr's  "Systems Design with Ada". Under the technical leadership of the Three Amigos. The three methodologists were collectively referred to as the Three Amigos. single user applications to concurrent. including: Tony  Wasserman and Peter Pircher with the "Object­Oriented Structured Design (OOSD)" notation (not a method).5) fixed shortcomings and bugs  with the first version of UML.History of object­oriented methods and notation. and was not really fixed until the UML 2. an international consortium called the UML Partners was organized in  1996 to complete the Unified Modeling Language (UML) specification. which was better for object­oriented analysis (OOA).[4] was acquired by  Rational. was submitted to the  OMG in August 1997 and adopted by the OMG in November 1997.

 and new methods have been  created based on UML. 2. 4.1 and 2. versions 2.[9] however. A diagram is a partial graphic  representation of a system's model.2 has 14 types of diagrams divided into two categories.3.  • Dynamic (or behavioral) view: emphasizes the dynamic behavior of the system by showing collaborations among  objects and changes to the internal states of objects. and UML Diagram Interchange version 1. [edit] Topics [edit] Software development methods UML is not a development method by itself. UML Infrastructure version 2.Although UML 2. Since UML has evolved. including four that represent different aspects of interactions.2.1.  UML models can be exchanged among UML tools by using the XMI interchange format. [edit] Diagrams overview UML 2.4 is in the beta stage as of March 2011.3. [edit] Modeling It is important to distinguish between the UML model and the set of diagrams of a system. activity diagrams and state  machine diagrams.1 was never released as a formal specification.2 in February 2009. such as IBM Rational Unified Process (RUP). some of  these methods have been recast to take advantage of the new notations (for example OMT). 3. attributes.[citation  needed] There are four parts to the UML 2. it was designed to be compatible with the leading object­oriented  software development methods of its time (for example OMT.x specification: 1. UML diagrams represent two different views of a system model[10]: • Static (or structural) view: emphasizes the static structure of the system using objects.0.[7] UML 2. UML 2. The structural view includes class diagrams and composite structure diagrams. Others include Abstraction Method and Dynamic  Systems Development Method.2 appeared in 2007.[11] Seven diagram types represent structural information. followed by UML  2.x. Objectory). OCL version  2. The Superstructure that defines the notation and semantics for diagrams and their model elements  The Infrastructure that defines the core metamodel on which the Superstructure is based  The Object Constraint Language (OCL) for defining rules for model elements  The UML Diagram Interchange that defines how UML 2 diagram layouts are exchanged  The current versions of these standards follow: UML Superstructure version 2. The model also contains documentation that drive the model elements and diagrams (such  as written use cases). These  diagrams can be categorized hierarchically as shown in the following class diagram: .3 was formally released in May 2010.1.[8] Although many UML tools support some of the new features of UML 2. Booch method. the OMG provides no test suite to objectively test  compliance with its specifications. operations and  relationships. This view includes sequence diagrams. and  the other seven represent general types of behavior.

 Since structure diagrams represent  the structure.  •   Deployment diagram  : describes the hardware used in system implementations and the execution environments and  artifacts deployed on the hardware. their attributes. filled  arrowhead) indicates what metamodel element a given stereotype is extending. they are used extensively in documenting the software architecture of software systems. or  intent is allowed in a UML diagram.  .  •   Profile diagram  : operates at the metamodel level to show stereotypes as classes with the <<stereotype>> stereotype. •   Class diagram  : describes the structure of a system by showing the system's classes. this flexibility has been partially restricted in UML 2. UML profiles may define additional diagram types  or extend existing diagrams with additional notations. In keeping with the tradition of engineering drawings. constraint.  •   Object diagram  : shows a complete or partial view of the structure of a modeled system at a specific time. and the  relationships among the classes.  •   Package diagram  : describes how a system is split up into logical groupings by showing the dependencies among these  groupings.  •   Component diagram  : describes how a software system is split up into components and shows the dependencies among  these components. In general.UML does not restrict UML element types to a certain diagram type.0.  •   Composite structure diagram  : describes the internal structure of a class and the collaborations that this structure makes  possible.  and profiles as packages with the <<profile>> stereotype. The extension relation (solid line with closed.[citation needed] a comment or note explaining usage. every UML element may appear on almost all  types of diagrams. [edit] Structure diagrams Structure diagrams emphasize the things that must be present in the system being modeled.

• Class diagram • Component diagram • Composite structure diagrams • Deployment diagram • Object diagram .

 Since behaviour diagrams illustrate the  behavior of a system. An  activity diagram shows the overall flow of control. they are used extensively to describe the functionality of software systems. and any dependencies among those use cases.• Package diagram [edit] Behaviour diagrams Behaviour diagrams emphasize what must happen in the system being modelled.  • UML Activity Diagram • State Machine diagram • Use case diagram .  •   UML state machine   diagram: describes the states and state transitions of the system. their goals represented as use  cases.  •   Use case diagram  : describes the functionality provided by a system in terms of actors. •   Activity diagram  : describes the business and operational step­by­step workflows of components in a system.

  • Communication diagram • Interaction overview diagram • Sequence diagram The Protocol State Machine is a sub­variant of the State Machine.  •   Sequence diagram  : shows how objects communicate with each other in terms of a sequence of messages.[edit] Interaction diagrams Interaction diagrams. They  represent a combination of information taken from Class. Also  indicates the lifespans of objects relative to those messages. It may be used to model network communication protocols. .  •   Interaction overview diagram  : provides an overview in which the nodes represent communication diagrams. a subset of behaviour diagrams. and Use Case Diagrams describing both the static  structure and dynamic behavior of a system.  •   Timing diagrams  : a specific type of interaction diagram where the focus is on timing constraints. Sequence. emphasize the flow of control and data among the things in the system  being modelled: •   Communication diagram  : shows the interactions between objects or parts in terms of sequenced messages.

[edit] Criticisms A concern has been raised that this article's Criticism section may be compromising the article's neutral point of  view of the subject. The most  prominent example of a Layer 1 Meta­Object Facility model is the UML metamodel. Possible resolutions may be to integrate the material in the section into the article as a whole. especially when required of engineers  lacking the prerequisite skills. It is used to describe runtime instance of the system. and thus M2­models. a co­architect of UML. Beyond the M0­model. Please see the discussion on the talk page. for example. or M2­Layer. a disclaimer was added later pointing out that his  company nevertheless supports UML. This M0­model is the language used by Meta­Object Facility to build metamodels. The Meta­Object Facility is a standard for model­driven engineering.[14] In practice.[edit] Meta modeling Illustration of the Meta­Object Facility.  These M1­models describe elements of the M2­layer. the model that describes the UML itself. A  supporting standard of the Meta­Object Facility is XMI. The last layer is the M3­layer or data layer. These would be. Because of the similarities between the Meta­Object Facility M0­ model and UML structure models. (December 2010) Although UML is a widely recognized and used modeling standard. it is frequently criticized for the following: Standards bloat  Bertrand Meyer.0's size  were valid enough to consider the application of intelligent agents to the problem.  designed as a four­layered architecture. called  the M0 layer. the Meta­Object Facility describes the means to create and manipulate models and metamodels by  defining CORBA interfaces that describe those operations. in a satirical essay framed as a student's request for a grade change. It provides a meta­meta model at the top layer. apparently criticized UML as of  1997 for being unrelated to object­oriented software development.[13] It contains many diagrams and  constructs that are redundant or infrequently used.  Problems in learning and adopting  The problems cited in this section make learning and adopting UML problematic. which defines an XML­based exchange format for models on the  M0­. as shown in the image at right. called M1­models. called the Meta­Object Facility (MOF). said that objections to UML 2. M1­. people often draw diagrams with the symbols provided by their CASE  . The Object Management Group (OMG) has developed a metamodeling architecture to define the Unified Modeling Language  (UML).[12] Ivar Jacobson. or  to rewrite the contents of the section. models written in  UML. Meta­Object Facility metamodels are usually modeled as UML class diagrams.

 as prime examples of unintelligible geekspeak. and indeed pilloried. but without the meanings those symbols are intended to provide.  Linguistic incoherence  The extremely poor writing of the UML standards themselves—assumed to be the consequence of having been written  by a non­native English speaker—seriously reduces their normative value.tool.[citation needed]  . In this respect the standards have been widely  cited.

Sign up to vote on this title
UsefulNot useful