Unified Modeling Language
Unified Modeling Language (UML) is a non-proprietary, third generation modeling language. The Unified Modeling Language is an open method
used to specify, visualise, 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 successful in
modelling large, complex systems, especially at the architectural level. See software architecture.
UML integrates the concepts of Booch, OMT and 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 standard, but is taking shape under the auspices of the Object Management Group (OMG). OMG has called for information on object-oriented methodologies, that might create a rigorous software modeling language. Many industry leaders have responded in earnest to help create the standard.
There are three prominent models of the UML system development:
- Functional Model: Showcases the functionality of the system from the User's Point of View. Includes Use Cases Diagrams.
- Dynamic Model: Showcases the internal behaviour of the system. Includes Sequence Diagrams, Activity Diagrams, Statechart Diagrams.
- Object Model: Showcases the structure and substructure of the system using objects, attributes, operations, and associations. Includes Class 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 in its current version provides interchange for the model, but not for the diagrams.
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.
UML Use Cases 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 in oval and Actors are stick figures. The box defines the Use Cases location within the Restaurant System.
UML Class Diagram
This diagram describes the structure of the (simple) Restaurant System. The Restaurant System has n Food dishes, and one Kitchen, Dining Area, and Cashier. All of these objects are associated to one Restaurant. (Sadly, the Restaurant neglected to add a washroom.)
UML Sequence Diagram
This diagram describes the sequences of events of the (simple) Restaurant System. This diagram represents a Food Critic ordering food, eating the food, drinking wine, then paying for the food. The bold lines extending downwards indicate the timeline the use case is in use. For example, the Order Food line is bolded when the Food Critic orders food, and is unbolded when the order is fulfilled. The arrows represent stimuli from an actor or object to other objects. For example, the Food Critic sends stimuli Cashier() indicating he wants to Pay for his Food.
- IS-A
- HAS
- USES
- DEPENDS-ON
- There is a cardinality notation which corresponds to Database Modelling 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
See also:
- Integrated Development Environment
- Object-modeling technique
- Object-oriented
- ArgoUml, an open source design tool
- XMI, a standard XML-based format for exchanging UML models.
Article based on Unified Modeling Language at FOLDOC, used with permission.
Message board for UML at [1]