Application Programming Interface (API)
A set of procedure and function specifications providing access to the capabilities of a reusable software component, such as a "windowing" or network communication operating subsystem.
The structure of a system's components and connectors, their interrelationships, and the principles and guidelines governing their design and evolution over time.
Automated Information System (AIS).
A combination of computer hardware and computer software, data, and/or telecommunications that performs functions such as collecting, processing, transmitting, and displaying information. The function of such systems is primarily administrative. Excluded are computer resources, both hardware and software, that are physically part of, dedicated to, or essential in real-time to the mission performance of weapon systems; used for weapon system specialized training, simulation, diagnostic testing and maintenance, or calibration; or used for research and development of weapon systems.
An item regularly used in the course of normal business operations for other than government purposes that has been or will be sold or licensed to the general public, and that requires no unique government-directed modifications or maintenance over its life-cycle to meet the needs of the procuring agency.
Commercial Off-the-Shelf (COTS) Software.
COTS software products are commercial items that have been sold, leased, or licensed in a quantity of at least 10 copies in the commercial marketplace, at an advertised price. COTS software products include a description or definition of the functions the software performs, documented to good commercial standards, and a definition of the resources needed to run the software.
A distinct functional area that can be supported by a class of systems and assets with similar requirements and capabilities.
Fourth-Generation Programming Language (4GL).
A 4GL differs from a third-generation programming language (3GL) in that it removes the need for a programmer to explicitly make many of the design decisions about data structures and algorithms. 4GLs allow programmers to express instructions in terminology and at a level of abstraction that are natural for communication between humans who are familiar with the application domain. The programmer interaction may even be in a graphical, or menu-based, form. 4GLs typically incorporate domain-specific knowledge and notation, and so are not "general-purpose" in the sense that 3GLs are, although they may include a 3GL component that permits general-purpose programming. 4GLs are associated with "frameworks," "templates," "automatic program generators," "middleware," and "graphical user interface builders." Some examples of 4GLs are Visual Basic, PowerBuilder, Delphi, and SQL.
A measure of software functionality that is independent of differences in lines of code required to implement a given function in different programming languages.
The relatively small parts of computer programs, or operating system "shell" scripts, that are written to integrate non-developmental items into a larger system, without modification to the components themselves.
Government-directed Software Maintenance.
Maintenance required for software changed in response to government specification or direction. Government-directed maintenance may be done by the government or by a commercial organization paid by the government. In contrast, with vendor-directed maintenance, a vendor chooses which changes are made to the software, and when they will be made.
Non-Developmental Item (NDI).
Any software asset that is available in the commercial marketplace; or any software asset that is available to the public for free use; or any previously developed software asset that is in use by a department or agency of the United States, a state or local government, or a foreign government with which the United States has a mutual defense cooperation agreement.
A set of similar products or a family of systems that share common architectures and satisfy the mission requirements of one or more domains.
The process of examining and altering an existing system to reconstitute it in a new form. Re-engineering may include reverse engineering, restructuring, re-documenting, forward engineering, re-targeting, or translation.
The process of developing or updating a software-intensive system using existing software assets.
Any software-related product of the software life-cycle.
Software Engineering Environment.
The set of tools (including supporting hardware, software, and "firmware") used in the production and maintenance of software throughout its life-cycle. Typical elements include computer equipment, compilers, operating systems, "debuggers," simulators, emulators, computer-aided software engineering tools, and database management systems.
Maintenance of software includes, but is not limited to, activities generally referred to as enhancement, evolution, post-deployment software support, or error correction.
Quantitative values used to make an assessment of software condition, products, or processes. Representative metrics are effort, schedule, cost, quality, size, and rework.
Standards-based Technical Architecture.
An architecture that defines the standards, services, topology, data definitions, and common framework that enable systems developed to the architecture to interoperate.
Third-Generation Programming Language (3GL).
Third-generation programming languages generally differ from second-generation languages in being machine-independent, providing built in control structures, and supporting user definition of abstractions, including subprograms and data types. They differ from fourth-generation languages in continuing to require the programmer to deal explicitly with the design of data structures and algorithms. Some examples of 3GLs are Ada, C, C++, Cobol, Fortran, Java, Jovial, Pascal, and SmallTalk.
There are two primary criteria for determining whether a subsystem belongs in the "warfighting" category:
1. Relatively little commercial software and expertise is available for implementing the desired functions. For example, even though intelligence analysis is involved in warfighting, many of its functions (database update, query and visualization, report generation) can be readily satisfied via non-warfighting commercial software.
2. The application requires software quality attribute levels higher than those supportable by commercial software. For many warfighting functions, these involve real-time performance, reliability, and survivability, particularly in high-stress, crisis-mode situations in which DOD information processing functions may be under attack.
The application domains for warfighting software include, but are not necessarily limited to, the following areas:
• Weapon control, which includes software involved in weapon sensor processing; guidance, navigation, and control; combat-oriented weapon delivery platform control; and software for special weapon delivery platform operator devices such as heads-up displays. Weapon control does not include administrative functions and "hotel services" for large weapon delivery platforms such as aircraft carriers, or support subsystems performing mainstream data management, networking, and graphical user interface functions.
• Electronic warfare, which includes software involved in rapid-response electronic detection, identification, discrimination, tracking, platform-based communication, and associated countermeasure/counter-countermeasure applications, but does not include support subsystems performing mainstream data management, networking, and graphical user interface functions.
• Wideband real-time surveillance, which includes software involved in hard or soft real-time image, infrared, radar, or other sensor processing, but does not include off-line query and analysis of surveillance archives or support subsystems performing mainstream data management, networking, and graphical user interface functions.
• Battle management and battlefield communication, which includes hard or soft real-time weapons allocation, targeting, control, coordination, damage assessment, and associated battlefield communications requiring such special capabilities as spread spectrum, anti-jamming, and frequency-