A stereotype defines a new type of modeling element in the UML. Use stereotypes to define a new type of modeling element and then apply the definition. For example, you might define the concept of a project and the relationship between the project and the things that make up that project.
In the UML, you
create a stereotype
definition by showing a class representing the stereotype
with a dependency on another class representing the type of modeling
element the stereotype represents. The class representing the new
type of modeling element and the dependency are marked with the
stereotype
keyword, and the class representing the
type of modeling element to which the stereotype applies is marked
with the metaclass
keyword. Each class is shown as
a solid-outline rectangle marked with the keyword enclosed in
guillemets («») or double-angle brackets,
before or above its name. The dependency is shown as a dashed arrow
from the class representing the stereotype to the other class
representing the type of modeling element to which the stereotype
applies.
As I discussed in the beginning of this chapter, rather than have
many different efforts relating to a project management system define
the concept of a project, I can extend the UML to incorporate a
definition of what a project is, which may be reused by all these
other efforts. Rather than have many different efforts relating to a
project management system define the relationship between a project
and the things that make up a project, I can extend the UML to
incorporate a definition of a relationship between a project and the
things that make up a project, which may be reused by all these other
efforts. Figure 9-1, a class diagram, defines the
concept of a project as a Project
stereotype, and
defines the relationship between a project and the things that make
up a project as a Made
Of
stereotype. The Class
metaclass indicates that the
Project
stereotype applies to classes, and the
Association
metaclass indicates that the
Made
Of
stereotype applies to
associations.
In the UML, you apply a stereotype definition to a model element, then call a stereotyped element by showing the name of the new type enclosed in guillemets («») or double-angle brackets, before or above the name of the model element.
Now that I have extended the UML with the concept of a project and
the relationship between a project and the things that make it up, I
can apply these stereotypes. Figure 9-2, a class
diagram, applies the stereotypes defined in Figure 9-1 and shows a development project type named
Development
Project
, and an
infrastructure project type named Infrastructure
Project
. A development project requires and is
made of a development environment, which is described using the
Development Environment
class. An infrastructure
project and is made of a deployment environment or platform, which is
described using the Deployment
Environment
class. The
Development
Project
and
Infrastructure
Project
are
stereotyped using the Project
stereotype, and
their relationships are stereotyped using the Made
Of
stereotype.
Figure 9-3, an object diagram, applies the
stereotypes defined in Figure 9-1, together with
the classes and associations defined in Figure 9-2,
and shows a development project named Proj
Mngmnt
Sys
(which is concerned
with developing a project management system), and an infrastructure
project named Java
Deployment
(which is concerned with deploying a Java runtime environment). The
Proj
Mngmnt
Sys
development project is made of the
Java Dev Env
development environment, which
provides all the Java tools for developing the project management
system. The Java
Deployment
infrastructure project is made of the UNIX Env
deployment environment, which provides the infrastructure or platform
for the Java runtime environment. The objects and links are marked
with the same stereotypes as their classes and associations,
respectively.
18.221.41.214