All Topics  
Unified Modeling Language

 

   Email Print
   Bookmark   Link






 

Unified Modeling Language



 
 
Unified Modeling Language (UML) is a standardized general-purpose modeling language
Modeling language

A modeling language is any artificial language that can be used to express information or knowledge or systems in a structure that is defined by a consistent set of rules....
 in the field of software engineering
Software engineering

Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches....
.

UML includes a set of graphical notation techniques to create abstract models of specific systems.

Unified Modeling Language (UML) is an open method used to specify, visualise, construct and document the artifacts
Artifact (software development)

The term artifact in connection with software development is largely associated with specific development methods or processes e.g., Unified Process....
 of an object-oriented software-intensive system under development.






Discussion
Ask a question about 'Unified Modeling Language'
Start a new discussion about 'Unified Modeling Language'
Answer questions from other users
Full Discussion Forum



Encyclopedia


Unified Modeling Language (UML) is a standardized general-purpose modeling language
Modeling language

A modeling language is any artificial language that can be used to express information or knowledge or systems in a structure that is defined by a consistent set of rules....
 in the field of software engineering
Software engineering

Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches....
.

UML includes a set of graphical notation techniques to create abstract models of specific systems.

Overview

The Unified Modeling Language (UML) is an open method used to specify, visualise, construct and document the artifacts
Artifact (software development)

The term artifact in connection with software development is largely associated with specific development methods or processes e.g., Unified Process....
 of an object-oriented software-intensive system under development. UML offers a standard way to write a system's blueprint
Blueprint

A blueprint is a type of paper-based reproduction usually of a technical drawing, documenting an architecture or an engineering design. More generally, the term "blueprint" has come to be used to refer to any detailed plan....
s, including conceptual components such as:
  • actors
    Actor (UML)

    An actor in the Unified Modeling Language "specifies a role played by a user or any other system that interacts with the subject.""An Actor models a type of role played by an entity that interacts with the subject ,...
    ,
  • business process
    Business process

    A business process or business method is a collection of related, structured activities or tasks thatproduce a specific service or product for a particular customer or customers....
    es and
  • system's components
    Component (UML)

    File:Component.PNGA component in the Unified Modeling Language "represents a modular part of a system, that encapsulates its content and whose manifestation is replaceable within its environment....
    , and activities
    Activity (UML)

    An activity in Unified Modeling Language is a major task, that must take place in order to fulfill an operation contract. Activities can be represented in activity diagrams...
as well as concrete things such as:
  • programming language
    Programming language

    A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer....
     statements,
  • database
    Database

    A database is a structured collection of records or data that is stored in a computer system. The structure is achieved by organizing the data according to a database model....
     schemas, and
  • reusable software components
    Component-based software engineering

    Component-based software engineering is a branch of the software engineering discipline, with emphasis on decomposition of the engineered systems into Functional programming or logical components with well-defined Interface used for communication across the components....
    .


UML combines the best practice from data modeling
Data modeling

Data modeling in software engineering is the process of creating a data model by applying formal data model descriptions using data modeling techniques....
 concepts such as entity relationship diagrams, business modeling (work flow), object modeling and component modeling. It can be used with all processes, throughout the software development life cycle, and across different implementation technologies. UML has succeeded the concepts of the Booch method
Booch method

The Booch method is a technique used in software engineering. It is an object modeling language and methodology that was widely used in object-oriented analysis and design....
, the Object-modeling technique
Object-modeling technique

The object-modeling technique is an object modeling language for Computer software modeling and designing. It was developed circa 1991 by James Rumbaugh, Blaha, Premerlani, Eddy and Lorensen as a method to develop object-oriented systems, and to support object-oriented programming....
 (OMT) and Object-oriented software engineering
Object-oriented software engineering

Object-oriented software engineering is an object modeling language and methodologyOOSE was developed by Ivar Jacobson in 1992 while at Objectory AB....
 (OOSE) by fusing them into a single, common and widely usable modelling language. UML aims to be a standard modelling language which can model concurrent and distributed systems. UML is not an industry
Industry

An industry is the manufacturing of a Good or Service within a category. Although industry is a broad term for any kind of economic production, in economics and urban planning industry is a synonym for the secondary sector, which is a type of economic activity involved in the manufacturing of raw materials into goods and products....
 standard
Standard

A technical standard is an established norm or requirement. It is usually a formal document that establishes uniform engineering or technical criteria, methods, processes and practices....
, but is taking shape under the auspices of the Object Management Group
Object Management Group

Object Management Group is a consortium, originally aimed at setting standardization for distributed object-oriented systems, and is now focused on modeling and model-based standards....
 (OMG). OMG has initially called for information on object-oriented methodologies, that might create a rigorous software modelling language. Many industry leaders have responded in earnest to help create the standard.

UML models may be automatically transformed to other representations (e.g. Java) by means of QVT
QVT

QVT , in the model-driven architecture, is a standard for model transformation defined by the Object Management Group....
-like transformation languages, supported by the OMG
Object Management Group

Object Management Group is a consortium, originally aimed at setting standardization for distributed object-oriented systems, and is now focused on modeling and model-based standards....
. UML is extensible
Extensible programming

Extensible programming is a term used in computer science to describe a style of computer programming that focuses on mechanisms to extend the programming language, compiler and runtime environment....
, offering the following mechanisms for customization: profile
Profile (UML)

A profile in the Unified Modeling Language provides a generic extension mechanism for customizing Unified Modeling Language models for particular domains and platforms....
s and stereotype
Stereotype (computing)

Stereotypes are one of three extensibility mechanisms in Unified Modeling Language . They allow designers to extend the vocabulary of UML in order to create new model elements, derived from existing ones, but that have specific properties that are suitable for a particular problem domain or otherwise specialized usage....
. The semantics
Semantics

Semantics is the study of meaning in communication. The word is derived from the Greek language word s??a?t???? , "significant", from s??a??? , "to signify, to indicate" and that from s??a , "sign, mark, token"....
 of extension by profiles have been improved with the UML 1.0 major revision.

History


Before UML 1.x

After Rational Software Corporation
Rational Software

Rational Machines was founded by Paul Levy and Mike Devlin in 1981 to provide tools to expand the use of modern software engineering practices, particularly explicit modular architecture and iterative development....
 hired James Rumbaugh
James Rumbaugh

James Rumbaugh is an American computer scientist and object methodologist who is best known for his work in creating the Object-modeling technique and the Unified Modeling Language ....
 from General Electric
General Electric

The General Electric Company, or GE is a multinational corporation United States technology and Service s conglomerate incorporated in the State of New York....
 in 1994, the company became the source for the two most popular object-oriented modeling approaches of the day: Rumbaugh's OMT
Object-modeling technique

The object-modeling technique is an object modeling language for Computer software modeling and designing. It was developed circa 1991 by James Rumbaugh, Blaha, Premerlani, Eddy and Lorensen as a method to develop object-oriented systems, and to support object-oriented programming....
, which was better for object-oriented analysis (OOA), and Grady Booch
Grady Booch

File:GradyBooch.gif Grady Booch is an American software engineer, and Chief Scientist, Software Engineering in IBM Research. Booch is best known for developing the Unified Modeling Language with Ivar Jacobson and James Rumbaugh....
's Booch method
Booch method

The Booch method is a technique used in software engineering. It is an object modeling language and methodology that was widely used in object-oriented analysis and design....
, which was better for object-oriented design (OOD). Together Rumbaugh and Booch attempted to reconcile their two approaches and started work on a Unified Method.

They were soon assisted in their efforts by Ivar Jacobson
Ivar Jacobson

Ivar Hjalmar Jacobson is a Swedish computer scientist.He got his Masters degree of Electrical Engineering degree at Chalmers University of Technology in Gothenburg in 1962 and a Ph.D....
, the creator of the object-oriented software engineering
Object-oriented software engineering

Object-oriented software engineering is an object modeling language and methodologyOOSE was developed by Ivar Jacobson in 1992 while at Objectory AB....
 (OOSE) method. Jacobson joined Rational in 1995, after his company, Objectory, was acquired by Rational. The three methodologists were collectively referred to as the Three Amigos, since they were well known to argue frequently with each other regarding methodological preferences.

In 1996 Rational concluded that the abundance of modeling languages was slowing the adoption of object technology, so repositioning the work on a Unified Method, they tasked the Three Amigos with the development of a non-proprietary
Proprietary

The word proprietary indicates that a party, or proprietor, exercises private ownership, control or use over an item of property.Terms relating to Proprietary include:...
 Unified Modeling Language. Representatives of competing Object Technology companies were consulted during OOPSLA
OOPSLA

OOPSLA is an annual Association for Computing Machinery conference.OOPSLA is an annual conference covering topics on object-oriented programming systems, languages and applications....
 '96; they chose boxes for representing classes over Grady Booch
Grady Booch

File:GradyBooch.gif Grady Booch is an American software engineer, and Chief Scientist, Software Engineering in IBM Research. Booch is best known for developing the Unified Modeling Language with Ivar Jacobson and James Rumbaugh....
's Booch method
Booch method

The Booch method is a technique used in software engineering. It is an object modeling language and methodology that was widely used in object-oriented analysis and design....
's notation that used cloud symbols.

Under the technical leadership of the Three Amigos, an international consortium called the UML Partners
UML Partners

UML Partners was a consortium of system integrators and vendors convened in 1996 to specify the Unified Modeling Language . Initially the consortium was led by Grady Booch, Ivar Jacobson, and James Rumbaugh of Rational Software....
 was organized in 1996 to complete the Unified Modeling Language (UML) specification, and propose it as a response to the OMG RFP. The UML Partners' UML 1.0 specification draft was proposed to the OMG in January 1997. During the same month the UML Partners formed a Semantics Task Force, chaired by Cris Kobryn
Cris Kobryn

Cris Kobryn is an United States technologist, system architect and entrepreneur who specializes in advanced software and systems development....
 and administered by Ed Eykholt, to finalize the semantics of the specification and integrate it with other standardization efforts. The result of this work, UML 1.1, was submitted to the OMG in August 1997 and adopted by the OMG in November 1997....

UML 1.x

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
Use case

A use case in software engineering and systems engineering is a description of a system?s behaviour as it responds to a request that originates from outside of that system....
 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 Card
Class-Responsibility-Collaboration card

Class Responsibility Collaborator are a brainstorming tool used in the design of object-oriented software. They were proposed by Ward Cunningham and Kent Beck....
s (circa 1989 from Kent Beck
Kent Beck

Kent Beck is an American software engineer and the creator of Extreme Programming, developed while he was serving as project leader on Chrysler Comprehensive Compensation , a long-term project for employee payroll that was canceled just under 4 years after it was started....
 and Ward Cunningham
Ward Cunningham

Howard G. "Ward" Cunningham is the United States computer programmer who developed the first wiki. A pioneer in both Design pattern s and Extreme Programming, he started programming the software WikiWikiWeb in 1994 and installed it on the website of his software consultancy, Cunningham & Cunningham , on March 25, 1995, as an add-on to the Po...
), and OORam
Object Oriented Role Analysis Method

The Object Oriented Role Analysis Method is a method, based on the concept of role, for performing object-oriented modeling. OOram is a precursor for the Unified Modeling Language ....
 were retained. Many others also contributed, with their approaches flavoring the many models of the day, including: Tony Wasserman and Peter Pircher with the "Object-Oriented
Object-oriented programming

Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
 Structured Design (OOSD)" notation (not a method), Ray Buhr's "Systems Design with Ada", Archie Bowen's use case and timing analysis, Paul Ward's data analysis and David Harel's "Statecharts"; as the group tried to ensure broad coverage in the real-time systems domain. As a result, UML is useful in a variety of engineering problems, from single process, single user applications to concurrent, distributed systems, making UML rich but also large.

The Unified Modeling Language is an international standard
Standardization

Standardization is the process of developing and agreeing upon Standard . A standard is a document that establishes uniform engineering or technical specifications, criteria, methods, processes, or practices....
:
ISO
International Organization for Standardization

The International Organization for Standardization , widely known as ISO , is an international standard-setting body composed of representatives from various national standards organizations....
/IEC
International Electrotechnical Commission

The International Electrotechnical Commission is a Non-profit organization, non-governmental international standards organization that prepares and publishes International Standards for all electrical, electronic and related technologies ? collectively known as "electrotechnology"....
 19501:2005 Information technology — Open Distributed Processing — Unified Modeling Language (UML) Version 1.4.2


Development toward UML 2.0

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 that was adopted by the OMG in 2005. There are four parts to the UML 2.x specification: 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
Object Constraint Language

The Object Constraint Language is a declarative language for describing rules that apply to Unified Modeling Language models developed at IBM and now part of the UML standard....
 (OCL) for defining rules for model elements; and the UML Diagram Interchange that defines how UML 2 diagram layouts are exchanged. The current versions of these standards follow: UML Superstructure version 2.1.2, UML Infrastructure version 2.1.2, OCL version 2.0, and UML Diagram Interchange version 1.0.

Although many UML tool
UML tool

A UML tool or UML modeling tool is a application software that supports some or all of the notation and semantics associated with the Unified Modeling Language , which is the industry standard general purpose modeling language for software engineering....
s support some of the new features of UML 2.x, the OMG provides no test suite
Test suite

In software development, a test suite, less commonly known as a validation suite, is a collection of test cases that are intended to be used to test a software program to show that it has some specified set of behaviours....
 to objectively test compliance with its specifications.

Unified Modeling Language topics


Software Development Methods

UML is not a development method by itself, however, it was designed to be compatible with the leading object-oriented software development methods of its time (for example OMT
Object-modeling technique

The object-modeling technique is an object modeling language for Computer software modeling and designing. It was developed circa 1991 by James Rumbaugh, Blaha, Premerlani, Eddy and Lorensen as a method to develop object-oriented systems, and to support object-oriented programming....
, Booch method
Booch method

The Booch method is a technique used in software engineering. It is an object modeling language and methodology that was widely used in object-oriented analysis and design....
, Objectory
Objectory

Objectory is an object-oriented methodology mostly created by Ivar Jacobson, who is also responsible for object-oriented software engineering....
). Since UML has evolved, some of these methods have been recast to take advantage of the new notations (for example OMT), and new methods have been created based on UML. The best known is IBM Rational Unified Process (RUP). There are many other UML-based methods like Abstraction Method, Dynamic Systems Development Method
Dynamic Systems Development Method

Dynamic Systems Development Method is a software development methodology originally based upon the Rapid Application Development methodology. DSDM is an iterative and incremental development approach that emphasizes continuous user involvement....
, and others, designed to provide more specific solutions, or achieve different objectives.

Modeling

It is very important to distinguish between the UML model and the set of diagrams of a system. A diagram is a partial graphical representation of a system's model. The model also contains a "semantic backplane" — documentation such as written use cases that drive the model elements and diagrams.

UML diagrams represent two different views of a system model:
  • Static (or structural) view: Emphasizes the static structure of the system using objects, attributes, operations and relationships. The structural view includes class diagram
    Class diagram

    In software engineering, a class diagram in the Unified Modeling Language , is a type of static structure diagram that describes the structure of a system by showing the system's class es, their attributes, and the Object-oriented programming between the classes....
    s and composite structure diagram
    Composite structure diagram

    File:Composite Structure Diagram.pngComposite structure diagram in the Unified Modeling Language is a type of static structure diagram, that shows the internal structure of a Class and the collaborations that this structure makes possible....
    s.
  • Dynamic (or behavioral) view: Emphasizes the dynamic behavior of the system by showing collaborations among objects and changes to the internal states of objects. This view includes sequence diagram
    Sequence diagram

    A sequence diagram in Unified Modelling Language is a kind of interaction diagram that shows how processes operate with one another and in what order....
    s, activity diagram
    Activity diagram

    Activity diagrams are a loosely defined diagram technique for showing workflows of stepwise activities and actions, with support for choice, iteration and concurrency....
    s and state machine diagram
    State diagram

    A state diagram is a type of diagram used in computer science and related fields to describe the behavior of systems. State diagrams require that the system described is composed of a finite number of state s; sometimes, this is indeed the case, while at other times this is a reasonable abstraction....
    s.


UML models can be exchanged among UML tool
UML tool

A UML tool or UML modeling tool is a application software that supports some or all of the notation and semantics associated with the Unified Modeling Language , which is the industry standard general purpose modeling language for software engineering....
s by using the XMI interchange format.

Diagrams overview

UML 2.0 has 13 types of diagrams divided into three categories. Six diagram types represent the structure application, seven represent general types of behavior, including four represent different aspects of interactions. These diagrams can be categorized hierarchically as shown in the following class diagram
Class diagram

In software engineering, a class diagram in the Unified Modeling Language , is a type of static structure diagram that describes the structure of a system by showing the system's class es, their attributes, and the Object-oriented programming between the classes....
:

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.

In keeping with the tradition of engineering drawings, a comment or note explaining usage, constraint, or intent is always allowed in a UML diagram.

Structure diagrams
Structure diagrams emphasize what things must be in the system being modeled:
  • Class diagram
    Class diagram

    In software engineering, a class diagram in the Unified Modeling Language , is a type of static structure diagram that describes the structure of a system by showing the system's class es, their attributes, and the Object-oriented programming between the classes....
    : describes the structure of a system by showing the system's classes, their attributes, and the relationships among the classes.
  • Component diagram
    Component diagram

    File:Policy Admin Component Diagram.PNGA component diagram in the Unified Modeling Language, depicts how component are wired together to form larger components and or software systems....
    : depicts how a software system is split up into components and shows the dependencies among these components.
  • Composite structure diagram
    Composite structure diagram

    File:Composite Structure Diagram.pngComposite structure diagram in the Unified Modeling Language is a type of static structure diagram, that shows the internal structure of a Class and the collaborations that this structure makes possible....
    : describes the internal structure of a class and the collaborations that this structure makes possible.
  • Deployment diagram
    Deployment diagram

    File:Deployment Diagram.PNGA deployment diagram in the Unified Modeling Language serves to model the physical deployment of Artifact on deployment targets....
     serves to model the hardware used in system implementations, and the execution environments and artifacts deployed on the hardware.
  • Object diagram
    Object diagram

    File:Object diagram.pngAn object diagram in the Unified Modeling Language , is a diagram that shows a complete or partial view of the structure of a modeled system at a specific time....
    : shows a complete or partial view of the structure of a modeled system at a specific time.
  • Package diagram
    Package diagram

    A package diagram in the Unified Modeling Language depicts the Dependency between the Package that make up a model....
    : depicts how a system is split up into logical groupings by showing the dependencies among these groupings.




Since structure diagrams represent the structure of a system, they are used extensively in documenting the architecture
Software architecture

The software architecture of a program or computing system is the structure or structures of the software system, which comprise software components, the externally visible properties of those components, and the relationships between them....
 of software systems.

Behavior diagrams
Behavior diagrams emphasize what must happen in the system being modeled:
  • Activity diagram
    Activity diagram

    Activity diagrams are a loosely defined diagram technique for showing workflows of stepwise activities and actions, with support for choice, iteration and concurrency....
    : represents the business and operational step-by-step workflows of components in a system. An activity diagram shows the overall flow of control.
  • State diagram
    State diagram

    A state diagram is a type of diagram used in computer science and related fields to describe the behavior of systems. State diagrams require that the system described is composed of a finite number of state s; sometimes, this is indeed the case, while at other times this is a reasonable abstraction....
    : standardized notation to describe many systems, from computer programs to business processes.
  • Use case diagram
    Use case diagram

    A use case diagram in the Unified Modeling Language is a type of behavioural diagram defined by the and created from a Use-case analysis. Its purpose is to present a graphical overview of the functionality provided by a system in terms of Actor s, their goals , and any dependencies between those use cases....
    : shows the functionality provided by a system in terms of actors, their goals represented as use cases, and any dependencies among those use cases.




Since behaviour diagrams illustrate the behaviour of system, they are used extensively to describe the functionality of software systems.

Interaction diagrams
Interaction diagrams, a subset of behavior diagrams, emphasize the flow of control and data among the things in the system being modeled:
  • Communication diagram
    Communication diagram

    File:Kommunikations diagramm-5.pngA communication diagram in the Unified Modeling Language 2.0, is a simplified version of the UML 1.x collaboration diagram....
    : shows the interactions between objects or parts in terms of sequenced messages. They represent a combination of information taken from Class, Sequence, and Use Case Diagrams describing both the static structure and dynamic behavior of a system.
  • Interaction overview diagram
    Interaction overview diagram

    Interaction Overview Diagram in the Unified Modeling Language is a type of activity diagram in which the nodes represent interaction diagrams....
    : are a type of activity diagram in which the nodes represent interaction diagrams.
  • Sequence diagram
    Sequence diagram

    A sequence diagram in Unified Modelling Language is a kind of interaction diagram that shows how processes operate with one another and in what order....
    : shows how objects communicate with each other in terms of a sequence of messages. Also indicates the lifespans of objects relative to those messages.
  • Timing diagrams: are a specific type of interaction diagram, where the focus is on timing constraints.




The Protocol State Machine is a sub-variant of the State Machine. It may be used to model network communication protocols.

Meta modeling

The Object Management Group (OMG) has developed a metamodeling
Metamodeling

Metamodeling, or meta-modeling in software engineering and systems engineering among other disciplines, is the analysis, construction and development of the frames, rules, constraints, models and theories applicable and useful for modeling a predefined class of problems....
 architecture to define the Unified Modeling Language (UML), called the Meta-Object Facility
Meta-Object Facility

The Meta-Object Facility is an Object Management Group standard for model-driven engineering. The official reference page may be found at OMG's website....
 (MOF). The Meta-Object Facility is a standard for model-driven engineering
Model-driven engineering

Model-driven engineering is a software development methodology which focuses on creating models, or abstractions, more close to some particular domain concepts rather than computing concepts....
, designed as a four-layered architecture, see image. It provides a meta-meta model at the top layer, called the M3 layer. This M3-model is the language used by Meta-Object Facility to build metamodels, called M2-models. The most prominent example of a Layer 2 Meta-Object Facility model is the UML metamodel, the model that describes the UML itself. These M2-models describe elements of the M1-layer, and thus M1-models. These would be, for example, models written in UML. The last layer is the M0-layer or data layer. It is used to describe real-world objects.

Beyond the M3-model, the Meta-Object Facility describes the means to create and manipulate models and metamodels by defining CORBA
Çorba

Chorba , shurpa , sorpa , or shorpo is one of various kinds of soup or stew found in national cuisines across Eurasia. The term is likely of Persian language or Turkic languages origin....
 interfaces that describe those operations. Because of the similarities between the Meta-Object Facility M3-model and UML structure models, Meta-Object Facility metamodels are usually modeled as UML class diagrams. A supporting standard of Meta-Object Facility is XMI
XML Metadata Interchange

The XML Metadata Interchange is an Object Management Group standard for exchanging Metadata information via Extensible Markup Language.It can be used for any metadata whose metamodel can be expressed in Meta-Object Facility....
, which defines an XML-based exchange format for models on the M3-, M2-, or M1-Layer.

Criticisms

Although UML is a widely recognized and used modeling standard, it is frequently criticized for the following deficiencies:

Language bloat
Software bloat

Software bloat, also known as bloatware or elephantware, is a term used in both a neutral and disparaging sense, to describe the tendency of newer computer programs to be larger, or to use larger amounts of system resources than necessary for the same or similar benefits from older versions to its users....
: UML is often criticized as being gratuitously large and complex. It contains many diagrams and constructs that are redundant or infrequently used. This criticism is more frequently directed at UML 2.0 than UML 1.0, since newer revisions include more design-by-committee
Design by committee

Design by committee is a wry, pejorative term referring to a style of design and its resultant output when a group of entities comes together to produce something , particularly in the presence of poor and incompetent leadership....
 compromises.

Weak visualization: UML employs many line styles that are graphically very similar; the meaning resides in permutations of line (dotted or solid) and arrow head (open or closed, filled or empty). The same line style can mean different things in different diagram types. The asterisk is used to signify iteration in behavioural models and parallel multiplicity in structural models. The multiplicity of an association is shown by an annotation disconnected from a line (unlike conventional data model notations).

Problems in learning and adopting: The problems cited above can make learning and adopting UML problematic, especially when required of engineers lacking the prerequisite skills. In practice, people often draw diagrams with the symbols provided by their CASE tool, but without the meanings those symbols are intended to provide.

Only the code is in sync with the code: UML has value in approaches that compile the models
UML tool

A UML tool or UML modeling tool is a application software that supports some or all of the notation and semantics associated with the Unified Modeling Language , which is the industry standard general purpose modeling language for software engineering....
 to generate source or executable code. This however, may still not be sufficient since it is not clear that UML 2.0's Action Semantics exhibit Turing completeness
Turing completeness

In Computability theory , several closely-related terms are used to describe the "computational power" of a computational system :Turing completenessTuring equivalence universality...
.

Cumulative Impedance/Impedance Mismatching: As with any notational system, UML is able to represent some systems more concisely or efficiently than others. Thus a developer gravitates toward solutions that reside at the intersection of the capabilities of UML and the implementation language. This problem is particularly pronounced if the implementation language does not adhere to orthodox object-oriented doctrine, as the intersection set between UML and implementation language may be that much smaller.

Aesthetically Inconsistent: This argument states that the adhoc mixing of abstract notation (2-D ovals, boxes, etc) make UML appear jarring and that more effort could have been made to construct uniform and aesthetically pleasing representations.

Tries to be all things to all programmers: UML is a general purpose modeling language that tries to achieve compatibility with every possible implementation language. In the context of a specific project, the most applicable features of UML may be tailored to accomplish the specific goal but the means of tailoring the scope of UML to a particular domain is through formalisms (stereotypes and profiles
Profile (UML)

A profile in the Unified Modeling Language provides a generic extension mechanism for customizing Unified Modeling Language models for particular domains and platforms....
) that are not completely formed.

Dysfunctional interchange format: While the XMI (XML Metadata Interchange) standard is designed to facilitate the interchange of UML models, it has been largely ineffective in the practical interchange of UML 2.x models. Defining a UML 2.x model in one tool and then importing it into another tool typically leads to loss of information. This interoperability ineffectiveness is attributable to two reasons. Firstly, XMI 2.x is large and complex in its own right, since it purports to address a technical problem more ambitious than exchanging UML 2.x models. In particular, it attempts to provide a mechanism for facilitating the exchange of any arbitrary modeling language defined by the OMG's Meta-Object Facility
Meta-Object Facility

The Meta-Object Facility is an Object Management Group standard for model-driven engineering. The official reference page may be found at OMG's website....
 (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 substantial for modelers who don't want to redraw their diagrams.

Modeling experts have written sharp criticisms of UML, including Bertrand Meyer
Bertrand Meyer

Bertrand Meyer is an academic, author, and consultant in the field of computer languages. He created the Eiffel ....
's "UML: The Positive Spin", and Brian Henderson-Sellers
Henderson-Sellers

Brian Henderson-Sellers is Professor of Information Systems at the University of Technology Sydney. He is also Director of the Centre for Object Technology and Applications at University of Technology Sydney....
 in "Uses and Abuses of the Stereotype Mechanism in UML 1.x and 2.0".

See also

  • Glossary of Unified Modeling Language terms
    Glossary of Unified Modeling Language terms

    This glossary of Unified Modeling Language terms covers all versions of UML. Individual entries will point out any distinctions that exist between versions....
  • Agile Modeling
    Agile Modeling

    Agile Modeling is a practice-based methodology for Software development process models and documentation of software-based systems. It is intended to be a collection of values, principles, and practices for modeling software that can be applied on a software development project in a more flexible manner than traditional modeling methods....
  • Entity-relationship model
    Entity-relationship model

    An Entity-Relationship Model in software engineering is an abstract and conceptual representation of data. Entity-relationship modeling is a relational schema database modeling method, used to produce a type of conceptual schema or semantic data model of a system, often a relational database, and its requirements in a top-down fashion....
  • Executable UML
    Executable UML

    Executable UML, often abbreviated to xtUML or xUML , is the evolution of the Shlaer-Mellor method to Unified Modeling Language. Executable UML graphically specifies a system using a Profile of the Unified_Modeling_Language....
  • Fundamental modeling concepts
    Fundamental modeling concepts

    Fundamental Modeling Concepts provide a framework to describe software-intensive systems. It strongly emphasizes the communication about software-intensive systems by using a semi-formal graphical notation that can easily be understood....
  • List of UML tools
    List of UML tools

    This article lists Unified Modeling Language UML tools, classified by their Proprietary software or non-proprietary status....
  • Meta-modeling
  • Model-based testing
    Model-based testing

    Model-based testing is software testing in which test cases are derived in whole or in part from a model that describes some aspects of the system under test ....
  • Model-driven integration
    Model-driven integration

    In software design, model-driven integration is a subset of model-driven architecture which focuses purely on solving Application Integration problems using executable Unified Modeling Language ....
  • Software blueprint
    Software blueprint

    A software blueprint is the final product of a software blueprinting process. Its name derives from the analogy drawn with the popular use of the term blueprint ....
  • SysML
  • UN/CEFACT's Modeling Methodology


Further reading


External links


  • of the Object Management Group
    Object Management Group

    Object Management Group is a consortium, originally aimed at setting standardization for distributed object-oriented systems, and is now focused on modeling and model-based standards....
     – Resources that include the latest version of the UML specification