dSoftware Design Document (SDD) Template
Software design is a process by which the software requirements are translated into a representation of software components, interfaces, and data necessary for the implementation phase. The SDD shows how the software system will be structured to satisfy the requirements. It is the primary reference for code development and, therefore, it must contain all the information required by a programmer to write code. The SDD is performed in two stages. The first is a preliminary design in which the overall system architecture and data architecture is defined. In the second stage, ...view middle of the document...
2 Decomposition Description 3.3 Design Rationale 4. DATA DESIGN
4.1 Data Description 4.2 Data Dictionary 5. 6. COMPONENT DESIGN HUMAN INTERFACE DESIGN
6.1 Overview of User Interface 6.2 Screen Images 6.3 Screen Objects and Actions 7. 8. REQUIREMENTS MATRIX APPENDICES
Software Design Document
Identify the purpose of this SDD and its intended audience. (e.g. “This software design document describes the architecture and system design of XX. ….”).
Provide a description and scope of the software and explain the goals, objectives and benefits of your project. This will provide the basis for the brief description of your product.
Provide an overview of this document and its organization.
1.4 Reference Material
This section is optional.
List any documents, if any, which were used as sources of information for the test plan.
1.5 Definitions and Acronyms
This section is optional. Provide definitions of all terms, acronyms, and abbreviations that might exist to properly interpret the SDD. These definitions should be items used in the SDD that are most likely not known to the audience.
2. SYSTEM OVERVIEW
Give a general description of the functionality, context and design of your project. Provide any background information if necessary.
3. SYSTEM ARCHITECTURE
3.1 Architectural Design
Develop a modular program structure and explain the relationships between the modules to achieve the complete functionality of the system. This is a high level overview of how
Software Design Document
responsibilities of the system were partitioned and then assigned to subsystems. Identify each high level subsystem and the roles or responsibilities assigned to it. Describe how these subsystems collaborate with each other in order to achieve the desired functionality. Don’t go into too much detail about the individual subsystems. The main purpose is to gain a general understanding of how and why the system was decomposed, and how the individual parts work together. Provide a diagram showing the major subsystems and data repositories and their interconnections. Describe the diagram if required.
3.2 Decomposition Description
Provide a decomposition of the subsystems in the architectural design. Supplement with text as needed. You may choose to give a functional description or an objectoriented description. For a functional description, put toplevel data flow diagram (DFD) and structural decomposition diagrams. For an OO description, put subsystem model, object diagrams, generalization hierarchy diagram(s) (if ...