Upload
guifei-shi
View
2.728
Download
0
Tags:
Embed Size (px)
Citation preview
COMPE 491 Senior Project I
Software Design Documentation
IEEE 1016
IEEE 1016Software Design
• What is software design?– Organization of a software system into modules
(components / classes or other units)
– Behavior and responsibilities of units
– Interactions and collaborations between units
• From Specification to Code Blueprint– Identification of what needs to be coded
(component interfaces and properties) and how this is to be done (method for implementing interfaces and properties) without irrelevant coding details
IEEE 1016 Software Design
• OUTLINE– Introduction
• Purpose• Scope• Definitions, Acronyms and Abbreviations
– References– Decomposition Description
• Module Description• Concurrent Process Description• Data Decomposition
– Dependency Description• Intermodule Description• Interprocess Description• Data dependencies
– Interface Description• Module Interface• Process Interface
– Detailed Design• Module detailed design• Data Detail Design
IEEE 1016 Software Design
• Introduction– Purpose (SDD)– Scope (SDD)– Definitions, Acronyms and Abbreviations
• References• Decomposition Description
– Module Description– Concurrent Process Description– Data Decomposition
• Dependency Description– Intermodule Description– Interprocess Description– Data dependencies
• Interface Description– Module Interface– Process Interface
• Detailed Design– Module detailed design– Data Detail Design
IEEE 1016
IEEE 1016 Software Design
• Introduction– Purpose (SDD)– Scope (SDD)– Definitions, Acronyms and Abbreviations
• References
• Decomposition Description– Module Description– Concurrent Proces Description– Data Decomposition
• Dependency Description– Intermodule Description– Interprocess Description– Data dependencies
• Interface Description– Module Interface– Process Interface
• Detailed Design– Module detailed design– Data Detail Design
IEEE 1016Software Design
• Module Description– Module (or component): code and data that can be
combined with other modules to form a (sub)system– Desirable qualities of modules:
• Designed for reuse (in particular: named)• Explicit specification (statically checked interface, explicit properties of
dynamic behavior such as contracts)• Information hiding (implementation details are hidden)• High cohesion: all the contents together contributes to providing a
specific piece of functionality• Low coupling: Few dependencies on other modules or particulars of
environment (such as operating system or particular technologies)• Flexibility: Module structure reflects problem structure
IEEE 1016Software Design
Hierarchical Decomposition Diagram Example 1
IEEE 1016Software Design
Hierarchical Decomposition Diagram Example 2
IEEE 1016 Software Design
Decomposition Description
Give descriptions of each module in decomposition diagram
IEEE 1016Software Design
• Data Description– similar to Module Decomposition– modulerize the data
IEEE 1016 Software Design
• Introduction– Purpose (SDD)– Scope (SDD)– Definitions, Acronyms and Abbreviations
• References• Decomposition Description
– Module Description– Data Decomposition
• Dependency Description– Intermodule Description– Interprocess Description– Data dependencies
• Interface Description– Module Interface– Process Interface
• Detailed Design– Module detailed design– Data Detail Design
• Dependency Description– Intermodule Description– Interprocess Description– Data dependencies
IEEE 1016 Software Design
Dependency Description
Example: Package Diagram (It might include classes in packges)
IEEE 1016 Software Design
Dependency Description
IEEE 1016 Software Design
Dependency Description
IEEE 1016 Software Design
Dependency Description
IEEE 1016 Software Design
• Introduction– Purpose (SDD)– Scope (SDD)– Definitions, Acronyms and Abbreviations
• References• Decomposition Description
– Module Description– Data Decomposition
• Dependency Description– Intermodule Description– Interprocess Description– Data dependencies
• Interface Description– Module Interface– Process Interface
• Detailed Design– Module detailed design– Data Detail Design
• Module Interface
• Process Interface
IEEE 1016 Software Design
Interface Description
Module 1 Module 2Interface X
IEEE 1016 Software Design
• Introduction– Purpose (SDD)– Scope (SDD)– Definitions, Acronyms and Abbreviations
• References• Decomposition Description
– Module Description– Data Decomposition
• Dependency Description– Intermodule Description– Interprocess Description– Data dependencies
• Interface Description– Module Interface– User Interface (GUI)
• Detailed Design– Module detailed design– Data Detail Design
Class Diagram
IEEE 1016 Software Design
Detailed Design
Classes as design entities
IEEE 1016 Software Design
Detailed Design
IEEE 1016 Software Design
Detailed Design
• Design Entities– Data– Processing (pseudocode)– Interface
• Flow chart of each process (method)
IEEE 1016 Software Design
Detailed Design
IEEE 1016 Software Design
Detailed Design
IEEE 1016 Software Design
Detailed Design