Class Project SDD Slides

advertisement
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Class Project
OO Design Document
Here is what you need to
do for your class project SDD...
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Software Design Documentation
Class project design will focus on component-level design. That is,
the detailed design of class attributes (variables) and methods.
Since there no single template for OO SDD, we’ll modify (reuse) the
SRS document to capture major sections of SDD shown on the
following slide.
Section 3 of the SRS (Specific Requirements) is the major section
for your SDD. You’ll expand the class tables of the SRS to
include more design details about class variables and methods.
You’ll need to update diagrams in the SRS as per changes made
during the design phase, and any diagrams missing from the
SRS should be included in the SDD submission.
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
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. System Object Model (System Design)
2.1 Introduction
2.2 Subsystems
2.3 Subsystem Interfaces
3. Object Descriptions (Object Design)
3.1 Objects in Subsystem 1
(Use table format as in the SRS)
3.2 Objects in Subsystem 1
(Use table format as in the SRS)
...
4. Sequence Diagrams
(Update as needed)
5. Object Collaboration Diagrams
(Update as needed)
6. Object Behavior Diagrams
(Update as needed)
7. Data Design
(Data structures and data table design)
8. Other Design Requirements
(Any design requirements specific for your
project)
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
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.
Subsystem design goes in section 2 as outlined.
- 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)
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Step 1: System Design (2)
(Partitioning the Analysis Model if needed)
- In section 2 of the SDD (slide #3), provide a description for
each subsystem and its interface. (use separate table for
each subsystem)
- Provide (in section 2 of the SDD) 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 for our project. Must
be a natural characteristic of the application.
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
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 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Step 2: Object Design (2)
(Class Diagram)
- Create a specification class diagram by expanding the
conceptual class diagram you created for the SRS. The new
diagram should 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 3 of the
SDD (slide #3), before the class description tables.
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
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, SRS 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 7 (Data Design) of the SDD (slide
#3).
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Step 2: Object Design (4)
(Algorithmic Design)
For each operation of the class, provide an algorithm description
as a self-contained module (add a new column to the table for
this purpose). Consider dividing complex operations into
separate smaller operations, such that each smaller operation
performs a well-defined functions.
Apply stepwise refinement concept, such that:
- define operation interfaces (list of parameters if any)
- fill-in operation body sections
- refine body details as needed
Note: 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 you (the designer).
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Step 3: Modeling Diagrams
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 revised
diagrams in section 6 of the SDD (slide #3).
Revise UML object collaboration diagrams you have in the SRS
to include newly added control objects during the design
phase. Include revised diagrams in section 7 of the SDD
(slide #3).
Revise UML state transition (behavior) diagrams you have in the
SRS to include newly added control objects during the design
phase. Include revised diagrams in section 8 of the SDD
(slide #3).
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
Please Remember…
- The SDD has to be self-contained document. Thus, it should
includes all the sections outlined in the TOC on slide #3.
- SDD content should be updated from that of the SRS to
include information and modeling of control objects. Those
are implementation related classes that you did not include in
the SRS (boundary and control classes)
- 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.
- Any other design requirements specific to your application
go into section 8.
CS 3610: Software Engineering – Spring 2009
Dr. Hisham Haddad – CSIS Dept.
SDD Submission
Submit a complete SDD as outline in slide #3. When appropriate,
include references toward the end of the document.
Review your SDD in conjunction with your SRS and check for flow,
consistency, and potential updates to the SRS (if any)
Due date is Tuesday April 21, 2009. This is a firm deadline since we
will NOT have class meeting the following week (See syllabus,
Instructor Absence section).
The cover page should be similar to that of the SRS and to include
name(s), project title, class, semester, and submission date.
Bring printed copy to class and send electronic copy to the
instructor (Word or PDF format).
CS 3610: Software Engineering – Spring 2009
Last Slide
Dr. Hisham Haddad – CSIS Dept.
Download