Unified Modeling Language

Unified Modeling Language

Unified Modeling Language (UML) is a standardized general-purpose modeling language in the field of software engineering. UML includes a set of graphical notation techniques to create abstract models of specific systems, referred to as UML model.

Overview

The Unified Modeling Language (UML) is a graphical language for visualizing, specifying and constructing the artifacts of a software-intensive system. The Unified Modeling Language offers a standard way to write a system's blueprints, including conceptual things such as business processes and system functions as well as concrete things such as programming language statements, database schemas, and reusable software components. Grady Booch, Ivar Jacobson & Jim Rumbaugh (2000) [http://www.omg.org/docs/formal/00-03-01.pdf OMG Unified Modeling Language Specification] , Version 1.3 First Edition: March 2000. Retrieved 12 August 2008.]

;StandardizationUML is officially defined by the Object Management Group (OMG) as the UML metamodel, a Meta-Object Facility metamodel (MOF). Like other MOF-based specifications, UML has allowed software developers to concentrate more on design and architecture.

UML models may be automatically transformed to other representations (e.g. Java) by means of QVT-like transformation languages, supported by the OMG.

;Extensible MechanismsUML is extensible, offering the following mechanisms for customization: profiles and stereotype. The semantics of "extension by profiles" have been improved with the UML 1.0 major revision.

History

Before UML 1.x

After Rational Software Corporation hired James Rumbaugh from General Electric in 1994, the company became the source for the two most popular object-oriented modeling approaches of the day: Rumbaugh's OMT, which was better for object-oriented analysis (OOA), and Grady Booch's Booch method, 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, the creator of the object-oriented software engineering (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 Unified Modeling Language. Representatives of competing Object Technology companies were consulted during OOPSLA '96, and chose "boxes" for representing classes over Grady Booch's Booch method's notation that used "cloud" symbols.

Under the technical leadership of the Three Amigos, an international consortium called the UML Partners 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 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 [ [http://www.omg.org/cgi-bin/doc?ad/97-08-11 UML Specification version 1.1 (OMG document ad/97-08-11)] ] .

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 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 Cards (circa 1989 from Kent Beck and Ward Cunningham), and OORam were retained. Many others contributed too with their approaches flavoring the many models of the day including: Tony Wasserman and Peter Pircher with the "Object-Oriented 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 large.

The Unified Modeling Language is an international standard::ISO/IEC 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 2003. 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 (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.0cite web|author=OMG|title=Catalog of OMG Modeling and Metadata Specifications|url=http://www.omg.org/technology/documents/modeling_spec_catalog.htm|accessdate=2008-03-31] .

Although many UML tools support some of the new features of UML 2.x, the OMG provides no test suite to objectively test compliance with its specifications.

Unified Modeling Language topics

Methods

UML is not a 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). 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, 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 three different views of a system model:

* Functional requirements view: Emphasizes the functional requirements of the system from the user's point of view. And includes use case diagrams.
* Static structural view: Emphasizes the static structure of the system using objects, attributes, operations and relationships. And includes class diagrams and composite structure diagrams.
* Dynamic behavior view: Emphasizes the dynamic behavior of the system by showing collaborations among objects and changes to the internal states of objects. And includes sequence diagrams, activity diagrams and state machine diagrams.

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

Diagrams overview

UML 2.0 has 13 types of divided into three categories: Six diagram types represent "static" application structure, three represent general types of "behavior", and four 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.

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: describes the structure of a system by showing the system's classes, their attributes, and the relationships between the classes.
* Component diagram: depicts how a software system is split up into components and shows the dependencies among these components.
* Composite structure diagram: describes the internal structure of a class and the collaborations that this structure makes possible.
* Deployment diagram serves to model the hardware used in system implementations, the components deployed on the hardware, and the associations between those components.
* Object diagram: shows a complete or partial view of the structure of a modeled system at a specific time.
* Package diagram: depicts how a system is split up into logical groupings by showing the dependencies among these groupings.

Behavior diagrams

Behavior diagrams emphasize what must happen in the system being modeled:
* Activity diagram: 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: standardized notation to describe many systems, from computer programs to business processes.
* Use case diagram: shows the functionality provided by a system in terms of actors, their goals represented as use cases, and any dependencies between those use cases.

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 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: a type of activity diagram in which the nodes represent interaction diagrams.
* Sequence diagram: shows how processes operate one with another and in what order.
* Timing diagrams

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

Criticisms

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

;Language bloat: 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 compromisesFact|date=April 2008.

;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 [See the ACM article " [http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=130 "Death by UML Fever"] " for an amusing account of such issues.] .

;Only the code is in sync with the code: Another perspective holds that it is working systems that are important, not beautiful models. As Jack Reeves succinctly put it, "The code is the design" [ [http://developers.slashdot.org/article.pl?sid=05/03/01/2112257 Slashdot | The Code Is The Design ] ] [http://www.developerdotstar.com/mag/articles/reeves_design_main.html Code as Design: Three Essays by Jack W. Reeves] ] . Pursuing this notion leads to the need for better ways of writing software; UML has value in approaches that "compile the models" 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. "All models are wrong, but some models are useful." [ [George P E Box http://en.wikipedia.org/wiki/George_Box] ]

;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 must be delimited for use by the design team to accomplish the specific goal. Additionally, the means of restricting the scope of UML to a particular domain is through a formalism that is not completely formed, and is itself the subject of criticism.

;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. Fact|date=May 2008 This interoperability ineffectiveness is attributable to two reasons: First, 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 diagramscite web|author=UML Forum|title=UML FAQ|url=http://www.uml-forum.com/FAQ.htm|accessdate=2008-03-31] .

Many modeling experts have written sharp criticisms of UML, including Bertrand Meyer's "UML: The Positive Spin"cite web|author=Bertrand Meyer|title=UML: The Positive Spin|url=http://archive.eiffel.com/doc/manuals/technology/bmarticles/uml/page.html|accessdate=2008-03-31] , and a paper presented by Brian Henderson-Sellers at the MoDELS/UML conference in Genova, Italy in October 2006Fact|date=November 2007.

ee also

*Agile Modeling - A modeling method similar to agile programming
*Entity-relationship model (ER)
*Executable UML
*Fundamental modeling concepts (FMC) - A modeling method focused on communication about software-intensive systems
*List of UML tools
*Meta-modeling
*Model-based testing (MBT)
*Model-driven integration (MDI)
*Software blueprint
*UML Virtual Machine
*UN/CEFACT's Modeling Methodology (UMM)
*Glossary of Unified Modeling Language terms

References

Further reading

*cite book
first= Scott William
last = Ambler
year = 2004
url = http://www.ambysoft.com/books/theObjectPrimer.html
title = The Object Primer: Agile Model Driven Development with UML 2
publisher = Cambridge University Press
id=ISBN 0-521-54018-6

*cite book
first= Michael Jesse
last = Chonoles
coauthors = James A. Schardt
year = 2003
title = UML 2 for Dummies
publisher = Wiley Publishing
id=ISBN 0-7645-2614-6

*cite book
first= Peter
last = Coad
coauthors = Eric Lefebvre; Jeff De Luca
year = 1999
title = Java Modeling In Color With UML: Enterprise Components and Process
publisher = Prentice Hall
id=ISBN 0-13-011510-X

*cite book
first = Martin
last = Fowler
authorlink = Martin Fowler
year =
title = UML Distilled: A Brief Guide to the Standard Object Modeling Language
edition = 3rd ed.
publisher = Addison-Wesley
id = ISBN 0-321-19368-7

*cite web
author = Gooch, Tom
year =
url = http://pigseye.kennesaw.edu/~dbraun/csis4650/A&D/UML_tutorial/history_of_uml.htm
title = History of UML
accessdate = 2005-12-28

*cite book
first= Ivar
last = Jacobson
coauthors = Grady Booch; James Rumbaugh
authorlink = Ivar Jacobson
year = 1998
title = The Unified Software Development Process
publisher = Addison Wesley Longman
id=ISBN 0-201-57169-2

*cite book
first = Robert Cecil
last = Martin
authorlink = Robert Cecil Martin
year = 2003
title = UML for Java Programmers
publisher = Prentice Hall
id = ISBN 0-13-142848-9

*cite web
author = Noran, Ovidiu S.
year=
url = http://www.cit.gu.edu.au/~noran/Docs/UMLvsIDEF.pdf
title = Business Modelling: UML vs. IDEF
format = PDF
accessdate = 2005-12-28

*cite book
first = Magnus
last = Penker
coauthors = Hans-Erik Eriksson
year = 2000
title = Business Modeling with UML
publisher = John Wiley & Sons
id = ISBN 0-471-29551-5

*cite book
first = Brian
last = Henderson Sellers
coauthors =
year = 2006
title = about UML profiles
publisher = Springer Verlag
id = MoDELS'2006 Conference, Genova

*cite book
first = Miro
last = Samek
authorlink =
year = 2008
title = [http://www.quantum-leaps.com/psicc2/ "Practical UML Statecharts in C/C++"]
edition = 2nd Edition
publisher = Newnes
id = ISBN 0-75068-706-1

External links

* [http://www.uml.org/ UML Resource Page] of the Object Management Group – Resources that include the latest version of the UML specification
* [http://www.uml-forum.com/FAQ.htm UML FAQ] of the UML Forum – UML FAQ associated with a popular UML discussion group
* [http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=130 Death by UML Fever] – Discusses the occasional misuse of UML (article)
* [http://www.parlezuml.com/e-books/umlformanagers/index.htm What Is UML?] - an introduction to UML for managers
* [http://www.softdevarticles.com/modules/weblinks/viewcat.php?cid=39 UML articles list]


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • Unified modeling language — Pour les articles homonymes, voir UML. Logo d UML UML (en anglais Unified Modeling Language, « langage de modélisation unifié ») est un langage graphique de mod …   Wikipédia en Français

  • Unified Modeling Language — Unified Modeling Language,   UML …   Universal-Lexikon

  • Unified Modeling Language — Die Unified Modeling Language (Vereinheitlichte Modellierungssprache), kurz UML, ist eine graphische Modellierungssprache zur Spezifikation, Konstruktion und Dokumentation von Software Teilen und anderen Systemen[1]. Sie wird von der Object… …   Deutsch Wikipedia

  • Unified Modeling Language — Pour les articles homonymes, voir UML. Logo d UML UML (en anglais Unified Modeling Language ou « langage de modélisation unifié ») est un langage de modélisation graphique à base de pictogrammes …   Wikipédia en Français

  • Unified Modeling Language — UML (сокр. от англ. Unified Modeling Language  унифицированный язык моделирования)  язык графического описания для объектного моделирования в области разработки программного обеспечения. UML является языком широкого профиля, это открытый стандарт …   Википедия

  • Unified Modeling Language — general purpose programming language used to develop complex object oriented projects, UML (Computers) …   English contemporary dictionary

  • List of Unified Modeling Language tools — This article compares Unified Modeling Language tools. Contents 1 General 2 Features 3 Other UML tools 4 References …   Wikipedia

  • 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* Abstract An indicator applied to a classifier (e.g., actor, class, use case) or to some …   Wikipedia

  • 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. The rules are used for interpretation of the meaning of components in the… …   Wikipedia

  • Systems Modeling Language — Sysml diagrams collage The Systems Modeling Language (SysML) is a general purpose modeling language for systems engineering applications. It supports the specification, analysis, design, verification and validation of a broad range of systems and …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”