Home      Discussion      Topics      Dictionary      Almanac
Signup       Login
Unified Modeling Language

Unified Modeling Language

Overview

Discussion
Ask a question about 'Unified Modeling Language'
Start a new discussion about 'Unified Modeling Language'
Answer questions from other users
Full Discussion Forum
 
Recent Discussions
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 object-oriented 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; that is, the application of engineering to software...

. The standard is managed, and was created, by the Object Management Group
Object Management Group
Object Management Group is a consortium, originally aimed at setting standards for distributed object-oriented systems, and is now focused on modeling and model-based standards.- Overview :...

. It was first added to the list of OMG adopted technologies in 1997, and has since become the industry standard for modeling software-intensive systems.

UML includes a set of graphic notation techniques to create visual models
Visual modeling
Visual modeling is the graphic representation of objects and systems of interest using graphical languages. Visual modeling languages may be General-Purpose Modeling languages or Domain-Specific Modeling languages...

 of object-oriented software-intensive systems.

Overview


The Unified Modeling Language (UML) is used to specify, visualize, modify, construct and document the artifacts
Artifact (software development)
An artifact is one of many kinds of tangible by-product produced during the development of software. Some artifacts help describe the function, architecture, and design of software...

 of an object-oriented software-intensive system under development. UML offers a standard way to visualize a system's architectural blueprints, including elements such as:
  • 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 diagramsAn activity can represent:* the invocation of an operation,...

  • 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 that produce a specific service or product for a particular customer or customers...

    es
  • database
    Database
    A database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality , in a way that supports processes requiring this information...

     schemas
  • (logical) components
    Component (UML)
    A 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. A component defines its behavior in terms of provided and required interfaces".A component may be replaced by another if...

  • programming language
    Programming language
    A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

     statements
  • reusable software components
    Component-based software engineering
    Component-based software engineering is a branch of software engineering that emphasizes the separation of concerns in respect of the wide-ranging functionality available throughout a given software system...

    .


UML combines techniques from data modeling
Data modeling
Data modeling in software engineering is the process of creating a data model for an information system by applying formal data modeling techniques.- Overview :...

 (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. UML has synthesized the notations 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 software modeling and designing. It was developed around 1991 by Rumbaugh, Blaha, Premerlani, Eddy and Lorensen as a method to develop object-oriented systems and to support object-oriented programming.OMT was developed as an...

 (OMT) and Object-oriented software engineering
Object-oriented software engineering
Object-oriented software engineering is an object modeling language and methodology.OOSE was developed by Ivar Jacobson in 1992 while at Objectory AB. It is the first object-oriented design methodology to employ use cases to drive software design...

 (OOSE) by fusing them into a single, common and widely usable modeling language. UML aims to be a standard modeling language which can model concurrent and distributed systems. UML is a de facto industry
Industry
Industry refers to the production of an economic good or service within an economy.-Industrial sectors:There are four key industrial economic sectors: the primary sector, largely raw material extraction industries such as mining and farming; the secondary sector, involving refining, construction,...

 standard, 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
QVT
QVT is a standard set of languages for model transformation defined by the Object Management Group .- Overview :...

-like transformation languages. 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. Extensible programming languages, supporting this style of programming, were an active area of work...

, with two mechanisms for customization: profile
Profile (UML)
A profile in the Unified Modeling Language provides a generic extension mechanism for customizing UML models for particular domains and platforms...

s and stereotype
Stereotype (computing)
A stereotype is one of three types of extensibility mechanisms in the 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...

s.

Before UML 1.x


After Rational Software Corporation hired James Rumbaugh
James Rumbaugh
James E. 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 .- Biography :...

 from General Electric
General Electric
General Electric Company , or GE, is an American multinational conglomerate corporation incorporated in Schenectady, New York and headquartered in Fairfield, Connecticut, United States...

 in 1994, the company became the source for the two most popular object-oriented modeling approaches of the day: Rumbaugh's Object-modeling technique (OMT), which was better for object-oriented analysis (OOA), and Grady Booch
Grady Booch
Grady Booch is an American software engineer. Booch is best known for developing the Unified Modeling Language with Ivar Jacobson and James Rumbaugh. Grady is recognized internationally for his innovative work in software architecture, software engineering, and collaborative development environments...

's Booch method, which was better for object-oriented design (OOD). They were soon assisted in their efforts by Ivar Jacobson
Ivar Jacobson
Ivar Hjalmar Jacobson is a Swedish computer scientist, known as major contributor to UML, Objectory, RUP and aspect-oriented software development.- Biography :...

, the creator of the object-oriented software engineering (OOSE) method. Jacobson joined Rational in 1995, after his company, Objectory AB, was acquired by Rational. The three methodologists were collectively referred to as the Three Amigos.

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 software
Proprietary software is computer software licensed under exclusive legal right of the copyright holder. The licensee is given the right to use the software under certain conditions, while restricted from other uses, such as modification, further distribution, or reverse engineering.Complementary...

 Unified Modeling Language. Representatives of competing object technology companies were consulted during OOPSLA
OOPSLA
OOPSLA is an annual ACM research conference. OOPSLA mainly takes place in the United States, while the sister conference of OOPSLA, ECOOP, is typically held in Europe...

 '96; they chose boxes for representing classes rather than the cloud symbols that were used in Booch's notation.

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 American technologist, system architect and entrepreneur who specializes in advanced software and systems development.-Biography:...

 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
In software engineering and systems engineering, a use case is a description of steps or actions between a user and a software system which leads the user towards something useful...

 notation from Objectory and the component notation from Booch were integrated with the rest of the notation, but the semantic integration
Semantic integration
Semantic integration is the process of interrelating information from diverse sources, for example calendars and to do lists; email archives; physical, psychological, and social presence information; documents of all sorts; contacts ; search results; and advertising and marketing relevance derived...

 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. Many others also contributed, with their approaches flavouring 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 using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...

 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 implementing technical standards.The goals of standardization can be to help with independence of single suppliers , compatibility, interoperability, safety, repeatability, or quality....

:
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. Founded on February 23, 1947, the organization promulgates worldwide proprietary, industrial and commercial...

/IEC
International Electrotechnical Commission
The International Electrotechnical Commission is a non-profit, 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

UML 2.x


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.

Although UML 2.1 was never released as a formal specification, versions 2.1.1 and 2.1.2 appeared in 2007, followed by UML 2.2 in February 2009. UML 2.3 was formally released in May 2010. UML 2.4 is in the beta stage as of March 2011.

There are four parts to the UML 2.x specification:
  1. The Superstructure that defines the notation and semantics for diagrams and their model elements
  2. The Infrastructure that defines the core metamodel on which the Superstructure is based
  3. 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. Initially, OCL was only a formal specification language extension to UML. OCL may now be used with any Meta-Object...

     (OCL) for defining rules for model elements
  4. The UML Diagram Interchange that defines how UML 2 diagram layouts are exchanged

The current versions of these standards follow: UML Superstructure version 2.3, UML Infrastructure version 2.3, OCL version 2.2, and UML Diagram Interchange version 1.0.

Although many UML tool
UML tool
A UML tool or UML modeling tool is a software application 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.UML tool is used broadly here to include...

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. A test suite often contains detailed instructions or goals for each...

 to objectively test compliance with its specifications.

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, Booch method, 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, such as IBM Rational Unified Process
IBM Rational Unified Process
The Rational Unified Process is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003...

 (RUP). Others include Abstraction Method and Dynamic Systems Development Method
Dynamic Systems Development Method
Dynamic systems development method is an agile project delivery framework, primarily used as a software development method. DSDM was originally based upon the rapid application development method. In 2007 DSDM became a generic approach to project management and solution delivery...

.

Modeling


It is important to distinguish between the UML model and the set of diagrams of a system. A diagram is a partial graphic representation of a system's model. The model also contains documentation that drives the model elements and diagrams (such as written use cases).

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 classes, their attributes, operations , and the relationships among the classes.- Overview :The class diagram is the main...

    s and composite structure diagram
    Composite structure diagram
    Composite 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 Modeling Language is a kind of interaction diagram that shows how processes operate with one another and in what order. It is a construct of a Message Sequence Chart....

    s, activity diagram
    Activity diagram
    Activity diagrams are graphical representations of workflows of stepwise activities and actions with support for choice, iteration and concurrency. In the Unified Modeling Language, activity diagrams can be used to describe the business and operational step-by-step workflows of components in a system...

    s and state machine diagrams
    UML state machine
    UML state machine is a significantly enhanced realization of the mathematical concept of a finite automaton in Computer Science applications as expressed in the Unified Modeling Language notation....

    .


UML models can be exchanged among UML tools by using the XMI interchange format.

Diagrams overview


UML 2.2 has 14 types of diagrams divided into two categories. Seven diagram types represent structural information, and the other seven represent general types of behavior, including four that represent different aspects of interactions. These diagrams can be categorized hierarchically as shown in the following class diagram:
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. UML profiles may define additional diagram types or extend existing diagrams with additional notations.

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

Structure diagrams


Structure diagrams emphasize the things that must be present in the system being modeled. Since structure diagrams represent the structure, they are used extensively in documenting the software architecture
Software architecture
The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both...

 of software systems.
  • 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 classes, their attributes, operations , and the relationships among the classes.- Overview :The class diagram is the main...

    : describes the structure of a system by showing the system's classes, their attributes, and the relationships among the classes.
  • Component diagram
    Component diagram
    In the Unified Modeling Language, a component diagram depicts how components are wired together to form larger components and or software systems.They are used to illustrate the structure of arbitrarily complex systems.- Overview :...

    : describes how a software system is split up into components and shows the dependencies among these components.
  • Composite structure diagram
    Composite structure diagram
    Composite 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
    A deployment diagram in the Unified Modeling Language models the physical deployment of artifacts on nodes. To describe a web site, for example, a deployment diagram would show what hardware components exist , what software components run on each node , and how...

    : describes the hardware used in system implementations and the execution environments and artifacts deployed on the hardware.
  • Object diagram
    Object diagram
    An 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 an example modeled system at a specific time.
  • Package diagram
    Package diagram
    A package diagram in the Unified Modeling Language depicts the dependencies between the packages that make up a model.- Overview :In addition to the standard UML Dependency relationship, there are two special types of dependencies defined between packages:...

    : describes how a system is split up into logical groupings by showing the dependencies among these groupings.
  • Profile diagram
    Profile diagram
    A profile diagram operates at the metamodel level to show stereotypes as classes with the stereotype, and profiles as packages with the stereotype. The extension relation indicates what metamodel element a given stereotype is extending. -History:The profile diagram didn't exist in UML 1...

    : operates at the metamodel level to show stereotypes as classes with the <> stereotype, and profiles as packages with the <> stereotype. The extension relation (solid line with closed, filled arrowhead) indicates what metamodel element a given stereotype is extending.



Behaviour diagrams


Behaviour diagrams emphasize what must happen in the system being modelled. Since behaviour diagrams illustrate the behavior of a system, they are used extensively to describe the functionality of software systems.
  • Activity diagram
    Activity diagram
    Activity diagrams are graphical representations of workflows of stepwise activities and actions with support for choice, iteration and concurrency. In the Unified Modeling Language, activity diagrams can be used to describe the business and operational step-by-step workflows of components in a system...

    : describes the business and operational step-by-step workflows of components in a system. An activity diagram shows the overall flow of control.
  • UML state machine
    UML state machine
    UML state machine is a significantly enhanced realization of the mathematical concept of a finite automaton in Computer Science applications as expressed in the Unified Modeling Language notation....

     diagram: describes the states and state transitions of the system.
  • Use case diagram
    Use case diagram
    A use case diagram in the Unified Modeling Language is a type of behavioral diagram defined by 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 actors, their goals , and any dependencies between those use...

    : describes the functionality provided by a system in terms of actors, their goals represented as use cases, and any dependencies among those use cases.



Interaction diagrams


Interaction diagrams, a subset of behaviour diagrams, emphasize the flow of control and data among the things in the system being modeled:
  • Communication diagram
    Communication diagram
    A communication diagram in the Unified Modeling Language 2.0, is a simplified version of the UML 1.x collaboration diagram.UML has four types of interaction diagrams:* Sequence diagram* Communication diagram* Interaction overview 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 is one of the fourteen types of diagrams of the Unified Modeling Language , which can picture a control flow with nodes that can contain interaction diagrams....

    : provides an overview in which the nodes represent communication diagrams.
  • Sequence diagram
    Sequence diagram
    A sequence diagram in Unified Modeling Language is a kind of interaction diagram that shows how processes operate with one another and in what order. It is a construct of a Message Sequence Chart....

    : 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: 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.- Overview :...

 (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 and exploiting domain models , rather than on the computing concepts...

, designed as a four-layered architecture, as shown in the image at right. 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 runtime instance of the system.

Beyond the M3-model, the Meta-Object Facility describes the means to create and manipulate models and metamodels by defining CORBA
Çorba
Chorba , ciorbă , shurpa , shorpo , or sorpa is one of various kinds of soup or stew found in national cuisines across Middle East...

 interfaces that describe those operations. Because of the similarities between the Meta-Object Facility M0-model and UML structure models, Meta-Object Facility metamodels are usually modeled as UML class diagrams. A supporting standard of the 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:

Standards bloat: Bertrand Meyer
Bertrand Meyer
Bertrand Meyer is an academic, author, and consultant in the field of computer languages. He created the Eiffel programming language.-Education and academic career:...

, in a satirical essay framed as a student's request for a grade change, apparently criticized UML as of 1997 for being unrelated to object-oriented software development; a disclaimer was added later pointing out that his company nevertheless supports UML. Ivar Jacobson, a co-architect of UML, said that objections to UML 2.0's size were valid enough to consider the application of intelligent agents to the problem. 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, 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. Simple user narratives e.g. "what i do at work ..." have shown to be much simpler to record and more immediately useful.
Linguistic incoherence: The standards have been cited as being ambiguous and inconsistent. The UML 2.0 standard still suffers many issues
Capabilities of UML and implementation language mismatch: Typical of other notational systems, 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, since the intersection set between UML and implementation language may be that much smaller.
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. This interoperability ineffectiveness is attributable to several 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 (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. This shortcoming is being addressed by the Diagram Definition OMG project for which a proposed standard is already available.

Cardinality Notation: As with database ER diagrams, class models are specified to use "look-across" cardinalities, even though several authors (Merise
Merise
Merise is a general-purpose modeling methodology in the field of information systems development, software engineering and project management...

, Elmasri & Navathe amongst others ) prefer same-side or "look-here" for roles and both minimum and maximum cardinalities. Recent researchers (Feinerer, Dullea et. alia ) have shown that the "look-across" technique used by UML and ER diagrams is less effective and less coherent when applied to n-ary relationships of order >2.
In Feinerer it says "Problems arise if we operate under the look-across semantics as used for UML associations. Hartmann investigates this situation and shows how and why different transformations fail." (Although the "reduction" mentioned is spurious as the two diagrams 3.4 and 3.5 are in fact the same) and also "As we will see on the next few pages, the look-across interpretation introduces several difficulties which prevent the extension of simple mechanisms from binary to n-ary associations."


Exclusive: The term "Unified" applies only to the unification of the many prior existing and competing Object Orientated languages. Important well known and popular techniques, almost universally used in industry, such as Data Flow Diagrams and Structure charts were not included in the specification.

Modeling experts have written criticisms of UML, including Brian Henderson-Sellers and Cesar Gonzalez-Perez in "Uses and Abuses of the Stereotype Mechanism in UML 1.x and 2.0".

UML modelling tools



The most well-known UML modelling tool is IBM Rational Rose. Other tools include, in alphabetical order, ArgoUML
ArgoUML
ArgoUML is an UML diagramming application written in Java and released under the open source Eclipse Public License. By virtue of being a Java application, it is available on any platform supported by Java....

, BOUML
BOUML
BOUML is a free software UML diagram designer. Programmed in C++ and Qt, it is released under GPL. It is multilingual, supports code generation and code reverse engineering.- Features :* Allows you to draw diagrams following the UML 2.0 standard....

, Dia, Enterprise Architect, MagicDraw UML
MagicDraw UML
MagicDraw is a visual UML, SysML, BPMN, and UPDM modeling tool with team collaboration support. Designed for business analysts, software analysts, programmers, and QA engineers, this dynamic and versatile development tool facilitates analysis and design of object oriented systems and databases...

, PowerDesigner
PowerDesigner
PowerDesigner is a collaborative enterprise modelling tool produced by Sybase. PowerDesigner runs under Microsoft Windows as a native application, and runs under Eclipse through a plugin. PowerDesigner supports model-driven architecture software design. PowerDesigner uses the .pdm file...

, Rational Rhapsody
Telelogic Rhapsody
Now called IBM Rational Rhapsody, a modeling environment based on UML, Rhapsody is a visual development environment for systems engineers and software developers creating real-time or embedded systems and software...

, Rational Software Architect, StarUML
StarUML
StarUML was an open source UML tool, licensed under a modified version of GNU GPL. After being abandoned for some time, the project had a last revival to move from Delphi to Java/Eclipse and stop again...

, Software Ideas Modeler and Umbrello
Umbrello UML Modeller
In computing, Umbrello UML Modeller is a free software UML diagram application available natively for Unix-like platforms, as well as Microsoft Windows . It is part of the KDE SC 4 but works well with other desktops and programming environments.Umbrello handles all the standard UML diagram types...

. Some of popular development environments
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

 also offer UML modelling tools, e.g.: Eclipse
Eclipse (software)
Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...

, NetBeans
NetBeans
NetBeans refers to both a platform framework for Java desktop applications, and an integrated development environment for developing with Java, JavaScript, PHP, Python, Groovy, C, C++, Scala, Clojure, and others...

, and Visual Studio.

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.-A:...

  • Agile Modeling
    Agile Modeling
    Agile Modeling is a practice-based methodology for modeling 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...

  • Entity-relationship model
    Entity-relationship model
    In software engineering, an entity-relationship model is an abstract and conceptual representation of data. Entity-relationship modeling is a 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...

  • Executable UML
    Executable UML
    Executable UML, often abbreviated to xtUML or xUML, "is a single language in the UML family, designed to define the semantics of subject matters precisely." Executable UML is the evolution of the Shlaer-Mellor method to UML...

  • 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.- Introduction :...

  • I-OOA
    I-OOA
    I-OOA was a software tool, developed and sold by the Kennedy Carter company, that supported the Shlaer-Mellor design method, and that generated code in C and C++. This tool could be modified to generate code of different styles, and also, to generate code in different programming languages.The...

  • List of UML tools
  • Applications of UML
    Applications of UML
    UML is very powerful modeling language. We can develop many diagrams using UML and provide users with a ready-to-use, expressive modeling examples. UML can be applied in many areas like embedded systems, web applications, commercial applications etc...

  • Meta-modeling
  • Model-based testing
    Model-based testing
    Model-based testing is the application of Model based design for designing and optionally executing the necessary artifacts to perform software testing. Models can be used to represent the desired behavior of the System Under Test , or to represent the desired testing strategies and testing...

  • 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 .-External links:...

  • 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
  • UML colors
    UML colors
    UML color standards are a set of four colors associated with Unified Modeling Language diagrams. The coloring system indicates which of several archetypes apply to the UML object...

  • UML eXchange Format
  • UN/CEFACT's Modeling Methodology
  • Message Sequence Chart
    Message Sequence Chart
    A Message Sequence Chart is an interaction diagram from the SDL family very similar to UML's sequence diagram, standardized by the International Telecommunication Union....

    , another type of Interaction diagrams
  • Object Process Methodology
    Object Process Methodology
    Object Process Methodology is an approach to designing information systems by depicting them using object models and process models. OPM was conceived and developed by Prof. Dov Dori, at the Technion – Israel Institute of Technology. A paper that first presented ideas underlying OPM was published...

    , an alternative "... to designing information systems by depicting them using object models and process models". And, presenting these in one unified view.

External links



  • UML Resource Page of the Object Management Group
    Object Management Group
    Object Management Group is a consortium, originally aimed at setting standards for distributed object-oriented systems, and is now focused on modeling and model-based standards.- Overview :...

     – Resources that include the latest version of the UML specification from the group in charge of defining the UML specification
  • Death by UML Fever – An ACM queue
    ACM Queue
    ACM Queue is a computer magazine published by the Association for Computing Machinery . Steve Bourne helped found the magazine when he was President of the ACM and he is now Chair of the Advisory Board. The magazine is produced by computing professionals and is intended for computing professionals...

    article about the abuse of UML
  • Understanding the Unified Modeling Language (UML) – Introductory article for UML. Retrieved 2011-01-29