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. |