Unified Modeling Language
|
In software engineering, Unified Modeling Language (UML) is a non-proprietary, third generation modeling and specification language. However, the use of UML is not restricted to software modeling. It can be used for modeling hardware (engineering systems) and is commonly used for business process modeling and organizational structure modeling. The UML is an open method used to specify, visualize, construct and document the artifacts of an object-oriented software-intensive system under development. The UML represents a compilation of best engineering practices which have proven to be successful in modeling large, complex systems, especially at the architectural level.
Contents |
History
UML integrates the concepts of Booch, OMT, OOSE and Class-Relation 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 has become an industry standard, created under the auspices of the Object Management Group (OMG). OMG had called for information on object-oriented methodologies, that might create a rigorous software modeling language. Many industry leaders had responded in earnest to help create the standard.
Different modeling aspects
There are three prominent aspects of the modeled system, that are handled by UML:
- Functional Model
- Showcases the functionality of the system from the user's Point of View. Includes Use Cases Diagrams.
- Object Model
- Showcases the structure and substructure of the system using objects, attributes, operations, and associations. Includes Class Diagrams.
- Dynamic Model
- Showcases the internal behavior of the system. Includes Sequence Diagrams, Activity Diagrams and Statechart Diagrams.
Models vs. diagrams
It is important to distinguish between a UML model, and a UML diagram, or set of diagrams, including Use Case Diagram, Collaboration Diagram, Activity Diagram, Sequence Diagram, Deployment Diagram, Component Diagram, Class Diagram, StateChart Diagram—a UML diagram is a graphical representation of the information in the model, but the model exists independently. XMI (an XML-based format) in its current version, provides interchange for any OMG models. Diagrams can also be represented as models using the Diagram Interchange (DI, XMI[DI]) standard, but since it is relatively new very few tools support it.
A graphical notation
UML uses a graphical notation which has text equivalents in Java and other object-oriented languages, and also ontological equivalents which are high-level enough to merit articles in Wikipedia. To show the degree of development of this language, it is possible to state concepts such as political processes in UML notation. Thus, it is possible to translate these schemas into executable programming languages.
RUP
UML is not a method and does not force one, however it is a requisite for the Rational Unified Process created by the Rational Software Corporation. Other development methods such as the Dynamic Systems Development Method also use UML techniques.
UML concepts
UML uses the following concepts:
- IS-A
- HAS
- USES
- DEPENDS-ON
- There is a cardinality notation which corresponds to Database modeling cardinality, eg: 1, 0..1, 1..*
- There are specialized classes for common uses, such as Role, Use Case
- The concept of a stereotype is built-in to the language. It qualifies the symbol it is attached to.
Specification versions
There are several versions of UML specification. The current official version is UML 1.5 (http://www.omg.org/technology/documents/formal/uml.htm). OMG is currently upgrading UML to Version 2.0 which differs from version 1.5 significantly. UML 2.0 is in finalization stage (http://www.omg.org/gettingstarted/process4-Finalize.htm) and is expected to be released soon. Many modeling tools vendors already support, up to some extent, UML 2.0.
UML Diagram types
Use Case Diagram
This diagram describes the functionality of the (simple) Restaurant System. The Food Critic actor can Eat Food, Pay for Food, or Drink Wine. Only the Chef Actor can Cook Food. Use Cases are represented by an oval and Actors are stick figures. The box defines the boundaries of the Restaurant System, i.e. the use cases shown are part of the system being modelled, the actors are not.
The OMG defines a graphical notation for use cases, but it refrains from defining any written format for describing use cases in detail. Many people thus suffer under the misapprehension that a use case is its graphical notation; when in fact, the true value of a use case is the written description of scenarios regarding a business task.
Class Diagram
Missing image
Restaurant-UML.PNG
Image:Restaurant-UML.PNG
This diagram describes the structure of a simple Restaurant System. UML shows Inheritance relationships with a triangle; and containers with diamond shape. Additionally, the role of the relationship may be specified as well as the cardinality. The Restaurant System has any number of Food dishes(*), with one Kitchen(1), a Dining Area(contains), and any number of staff(*). All of these objects are associated to one Restaurant.
Sequence Diagram
This diagram describes the sequences of messages of the (simple) Restaurant System. This diagram represents a Patron ordering food and wine; drinking wine then eating the food; finally paying for the food. The dotted lines extending downwards indicate the timeline. The arrows represent messages (stimuli) from an actor or object to other objects. For example, the Patron sends message 'pay' to the Cashier. Half arrows indicate asynchronous method calls.
Sequence diagrams are functionally equivalent to collaboration diagrams.
Collaboration Diagram
Missing image
Restaurant-UML-COL.png
Image:Restaurant-UML-COL.png
This is the collaboration diagram of the (simple) Restaurant System. Notice how you can follow the process from object to object, according to the outline below:
- 1. Order Food
- 1.1 Order Food
- 2. Serve Wine
- 3 Pickup
- 3.1 Serve Food
- 4 Pay
A Collaboration diagram models the interactions between objects in terms of sequenced messages. Collaboration diagrams represent a combination of information taken from Class, Sequence, and Use Cases Diagrams describing both the static structure and dynamic behavior of a system. Collaboration and sequence diagrams describe the same information, and can be transformed into one another without difficulty.
However, collaboration diagrams use the free-form arrangement of objects as used in Object diagrams. In order to maintain the ordering of messages in such a free-form diagram, messages are labeled with a chronological number. Reading a Collaboration diagram involves starting at message 1.0, and following the messages from object to object.
Statechart Diagram
See Harel Statechart.
Activity Diagram
Activity diagrams represent the business and operational workflows of a system. An Activity diagram is a variation of the state diagram where the "states" represent operations, and the transitions represent the activities that happen when the operation is complete.
Missing image
UML-activity-form.png
Image:UML-activity-form.png
This activity diagram shows the actions that take place when completing a (web) form. The user starts by filling out the form, then it is checked; the result of the check determines if the form has to be filled out again or if the activity is completed.
Deployment Diagram
Deployment diagrams serve to model the hardware used in system implementations and the associations between those components. The elements used in deployment diagrams are nodes (shown as a cube), components (shown as a rectangular box, with two rectangles protruding from the left side) and associations.
Missing image
UML-deployment-network.png
Image:UML-deployment-network.png
This deployment diagram shows the hardware used in a small office network. The application server (node) is connected to the database server (node) and the database client (component) is installed on the application server. The workstation is connected (association) to the application server and to a printer.
Criticisms of UML
Although UML is a widely recognized and used standard, it has always been criticized for having imprecise semantics, which causes its interpretation to be subjective. This means that when using UML, users should provide some form of explanation of their models. Another problem is that UML doesn't apply well to distributed systems. In such systems, factors such as serialization, message passing and persistency are of great importance. UML lacks the ability to specify such things. For example, it is not possible to specify using UML that an object "lives" in a server process and that it is shared among various instances of a running process.
Extensions to UML
When it is necessary to introduce new notations or terminologies, UML provides user-defined extensions through the use of stereotypes, tagged values and constraints. Currently there are two extensions defined, namely Business and Objectory Process extensions.
Magnus Penker and Hans-Erik Eriksson describe Business Extensions in Business Modeling with UML (ISBN 0-471-29551-5). Ovidiu S. Noran at the Griffith University compares UML and IDEF in Business Modelling: UML vs. IDEF (http://www.cit.gu.edu.au/~noran/Docs/UMLvsIDEF.pdf).
See also
- UML program
- List of UML programs
- Integrated Development Environment
- Object Constraint Language (OCL)
- Object-modeling technique
- Object-oriented
- Rational Unified Process
- XMI, a standard XML-based format for exchanging UML models.
External links
- UML Resource Page (http://www.uml.org/) of the Object Management Group. Contains among other information the UML specification.
- Unified Modeling Language (http://www.foldoc.org/foldoc/foldoc.cgi?query=Unified+Modeling+Language) at FOLDOC
- A free (only SAMPLE COURSEWARE) UML tutorial (http://www.parlezuml.com/)
- Another free UML tutorial (http://odl-skopje.etf.ukim.edu.mk/uml-help/)
- UML Reference Card (http://www.holub.com/goodies/uml/)
- Article Database modeling in UML (http://www.methodsandtools.com/archive/archive.php?id=9) from Methods & Tools (http://www.methodsandtools.com/)
- Article Death by UML Fever (http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=130) on the occasional mis-use of UML, from ACM Queue (http://www.acmqueue.com/)
- This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL.
es:Lenguaje Unificado de Modelado fr:Unified modeling language lt:Unified Modeling Language nl:Unified Modeling Language ja:統一モデリング言語 pl:UML pt:UML sv:UML uk:UML zh:统一建模语言