Software Design Specification

advertisement
Software Design Specification
For
<Your Project Title>
Submitted by
<Your Team Name>
Copyright (c) 2005, Gregory W. Hislop. Permission is granted to copy, distribute and/or modify this document under the terms of the
GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.
Table of Contents
1
Introduction ................................................................................................................. 3
1.1
Purpose................................................................................................................ 3
1.2
Scope ..................................................................Error! Bookmark not defined.
1.4
References ..........................................................Error! Bookmark not defined.
1.5
Overview ............................................................................................................. 3
2 Architectural Description ............................................................................................ 4
2.1
Component <ID 1> Decomposition .................................................................... 4
2.2
Component <ID 2> Decomposition ...................Error! Bookmark not defined.
3 Interface Description ................................................................................................... 4
3.1
User Interface ...................................................................................................... 4
3.2
Data Interface ...................................................................................................... 4
3.3
Programming Interface ....................................................................................... 4
4 Detailed Design ........................................................................................................... 4
4.1
<Entity ID> – <Entity Name> ............................................................................ 4
4.1.1
Type ............................................................................................................ 5
4.1.2
Purpose........................................................................................................ 5
4.1.3
Description .................................................................................................. 5
2
1 Introduction
The material here is the same as the corresponding sections in the requirements
specification. Copy those sections and expand and update them as needed. Add any new
high-level information that you have acquired since construction of the Software
Requirements Specification.
1.1 Purpose
This section describes the purpose of the software design document, not the project itself.
1.2 Scope
This should be a short overview of the product. The audience is people who will use the
product.
1.3 Definitions, Acronyms, and Abbreviations
Do not define common technical terms. Do spell out all acronyms that you use.
1.4 References
Reference any documentation pertaining to this document. Include a reference to the
requirements specification.
1.5 Overview
This section is about the rest of the Software Design Specification, not about the product.
Provide the reader with a brief description as to what the rest of the document contains.
3
2 Architectural Description
The goal is to provide a high level view of the design. This high-level design is intended
to describe how your project fits into the larger Sahana project. If you are developing a
Sahana module, you should describe how this module relates to the larger Sahana project.
If your project is contained within a module, you should describe the module in which
your project is embedded and how your project impacts the module. If you are working
on a breadth application that spans multiple modules, you should describe the modules
impacted and the impact.
2.1 Component <ID 1> Decomposition
If you are developing a module, a high-level decomposition of the module should be
included here. Simply identify the main components or sub-modules in the module.
3 Interface Description
This section is used to describe the various interfaces between your product and people or
other systems.
3.1 User Interface
Describe the user interface. Include a diagram showing screens (if any) and how they
relate to each other. Describe the general purpose of each screen. Define messages
produced by the product. Do not show specific screen layouts in this section. The
specific screens should be presented in Section 4 Detailed Design. The idea for this
section is to capture all user interfaces at a high level.
3.2 Data Interface
Define files or other data that moves into or out of this system (except via the user
interface).
3.3 Programming Interface
Define any application programming interfaces available for the product that allow other
systems to interact with the product.
4 Detailed Design
Repeat subsections as needed. You should provide one or more detailed diagrams of your
design that show the subunits, components, or submodules in your design. These
diagrams should contain a rectangle for each component and how components are
related.
4.1 <Entity ID> – <Entity Name>
Uniquely define each entity. Provide a readable name and use it consistently with any
diagrams.
4
4.1.1 Type
Identify what type of an entity this is (e.g., a class, a screen, a database table, etc).
4.1.2 Purpose
Identify the requirement that this entity implements. This ensures traceability, allowing
you to check that all requirements can be traced to a design element and that a design
element can be traced back to its requirement in the SRS.
4.1.3 Description
Provide a detailed description of the entity. This may vary somewhat depending on the
entity type. Possible descriptions include interface, processing, and data.
For example, if the entity is a screen, this section may include a screen layout, a
definition of the data elements, and a description of use. If the entity is an object, the
description might include pseudocode or other description of processing and a definition
of data.
Note that entities may be nested. For example, you could have a database entity (include
a description of the table and columns). You could then have separate sub-sections for
each table within the database
5
Download