Technique |
Purpose |
Activity Diagram |
Shows behavior with control structure. Can show many objects over many uses, many objects in single use case, or implementation of method. Encourages parallel behavior. |
Class Diagram |
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. |
CRC Cards |
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. |
Deployment Diagram |
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. |
Interaction Diagram |
Shows how several objects collaborate in single use case. |
Package Diagram |
Shows groups of classes and dependencies among them. |
Patterns |
Offers useful bits of analysis, design, and coding techniques. Good examples to learn from; starting point for designs. |
Refactoring |
Helps in making changes to working program to improve structure. Use when code is getting in the way of good design. |
State Diagram |
Shows how single object behaves across many use cases. |
Use Case |
Elicits requirements from users in meaningful chunks. Construction planning is built around delivering some use cases in each iteration. Basis for system testing. |