SDD Slides

advertisement
CS 8532: Adv. Software Eng. – Spring 2009
Dr. Hisham Haddad
03-25-2009, Wednesday
CS 8532: Advanced Software Engineering
Dr. Hisham Haddad
Class
will
start
momentarily.
Please Stand By …
CS 8532: Adv. Software Eng. – Spring 2009
Dr. Hisham Haddad
Class Project
OO Design Document
Here is what you need to
do for your class project SDD...
CS 8532: Adv. Software Eng. – Spring 2009
Dr. Hisham Haddad
Software Design Documentation (1)
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 that section names and order may vary
among documents.
CS 8532: Adv. Software Eng. – Spring 2009
Dr. Hisham Haddad
Software Design Documentation (2)
Since there no single template for OO SDD, we’ll modify (reuse) the
SRS template to capture major sections of SDD shown on the
following slide.
Section 3 of the SRS (Specific Requirements) is the major section.
We’ll expand the class tables of the SRS to include more design
details about class variables and methods.
Update diagrams as per changes made during the design phase,
and diagrams missing from the SRS should be included in the
SDD.
CS 8532: Adv. Software Eng. – Spring 2009
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. Design Overview
3.1 Introduction
3.2 System Architecture
3.3 System Interfaces
3.4 Constraints and Assumptions
4. System Object Model (System Design)
4.1 Introduction
4.2 Subsystems
4.3 Subsystem Interfaces
5. Object Descriptions (Object Design)
5.1 Objects in Subsystem 1
(Use table format as in the SRS)
5.2 Objects in Subsystem 2
(Use table format as in the SRS)
...
6. Object collaboration Diagrams
7. Sequence Diagrams
8. Object Behavior Diagrams
9. Data Design
10. Supplementary Documentation
CS 8532: Adv. Software Eng. – Spring 2009
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…).
CS 8532: Adv. Software Eng. – Spring 2009
Dr. Hisham Haddad
Step 1: System Design (2)
Partitioning the Analysis Model if Needed
- In section 4 of the SDD (slide #5), provide a description for
each subsystem and its interface. (use 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.
CS 8532: Adv. Software Eng. – Spring 2009
Dr. Hisham Haddad
Step 2: Object Design (1)
Here, focus on the component-level design of your objects
(attributes and methods) and their messages.
1 - Data structure design
2 - Algorithm design
Make sure to adhere to “information Hiding” and “functional
independence” concepts as you design your objects.
CS 8532: Adv. Software Eng. – Spring 2009
Dr. Hisham Haddad
Step 2: Object Design (2)
- Create a specification class diagram by expanding 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
designer)
- details of new classes (attributes and operations)
- Include the class diagram at beginning of section 5 (slide #5),
before the class description tables.
CS 8532: Adv. Software Eng. – Spring 2009
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 5). 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 9 (Data Design) of the SDD (slide
#5).
CS 8532: Adv. Software Eng. – Spring 2009
Dr. Hisham Haddad
Step 2: Object Design (4)
Algorithmic 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.
CS 8532: Adv. Software Eng. – Spring 2009
Dr. Hisham Haddad
Step 3: The Modeling (1)
In section 6 of the SDD (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 .
Revise UML object collaboration diagrams you have in the SRS
to include newly added control objects during the design
phase.
CS 8532: Adv. Software Eng. – Spring 2009
Dr. Hisham Haddad
Step 3: The Modeling (2)
Revise UML sequence diagrams you have in the SRS to include
newly added control objects during the design phase and to
reflect any changes made to the use-cases. Include them in
section 7 of the SDD (slide #5).
Revise UML state transition diagrams you have in the SRS to
include newly added control objects during the design phase.
Include them in section 8 of the SDD (slide #5).
CS 8532: Adv. Software Eng. – Spring 2009
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)
- Most design effort is spent on the object design (algorithmic
and data structures details)
- Make sure to include information and/or diagrams that were
missing from your SRS.
CS 8532: Adv. Software Eng. – Spring 2009
Dr. Hisham Haddad
SDD Submission
Please submit a complete SDD. 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: Monday April 20, 2009. This is a firm deadline since
you’ll be working on the final exam from 4/21).
The cover page should be similar to that of the SRS and to include
name(s), project title, class, semester, and submission date.
Word or PDF format.
CS 8532: Adv. Software Eng. – Spring 2009
Dr. Hisham Haddad
Last Slide
Download