Use Cases | - Define user interaction with the system.
- Underline nouns to identify concepts in the problem domain.
|
Conceptual Model | - Use the underlined nouns from the use cases to create the concepts in the conceptual model.
- Some of the nouns, if they identify simple data types, are used to create attributes of these concepts.
- Create associations between the concepts.
|
System Sequence Diagram | - Create system sequence diagrams for each use case scenario.
- Each sequence event in the diagram corresponds to a user interaction with the system specified by the expanded use case.
|
System Contracts | - Specify post-conditions for each system event in the system sequence diagrams.
- Use the conceptual model to identify objects created, associations formed, and attributes modified.
|
Collaboration Diagram | - Create a collaboration (or sequence) diagram for each system event in the system sequence diagrams.
- Assign responsibilities to classes in the conceptual model to fulfill the post-conditions in the contracts.
- Use associations from the conceptual model in conjunction with patterns (Expert, Creator) to assign responsibilities.
|
Class Diagram | - Add methods and additional attributes which were discovered in the collaboration diagrams to the classes in the conceptual model.
|
Code | - Create classes with their names, attributes and method signatures taken from the class diagram.
- For each method on a class, use the collaboration diagrams to find the sequence of messages generated when the method is called and create at least one line of code for each message.
|