Not Signed-In
Select and review.
14 APRIL 2011

UML Sequence Diagrams and detailed Object-Oriented Design

"If you figure that preliminary design is all about discovery of classes (aka object discovery), then detailed design is, by contrast, about allocating behavior (aka behavior allocation) – that is, allocating the software functions you've identified into the set of classes you discovered during preliminary design.

When you draw sequence diagrams, you're taking another sweep through the preliminary design, adding in detail.

With preliminary design, you made some informal first guesses at how the classes will interact with each other. Now it's time to make those statements very precise, to turn them into a detailed design that works within the Technical Architecture that you've defined.

You use sequence diagrams to drive the detailed design. But note that we advocate drawing your sequence diagrams in a minimal, quite specific format (which we describe fully in this chapter). There's a direct link between each use case, its robustness diagram, and the sequence diagrams. Just as you drew one robustness diagram per use case, you'll also draw one sequence diagram per use case.


UML 2.0 allows you to draw full–blown flowcharts on your sequence diagrams. However, even though the notation supports it, we consider the practice of drawing flowcharts on sequence diagrams to be inadvisable, because it puts emphasis on the wrong part of the problem.

In large part this is because drawing flowcharts simply misses the point of what you should be thinking about when you draw a sequence diagram. If you're trying to drive a software design from use cases, it's vitally important to get the allocation of operations to classes correct. This allocation of operations to classes tends to be a make–or–break design issue.

In the ICONIX Process, the primary purpose of the sequence diagram is to make this behavior allocation visible so that you get it right. If your mind is on drawing a flowchart, it's not going to be focused on this critically important set of behavior allocation decisions.

Once you've finished all the sequence diagrams for the use cases you're working on in the current release and updated your static model (class diagrams), you need to perform a Critical Design Review (CDR). The CDR forms something of a reality check for your design. We illustrate how to perform effective design reviews in our Use Case Driven book. Once the CDR is done, the implementation stage (coding and unit testing) begins."

(Doug Rosenberg and Matt Stephens, 2007)

Doug Rosenberg and Matt Stephens (2007) 'Use Case Driven Object Modeling with UML – Theory and Practice', Apress

Fig.1 sequence diagram notation.



activity diagrams • agile modellingarchitectureblueprintchart • collaboration diagrams • design • detailed design • diagram • Doug Rosenberg • dynamic behaviour • dynamic view • enterprise architect • eXtreme Programming • Grady Booch • ICONIX • information design • Ivar Jacobson • James Rumbaugh • Matt Stephens • MDG • model driven generation technologies • modelling languagenotation • Object Management Group • object oriented analysis • object-oriented design • object-oriented software • OML • OMT • OOAOOD • OOSE • preliminary design • product designrequirements • sequence diagram • softwaresoftware architecture • static view • structural view • technical architecturetechnologyUMLUnified Modelling Languageusage scenariosuse casesvisual languagevisualisation


Simon Perkins

to Folksonomy

Can't access your account?

New to Folksonomy?

Sign-Up or learn more.