4.1 Software development cycle.
The contractor shall implement a software development cycle that includes the following six phases:
a. Software Requirements
b. Preliminary Design
c. Detailed Design
d. Coding and Unit Testing
e. Computer Software Component Testing
f. CSCI Testing.
Each iteration of the software development cycle, regardless of the system life cycle phase during which it occurs, is initiated by allocation of system requirements to that software of a subsequent revision to those requirements.
4.1.2 The relationship of the software development cycle phases with the products, reviews and audits, and baselines and Developmental Configurations required by Section 5 of this Standard are shown in Figure 2. Figure 2 reflects the sequential phases of a software development cycle, as well as the documentation which typically exists prior to initiating an iteration. During software development, more than one iteration of the software development cycle may be in progress at the same time. Each iteration represents a different version of the software. This process may be described as an “evolutionary acquisition” or “incremental build” approach. Within each iteration, the software development phases also typically overlap, rather than form a discrete termination-initiation sequence. For example, performing Unit code and test concurrently with CSC integration and test is useful in implementing incremental builds. The relationship of the software development cycle to the system life cycle, including system allocation of requirements to ‘CSCIS, and system integration and testing of HWCIS and CSCIS, is described in Appendix B.