Introducing the Software Development Process
o Describe the Object-Oriented Software Development (OOSD) process
o Describe how modeling supports the OOSD process
o Explain the purpose, activities, and artifacts of the following OOSD workflows: Requirements Gathering, Requirements Analysis, Architecture, Design, Implementation, Testing, and Deployment
Examining Object-Oriented Technology
o Describe how OO principles affect the software development process
o Describe the fundamental OO principles
Choosing an Object-Oriented Methodology
o Explain the best practices for OOSD methodologies
o Describe the features of several common methodologies
o Choose a methodology that best suits your project
Determining the Project Vision
o Interview business owners to determine functional requirements of the software system
o Analyze interview results to identify NFRs, risks, and constraints
o Create a project Vision document from the results of the interviews and risk analysis
Gathering the System Requirements
o Plan for the process of gathering requirements
o Plan for the stakeholder interviews to validate and refine the FRs and NFRs from the Vision document
o Document the system in the System Requirements Specification (SRS) from all requirements sources,/li>
Creating the Initial Use Case Diagram
o Identify and describe the essential elements in a UML Use Case diagram
o Develop a Use Case diagram for a software system based on the SRS
o Record Use Case scenarios for architecturally significant Use Cases
Refining the Use Case Diagram
o Document a Use Case and its scenarios in a Use Case form
o Recognize and document Use Case and Actor inheritance
o Recognize and document Use Case dependencies
o Identify the essential elements in an Activity diagram
o Validate a Use Case with an Activity diagram
Determining the Key Abstractions
o Identify a set of candidate key abstractions
o Identify the key abstractions using CRC analysis
Constructing the Problem Domain Model
o Identify the essential elements in a UML Class diagram
o Construct a Domain model using a Class diagram
o Identify the essential elements in a UML Object diagram
o Validate the Domain model with one or more Object diagrams
Creating the Analysis Model Using Robustness Analysis
o Explain the purpose and elements of the Design model
o Identify the essential elements of a UML Collaboration diagram
o Create a Design model for a use case using Robustness analysis
o Identify the essential elements of a UML Sequence diagram
o Generate a Sequence diagram view of the Design model
Introducing Fundamental Architecture Concepts
o Justify the need for the architect role
o Distinguish between architecture and design
o Describe the SunTone Architecture Methodology
Exploring the Architecture Workflow
o Describe the Architecture workflow
o Describe the diagrams of the key architecture views
o Select the Architecture type
o Create the Architecture workflow artifacts
Creating the Architectural Model for the Client and Presentation
o Explore user interfaces
o Document a graphical user interface (GUI) application in the Client tier of the Architecture model
o Document a web user interface (Web UI) application in the Presentation tier of the Architecture model
Creating the Architectural Model for the Business Tier
o Document the persistence mechanism in the Resource tier of the Architecture model
o Document the persistence integration mechanism in the Integration tier of the Architecture model
Creating the Solution Model
o Create a Solution model for a GUI application
o Create a Solution model for a Web UI application
Creating the Solution Model
o Create a Solution model for a GUI application
o Create a Solution model for a Web UI application
Refining the Domain Model
o Refine the attributes of the Domain model
o Refine the relationships of the Domain model
o Refine the methods of the Domain model
o Declare the constructors of the Domain model
Applying Design Patterns to the Solution Model
o Define the essential elements of a software pattern
o Describe the Composite pattern
o Describe the Strategy pattern
o Describe the Observer pattern
o Describe the Abstract Factory pattern
Modeling Complex Object State Using Statechart Diagrams
o Model object state
o Describe techniques for programming complex object state