COMPE 491 Senior Project I Software Design Documentation IEEE 1016
IEEE  1016 Software 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  1016 Software 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  1016 Software Design Hierarchical Decomposition Diagram Example 1
IEEE  1016 Software Design Hierarchical Decomposition Diagram Example 2
IEEE  1016  Software Design Decomposition Description Give descriptions of   each module   in decomposition diagram
IEEE  1016 Software 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 2 Interface 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

Sdd 4

  • 1.
    COMPE 491 SeniorProject I Software Design Documentation IEEE 1016
  • 2.
    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
  • 3.
    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
  • 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
  • 5.
  • 6.
    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
  • 7.
    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
  • 8.
    IEEE 1016Software Design Hierarchical Decomposition Diagram Example 1
  • 9.
    IEEE 1016Software Design Hierarchical Decomposition Diagram Example 2
  • 10.
    IEEE 1016 Software Design Decomposition Description Give descriptions of each module in decomposition diagram
  • 11.
    IEEE 1016Software Design Data Description similar to Module Decomposition modulerize the data
  • 12.
    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
  • 13.
    Dependency Description IntermoduleDescription Interprocess Description Data dependencies IEEE 1016 Software Design Dependency Description
  • 14.
    Example: PackageDiagram (It might include classes in packges) IEEE 1016 Software Design Dependency Description
  • 15.
    IEEE 1016 Software Design Dependency Description
  • 16.
    IEEE 1016 Software Design Dependency Description
  • 17.
    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
  • 18.
    Module Interface ProcessInterface IEEE 1016 Software Design Interface Description Module 1 Module 2 Interface X
  • 19.
    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
  • 20.
    Class Diagram IEEE 1016 Software Design Detailed Design
  • 21.
    Classes as designentities IEEE 1016 Software Design Detailed Design
  • 22.
    IEEE 1016 Software Design Detailed Design
  • 23.
    Design Entities DataProcessing (pseudocode) Interface Flow chart of each process (method) IEEE 1016 Software Design Detailed Design
  • 24.
    IEEE 1016 Software Design Detailed Design
  • 25.
    IEEE 1016 Software Design Detailed Design