Shows behavior with control structure. Can show many objects over many use cases, many objects in single use case, or implementatiuon of method. Encourages parallel behavior.
Shows static structure of concepts, types, and classes. Concepts show how users think about the world; types show interfaces of software components; classes show implementation of software components.
Helps get to essence of class's purpose. Good for exploring how to implement use case. Use if getting bogged down with details or if learning object approach to design.
Shows physical layout of components on hardware nodes.
Design by Contract
Provides rigorous definition of operation's purpose and class's legal state. Encode these in class to enhance debugging.
Shows how several objects collaborate in single use case.
Shows groups of classes and dependencies among them.
Offers useful bits of analysis, design, and coding techniques. Good examples to learn from; starting point for designs.
Helps in making changes to working program to improve structure. Use when code is getting in the way of the design.
Shows how single object behaves across many use cases.
Elicits requirements from users in meaningful chunks. Construction planning is built around delivering some use cases in each iteration. Basis for system testing.