1 / 15

CS 4850: Senior Project Object-Oriented Design

CS 4850: Senior Project Object-Oriented Design. OO Analysis OO Design Implementation OO Testing Deployment. OO Analysis OO Design Implementation OO Testing Deployment. Object Relationship Modeling. Class Design. Sub-System Design. Class Modeling. Object Behavior Modeling.

Download Presentation

CS 4850: Senior Project Object-Oriented Design

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS 4850: Senior Project Object-Oriented Design

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

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

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

  5. 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 Major Sections of an OO SDD Other sections and subsection may be added as needed.

  6. 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. 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 onslide #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.

More Related