The soft req. outline on page 291 is the structured analysis version though it can be used as a guide for OO Analysis as well. Any of the OOA&D books out there can give you their version for the Requirements Model - Jacobson would include Context Diagram, Domain Object Model (I refer to as conceptual model), Use Case Model, and Interfaces - some would add CRC cards and Collaboration Diagrams. And of course a plain old text list of requirements saying what you are going to deliver in terms of functionality of the system. For another version of this I will include a long quote from the book by James Rumbaugh and others on OMT from page 281: Analysis The goal of analysis is to develop a model of what the system will do. The model is expressed in terms of objects and relationships, dynamic control flow, and functional transformations. The process of capturing requirements and consulting with the requestor should continue throughout analysis. 1. Write or obtain an initial description of the problem (Problem Statement) 2. Build an Object Model - Identify object classes - Begin a data dictionary containing descriptions of classes, attributes and associations - Add associations between classes - Add attributes for objects and links - Organize and simplify object classes using inheritance - Test access paths using scenarios and iterate above steps - Group classes into modules, based on close coupling and related function Object Model = object model diagram + data dictionary 3. Develop a Dynmaic Model - Prepare scenarios of typical interaction sequences - Identify events between objects and prepare an event trace for each scenario - Prepare an event flow diagram for the system - Develop state diagram for each class that has important dynamic behavior - Check for consistency and completeness of events shared among state diagrams Dynamic Model = state diagrams + global event flow diagram 4. Construct a Functional Model - Identify input and output values - Use data flow diagrams as needed to show functional dependencies - Describe what each function does - Identify constraints - Specify optimization criteria Functional Model = data flow diagrams + constraints 5. Verify, iterate, and refine the three models above - Add key operations that were discovered during preparation of the functional model to the object model. Do not show all operations during analysis as this would clutter the object model; just show the most important operations. - Verify that the classes, associations, attributes, and operations are consistent and complete at the chosen level of abstractions. Compare the three models with the problem statement and relevant domain knowledge, and test the models using scenarios. - Develop more detailed scenarios (including error conditions) as variations on the basic scenarios. Use these "what-if" scenarios to further verify the three models. - Iterate the above steps as needed to complete the analysis Analysis Document = Problem statement + Object Model + Dynamic Model + Functional Model Hope this helps,