Computing Topics
Scotland   
The rest of the World   
Me again
The Unified Modelling Language
Background
The Unified Modelling Language or UML has been developed as a
notation for software engineering by Grady Booch, James Rumbaugh
and Ivar Jacobsen of Rational Corp. These three engineers each
had published object oriented methodologies and there were
strongly divided opinions amongst OO practitioners as to which
methodology was best.
To avoid these wars escalating the 'three amigos' got
together(over a period) and produced a notation which
encompassed the best of their individual notations and which
worked with most OO methods. The notation was gradually refined
and extendeed and now forms a basis for almost any kind of
software engineering approach whether OO or not.
Strengths of UML
UML has several strengths which lift it above any of the
methods and notations which preceded it:
- Breadth of coverage
- UML covers the entire software lifecycle from
requirements capture through to physical design and
deployment. It encompasses both dynamic and static elements
and provides focus for both timing critical and data
critical systems.
- Standardisation
- UML has brought together the 3 main strands of OO
notation. It has also been accepted by Coad who was a
minority player. Only Schlaer-Mellor stand apart from UML.
Standardisation of notation is vital for the software
industry if it is to move on to more important topics and
start to share ideas in a consistent way as other
engineering disciplines do.
- Industry backing
- Most tool manufacturers, recognising both the weight of
support and the advantages of standardisation, are providing
UML support in their CASE tools. More will surely follow.
- Extensibility
- UML provides a mechanism for extending the notation by
means of 'stereotypes'. This is undoubtedly a good thing but
does lead to some unfortunate side effects(see below).
Weaknesses of UML
UML has in my opinion three serious deficiencies:
- Lack of Graphical Separation
- UML uses a relatively small number of shapes to
represent a large number of concepts. This homogeny results
in diagrams where it is difficult to determine content
easily. It is even at times difficult to determine what the
diagram represents at first glance(classes or objects,
static or dynamic relationships)
- Overuse of Stereotypes
- This is a related point to the above but takres it a
stage further. Many of the design elements which had a
distinct appearance in the individual notations have been
merged and separated only by the stereotype notation.
Examples include: metaclasses, class categories, interface
classes etc. The result is that diagrams cannot be easily
understood visually but rather individual labels must be
read to distinguish the nature of the items. As mentioned
above stereotypes are a great way of adding new
features to the notation but they should not be used for
fundamental OO features.
- Reduced emphasis on Physical Design
- Despite Booch providing a rich and useful set of icons
for physical design, and the fact that none of the other
notations offered anything similar UML has removed many of
these leaving only the package (sometimes stereotyped as
a subsystem, and possibly with COM interface lollipops) and
the Node(whether active or passive) Tasks, processes,
interfaces, implementation, module have all gone the way of
the dodo. Physical design is often neglected by software
engineers and this de-emphasis in UML can only encourage
that trend.
Practical Experiences with UML
In balance I believe UML to be a good thing. I have used it
on several small projects and most recently I have documented a
large non OO system using UML. Primarily I used the Physical
notational elements although State charts and even Object and
Class diagrams were occasionally utilised to illustrate
concepts.
Feedback, even from those not familiar with UML, has been
positive and reinforces my belief that UML can form the basis of
a Universal Modelling language for the software industry whether
describing OO systems or not.
As CASE support improves and the computiung press continue to
use UML in articles practitioners will become familiar with the
notation and use it. Hopefully we will soon be able to compare
designs with the same ease that electronics and civil engineers
have done for decades.
Send feedback on this article to me
here