The developer shall establish a software development environment in
accordance with the following requirements.
Note: If a system or CSCI is developed in multiple builds, establishing the
software development environment in each build should be interpreted to mean
establishing the environment needed to complete that build.
5.2.1 Software engineering environment. The developer shall establish,
control, and maintain a software engineering environment to perform the
software engineering effort. The developer shall ensure that each element of
the environment performs its intended functions.
5.2.2 Software test environment. The developer shall establish, control,
and maintain a software test environment to perform qualification, and
possibly other, testing of software. The developer shall ensure that each
element of the environment performs its intended functions.
5.2.3 Software development library. The developer shall establish, control,
and maintain a software development library (SDL) to facilitate the orderly
development and subsequent support of software. The SDL may be an integral
part of the software engineering and test environments. The developer shall
maintain the SDL for the duration of the contract.
5.2.4 Software development files. The developer shall establish, control,
and maintain a software development file (SDF) for each software unit or
logically related group of software units, for each CSCI, and, as applicable,
for logical groups of CSCIs, for subsystems, and for the overall system. The
developer shall record information about the development of the software in
appropriate SDFs and shall maintain the SDFs for the duration of the contract.
5.2.5 Non-deliverable software. The developer may use non-deliverable
software in the development of deliverable software as long as the operation
and support of the deliverable software after delivery to the acquirer do not
depend on the non-deliverable software or provision is made to ensure that the
acquirer has or can obtain the same software. The developer shall ensure that
all non- deliverable software used on the project performs its intended
functions.