 |
What is the Unified Modeling Language? |
 |
In software engineering, the Unified
Modeling Language (UML) is a non-proprietary specification language
for object modeling. UML is a general-purpose modeling language that
includes a standardized graphical notation used to create an abstract
model of a system, referred to as a UML model. UML is extendable as it
offers a profile mechanism for customization. If a concept is not
present, it can be introduced by defining a stereotype. The semantics
of extension by profiles has been improved with the UML 2.0 major
revision.
UML is officially defined at the
Object Management Group (OMG) by the
UML metamodel – a Meta-Object Facility metamodel (MOF). Like other MOF-based
specifications, the UML metamodel and UML models may be serialized in
XMI. While UML was designed to specify, visualize, construct, and
document software-intensive systems, UML is not restricted to modeling
software. UML is also used for
business process modeling,
systems engineering modeling, and representing organizational
structures.
UML has been a catalyst for the evolution of model-driven
technologies, such as Model
Driven Engineering (MDE), and
Model Driven Architecture. By
establishing an industry consensus on a graphic notation to represent
common concepts like classes, components, generalization, aggregation,
and behaviours, 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 OMG.History
In the mid nineties there were two popular
object-oriented modeling approaches: 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 OOSE method. 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 the Three Amigos decided that a Unified Modeling Language was
more viable than a Unified Method, and redirected their efforts to
respond to the OMG Request for Proposal (RFP) for an object modeling
language¹.
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.²
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. UML is useful in a variety of engineering problems, from single
process, single user applications to concurrent, distributed systems,
making UML rich but large.
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, Objectory). Since UML has evolved, some of these
methods have been recast to take advantage of the new notation (for
example OMT), and new methods have been created based on UML, such as
Select Perspective and
the Rational Unified Process (RUP).
Modeling
It is 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" — textual
documentation such as written use cases that drive the model elements and
diagrams.
There are three prominent parts of a system's model:
 |
|
 |
| |
 |
Functional Model |
 |
 |
 |
Showcases the functionality of the system from the user's Point of View. |
 |
 |
 |
Includes Use case 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 behaviour of the system. |
 |
 |
 |
Includes Sequence Diagrams, Activity Diagrams and State Machine Diagrams. |
|
|
 |
|
 |
Diagrams
In UML 2.0 there are 13 types of diagrams. To understand them, it is
sometimes useful to categorize them hierarchically.
 |
|
 |
| |
 |
Structure Diagrams |
 |
 |
|
|
Emphasize what things must be in the system being
modeled: |
 |
 |
 |
Class diagram |
 |
 |
 |
Component diagram |
 |
 |
 |
Composite structure diagram |
 |
 |
 |
Deployment diagram |
 |
 |
 |
Object diagram |
 |
 |
 |
Package diagram |
 |
 |
 |
Behavior Diagrams |
 |
 |
|
|
Emphasize what must happen in the system being modeled: |
 |
 |
 |
Activity diagram |
 |
 |
 |
State Machine diagram |
 |
 |
 |
Use case diagram |
 |
 |
 |
Interaction Diagrams |
 |
 |
|
|
Emphasize the flow of
control and data among the things in the system being modeled: |
 |
 |
 |
Collaboration (UML 1.x)/Communication diagram
(UML 2.0) |
 |
 |
 |
Interaction overview diagram (UML 2.0) |
 |
 |
 |
Sequence diagram |
 |
 |
 |
UML Timing Diagram (UML 2.0) |
|
|
 |
|
 |
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.
Concepts
UML uses the following concepts:
 |
|
 |
| |
 |
For Structure |
 |
 |
 |
Actor |
 |
 |
 |
Attribute |
 |
 |
 |
Class |
 |
 |
 |
Component |
 |
 |
 |
Interface |
 |
 |
 |
Object |
 |
 |
 |
Package |
 |
 |
 |
For Behavior |
 |
 |
 |
Activity |
 |
 |
 |
Event |
 |
 |
 |
Message |
 |
 |
 |
Method |
 |
 |
 |
Operation |
 |
 |
 |
State |
 |
 |
 |
Use Case |
 |
 |
 |
For Relationships |
 |
 |
 |
Aggregation |
 |
 |
 |
Association |
 |
 |
 |
Composition |
 |
 |
 |
Depends |
 |
 |
 |
Generalization (or Inheritance) |
 |
 |
 |
Other Concepts |
 |
 |
 |
Stereotype. It qualifies the symbol it is
attached to |
 |
 |
 |
Multiplicity notation |
 |
 |
 |
Role |
|
|
 |
|
 |
 
 |
|
 |
| |
|
|
References |
 |
 |
|
|
Information is taken in whole, or in part, from
Wikipedia,
The Free Encyclopedia - which is a fully independent knowledge resource
that has no affiliation with Select Business Solution. As a
result, Select Business Solutions takes no responsibility for
the accuracy. If you believe the information is wrong, please
contact us and we will investigate. |
 |
 |
|
¹ |
OMG. Object Analysis & Design RFP-1. Retrieved
on 2006-07-02 |
 |
 |
|
² |
UML Specification v. 1.1 (OMG document
ad/97-08-11) |
 |
 |
 |
Ambler, Scott William (2004).
The Object Primer: Agile Model Driven Development with UML 2.
Cambridge University Press. |
 |
 |
 |
Chonoles, Michael Jesse, James A. Schardt
(2003). UML 2 for Dummies. Wiley Publishing. |
 |
 |
 |
Coad, Peter, Eric Lefebvre; Jeff De Luca
(1999). Java Modeling In Color With UML: Enterprise Components
and Process. Prentice Hall. |
 |
 |
 |
Fowler, Martin. UML Distilled: A Brief Guide to
the Standard Object Modeling Language, 3rd ed.,
Addison-Wesley. |
 |
 |
 |
Gooch, Tom.
History of UML. |
 |
 |
 |
acobson, Ivar, Grady Booch; James Rumbaugh
(1998). The Unified Software Development Process. Addison
Wesley Longman. |
 |
 |
 |
Martin, Robert Cecil (2003). UML for Java
Programmers. Prentice Hall. |
 |
 |
 |
Noran, Ovidiu S.. Business Modelling: UML vs.
IDEF (PDF). |
 |
 |
 |
Penker, Magnus, Hans-Erik Eriksson (2000).
Business Modeling with UML. John Wiley & Sons. |
 |
 |
 |
Henderson Sellers, Brian (2006). about UML
profiles. Springer Verlag. MoDELS'2006 Conference, Genova. |
|
|
 |
|
 |
 |
Learn More |
 |
To find out more about how Select Business Solutions can help you
Contact Us today.
|
 |
|