(a) A detailed description of how the software satisfies the specified software high-level requirements, including algorithms, data-structures and how software requirements are allocated to processors and tasks.
(b) The description of the software architecture defining the software structure to implement the requirements.
(c) The input/output description, for example, a data dictionary, both internally and externally throughout the software architecture.
(d) The data flow and control flow of the design.
(e) Resource limitations, the strategy for managing each resource and its limitations, the margins and the method for measuring those margins, for example timing and memory.