 |
UML
2 composite structure diagrams
are used to explore run-time instances of interconnected
instances collaborating over communications links.
Figure 1 depicts a composite
structure diagram for enrolling in a seminar. The
dashed oval, Enroll in Seminar, models a
collaboration. A collaboration enables you to model the
relevant aspects of a cooperation between instances,
indicating the objects and the roles that they take
within the collaboration. The rectangles model
instances of any type of classifier, including classes,
objects, or interfaces. The properties used in the
collaboration, such as the prerequisite seminars that a
student has taken in the past, are optionally indicated
with the classifier boxes. |
|
Figure 1. Composite
structure diagram for enrolling in a seminar.

An alternative form of this diagram
is shown in
Figure 2, something I refer to as a
collaboration-style composite structure diagram. I’d
really like to refer to this as a collaboration diagram,
but my fear is that this name would be confusing for
anyone familiar with UML 1.x’s collaboration diagrams
which are now called
communication diagrams. In this diagram the
collaboration symbol contains a detailed composite
structure diagram, showing how the composite structure
diagrams can effectively be nested within one another.
Figure 2.
Collaboration diagram for the enrolling in a seminar.

It is interesting to note that UML
composite structure diagrams are very similar to
object role model (ORM) diagrams in notation.
Although the two diagrams explore similar issues,
structure, they do so in different ways. ORM diagrams
are very good for explored detailed relationships
between entities whereas the focus of composite
structure diagrams is on exploring collaborations
between entities.
To be honest I don’t find composite
structure diagrams to be of much use. I would much
rather use
UML sequence diagrams for exploring a collaboration
because the notation is much more robust and because far
more developers understand the notation.
This artifact description is excerpted from Chapter 11 of
The Object Primer 3rd Edition: Agile Model Driven
Development with UML 2.
 |
|
The Object Primer 3rd Edition: Agile Model Driven
Development with UML 2 is an
important reference book for agile modelers,
describing how to develop 35
types of agile
models including all 13
UML 2 diagrams.
Furthermore, this book describes the techniques
of the
Full Lifecycle Object Oriented Testing
(FLOOT) methodology to give you the fundamental
testing skills which you require to succeed at
agile software development. The book also
shows how to move from your agile models to
source code (Java examples are provided) as well
as how to succeed at implementation techniques
such as
refactoring and
test-driven development
(TDD). The Object Primer also includes a
chapter overviewing the critical database
development techniques (database refactoring,
object/relational mapping,
legacy analysis, and
database access coding) from my award-winning
Agile Database Techniques
book. |
 |
|
Agile Modeling: Effective Practices for Extreme
Programming and the Unified Process is the seminal
book describing how agile software developers approach
modeling and
documentation. It describes principles and
practices which you can tailor into your existing
software process, such as
XP, the
Rational Unified Process (RUP), or the
Agile Unified Process (AUP), to streamline your
modeling and documentation efforts. Modeling and
documentation are important aspects of any software
project, including agile projects, and this book
describes in detail how to
elicit requirements,
architect, and then
design your system in an agile manner. |
 |
|
The Elements of UML 2.0 Style describes a collection
of standards, conventions, and
guidelines
for creating effective
UML diagrams. They are based on sound, proven
software engineering principles that lead to diagrams
that are easier to understand and work with. These
conventions exist as a collection of simple, concise
guidelines that if applied consistently, represent an
important first step in increasing your productivity as
a modeler. This book is oriented towards
intermediate to advanced UML modelers, although there
are numerous examples throughout the book it would not
be a good way to learn the UML (instead, consider
The Object Primer). The book is a brief 188
pages long and is conveniently pocket-sized so it's easy
to carry around. |
I actively work with clients around the world to
improve their information technology (IT) practices as
both a mentor/coach and trainer. A full
description of what I do, and how to contact me, can be
found here.
The notation used in these
diagrams, particularly the hand
drawn ones, may not conform
perfectly to the current version
of the UML for one or more of
reasons:
- The notation may have
evolved from when I
originally developed the
diagrams. The UML
evolves over time, and I may
not have kept the diagrams
up to date.
- I may have gotten it
wrong in the first place.
Although these diagrams were
thoroughly reviewed for the
book, and have been reviewed
by thousands of people
online since then, an error
may have gotten past of us.
We're only human.
- I may have chosen to
apply the notation in
"non-standard" ways.
An agile modeler is more
interested in created models
which communicate
effectively than in
conforming to notation rules
set by a committee.
- It likely doesn't matter
anyway, because the
modeling tool(s) that
you're using likely won't
fully support the current
version of the UML notation
perfectly anyway.
Bottom line is that you're
going to be constrained by
your tools anyway.
If you're really concerned
about the nuances of "official"
UML notation then read the
current version of the
UML specification.
|