Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad 03-27-2007-Tuesday Class will start momentarily. Please Stand By … CS 8532: Advanced Software.

Similar presentations


Presentation on theme: "CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad 03-27-2007-Tuesday Class will start momentarily. Please Stand By … CS 8532: Advanced Software."— Presentation transcript:

1 CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad 03-27-2007-Tuesday Class will start momentarily. Please Stand By … CS 8532: Advanced Software Engineering Dr. Hisham Haddad

2 CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad OOD for Class Project Here is what you need to do for your class project...

3 CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Software Design Documentation (1) Please review the “OOD Overview” slides posted on the course website (Project page). Class project design will focus only on the component-level design. That is, the detailed design of class attributes (variables) and methods. The SDD (our last submission) will include this information: SRS details + component-level design RUP templates are more appropriate for capturing and expressing OOD details. Note section names and order may vary among documents.

4 CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Software Design Documentation (2) Since there no single template for OO SDD, we’ll modify the SRS template to capture major sections of SDD shown on the following slide. Section 6 (object design) is the major section. We’ll expand tables of the SRS to include more design details about class variables and methods. Section 5 (system design) is relevant when the system can be divided into smaller subsystems. A subsystem should be a major part that stands on its own (completely functional systems). If it doesn’t then it is not a subsystem. Update diagrams as per changes made during the design phase, and diagrams missing from the SRS should be included.

5 CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad RUP Major Sections of OO SDD Other sections and subsections may be added as needed. Table of Contents 1. Introduction 1.1 Purpose 1.2 Scope 1.3 Definitions, acronyms, and abbreviations 1.4 References 2. Glossary 3. Use Cases 4. Design Overview 4.1 Introduction 4.2 System Architecture 4.3 System Interfaces 4.4 Constraints and Assumptions 5. System Object Model (System Design) 5.1 Introduction 5.2 Subsystems 5.3 Subsystem Interfaces 6. Object Descriptions (Object Design) 6.1 Objects in Subsystem 1 (We’ll use table format as in the SRS) 6.2 Objects in Subsystem 2 (We’ll use table format as in the SRS)..... 6.n Sequence Diagrams 7. Object collaboration (Process View) 7.1 Objects in Subsystem 1 7.2 Objects in Subsystem 2.... 8. Data design 9. Dynamic Model 9.1 State Diagrams 9.1.1 State Diagram 1 9.1.2 State Diagram 2..... 10. Non-functional requirements 11. Supplementary Documentation

6 CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Step 1: System Design (1) Partitioning the Analysis Model if needed - 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. - A subsystem has: - a well-define interface (check use-cases) - reasonable number of essential classes - classes that communicate with each others - possibly some internal subsystems. (check use-cases) Consider organizing subsystems in layers for better management and control (such as GUI layer, computing subsystems(s) layer, data management layer, etc…).

7 CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Step 1: System Design (2) Partitioning the Analysis Model if Needed - In section 5 of the SDD (see slide #5), provide a description for each subsystem and its interface. (separate table for each subsystem) - Provide a collaboration diagrams to illustrate interactions among the subsystems. Consider using UML package notation to represent subsystems. Note that for small systems, this may not be a necessary step. Don’t artificially create subsystems.

8 CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Step 2: Object Design (1) Here, focus on the detailed design of your objects (attributes and methods) and their messages. Apply the following activities of the design process (slide #23 of ODD Overview slides): 1 - Data structure design 2 - Algorithm design Make sure to adhere to “information Hiding” and “functional independence” concepts as you design your objects.

9 CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Step 2: Object Design (2) - Create a specification class diagram: (see slides #14 and 15 of OOD Overview slides) - 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) - Include the class diagram at beginning of section 6 (see slide #5), before the class description tables.

10 CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Step 2: Object Design (3) Data Structure Design For each attribute (variable) in each class, you need to provide more information about it (add columns to top part of the class table, section 6). Such information include, but note limited to, the type, initial value, valid range of values (upper and lower values), visibility (public or private), what it represent ($, age, grade, etc…), and possible other information… For aggregate data structures (arrays, records, lists, etc…), define needed data structures (if any) in conjunction with class operations. Document your data structures and database tables in section 8 of the SDD (see slide #5).

11 CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Step 2: Object Design (4) Algorithm Design For each operation of the class, provide an algorithm description 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.

12 CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Step 3: Object Collaboration In section 7 of the SDD (see slide #5), provide description of collaborations between objects of each subsystems (if subsystems are modeled). Provide UML collaboration diagrams to illustrate potential collaborations between objects of each subsystem (or the entire system). 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). Most common collaborations are part-of and has-knowledge-of. Reuse the diagram you have in the SRS and add to it newly added control objects.

13 CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Please Remember… - The SDD has to be self-contained document. Thus, it should includes all the sections outlined in slide #5. - SDD content should be updated from that of the SRS to include information and modeling of control objects. Those are implemented related classes that you did not include in the SRS (classes of interest to the developer) - Please update use-case descriptions as you fill-in the details of the object design (methods and attributes). - Most design for your project effort is spent on the object design (algorithmic and data structures details) - Please make sure to include information and/or diagrams that were missing from your SRS.

14 CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad SDD Submission Please submit a complete design document. 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 section outlined on slide #5. Please include references when appropriate. Please review your SDD in conjunction with your SRS and check for flow, consistency, and potential updates to the SRS (if any) Due date: Friday April 20, 2007 by 5:00pm. This is a firm deadline since you’ll be working on the final exam during the following week (Monday 4/23). The cover page should be similar to that of the SRS and to include name(s), project title, class, semester, and submission date. PDF format is preferred when possible.


Download ppt "CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad 03-27-2007-Tuesday Class will start momentarily. Please Stand By … CS 8532: Advanced Software."

Similar presentations


Ads by Google