Chapter 6. Sequence and Collaboration Diagrams

This chapter focuses on sequence and collaboration diagrams. Sequence diagrams depict the dynamic behavior of elements that make up a system as they interact over time. Collaboration diagrams depict the behavior of elements as they interact over time and are related in space. As an architecture-centric process focuses on the architecture of a system across iterations, it is important to understand how elements that make up a system interact and collaborate with one another to provide the functionality of the system. We can use this information to determine how best to develop a system. This allows architects, designers, and developers to ensure that the system, when implemented, satisfies its requirements.

There is some redundancy between sequence and collaboration diagrams in that they both show how elements interact over time. However, the emphasis of each diagram is somewhat different. Sequence diagrams allow you to focus more on the time line in which events occur, while collaboration diagrams make it easier to show relationships between objects.

First, I introduce sequence and collaboration diagrams and how they are used. Next, I discuss roles that classes, objects, associations, and links play in an interaction and collaboration. Then, I go over the communications they exchange when playing these roles. Finally, I discuss how to capture interactions and collaborations. Many details that were not fleshed out in Chapter 2 are more fully elaborated here, and throughout the chapter, I include suggestions relating to sequence and collaboration diagrams.

Interaction modeling is a specialized type of behavioral modeling concerned with modeling how elements interact over time. Collaboration modeling is a specialized type of behavioral modeling concerned with modeling how elements relate to each other as they interact over time. Using the UML, you can communicate how elements interact over time and how they are related using collaboration diagrams. You usually apply interaction and collaboration modeling during analysis and design activities to understand the requirements and determine how a system will satisfy its requirements. Interaction and collaboration modeling usually start after requirements have matured enough, as determined by your system development process, and continue in parallel with class and object modeling (Chapter 3) throughout a system development process.