Datasheet
10
Part I ✦ An Introduction to UML
is not complete, modelers will not be able to use it without customization. If it is
exhaustive — well, it just can’t be. Instead, the OMG adopted the second goal.
Goal 2: Furnish extensibility and specialization mechanisms to extend
the core concepts
In overly simplified terms, the core concepts should represent the old 80/20 rule.
We should be able to build 80 percent of the systems out there with 20 percent of
the conceivable concepts. When these core concepts are not enough, there should
be a way to build on them to get what we need.
Wherever possible a modeler should not have to invent entirely new concepts.
Users should be able to use concepts already defined by UML. There are at least
three ways that UML enables modelers to create new model elements:
✦ The core defines a number of fundamental concepts that may be combined to
create the new concept.
✦ The core provides multiple definitions for a concept.
✦ UML supports the ability to customize a concept by specializing one or more
of its definitions. (To specialize means to use an existing definition and then
override and/or add elements to it.)
A UML-defined solution for wholesale extensibility is a profile. A profile is basically
an implementation of UML for a specific domain, such as a particular technology
platform or a specific line of business. A profile predefines a set of model elements
that are unique or simply common to the target environment. In this manner, pro-
files tailor the modeling elements so that the modeler can represent his environ-
ment more accurately than is possible with generic UML but without losing any of
the semantic clarity of UML concepts.
Goal 3: Support specifications that are independent of particular
programming languages and development processes
One very valuable reason for modeling is to separate the requirements from the
implementation. Tying UML to a particular language automatically alienates every-
one not using that language. An implementation also ties UML to a point in time. For
example, when the programming language changes, UML becomes obsolete until it
can be brought up to date.
However, UML must map to the common object-oriented design constructs defined
in most OO languages. This alignment will support code generation and reverse
engineering, the integration of the modeling and coding environments. But rather
than alter UML to conform to languages, the mapping is accomplished through pro-
files that define the relationships between the model elements and the implementa-
tion constructs. Using a separate mapping layer effectively decouples, or separates,
UML from the implementation languages, allowing both to evolve at their own pace.
03 526049 Ch01.qxd 8/20/03 11:47 PM Page 10