A design document is a written outline of a course of development or a description of a software product that a software designer writes in order to give a software development team an overall guidance of the architecture of the software project. Software development is the translation of a user need or marketing goal into a Software product
Instructional designers (used by corporate training entities) use design documents to articulate how a course will be developed. It generally describes the modules, learning assessment method, and source content.
A design document when a description of a software product, usually accompanies an architecture diagram and has pointers to the detailed feature specifications of smaller pieces of the design. A design document is practically required to coordinate a large team under a single vision.
A design document needs to be a stable reference and outline all parts of the software and how they will work. The document should give a fairly complete description while maintaining a high-level view of the software.
The Software Design Document (SDD) is a comprehensive software design model consisting of four distinct but interrelated activities: data design, architectural design, interface design, and procedural design. Software design is a process of problem-solving and planning for a Software solution
The SDD contains the following documents:
1. The Data Design describes structures that reside within the software. In Computer science, data-driven design is the result of adapting abstract data type design methods to Object-oriented programming (Wirfs-Brock & Wilkerson 1989 Attributes and relationships between data objects dictate the choice of data structures. In its simplest embodiment an object is an allocated region of storage A data structure in Computer science is a way of storing Data in a computer so that it can be used efficiently
2. The Architecture Design uses information flow characteristics, and maps them into the program structure. The software architecture of a program or computing system is the structure or structures of the system, which comprise software components the externally visible properties Transformation mapping method is applied to exhibit distinct boundaries between incoming and outgoing data. The Data Flow diagrams allocate control input, processing, and output along three separate modules.
3. The Interface Design describes internal and external program interfaces as well as the design of human interface. User interface design or user interface engineering is the design of Computers Appliances machines mobile communication devices, Software Internal and external interface design are based on the information obtained from the analysis model.
4. The Procedural Design describes structured programming concepts using graphical, tabular, and textual notations. Design is used both as a Noun and a Verb. The term is often tied to the various Applied arts and Engineering (See design disciplines 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.
There are two kinds of design documents: HLDD - High Level Design Document and LLDD - Low Level Design Document