Presentation is loading. Please wait.

Presentation is loading. Please wait.

Object-Oriented Design

Similar presentations


Presentation on theme: "Object-Oriented Design"— Presentation transcript:

1 Object-Oriented Design
CS 4850: Senior Project Object-Oriented Design

2 OOA and OOD - The Big Picture
OO Analysis OO Design Implementation OO Testing Deployment Class Design Sub-System Design Message Responsibilities OO Analysis OO Design Implementation OO Testing Deployment Object Relationship Modeling Class Behavior

3 Mapping OOA to OOD Attributes Operations Collaborators
Design Patterns (domain Objects) Responsibilities Design Subsystem Design Class/Object Design Message Use Cases Object Behavior Model Class Model Object Relatio- nships Attributes Operations Collaborators

4 Terminology OOA Model OOD Model Classes Attributes Methods
- Design is answering the “How” question! Classes Attributes Methods Relationships Behavior OOA Model Objects Data Structures Algorithms Messaging Control OOD Model

5 Major Sections of an OO SDD
Other sections and subsection may be added as needed. Table of Contents 1. Introduction 1.1 Purpose 1.2 Scope 1.3 Definitions, acronyms, abbreviations 1.4 References 2. Design Overview 2.1 Introduction 2.2 System Architecture 2.3 System Interfaces 2.4 Constraints and Assumptions 3. System Object Model 3.1 Introduction 3.2 Subsystems 3.3 Subsystem Interfaces 4. Object Descriptions (Object Design) 4.1 Objects in Subsystem 1 4.2 Objects in Subsystem 2 5. Object Collaboration (Process View) 5.1 Objects in Subsystem 1 5.2 Objects in Subsystem 2 6. Dynamic Model State and sequence diagrams 7. Data Design 8. Non-Functional Requirements 9. Supplementary Documentation

6 Partitioning the Analysis Model
Step 1: System Design (1) Partitioning the Analysis Model - From your SRS description, identify potential subsystems. A subsystem is a self-contained and highly-independent groups of classes that define a main function of the system. - Don't force subsystems to your project is not applicable! - A subsystem has: - a well-define interface (check use-cases) - reasonable number of classes - classes that communicate with each others - possibly some internal subsystems. (check use-cases)

7 Partitioning the Analysis Model
Step 1: System Design (2) Partitioning the Analysis Model - In section 3 of the SDD (see slide #5), provide a description for each subsystem and its interface. (separate table for each subsystem) - Provide a collaboration diagram to illustrate interactions among the subsystems. Consider using UML package notation to represent subsystems.

8 Step 2: Object Design (1) Here, focus on the detailed design of your objects (attributes and methods) and their messages. Apply the following design activities: 1 - Algorithm design 2 - Data structure design Make sure to adhere to “information Hiding” and “functional independence” concepts as you design your objects.

9 Step 2: Object Design (2) Object Description
For each class in each subsystem, provide object description that includes interface description and implementation description. Interface description is a listing all message that an object of the class can respond to (i.e., all public methods it provides to its users). Implementation description is the internal (hidden) details of the operations that implement the interface methods. Follow the organization in section 4 of the SDD, using table format for each class.

10 Step 2: Object Design (3) Algorithm Design
For each class operation, provide an algorithmic description (pseudocode) as a self-contained module. Consider dividing complex operations into separate smaller operations, such that each smaller operation performs a well-defined functions. Apply stepwise refinement, such that: - define operation interfaces (list of parameters if any) - fill-in operation body sections - refine body details as needed The level of details of your algorithmic description should be sufficient enough so that the implementer can translated it to source code without help from the designer.

11 Step 2: Object Design (4) Data Structure Design
Define needed data structures of the class (if any) in conjunction with class operations. Document your data structures in section 7 of the SDD (see slide #5). Organize this section (sub-headings) similar to section 5 if your project is divided into subsystems.

12 Step 2: Object Design (5) - Create a specification class diagram:
- add classes and relationships needed for modeling the solution (classes of interest to the developer) - add more details into individual classes (attributes and operations details) - Expand the class diagram in the SRS to include: - other classes and relationships needed for modeling the solution (those are classes of interest to you - the developer) - details of new classes (attributes and operations)

13 Step 3: Object Collaboration
In section 5 of the SDD (see slide #5), provide description of collaborations between objects of each subsystems. Provide a UML object collaboration diagram to illustrate potential collaborations among objects of each subsystem. Notice that collaboration is required when a class cannot fulfill all of its responsibilities on its own (i.e., the class doesn’t have method(s) to manipulate its attributes).

14 Feel free to modify any template you choose to fit your project design description as long as you include the sections outlined on slide #5. You may reuse your SRS template with the sections outlined on slide #5. For sections 4 of the SDD (slide #5), you can take the tables from the SRS and expand them to include design details for each class method and attributes.

15


Download ppt "Object-Oriented Design"

Similar presentations


Ads by Google