Object-Oriented Analysis and Design CIW Enterprise Developer Series Students can use this appendix as a study guide to locate content within Object-Oriented Analysis and Design that corresponds to specific CIW objectives. Objective Lesson and Section(s) Define object technology and identify its place in the evolution of software engineering. Lesson 1: Introduction to Software Engineering - Evolution of Software Engineering - Object Technology Describe the differences between a structured approach and an objectoriented approach to software development. Lesson 1: Introduction to Software Engineering - Object Technology - Advantages of an Object-Oriented Approach - Disadvantages of an Object-Oriented Approach - Exercise 1-1: Using an object-oriented approach Identify the advantages and disadvantages of an object-oriented approach to software development. Lesson 1: Introduction to Software Engineering - Advantages of an Object-Oriented Approach - Disadvantages of an Object-Oriented Approach Discuss the need for analysis and design. Lesson 1: Introduction to Software Engineering - Analysis and Design Explain the difference between classes and instances. Lesson 2: Understanding the Object Paradigm - Classes Identify the benefits of abstraction and encapsulation. Lesson 2: Understanding the Object Paradigm - Encapsulation - Abstraction Define a simple object model using the "has a" and "uses a" relationships. Lesson 2: Understanding the Object Paradigm - Object Relationships - Exercise 2-1: Using the object paradigm © 2016 ProsoftTraining.com All Rights Reserved. Version 1.07 Object-Oriented Analysis and Design Page 2 Objective Lesson and Section(s) Describe Jacobson's application object types. Lesson 2: Understanding the Object Paradigm - Application Objects Identify the benefits of inheritance. Lesson 3: Inheritance and Polymorphism - Inheritance - Inheriting Attributes - Inheriting Methods - Extending Components with Inheritance - Exercise 3-1: Using inheritance and polymorphism Identify the benefits of polymorphism. Lesson 3: Inheritance and Polymorphism - Polymorphism - Exercise 3-1: Using inheritance and polymorphism Define abstract class. Lesson 3: Inheritance and Polymorphism - Abstract Classes Identify the benefits of multiple inheritance. Lesson 3: Inheritance and Polymorphism - Multiple Inheritance - Exercise 3-1: Using inheritance and polymorphism Define software development life cycle. Lesson 4: Software Development Life Cycle - Software Development Life Cycle Model Describe the Waterfall life cycle model. Lesson 4: Software Development Life Cycle - Waterfall Life Cycle Model Describe the V-Shaped life cycle model. Lesson 4: Software Development Life Cycle - V-Shaped Life Cycle Model Describe the Incremental life cycle model. Lesson 4: Software Development Life Cycle - Incremental Life Cycle Model Describe the Spiral life cycle model. Lesson 4: Software Development Life Cycle - Spiral Life Cycle Model Describe the Unified Process. Lesson 5: The Unified Software Development Process - Software Development Process - The Unified Process - Life Cycle of the Unified Process © 2016 ProsoftTraining.com All Rights Reserved. Version 1.07 Object-Oriented Analysis and Design Page 3 Objective Lesson and Section(s) Identify the phases of the Unified Process. Lesson 5: The Unified Software Development Process - Life Cycle of the Unified Process - Cycles - Phases - Iterations Identify the core workflows of the Unified Process. Lesson 5: The Unified Software Development Process - Core Workflows - Workflows and Iterations Describe the history of the Unified Modeling Language (UML). Lesson 6: The Unified Modeling Language - Introduction to UML Describe the purpose of a modeling language. Lesson 6: The Unified Modeling Language - Introduction to UML - Models Describe the purpose of models. Lesson 6: The Unified Modeling Language - Models Identify UML views. Lesson 6: The Unified Modeling Language - Views Identify the role of CASE tools in the software development process. Lesson 7: Computer-Aided Software Engineering - Introduction to CASE Identify the criteria for selecting a CASE tool. Lesson 7: Computer-Aided Software Engineering - Selecting a CASE Tool Identify the benefits and limitations of CASE tools. Lesson 7: Computer-Aided Software Engineering - Introduction to CASE - Selecting a CASE Tool Install and use Argo/UML. Lesson 7: Computer-Aided Software Engineering - Exercise 7-1: Using Argo/UML Describe the purpose of the requirements workflow. Lesson 8: The Requirements Workflow - Introduction to Requirements Capture Describe the activities of the requirements workflow. Lesson 8: The Requirements Workflow - Activities of the Requirements Workflow © 2016 ProsoftTraining.com All Rights Reserved. Version 1.07 Object-Oriented Analysis and Design Page 4 Objective Lesson and Section(s) Describe the deliverables of the requirements workflow. Lesson 8: The Requirements Workflow - Requirements and the Unified Process Create a list of candidate requirements. Lesson 8: The Requirements Workflow - Exercise 8-1: Creating a candidate requirements document Create a simple domain model. Lesson 8: The Requirements Workflow - Exercise 8-1: Creating a candidate requirements document - Requirements and the Unified Process Identify the actors and use cases of a system. Lesson 9: Use-Case Modeling - Introduction to Use-Case Diagrams - Developing a Use-Case Model Describe the four types of use-case relationship. Lesson 9: Use-Case Modeling - Introduction to Use-Case Diagrams Develop a use-case model to capture project requirements. Lesson 9: Use-Case Modeling - Developing a Use-Case Model - Exercise 9-1: Developing a use-case model Describe the benefits of activity diagrams. Lesson 10: Activity Diagrams - Introduction to Activity Diagrams - Library System Activity Diagrams Interpret activity diagrams. Lesson 10: Activity Diagrams - Introduction to Activity Diagrams - Branches and Merges - Forks and Joins - Library System Activity Diagrams Create activity diagrams to describe use Lesson 10: Activity Diagrams cases. - Introduction to Activity Diagrams - Exercise 10-1: Creating activity diagrams Identify the major goals of user interface design. Lesson 11: Interface Design and Prototyping - User Interface Design Describe the different types of prototypes. Lesson 11: Interface Design and Prototyping - User Interface Prototyping Create a paper prototype. Lesson 11: Interface Design and Prototyping - Exercise 11-1: Defining interface requirements © 2016 ProsoftTraining.com All Rights Reserved. Version 1.07 Object-Oriented Analysis and Design Page 5 Objective Lesson and Section(s) Design a system interface. Lesson 11: Interface Design and Prototyping - Exercise 11-1: Defining interface requirements Use the Backus-Naur Form to create an interface control document. Lesson 11: Interface Design and Prototyping - Specifying System Interfaces - Exercise 11-1: Defining interface requirements Describe the purpose of the analysis workflow. Lesson 12: The Analysis Workflow - Introduction to Analysis - Analysis and the Unified Process Identify analysis classes. Lesson 12: The Analysis Workflow - Analysis Classes Define use-case realization—analysis. Lesson 12: The Analysis Workflow - Use-Case Realizations—Analysis Interpret collaboration diagrams. Lesson 13: Analysis Modeling - Collaboration Diagrams Create collaboration diagrams to illustrate a rough vision of system design. Lesson 13: Analysis Modeling - Collaboration Diagrams - Exercise 13-1: Creating analysis models Create flow-of-events descriptions to accompany collaboration diagrams. Lesson 13: Analysis Modeling - Flow of Events and Special Requirements - Exercise 13-1: Creating analysis models Use CRC cards to aid in developing collaboration diagrams. Lesson 13: Analysis Modeling - Class-Responsibility-Collaboration Cards - Exercise 13-1: Creating analysis models Identify attributes. Lesson 13: Analysis Modeling - Class Analysis - Exercise 13-1: Creating analysis models Identify aggregation and generalization relationships. Lesson 13: Analysis Modeling - Class Analysis - Exercise 13-1: Creating analysis models Identify design subsystems. Lesson 14: The Design Workflow - Design Model - Exercise 14-1: Creating a design workflow Identify design classes. Lesson 14: The Design Workflow - Design Model - Exercise 14-1: Creating a design workflow © 2016 ProsoftTraining.com All Rights Reserved. Version 1.07 Object-Oriented Analysis and Design Page 6 Objective Lesson and Section(s) Use interaction diagrams to assist in creating use-case realizations—design. Lesson 14: The Design Workflow - Design Model - Use-Case Realizations—Design - Exercise 14-1: Creating a design workflow Create a flow-of-events—design. Lesson 14: The Design Workflow - Use-Case Realizations—Design - Exercise 14-1: Creating a design workflow Define implementation requirements. Lesson 14: The Design Workflow - Use-Case Realizations—Design - Exercise 14-1: Creating a design workflow Create deployment diagrams to describe system architecture. Lesson 14: The Design Workflow - Architectural Design - Exercise 14-1: Creating a design workflow Use class diagrams to illustrate system design. Lesson 15: Class Diagrams - Introduction to Class Diagrams - Check Out Asset Class Diagram - Exercise 15-1: Creating class diagrams Describe the difference between reference objects and value objects. Lesson 15: Class Diagrams - Aggregation - Composition Identify when it is appropriate to use associations, aggregation, and composition. Lesson 15: Class Diagrams - Association - Aggregation - Composition Use generalizations to illustrate inheritance. Lesson 15: Class Diagrams - Generalization Interpret sequence diagrams. Lesson 16: Sequence Diagrams - Introduction to Sequence Diagrams - Return Values - Message Conditions - Deletion - Multiplicity - Return Stack © 2016 ProsoftTraining.com All Rights Reserved. Version 1.07 Object-Oriented Analysis and Design Page 7 Objective Lesson and Section(s) Use sequence diagrams to illustrate the interactions between classes. Lesson 16: Sequence Diagrams - Introduction to Sequence Diagrams - Exercise 16-1: Creating sequence diagrams Interpret statechart diagrams. Lesson 17: Statechart Diagrams - Introduction to Statechart Diagrams - States - Transitions - Superstates Develop statechart diagrams to illustrate the internal workings of individual classes. Lesson 17: Statechart Diagrams - Introduction to Statechart Diagrams - Exercise 17-1: Creating statechart diagrams Identify elements of good design. Lesson 18: Design Quality Issues - Elements of Good Design Define cohesion. Lesson 18: Design Quality Issues - Elements of Good Design Define coupling. Lesson 18: Design Quality Issues - Elements of Good Design Use object-oriented design metrics. Lesson 18: Design Quality Issues - Object-Oriented Design Metrics - Chidamber and Kemerer - Metrics for Object-Oriented Design - Exercise 18-1: Applying design metrics Interpret design metrics. Lesson 18: Design Quality Issues - Object-Oriented Design Metrics - Chidamber and Kemerer - Metrics for Object-Oriented Design Describe the implementation process. Lesson 19: The Implementation Workflow - The Implementation Workflow - Implementation and the Unified Process Identify executable components. Lesson 19: The Implementation Workflow - The Implementation Workflow - Identifying Components Generate program code from design classes. Lesson 19: The Implementation Workflow - Generating Code from Design Classes - Exercise 19-1: Performing implementation © 2016 ProsoftTraining.com All Rights Reserved. Version 1.07 Object-Oriented Analysis and Design Page 8 Objective Lesson and Section(s) Define unit testing. Lesson 19: The Implementation Workflow - Unit Testing Create an integration build plan. Lesson 19: The Implementation Workflow - Integration Build Planning - Exercise 19-1: Performing implementation Describe the test workflow. Lesson 20: The Test Workflow - The Test Workflow - Test and the Unified Process Define test case. Lesson 20: The Test Workflow - Test Cases - Test and the Unified Process Define test procedure. Lesson 20: The Test Workflow - Test Procedures - Test and the Unified Process Define test component. Lesson 20: The Test Workflow - Test Components - Test and the Unified Process © 2016 ProsoftTraining.com All Rights Reserved. Version 1.07