14-12-2012, 05:29 PM
A Software Design Specification Template
A Software Design Specification Template.doc (Size: 73 KB / Downloads: 21)
Document Outline
Here is the outline of the proposed template for software design specifications. Please note that many parts of the document may be extracted automatically from other sources and/or may be contained in other, smaller documents. What follows is just one suggested outline format to use when attempting to present the architecture and design of the entire system as one single document. This by no means implies that it literally is a single document (that would not be my personal preference):
Introduction
Provide an overview of the entire document:
• Describe the purpose of this document
• Describe the scope of this document
• Describe this document's intended audience
• Identify the system/product using any applicable names and/or version numbers.
• Provide references for any other pertinent documents such as:
o Related and/or companion documents
o Prerequisite documents
o Documents which provide background and/or context for this document
o Documents that result from this document (e.g. a test plan or a development plan)
• Define any important terms, acronyms, or abbreviations
• Summarize (or give an abstract for) the contents of this document.
System Overview
Provide a general description of the software system including its functionality and matters related to the overall system and its design (perhaps including a discussion of the basic design approach or organization). Feel free to split this discussion up into subsections (and subsubsections, etc ...).
________________________________________
Design Considerations
This section describes many of the issues which need to be addressed or resolved before attempting to devise a complete design solution.
Assumptions and Dependencies
Describe any assumptions or dependencies regarding the software and its use. These may concern such issues as:
• Related software or hardware
• Operating systems
• End-user characteristics
• Possible and/or probable changes in functionality
General Constraints
Describe any global limitations or constraints that have a significant impact on the design of the system's software (and describe the associated impact). Such constraints may be imposed by any of the following (the list is not exhaustive):
• Hardware or software environment
• End-user environment
• Availability or volatility of resources
• Standards compliance
• Interoperability requirements
• Interface/protocol requirements
• Data repository and distribution requirements
• Security requirements (or other such regulations)
• Memory and other capacity limitations
• Performance requirements
• Network communications
• Verification and validation requirements (testing)
• Other means of addressing quality goals
• Other requirements described in the requirements specification