25
COMPE 491 Senior Project I Software Design Documentation IEEE 1016

Sdd 4

Embed Size (px)

Citation preview

Page 1: Sdd 4

COMPE 491 Senior Project I

Software Design Documentation

IEEE 1016

Page 2: Sdd 4

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

Page 3: Sdd 4

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

Page 4: Sdd 4

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

Page 5: Sdd 4

IEEE 1016

Page 6: Sdd 4

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

Page 7: Sdd 4

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

Page 8: Sdd 4

IEEE 1016Software Design

Hierarchical Decomposition Diagram Example 1

Page 9: Sdd 4

IEEE 1016Software Design

Hierarchical Decomposition Diagram Example 2

Page 10: Sdd 4

IEEE 1016 Software Design

Decomposition Description

Give descriptions of each module in decomposition diagram

Page 11: Sdd 4

IEEE 1016Software Design

• Data Description– similar to Module Decomposition– modulerize the data

Page 12: Sdd 4

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

Page 13: Sdd 4

• Dependency Description– Intermodule Description– Interprocess Description– Data dependencies

IEEE 1016 Software Design

Dependency Description

Page 14: Sdd 4

Example: Package Diagram (It might include classes in packges)

IEEE 1016 Software Design

Dependency Description

Page 15: Sdd 4

IEEE 1016 Software Design

Dependency Description

Page 16: Sdd 4

IEEE 1016 Software Design

Dependency Description

Page 17: Sdd 4

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

Page 18: Sdd 4

• Module Interface

• Process Interface

IEEE 1016 Software Design

Interface Description

Module 1 Module 2Interface X

Page 19: Sdd 4

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

Page 20: Sdd 4

Class Diagram

IEEE 1016 Software Design

Detailed Design

Page 21: Sdd 4

Classes as design entities

IEEE 1016 Software Design

Detailed Design

Page 22: Sdd 4

IEEE 1016 Software Design

Detailed Design

Page 23: Sdd 4

• Design Entities– Data– Processing (pseudocode)– Interface

• Flow chart of each process (method)

IEEE 1016 Software Design

Detailed Design

Page 24: Sdd 4

IEEE 1016 Software Design

Detailed Design

Page 25: Sdd 4

IEEE 1016 Software Design

Detailed Design