The task of developing comprehensive Software Design Descriptions (SDDs) is greatly assisted by this book. Written for software development project managers and staff, it is basically a plain-English, simplified version of the IEEE Std 1016 Recommended Practice for Software Design Descriptions. While it infringes no copyright, it still embodies the essential detail of IEEE 1016.
It describes the:
- Software development context in which an SDD should be created,
- Minimum requirements for SDD format and content and,
- Qualities of a good SDD.
Who is this document for? The SDD is created by the System Architect or designer and is the major deliverable from the detailed design process.
What are the Prerequisites? The prerequisite document required for an SDD varies according to the size and complexity of the software product to be developed. For large systems the prerequisite is the System Architecture Specification. In this context the SDD represents a further refinement of the design entities described in the SAS. An SDD may provide descriptions of one or more design entities. For small systems, the SDD prerequisite is a Software Requirements Specification. In this context it is the single source of design solutions to problems stated in the SRS.
Who uses the SDD? The SDD is the primary reference for code development. As such, it must contain all the information required by a programmer to write code.
Contribution to IS Quality A structured and comprehensive approach to software design is known to be a major factor contributing to Information Systems Quality. Adequate design is however often not performed, contributing to a higher number of software defects which impact the real and perceived quality of the software, as well as leading to time and expense being spent on rework and higher maintenance costs.
How to Write Software Design Descriptions is a plain-English, procedural guide to developing high quality SDDs that are both systematic and comprehensive. It contains detailed instructions and templates on the following test documentation.