Glossary · Systems engineering and MBSE
Software design specification (SDS)
Also known as: Software design description (SDD)
German: Softwaredesignspezifikation (SDS)
In software engineering, a software design specification (SDS) describes how the software will be built to meet its requirements: architecture, modules or function blocks, interfaces, data structures, algorithms and error handling.
- Systems engineering
- Technical documentation
In one sentence
A software design specification (SDS) describes how software will be built: architecture, modules, interfaces, data and error handling.
Example
The SDS for a filling machine describes the PLC program structure, one function block per station, the state machine for the main sequence and the data exchange with the HMI.
How it applies
- Engineering: The SDS sits between the Software requirements specification (SRS) and the code; code reviews and unit tests refer to it.
- Functional safety: IEC 61508 part 3 and similar standards require documented software architecture and design for safety-related software, with traceability to the safety requirements.
- Documentation: The SDS is mostly internal, but it is useful for writing integrator or programming manuals; the documentation team should separate internal design details from what customers need.
- Maintenance: A current SDS shortens the learning curve for programmers who change the software years later; update it with every Change request that changes the software structure.
SDS vs. FDS
The Functional design specification (FDS) describes behavior as the customer sees it. The SDS describes the internal structure of the software that produces that behavior.