Today we want to address a topic of great importance: Software design description. This is a topic that has generated great interest and debate in recent times, and that is why we have decided to dedicate a complete article to it to analyze it in depth. Software design description is a topic that has impacted a large number of people around the world, since it has implications in different areas of society. Throughout this article, we will explore different aspects related to Software design description, from its origin and evolution to its consequences and possible solutions. We hope this article will be of great use to our readers, providing them with greater clarity and understanding about Software design description.
This article needs additional citations for verification. (September 2014) |
| IEEE software life cycle |
|---|
A software design description (a.k.a. software design document or SDD; just design document; also Software Design Specification) is a representation of a software design that is to be used for recording design information, addressing various design concerns, and communicating that information to the design’s stakeholders. [1] An SDD usually accompanies an architecture diagram with pointers to detailed feature specifications of smaller pieces of the design. Practically, the description is required to coordinate a large team under a single vision, needs to be a stable reference, and outline all parts of the software and how they will work.
The SDD usually contains the following information:
These design mediums enable the designer to represent procedural detail, that facilitates translation to code. This blueprint for implementation forms the basis for all subsequent software engineering work.
IEEE 1016-2009, titled IEEE Standard for Information Technology—Systems Design—Software Design Descriptions,[2] is an IEEE standard that specifies "the required information content and organization" for an SDD.[3] IEEE 1016 does not specify the medium of an SDD; it is "applicable to automated databases and design description languages but can be used for paper documents and other means of descriptions."[4]
The 2009 edition was a major revision to IEEE 1016-1998, elevating it from recommended practice to full standard. This revision was modeled after IEEE Std 1471-2000, Recommended Practice for Architectural Description of Software-intensive Systems, extending the concepts of view, viewpoint, stakeholder, and concern from architecture description to support documentation of high-level and detailed design and construction of software.
Following the IEEE 1016 conceptual model, an SDD is organized into one or more design views. Each design view follows the conventions of its design viewpoint. IEEE 1016 defines the following design viewpoints for use:[5]
In addition, users of the standard are not limited to these viewpoints but may define their own.[6]
IEEE 1016-2009 is currently listed as 'Inactive - Reserved'.[7]