Back to FAQ
SUBJECT: Mandatory Procedures for Major Defense Acquisition Programs (MDAPs) and Major Automated Information System (MAIS) Acquisition Programs
4.3.5 Software Engineering (Change Three, 23 March 1998)
Software shall be managed and engineered using best processes that are known to reduce cost, schedule and performance risks. It is DoD policy to design and develop software systems based on systems engineering principles (CCA) to include:
1. Developing software system architectures that support open system concepts; exploit commercial off-the-shelf (COTS) computer systems products; and provide for incremental improvements based on modular, reusable, extensible software;
2. Identifying and exploiting software reuse opportunities, Government and commercial, before beginning new software development;
3. Selection of programming language in the context of the systems and software engineering factors that influence overall life-cycle costs, risks, and potential for interoperability. Additional guidance is contained in ASD(C3I) memorandum, "Use of the Ada Programming Language," April 29, 1997;
4. Use of DoD standard data. Additional guidance is contained in DoDD 8320.1;
5. Selecting contractors with the domain experience in developing comparable software systems, a successful past performance record, and a demonstrable mature software development capability and process;
6. Use of a software measurement process in planning and tracking the software program, and to assess and improve the software development process and associated software product;
7. Ensuring that information operations risks have been assessed (DoDD S-3600.1); and
8. Ensuring software is Year-2000 compliant.
4.3.5 Software Engineering (Change One, 4 November 1996)
Software shall be managed and engineered using best processes and practices that are known to reduce cost, schedule, and technical risks. It is DoD policy to design and develop software systems based on systems engineering principles, to include:
1. Developing software system architectures that support open system concepts; exploit commercial off- the- shelf (COTS) computer systems products; and provide for incremental improvements based on modular, reusable, extensible software;
2. Identifying and exploiting software reuse opportunities, Government and commercial, before beginning new software development;
3. Use of the Ada programming language to develop code for which the government is responsible for life- cycle maintenance and support. Additional guidance is contained in DoDD 3405.1;
4. Use of DoD standard data. Additional guidance is contained in DoDD 8320.1;
5. Selecting contractors with the domain experience in developing comparable software systems, a successful past performance record, and a demonstrable mature software development capability and process;
6. Use of software metrics to effect the necessary discipline of the software developm ent process and assess the maturity of the software product; and
7. Ensuring that information warfare risks have been assessed (DoDD TS-3600.1).