The developer shall perform software design in accordance with the
following requirements.
Note: If a CSCI is developed in multiple builds, its design may not be
fully defined until the final build. Software design in each build should be
interpreted to mean the design necessary to meet the CSCI requirements to be
implemented in that build.
5.6.1 CSCI-wide design decisions. The developer shall define and record
CSCI- wide design decisions (that is, decisions about the CSCI's behavioral
design and other decisions affecting the selection and design of the software
units comprising the CSCI). The result shall include all applicable items in
the CSCI-wide design section of the Software Design Description (SDD) DID (see 6.2 ). Depending on CDRL provisions,
design pertaining to interfaces may be included in SDDs or in interface design
descriptions (IDDs) and design pertaining to databases may be included in SDDs
or in database design descriptions (DBDDs).
5.6.2 CSCI architectural design. The developer shall define and record the
architectural design of each CSCI (identifying the software units comprising
the CSCI, their interfaces, and a concept of execution among them) and the
traceability between the software units and the CSCI requirements. The result
shall include all applicable items in the architectural design and
traceability sections of the Software Design Description (SDD) DID (see 6.2 ). Depending on CDRL provisions,
design pertaining to interfaces may be included in SDDs or in interface design
descriptions (IDDs).
Note: Software units may be made up of other software units and may be
organized into as many levels as are needed to represent the CSCI
architecture. For example, a CSCI may be divided into three software units,
each of which is divided into additional software units, and so on.
5.6.3 CSCI detailed design. The developer shall develop and record a
description of each software unit. The result shall include all applicable
items in the detailed design section of the Software Design Description (SDD)
DID (see 6.2 ). Depending on CDRL
provisions, design pertaining to interfaces may be included in SDDs or in
interface design descriptions (IDDs) and design of software units that are
databases or that access or manipulate databases may be included in SDDs or in
database design descriptions (DBDDs).