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.

Function Point.

A measure of software functionality that is independent of differences in lines of code required to implement a given function in different programming languages.


Glue Code.

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.


Product Line.

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.


Software Asset.

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.

The National Academies | 500 Fifth St. N.W. | Washington, D.C. 20001
Copyright © National Academy of Sciences. All rights reserved.
Terms of Use and Privacy Statement