4.2.1 Software development methods. The contractor shall use systematic and well documented software development methods to perform requirements analysis, design, coding, integration, and testing of the deliverable software. The contractor shall implement software development methods that support the formal reviews and audits required by the contract.
4.2.2 Software engineering environment. The contractor shall establish a software engineering environment to perform the software engineering effort. The software engineering environment shall comply with the security requirements of the contract. The contractor shall document and implement plans for the installation, configuration control, and maintenance of each item of the environment.
4.2.3 Safety analysis. The contractor shall perform the analysis necessary to ensure that the software requirements design and operating procedures minimize the potential for hazardous conditions during the operational mission. Any potentially hazardous conditions or operating procedures shall be clearly identified and documented.
4.2.4 Non-developmental software. The contractor shall consider incorporating non-developmental software (NDS) into the deliverable software. The contractor shall document plans for using NDS. NDS may be incorporated by the contractor without contracting agency approval only if the NDS is fully documented in accordance with the requirements of this standard. The software development files for NDS need not contain the design considerations, constraints, or data. Incorporation of NDS shall comply with the data rights requirements in the contract.
4.2.5 Computer software organization. The contractor shall decompose and partition each CSCI into Computer Software Components (CSCs) and Computer Software Units (CSUs) in accordance with the development method(s) documented in the Software Development Plan (SDP). The contractor shall ensure that the requirements for the CSCI are completely allocated and further refined to facilitate the design and test of each CSC and CSU. The associated graph presents an illustration of a system breakdown and CSCI decomposition.
4.2.6 Traceability of requirements to design. The contractor shall document the traceability of the requirements allocated from the system specification to each CSCI, its Computer Software Components (CSCs) and Computer Software Units (CSUs), and from the CSU level to the Software Requirements Specifications (SRSs) and Interface Requirements Specifications (IRS).
4.2.7 High order language. The contractor shall use the High Order Language(s) (HOLs) specified in the contract to code the deliverable software. If no HOL is required by the contract, the contractor shall obtain contracting agency approval to use a particular language.
4.2.8 Design and coding standards. The contractor shall document and implement design and coding standards to be used in the development of deliverable software. Software coding standards shall comply with the requirements specified in Appendix B.
4.2.9 Software development fixes. The contractor shall document the development of each Computer Software Unit (CSU), Computer Software Component (CSC), and CSCI in software development files (SDFs). The contractor shall establish a separate SDF for each CSU or a logically related group of CSUs; each CSC or a logically related group of CSCs; and each CSCI. The contractor shall document and implement procedures for establishing and maintaining SDFs. The contractor shall maintain the SDFs for the duration of the contract. The SDFs shall be made available for contracting agency review upon request. SDFs may be generated maintained and controlled by automated means. To reduce duplication SDFs should not contain information provided in other documents or SDFs. The set of SDFs shall include (directly or by reference) the following information:
a. Design considerations and constraints
b. Design documentation and data
c. Schedule and status information
d. Test requirements and responsibilities
e. Test cases procedures and results.
4.2.10 Processing resource and reserve capacity. The contractor shall analyze the processing resource and reserve requirements such as timing memory utilization I/O channel utilization identified in the contract and shall allocate these resources among the CSCIs. The allocation of these resources to a CSCI shall be documented in the Software Requirements Specification (SRS) for that CSCI. The contractor shall monitor the utilization of processing resources for the duration of the contract and shall reallocate the resources as necessary to satisfy the reserve requirements. Measured resource utilization at the time of delivery shall be documented in the Software Product Specification (SPS) for each CSCI.