home *** CD-ROM | disk | FTP | other *** search
- This file contains the text of
- DoD DIRECTIVE 3405.1, Computer
- Programming Language Policy
- (Ada IC Point of Contact: Fred Yu)
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-
- Department of Defense
- DIRECTIVE
-
- April 2, 1987
- NUMBER 3405.1
-
- ASD(C)
-
- SUBJECT: Computer Programming Language Policy
-
- References: (a) DoD Instruction 5000.31, "Interim List of DoD Approved Higher
- Order Programming Languages (HOL)," November 24,1976
- (hereby canceled)
- (b) DoD Directive 7740.1, "DoD Information Resources Management
- Program," June 20, 1983
- (c) DoD Directive 5000.1, "Major System Acquisitions," March 12,
- 1986
- (d) DoD Directive 5000.29, "Management of Computer Resources in
- Major Defense Systems," April 26, 1976
- (e) through (j), see enclosure 1
-
- A. PURPOSE
-
- This Directive supersedes reference (a) and supports references (b) and
- (c) by establishing policy for computer programming languages used for the
- development and support of all DoD software.
-
- B. APPLICABILITY AND SCOPE
-
- This Directive:
-
- 1. Applies to the Office of the Secretary of Defense (OSD), the Military
- Departments (including the National Guard and Reserve), the Organization of
- the Joint Chiefs of Staff (OJCS), the Unified and Specified Commands, the
- Inspector General of the Department of Defense (IG, DoD), the Defense
- Agencies, and nonappropriated fund activities (hereafter referred to
- collectively as "DoD Components").
-
- 2. Covers all computer resources managed under reference (d) or DoD
- Directive 7920.1 (reference (e)).
-
- 3. Need not be applied retroactively to systems that have entered
- full-scale development or have passed Milestone II of references (c) and (e),
- and for which a documented language commitment was made in compliance with
- previous policy.
-
- C. DEFINITIONS
-
- Special terms used in this Directive are explained in enclosure 2;
- otherwise, refer to the "American National Dictionary for Information
- Processing Systems" (reference (f)).
-
- D. POLICY
-
- It is DoD policy to:
-
- 1. Satisfy functional requirements, enhance mission performance, and
- provide operational support through the use of modern software concepts,
- advanced software technology, software life-cycle support tools, and standard
- programming languages.
-
- 2. Achieve improvements in DoD software management through the
- implementation of processes for control of the use of higher order languages,
- including specification of standards and waiver procedures.
-
- 3. Limit the number of programming languages used within the Department
- of Defense to facilitate achievement of the goal of transition to the use of
- Ada* (reference (g)) for DoD software development.
-
- a. The Ada programming language shall be the single, common, computer
- programming language for Defense computer resources used in intelligence
- systems, for the command and control of military forces, or as an integral part
- of a weapon system. Programming languages other than Ada that were authorized
- and being used in full-scale development may continue to be used through
- deployment and for software maintenance, but not for major software upgrades.
-
- b. Ada shall be used for all other applications, except when the use
- of another approved higher order language is more cost-effective over the
- application's life-cycle, in keeping with the long-range goal of establishing
- Ada as the primary DoD higher order language (HOL).
-
- c. When Ada is not used, only the other standard higher order pro-
- gramming languages shown in enclosure 3 shall be used to meet custom-developed
- procedural language programming requirements. The use of specific HOL's shall
- be based on capabilities of the language to meet system requirements. Guidance
- in selecting the appropriate HOL to use is provided in NBS Special Publication
- 500-117 (reference (h)).
-
- 4. Prefer, based on an analysis of the life-cycle costs and impact, use
- of:
-
- a. Off-the-shelf application packages and advanced software technology.
-
- b. Ada-based software and tools.
-
- c. Approved standard HOL's.
-
- 5. Consider the potential impact on competition for future software
- and/or hardware enhancements or replacement when selecting Defense, public
- domain, or commercially available software packages, or advanced software
- technology.
-
- 6. Use life-cycle management practices, as required by DoD Directive
- 7920.1 (reference (e)) and DoD Directive 5000.29 (reference (d)), for the
- development, support, and use of software, whether custom-developed or
- commercially acquired.
-
- 7. Reduce software obsolescence and the cost of software maintenance
- through use of approved programming languages and appropriate advanced
- software technology during all phases of the software life-cycle.
-
- E. RESPONSIBILITIES
-
- 1. The Assistant Secretary of Defense (Comptroller) (ASD(C)) and the
- Under Secretary of Defense (Acquisition) (USD(A)) shall jointly:
-
- a. Ensure that the policy and procedures in this Directive are
- implemented.
-
- b. Assign responsibility to a specific DoD Component to act as the DoD
- language-control agent for each DoD-approved standard HOL.
-
- c. Process nominations for changes to the list of approved HOL's.
-
- 2. The Assistant Secretary of Defense (Comptroller) shall:
-
- a. For automated information systems, establish programs, as
- appropriate, for the enhancement of the software engineering process and the
- transition of such technology from the marketplace and research programs to
- application within general purpose automated data processing systems.
-
- b. Define research and development requirements for automated
- information systems after consultation with DoD Components and provide such
- requirements to USD(A) for inclusion in their research and development program.
-
- 3. The Under Secretary of Defense (Acquisition) shall:
-
- a. Establish and support a software and information technology
- research and development program that is responsive to the identified needs.
-
- b. Manage the DoD Ada program and maintain and Ada Joint Program
- Office (AJPO) to oversee the maintenance of the Ada language and the
- insertion of Ada-related technology into the Department of Defense.
-
- c. Establish research programs, as appropriate, for the enhancement
- of software engineering technology and transferring such technology to use in
- intelligence systems and systems for the command and control of military
- forces, and to computer resources that are an integral part of a weapon system.
-
- 4. The Head of Each DoD Component shall:
-
- a. Implement and execute internal procedures consistent with the
- policy and procedures in this Directive.
-
- b. Designate a language-control agent for each approved HOL for which
- the DoD Component is assigned responsibility and ensure compliance with the
- procedures in enclosure 4.
-
- c. Institute a process for granting waivers to the use of approved
- HOL's in accordance with section F., below.
-
- d. Specifically address in the Component's overall computer resources
- planning process:
-
- (1) The use of appropriate advanced software technology for
- developing new applications and technological upgrades of existing systems.
-
- (2) The current use of assembly languages, nonstandard HOL's,
- vendor extensions, and enhancements of standard HOL's, and actions taken to
- ensure that such use is minimized.
-
- e. Establish a program for evaluating, prototyping, and inserting
- advanced software technology into the development, modification, and
- maintenance process, and hold operational software managers accountable for
- investment in and migration to advanced software technology for their
- particular environment.
-
- f. Establish and maintain training, education, and career development
- programs that will ensure that DoD personnel are fully able to use new
- advanced software technologies.
-
- F. WAIVER PROCEDURES
-
- 1. Waivers to the policy in subsection D.3., above, shall be strictly
- controlled and closely reviewed. Authority for issuing waivers is delegated
- to each DoD Component.
-
- a. Each proposed waiver shall contain full justification and shall,
- at a minimum, include a life-cycle cost analysis and a risk analysis that
- addresses technical performance and schedule impact. Each waiver granted by
- the DoD Component shall apply to only one system or subsystem.
-
- b. Justification for granted waivers shall be provided to USD(A) or
- ASD(C) within the scope of their individual responsibilities, as periodically
- requested for review.
-
- 2. A waiver NEED NOT be obtained for use of:
-
- a. Commercially available off-the-shelf applications software that is
- not modified or maintained by the Department of Defense.
-
- b. Commercially available off-the-shelf advanced software technology
- that is not modified or maintained by the Department of Defense.
-
- c. Computer programming languages required to implement
- vendor-provided updates to commercially supplied off-the-shelf software. Use
- of such languages shall be restricted to implementing the vendor updates.
-
- 3. A waiver IS REQUIRED for use of unmodified Defense or public domain
- software that does not conform to the language requirements of subsection
- D.3., above. Maintenance of the software shall be specifically addressed in
- the waiver request to include life-cycle maintenance costs and the
- availability of source codes and necessary software tools.
-
- G. EFFECTIVE DATE AND IMPLEMENTATION
-
- This Directive is effective immediately. Forward one copy of implementing
- documents to the Assistant Secretary of Defense (Comptroller) and one copy to
- the Under Secretary of Defense (Acquisition) within 120 days.
-
- William H. Taft, IV
- Deputy Secretary of Defense
-
-
-
-
-
- Enclosures - 4
- 1. References
- 2. Special Terms and Definitions
- 3. DoD-Approved Higher Order Programming Languages
- 4. Procedures for Controllong Higher Order Languages (HOL)
-
-
- *Ada is a Registered Trademark of the U.S. Goverment (Ada Joint Program
- Office).
- -------------------------------------------------------------------------------
- 3405.1 (Encl 1)
-
- REFERENCES, continued
-
- (e) DoD Directive 7920.1, "Life Cycle Management of Automated Information
- Systems (AIS)," October 17, 1978
- (f) National Bureau of Standards (NBS) FIPS Publication 11-2, "American
- National Dictionary for Information Processing Systems," May 9, 1983
- (g) ANSI/MIL-STD-1815A-1983, "Ada Programming Language," February 1983
- (h) National Bureau of Standards Special Publication 500-117, "Selection and
- Use of General Purpose Programming Languages," October 1984
- (i) DoD 4120.3-M, "Defense Standardization and Specification Program Policies
- Procedures and Instructions," August 1978, authorized by DoD Directive
- 4120.3, February 10, 1979
- (j) DoD Directive 5010.19, "Configuration Management," May 1, 1979
-
- ------------------------------------------------------------------------------
- 3405.1 (Encl 2)
-
-
- SPECIAL TERMS AND DEFINITIONS
-
- 1. Advanced Software Technology. Software tools, life-cycle support environ-
- ments (including program support environments), nonprocedural languages,
- modern data base management systems, and other technologies that provide
- improvements in productivity, usability, maintainability, portability, etc.,
- over those capabilities commonly in use.
-
- 2. Automated Information Systems. A collection of functional user and
- automatic data processing personnel, procedures, and equipment (including
- automatic data processing equipment(ADPE)) that is designed, built, operated,
- and maintained to collect, record, process, store, retrieve, and display
- information.
-
- 3. Major Software Upgrade. Redesign or addition of more than one-third of
- the software.
-
- ------------------------------------------------------------------------------
- 3405.1 (Encl 3)
-
-
- DoD-Approved Higher Order Programming Languages
-
-
- ---------------------------------------------------------------------------
- | | | | Industry |
- | Language | Standard Number | DoD Control Agent| Control |
- | | | | Agent |
- ---------------------------------------------------------------------------
- | Ada | ANSI/MIL-STD-1815A-1983 | Ada Joint Program| ANSI |
- | | (FIPS 119) | Office | |
- ---------------------------------------------------------------------------
- | C/ATLAS | IEEE STD 716-1985 | Navy | IEEE |
- ---------------------------------------------------------------------------
- | COBOL | ANSI X3.23-1985 (FIPS 21-2) | Air Force | ANSI |
- ---------------------------------------------------------------------------
- | CMS-2M | NAVSEA 0967LP-598-2210-1982 | Navy | N/A |
- ---------------------------------------------------------------------------
- | CMS-2Y | NAVSEA Manual M-5049, M-5045| Navy | N/A |
- | | M-5044-1981 | | |
- ---------------------------------------------------------------------------
- | FORTRAN | ANSI X3.9-1978 (FIPS 69-1) | Air Force | ANSI |
- ---------------------------------------------------------------------------
- | JOVIAL (J73)| MIL-STD-1589C (USAF) | Air Force | N/A |
- ---------------------------------------------------------------------------
- | Minimal | ANSI X3.60-1978 (FIPS 68-1) | Air Force | ANSI |
- | BASIC | | | |
- ---------------------------------------------------------------------------
- | PASCAL | ANSI/IEEE 770X3.97-1983 | Air Force | ANSI |
- | | (FIPS 109) | | |
- ---------------------------------------------------------------------------
- | SPL/1 | SPL/1 Language Reference | Navy | N/A |
- | | Manual, Intermetrics Report | | |
- | | No. 172-1 | | |
- ---------------------------------------------------------------------------
- Note. See NBS Special Publication 500-117 (reference (h)).
-
-
- ------------------------------------------------------------------------------
- 3405.1 (Encl 4)
-
- PROCEDURES FOR CONTROLLING HIGHER ORDER LANGUAGES (HOL)
-
- 1. All Ada compilers that are used for creation of software to be
- delivered to or maintained by the Government shall be formally validated in
- accordance with procedures and guidelines set by the AJPO.
-
- 2. Each DoD-approved HOL shall be assigned to a DoD language-control
- agent, as shown in enclosure 3, who shall:
-
- a. Have the authority and responsibility for proper support of all
- language-control activities needed to provide for necessary modification and
- improvement of the assigned HOL. The agent shall operate in accordance with
- DoD 4120.3-M (reference (i)).
-
- b. Provide configuration control for DoD HOL's in accordance with
- DoD Directive 5010.19 (reference (j)). For HOL's controlled under industry
- (e.g.,Institute for Electrical and Electronic Engineers or American National
- Standards Institute) procedures, the agent shall represent the Department of
- Defense to the controlling body.
-
- c. Maintain a single standard definition of the assigned HOL and make
- this definition document available as a Federal, DoD, military, or adopted
- industry standard. The agent shall also gather and disseminate appropriate
- information regarding use of the HOL, its compilers, interpreters, and
- associated tools.
-
- 3. A DoD Component may nominate a language for removal from the list
- of approved languages by submitting a justification document, which presents
- the rationale for the proposed deletion and an impact analysis, to the
- ASD(C), who will coordinate it with USD(A).
-
- 4. A DoD Component may also nominate a language for inclusion on the
- list of approved languages by submitting a justification document to the
- ASD(C), who will coordinate it with USD(A). The justification document
- shall include the following:
-
- a. A detailed rationale for using the language, including how the
- candidate language meets specific DoD requirements that are not satisfied by
- the approved languages.
-
- b. A description of the language and the environment and a detailed
- unambiguous specification of the language.
-
- c. An economic analysis of the impact of the language over its
- expected life-cycle.
-
- d. A detailed plan for implementing and supporting the language,
- including identification of the DoD Component that will accept designation as
- control agent for the language.
- -----------------------------------------------------------------------------
-