UML 2 Composite Structure Diagram*

Scott W. Ambler
 
   Home  |  AMDD  |  Best Practices  |  Architecture  |  Requirements  |  Analysis  |  Design  |  Documentation  |  Models  |  Modeling Style  |  Contact Us  |  Mailing List  |  FAQ
Recently reviewed 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.

 

Source

This artifact description is excerpted from Chapter 11 of The Object Primer 3rd Edition: Agile Model Driven Development with UML 2.

 

Translations

 

Suggested Reading

The Object Primer 3rd Edition: Agile Model Driven Development (AMDD) 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   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.
Elements of UML 2.0 Style   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.

 

Let Me Help

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

 

Disclaimer

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.

 


Copyright © 2003-2010 Scott W. Ambler

This site owned by Ambysoft Inc.
Agile Data (AD)  |  Agile Unified Process (AUP)  |  Enterprise Unified Process (EUP)  |  Disciplined Agile Delivery (DAD)  |  My Writings   |  IT Surveys  

Follow Scott W. Ambler on Twitter