Data Item Description


1 Title.

Software Design Document

2 Identification Number.

DI-MCCR-80012A

3 Description/Purpose.

3.1

The Software Design Document (SDD) describes the complete design of a Computer Software Configuration item (CSCI). It describes the CSCI as composed of Computer Software Components (CSCs) and Computer Software Units (CSUs).

3.2

The SDD describes the allocation of requirements from a CSCI to its CSCs and CSUs. Prior to Preliminary Design Review, the SDD is entered into the Developmental Configuration for the CSCI. Upon completion of Physical Configuration Audit (PCA), the SDD, as part of the Software Product Specification, is entered into the Product Baseline for the CSCI.

3.3

The SDD is used by the contractor for three primary purposes, namely:
  1. present the preliminary design at the Preliminary Design Review(s),
  2. present the detailed design at the Critical Design Review(s), and
  3. use the design information as the basis for coding each CSU.

3.4

The SDD is used by the Government to assess the preliminary and detailed design of a CSCI.

4 Approval Date.

29 February 1988

5 Office of Primary Responsibility.

EC

6.1 DTIC Applicable.

Blank.

6.2 GIDEP Applicable.

Blank.

7 Application/Interrelationship.

7.1

This Data Item Description (DID) contains the format and content preparation instructions for data generated under the work tasks described by paragraphs 5.3.2.1, 5.3.2.3, 5.4.2.1, 5.4.2.3, and 5.7.2.1 of DOD-STD-2167A, 3.4.7.2 of MIL-STD-483, and 3.1.3.3.5.1 and 3.1.3.3.5.2 of MIL-STD-490.

7.2

The Contract Data Requirement List should specify whether this document is to be prepared and delivered on bound 8 1/2 by 11 inch bond paper or electronic media. If electronic media is selected, the precise format must be specified.

7.3

An SDD is developed incrementally as follows:
  1. Sections 1>, 2, 3, 7, and 8 are produced during preliminary design and are presented at Preliminary Design Review (PDR).
  2. Sections 4, 5, and 6 are produced during detailed design and all other sections are updated, as applicable. The complete SDD is presented at Critical Design Review (CDR).

7.4

In preparation for PCA, the SDD is incorporated into the Software Product Specification (SPS), DI-MCCR-80029A.

7.5

This DID supersedes DI-MCCR-80012, DI-MCCR-80028, and DI-MCCR-80031 dated 4 June 1985.

8 Approval Limitation.

Blank

9.1 Applicable Forms.

Blank

9.2 AMSC Number.

N4343

10 Preparation Instructions.

10.1 Content and format instructions.

Production of this document using automated techniques is encouraged. Specific content and format instructions for this document are identified below.

  1. Response to tailoring instructions. In the event that a paragraph or subparagraph has been tailored out, a statement to that effect shall be added directly following the heading of each such (sub)paragraph. If a paragraph and all of its subparagraphs are tailored out, only the highest level paragraph heading need be included.
  2. Use of alternate presentation styles. Charts, tables, matrices, or other presentation styles are acceptable when the information required by the paragraphs and subparagraphs of this DID can be made more readable.
  3. Page numbering. Each page prior to Section 1 shall be numbered in lower-case roman numerals beginning with page ii for the Table of Contents. Each page starting from Section 1 to the beginning of the appendixes shall be consecutively numbered in arabic numerals. If the document is divided into volumes, each such volume shall restart the page numbering sequence.
  4. Document control numbers. For hardcopy formats, this document may be printed on one or both sides of each page (single-sided/double-sided). All printed pages shall contain the document control number and the date of the document centered at the top of the page. Document control numbers shall include revision and volume identification as applicable.
  5. Multiple subparagraphs. All paragraphs and subparagraphs starting with the phrase "This (sub)paragraph shall..." may be written as multiple subparagraphs to enhance readability. These subparagraphs shall be numbered sequentially.
  6. Identifiers. The letters "X" and "Y" serve as identifiers for a series of descriptions. For example, the paragraphs and subparagraphs described by 10.1.6.1 shall be structured as follows:
        4.1 (Name and identifier of the first CSC)
          4.1.1 (Name and identifier of the first CSU)
          4.1.2 (Name and identifier of the second CSU)
          4.1.3 etc.
        4.2 (Name and identifier of the second CSC)
          4.2.1 etc.
    
  7. Document Structure. This document shall consist of the following:
    1. Cover
    2. Title page
    3. Table of contents
    4. Scope
    5. Referenced documents
    6. Preliminary design
    7. Detailed design
    8. CSCI data
    9. CSCI data files
    10. Requirements traceability
    11. Notes
    12. Appendixes.

10.1.1 Title Page.

The title page shall contain the information identified below in the indicated format:

10.1.2 Table of Contents.

This specification shall contain a table of contents listing the title and page number of each titled paragraph and subparagraph. The table of contents shall then list the title and page number of each figure, table, and appendix, in that order.

10.1.3 Scope.

This section shall be numbered 1 and shall be divided into the following paragraphs.

10.1.3.1 Identification.

This paragraph shall be numbered 1.1 and shall contain the approved identification number, title, and abbreviation, if applicable, of the CSCI and the system to which it this SDD applies. This paragraph shall identify the higher-level specification(s) containing the requirements from which the design of this CSCI was derived.

10.1.3.2 System overview.

This paragraph shall be numbered 1.2 and shall briefly state the purpose of the system and the CSCI to which this SDD applies.

10.1.3.3 Document overview.

This paragraph shall be numbered 1.3 and shall summarize the purpose and contents of the document.

10.1.4 Referenced documents.

This section shall be numbered 2 and shall list by document number and title all documents referenced in the SDD. This section shall also identify the source for all documents not available through normal Government stocking activities.

10.1.5 Preliminary design.

This section shall be numbered 3 and shall be divided into the following paragraphs to describe the preliminary design of the CSCI.

10.1.5.1 CSCI Overview.

This paragraph shall be numbered 3.1 and shall identify and describe the role of the CSCI within the system to which this SDD applies. The overview shall identify and state the purpose of each external interface of the CSCI. A system architecture diagram may be used to show the relationships between this CSCI and the other CIs in the system.

10.1.5.1.1 CSCI architecture.

This paragraph shall be numbered 3.1.1 and shall describe the internal organizational structure of the CSCI. The Computer Software Components (CSCs) and sub-level CSCs shall be identified and their purpose summarized. The relationships amount the CSCs shall be described. The relationship description shall identify and state the purpose of each CSC-to-CSC interface and shall summarize the data transmitted via the interface. This paragraph shall identify any non-developmental software to be incorporated into the CSCI. The CSCI top-level architecture may be illustrated graphically.

10.1.5.1.2 System states and modes.

This paragraph shall be numbered 3.1.2 and shall identify each system state and mode in which the CSCI operates and the CSCs that execute in each state and mode. A state/CSC table may be provided to illustrate the system states and modes that each CSC executes. In addition, this paragraph shall describe the general flow of both execution control and data between CSCs while operating in the different states and modes. A flow diagram(s) may by used to illustrate the execution control and data flow in each state and mode.

10.1.5.1.3 Memory and processing time allocation.

This paragraph shall be numbered 3.1.3 and shall document the allocation of memory and processing time to the CSCs. The allocation may be illustrated by a memory/processing time table (see Table I).

10.1.5.2 CSCI design description.

This section shall be numbered 3.2 and shall be divided into the following subparagraphs to provide a design description of each CSC of the CSCI.

10.1.5.2.1 (CSC name and project unique identifier).

This subparagraph shall be numbered 3.2.X (beginning with 3.2.1), shall identify a CSC by name and project unique identifier, and shall state its purpose. This subparagraph shall provide the following information:

  1. Identify the requirements allocated to the CSC from the applicable requirements specification(s). If the CSC is composed of sub-level CSCs, some or all of this information may be referenced and provided by the sub-level CSC description.
  2. Describe the preliminary design of the CSC in terms of execution control and data flow. If a CSC is composed of sublevel CSCs, this description shall identify each CSCI internal interface documented in the Software Requirements Specification, that is to be addressed by the CSC and its sub-level CSCs, as applicable. This information may be referenced rather than duplicated for each sub-level CSC.
  3. Identify the derived design requirements for the CSC and any design constraints imposed on or by the CSC. If the CSC is composed of sub-level CSCs, some or all of this information may be referenced and provided by the sub-level CSC description.

10.1.5.2.1.1 (Sub-level CSC name and project unique identifier).

This paragraph shall be numbered 3.2.X.Y (beginning with 3.2.1.1), shall identify a sub-level CSC by name and project unique identifier, shall state its purpose, and shall provide the information required by a through c above. This subparagraph does not apply if there are no sub-level CSCs. If this CSC is also composed of sub-level CSCs, each sub-level CSC shall be identified by name and project unique identifier and the information required by a through c shall be provided in a separate subparagraph for each sub-level CSC.

10.1.6 Detailed Design.

This section shall be numbered 4 and shall be divided into the following paragraphs and subparagraphs to describe the detailed design of each CSC.

10.1.6.1 (CSC name and project unique identifier).

This paragraph shall be numbered 4.X (beginning with 4.1), and shall be divided into the following subparagraphs to identify and describe each of the Computer Software Units (CSUs) of a CSC. This paragraph shall describe the relationships of the CSUs in terms of execution control and data flow between the CSUs of this CSC and shall identify all CSU interfaces that are external to the CSC. Each CSU that is sued by more than one CSC shall be described in detail under one CSC and then referenced by the other using CSCs.

10.1.6.1.2 (CSU name and project unique identifier).

This subparagraph shall be numbered 4.X.Y (beginning with 4.1.1) and shall identify a CSU by name and project unique identifier and shall state the purpose of the CSU. This subparagraph shall be divided into the following subparagraphs to provide the design information for the CSU.

10.1.6.1.2.1 (CSU name) Design specification/constraints.

This subparagraph shall be numbered 4.X.Y.1 (beginning with 4.1.1.1) and shall state the design requirements for the CSU. This subparagraph shall identify the requirements allocated to the CSC that are to be satisfied or partially satisfied by the CSU and shall identify any constraints on the design of the CSU. The design requirements addressed in this subparagraph shall include design requirements for the man-machine interface, as applicable.

10.1.6.1.2.2 (CSU name) Design.

This subparagraph shall be numbered 4.X.Y.2 (beginning with 4.1.1.2) and shall specify the design of the CSU. If the CSU is to be coded in a programming language other than the specified CSCI language, the programming language shall be identified and the rationale for its use shall be provided. If the CSU resides in a library, this subparagraph shall identify the library by name and project unique identifier, and the design document in which the library description can be found. The detailed design information identified below shall be provided for the CSU, as applicable. This information may be provided by automated tools or other techniques, such as a program design language, flowcharts, or other design representations.

  1. Input/output data elements. Identify and state the purpose of each input and output data element to the CSU. The design information for data elements shall be provided in section 5.
  2. Local data elements. Identify and state the purpose of each data element that originates in the CSU and is not used by any other CSU. Each data element shall be describe in terms of name, brief description, data type, data representation, size, units of measure, limit/range, accuracy, precision/resolution, and any other attributes of the data. This information may be provided in a CSU local data definition table.
  3. Interrupts and signals. Identify and describe the interrupts and signals handled by the CSU. Identify for each interrupt and signal, as appropriate, its source, purpose, priority, expected response and response time, and minimum, maximum, and probable frequency of occurrence.
  4. Algorithms. Identify, state the purpose, and describe in detail the algorithms to be incorporated into the execution of the CSU. The algorithms shall be describe in terms of the manipulation and input and local data elements and the generation of output data elements.
  5. Error handling. Identify and describe the error detection and recovery features of the CSU, including handling of erroneous input data and other conditions that affect the execution of the CSU.
  6. Data conversion. Identify and describe any data conversion operations performed in order to implement the CSU's interfaces.
  7. Use of other elements. Describe the use of other elements that are used by the CSU including, but not limited to:
    1. Other CSU's (e.g., calls for library functions, calls for I/O services for access to databases, mass storage devices, and real-time I/O channels).
    2. Shared data stored in a global memory, (e.g., databases or data files, tables, compool, datapool, etc.).
    3. Input and output buffers, including message buffers.
  8. Logic flow. Describe the logic flow of the CSU in terms of the above items. Describe the conditions under which CSU execution is initiated and, if applicable, communication interface features are invoked, and the conditions under which control is passed to other CSUs, as applicable. If sequencing is dynamically controlled during the CSCI's operations, the method for sequence control and the logic and input conditions of that method shall be describe, such as timing variations, priority assignments, internal operations such as data transfer in and out of internal memory, sensing of discrete input signals, and timing relationships between operations with the CSCI.
  9. Data structures. Describe the local data structures implemented by the CSU and any shared data structures used by the CSU. Shared data structures shall be describe under one CSU and referenced thereafter by the sharing CSUs.
  10. Local data files or database. If a data file(s) or a database are part of the local data of a CSU, state the purpose of each file or database, the structure of each file or database in terms of records, fields, etc., and describe the access procedures, such as sequential or random.
  11. Limitations. Describe any limitations or unusual features that restrict the performance of the CSU.

10.1.7 CSCI data.

This section shall be numbered 5 and shall describe the global data elements within the CSCI. For ease in readability and maintenance, the information required below be provided in one or more tables. The following information shall be provided for each data element, as applicable:

  1. For data elements internal to the CSCI:
    1. Name of the data element
    2. A brief description
    3. The units of measure, such as knots, seconds, meters, feet, etc.
    4. The limit/range of values required for the data element (for constants provide the actual value)
    5. The accuracy required for the data element
    6. The precision/resolution in terms of significant digits
    7. For real time systems, the frequency at which the data is calculated or refreshed, such as 10 KHz, 50 Msec, etc.
    8. Legality checks performed on the data element
    9. The data type, such as integer, ASCII, fixed, real, enumeration, etc.
    10. The data representation/format
    11. The CSU project unique identifier where the data element is set or calculated
    12. The CSU project unique identifier(s) where the data element is used
    13. The data source from which the data is supplied, such as database or data file, global common, local common, compool, datapool, parameter, etc. When applicable, each source shall be identified by its project unique identifier.
  2. For data elements of the CSCI's external interfaces:
    1. Identify the data element
    2. Identify the interface by name and project unique identifier
    3. Reference the Interface Design Document (IDD) in which the external interface is described.

10.1.8 CSCI data files.

This section shall be numbered 6 and shall be divided into the following paragraphs to describe each of the shared data files of the CSCI.

10.1.8.1 Data file to CSC/CSU cross reference.

This paragraph shall be numbered 6.1 and shall provide a mapping of each data file identified below to the CSCs and CSUs that use the data file.

10.1.8.2 (Data file name and project unique identifier).

This subparagraph shall be numbered 6.X (beginning with 6.2) and shall identify by name and project unique identifier a data file of the CSCI that is shared by more than one CSU. This paragraph shall state the purpose of the data file, identify the maximum size of the file, and describe the file access method, such as random or sequential. This paragraph shall provide a description of the structure and size of the records contained within the file. This paragraph shall also provide a description of the data that is to reside in the file. The data description shall include, as applicable, data type, data representation, size, units of measure, limit/range, accuracy, precision/resolution, and any other design characteristics of the data. This information may be provided in a file definition table.

10.1.9 Requirements traceability.

This section shall be numbered 7 and shall provide traceability of the requirements allocated down to the CSU level of each CSC back to the requirements of the Software Requirements Specification and Interface Requirements Specification. The traceability may be shown graphically.

10.1.10 Notes.

This section shall be numbered 8 and shall contain any general information that aids in understanding this document (e.g., background information, glossary, formula derivations). This section shall including an alphabetical listing of all acronyms, abbreviations, and their meanings as used in this document.

10.1.11 Appendixes.

Appendixes may be used to provide information published separately for convenience in document maintenance (e.g. charts, classified data). As applicable, each appendix shall be referenced in the main body of the document where the data would normally have been provided. Appendixes may be bound as separate documents for ease of handling. Appendixes shall be lettered alphabetically (A, B, etc), and the paragraphs within each appendix be numbered as multiples of 10 (e.g., Appendix A, paragraph 10, 10.1, 10.2, 20, 20.1, 20.2, etc.). Pages within each appendix shall be numbered alpha-numerically as follows: Appendix A pages shall be numbered A-1, A-2, A-3, etc. Appendix B pages shall be numbered B-1, B-2, B-3, etc.

11 Distribution Statement.

Distribution Statement A. Approved for public release; distribution is unlimited.