IEEE Glossary

© 1996 Island Graphics Corporation

IEEE Glossary
960816rtm

Abstract
This glossary includes all entries from (ANSI-recognized)
IEEE Std 610.12-1990 (A): IEEE Standard Glossary of Software
Engineering Terminology. At present the individual entries
are not linked.


Contents

0-9 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

0-9

1GL
Acronym for first generation language. See: machine language.
2GL
Acronym for second generation language. See: assembly language.
3GL
Acronym for third generation language. See: high order language.
4GL
Acronym for fourth generation language.
5GL
Acronym for fifth generation language.

A

abend
Abbreviation for abnormal end.
abnormal end (abend)
Termination of a process prior to completion. See also: abort; exception.
abort
To terminate a process prior to completion. See also: abend; exception.
absolute address
An address that is permanently assigned to a device or storage location and that identifies the device or location without the need for translation or calculation. Syn: explicit address; specific address. Contrast with: relative address; relocatable address; symbolic address. See also: absolute assembler; absolute code; absolute instruction; absolute loader.
absolute assembler
An assembler that produces absolute code. Contrast with: relocating assembler.
absolute code
Code in which all addresses are absolute addresses. Syn: specific code. Contrast with: relocatable code.
absolute instruction
A computer instruction in which all addresses are absolute addresses. See also: direct instruction; effective instruction; immediate instruction; indirect instruction.
absolute loader
A loader that reads absolute machine code into main memory, beginning at the initial address assigned to the code by the assembler or compiler, and performs no address adjustments on the code. Contrast with: relocating loader.
abstract data type
A data type for which only the properties of the data and the operations to be performed on the data are specified, without concern for how the data will be represented or how the operations will be implemented.
abstraction
(1) A view of an object that focuses on the information relevant to a particular purpose and ignores the remainder of the information. See also: data abstraction. (2) The process of formulating a view as in (1).
acceptance criteria
The criteria that a system or component must satisfy in order to be accepted by a user, customer, or other authorized entity. See also: requirement; test criteria.
acceptance testing
(1) (IEEE Std 1012-1986 [12]) Formal testing conducted to determine whether or not a system satisfies its acceptance criteria and to enable the customer to determine whether or not to accept the system. (2) Formal testing conducted to enable a user, customer, or other authorized entity to determine whether to accept a system or component. Contrast with: development testing. See also: operational testing; qualification testing.
accuracy
(1) A qualitative assessment of correctness, or freedom from error. (2) A quantitative measure of the magnitude of error. Contrast with: precision.
active redundancy
In fault tolerance, the use of redundant elements operating simultaneously to prevent, or permit recovery from, failures. Contrast with: standby redundancy.
actual instruction.*
See: effective instruction. * Deprecated.
actual parameter
See: argument (3).
ada
Ada
Note: Ada and other specific computer languages are defined in P610.13 [17].
adaptability
See: flexibility.
adaptation data
Data used to adapt a program to a given installation site or to given conditions in its operational environment.
adaptation parameter
A variable that is given a specific value to adapt a program to a given installation site or to given conditions in its operational environment; for example, the variable Installation_Site_Latitude.
adaptive maintenance
Software maintenance performed to make a computer program usable in a changed environment. Contrast with: corrective maintenance; perfective maintenance.
address
(1) A number, character, or group of characters that identifies a given device or storage location. (2) To refer to a device or storage location by an identifying number, character, or group of characters. See also: absolute address; effective address; implied addressing; indirect address; relative address; relocatable address; symbolic address; virtual address.
address field
Any of the fields of a computer instruction that contain addresses, information necessary to derive addresses, or values of operands. Syn: address part. Contrast with: operation field.
address format
(1) The number and arrangement of address fields in a computer instruction. See also: n-address instruction; n-plus-one address instruction. (2) The number and arrangement of elements within an address, such as the elements needed to identify a particular channel, device, disk sector, and record in magnetic disk storage.
address modification
Any arithmetic, logical, or syntactic operation performed on an address. See also: effective address; indexed address; relative address; relocatable address.
address part
See: address field.
address space
(1) The addresses that a computer program can access. Note: In some systems, this may be the set of physical storage locations that a program can access, disjoint from other programs, together with the set of virtual addresses referring to those storage locations, which may be accessible by other programs. (2) The number of memory locations that a central processing unit can address.
addressing exception
An exception that occurs when a program calculates an address outside the bounds of the storage available to it. See also: data exception; operation exception; overflow exception; protection exception; underflow exception.
afferent
Pertaining to a flow of data or control from a subordinate module to a superordinate module in a software system. Contrast with: efferent.
algebraic language
A programming language that permits the construction of statements resembling algebraic expressions, such as Y = X + 5. For example, FORTRAN. See also: algorithmic language; list processing language; logic programming language.
algorithm
(1) A finite set of well-defined rules for the solution of a problem in a finite number of steps; for example, a complete specification of a sequence of arithmetic operations for evaluating sine x to a given precision. (2) Any sequence of operations for performing a specific task.
algorithmic language
A programming language designed for expressing algorithms; for example, ALGOL. See also: algebraic language; list processing language; logic programming language.
allocated baseline
In configuration management, the initial approved specifications governing the development of configuration items that are part of a higher level configuration item. Contrast with: developmental configuration; functional baseline; product baseline. See also: allocated configuration identification.
allocated configuration identification
In configuration management, the current approved specifications governing the development of configuration items that are part of a higher level configuration item. Each specification defines the functional characteristics that are allocated from those of the higher level configuration item, establishes the tests required to demonstrate achievement of its allocated functional characteristics, delineates necessary interface requirements with other associated configuration items, and establishes design constraints, if any. Contrast with: functional configuration identification; product configuration identification. See also: allocated baseline.
allocation
(1) The process of distributing requirements, resources, or other entities among the components of a system or program. (2) The result of the distribution in (1).
anomaly
(IEEE Std 1012-1986 [12]) Anything observed in the documentation or operation of software that deviates from expectations based on previously verified software products or reference documents.
anticipatory buffering
A buffering technique in which data are stored in a buffer in anticipation of a need for the data. See also: dynamic buffering; simple buffering.
anticipatory paging
A storage allocation technique in which pages are transferred from auxiliary storage to main storage in anticipation of a need for those pages. Contrast with: demand paging.
application generator
A code generator that produces programs to solve one or more problems in a particular application area; for example, a payroll generator.
application-oriented language
A computer language with facilities or notations applicable primarily to a single application area; for example, a language for computer-assisted instruction or hardware design. See also: authoring language; specification language; query language.
application software
Software designed to fulfill specific needs of a user; for example, software for navigation, payroll, or process control. Contrast with: support software; system software.
architectural design
(1) The process of defining a collection of hardware and software components and their interfaces to establish the framework for the development of a computer system. See also: functional design. (2) The result of the process in (1).
architecture
The organizational structure of a system or component. See also: component; module; subprogram; routine.
argument
(1) An independent variable; for example, the variable m in the equation E = mc2. (2) A specific value of an independent variable; for example, the value m = 24 kg. (3) A constant, variable, or expression used in a call to a software module to specify data or program elements to be passed to that module. Syn: actual parameter. Contrast with: formal parameter.
array
An n-dimensional ordered set of data items identified by a single name and one or more indices, so that each element of the set is individually addressable. For example, a matrix, table, or vector.
artificial intelligence
Note: P610.8 [15] defines terminology pertaining to artificial intelligence.
artificial language
See: formal language.
assemble
To translate a computer program expressed in an assembly language into its machine language equivalent. Contrast with: compile; disassemble; interpret.
assemble-and-go
An operating technique in which there are no stops between the assembling, linking, loading, and execution of a computer program.
assembled origin
The address of the initial storage location assigned to a computer program by an assembler, a compiler, or a linkage editor. Contrast with: loaded origin. See also: offset (1); starting address.
assembler
A computer program that translates programs expressed in assembly language into their machine language equivalents. See also: absolute assembler; cross-assembler; relocating assembler. Contrast with: compiler; interpreter.
assembler code
See: assembly code.
assembler language
See: assembly language.
assembly code
Computer instructions and data definitions expressed in a form that can be recognized and processed by an assembler. Syn: assembler code. Contrast with: compiler code; interpretive code; machine code.
assembly language
A programming language that corresponds closely to the instruction set of a given computer, allows symbolic naming of operations and addresses, and usually results in a one-to-one translation of program instructions into machine instructions. Syn: assembler language; low level language; second generation language. Contrast with: fifth generation language; fourth generation language; high order language; machine language. Note: Specific languages are defined in P610.13 [17].
assertion
A logical expression specifying a program state that must exist or a set of conditions that program variables must satisfy at a particular point during program execution. Types include input assertion, loop assertion, output assertion. See also: invariant; proof of correctness.
assignment statement
A computer program statement that assigns a value to a variable; for example, Y := X - 5. Contrast with: control statement; declaration. See also: clear; initialize; reset.
atomic type
A data type, each of whose members consists of a single, nondecomposable data item. Syn: primitive type. Contrast with: composite type.
attribute
A characteristic of an item; for example, the item's color, size, or type. See also: quality attribute.
audit
An independent examination of a work product or set of work products to assess compliance with specifications, standards, contractual agreements, or other criteria. See also: functional configuration audit; physical configuration audit.
authoring language
A high level programming language used to develop courseware for computer-assisted instruction. See also: authoring system.
authoring system
A programming system that incorporates an authoring language.
automated verification system
(1) A software tool that accepts as input a computer program and a representation of its specification and produces, possibly with human help, a proof or disproof of the correctness of the program. (2) Any software tool that automates part or all of the verification process.
availability
The degree to which a system or component is operational and accessible when required for use. Often expressed as a probability. See also: error tolerance; fault tolerance; robustness.

B

back-to-back testing
Testing in which two or more variants of a program are executed with the same inputs, the outputs are compared, and errors are analyzed in case of discrepancies. See also: mutation testing.
background
In job scheduling, the computing environment in which low-priority processes or those not requiring user interaction are executed. Contrast with: foreground. See also: background processing.
background processing
The execution of a low-priority process while higher priority processes are not using computer resources, or the execution of processes that do not require user interaction. Contrast with: foreground processing.
backup
(1) A system, component, file, procedure, or person available to replace or help restore a primary item in the event of a failure or externally caused disaster. (2) To create or designate a system, component, file, procedure, or person as in (1).
backup programmer
The assistant leader of a chief programmer team; responsibilities include contributing significant portions of the software being developed by the team, aiding the chief programmer in reviewing the work of other team members, substituting for the chief programmer when necessary, and having an overall technical understanding of the software being developed. See also: chief programmer.
backward execution
See: reversible execution.
backward recovery
(1) The reconstruction of a file to a given state by reversing all changes made to the file since it was in that state. (2) A type of recovery in which a system, program, database, or other system resource is restored to a previous state in which it can perform required functions. Contrast with: forward recovery.
base address
An address used as a reference point to which a relative address is added to determine the address of the storage location to be accessed. See also: indexed address; relative address; self-relative address.
baseline
(1) A specification or product that has been formally reviewed and agreed upon, that thereafter serves as the basis for further development, and that can be changed only through formal change control procedures. (2) A document or a set of such documents formally designated and fixed at a specific time during the life cycle of a configuration item. Note: Baselines, plus approved changes from those baselines, constitute the current configuration identification. See also: allocated baseline; developmental configuration; functional baseline; product baseline. (3) Any agreement or result designated and fixed at a given time, from which changes require justification and approval.
baseline management
In configuration management, the application of technical and administrative direction to designate the documents and changes to those documents that formally identify and establish baselines at specific times during the life cycle of a configuration item.
batch
Pertaining to a system or mode of operation in which inputs are collected and processed all at one time, rather than being processed as they arrive, and a job, once started, proceeds to completion without additional input or user interaction. Contrast with: conversational; interactive; on-line; real time.
bathtub curve
A graph of the number of failures in a system or component as a function of time. The name is derived from the usual shape of the graph: a period of decreasing failures (the early-failure period), followed by a relatively steady period (the constant-failure period), followed by a period of increasing failures (the wearout-failure period).
benchmark
(1) A standard against which measurements or comparisons can be made. (2) A procedure, problem, or test that can be used to compare systems or components to each other or to a standard as in (1). (3) A recovery file.
big-bang testing
A type of integration testing in which software elements, hardware elements, or both are combined all at once into an overall system, rather than in stages.
binary digit (bit)
(1) A unit of information that can be represented by either a zero or a one. (2) An element of computer storage that can hold a unit of information as in (1). (3) A numeral used to represent one of the two digits in the binary numeration system; zero (0) or one (1). See also: byte; word.
bind
To assign a value to an identifier. For example, to assign a value to a parameter or to assign an absolute address to a symbolic address in a computer program. See also: dynamic binding; static binding.
bit
Acronym for binary digit.
bit steering
A microprogramming technique in which the meaning of a field in a microinstruction is dependent on the value of another field in the microinstruction. Syn: immediate control. Contrast with: residual control. See also: two-level encoding.
black box
(1) A system or component whose inputs, outputs, and general function are known but whose contents or implementation are unknown or irrelevant. Contrast with: glass box. (2) Pertaining to an approach that treats a system or component as in (1). See also: encapsulation.
black-box testing
See: functional testing (1).
block
(1) A group of contiguous storage locations, computer program statements, records, words, characters, or bits that are treated as a unit. See also: block-structured language; delimiter. (2) To form a group as in (1). Contrast with: deblock.
block allocation
See: paging (1).
block diagram
A diagram of a system, computer, or device in which the principal parts are represented by suitably annotated geometrical figures to show both the functions of the parts and their functional relationships. Syn: configuration diagram; system resources chart. See also: box diagram; bubble chart; flowchart; graph; input-process-output chart; structure chart. Fig 1 Block Diagram
block-structured language
A design or programming language in which sequences of statements, called blocks, are defined, usually with begin and end delimiters, and variables or labels defined in one block are not recognized outside that block. Examples include Ada, ALGOL, PL/I. See also: structured programming language.
blocking factor
The number of records, words, characters, or bits in a block.
boot
To initialize a computer system by clearing memory and reloading the operating system. Derived from bootstrap.
bootstrap
(1) A short computer program that is permanently resident or easily loaded into a computer and whose execution brings a larger program, such as an operating system or its loader, into memory. (2) To use a program as in (1). Syn: initial program load.
bootstrap loader
A short computer program used to load a bootstrap.
bottom-up
Pertaining to an activity that starts with the lowest-level components of a hierarchy and proceeds through progressively higher levels; for example, bottom-up design; bottom-up testing. Contrast with: top-down. See also: critical piece first.
boundary value
A data value that corresponds to a minimum or maximum input, internal, or output value specified for a system or component. See also: stress testing.
box diagram
A control flow diagram consisting of a rectangle that is subdivided to show sequential steps, if-then-else conditions, repetition, and case conditions. Syn: Chapin chart; Nassi-Shneiderman chart; program structure diagram. See also: block diagram; bubble chart; flowchart; graph; inputprocess-output chart; program structure diagram; structure chart. Fig 2 Box Diagram
branch
(1) A computer program construct in which one of two or more alternative sets of program statements is selected for execution. See also: case; jump; go to; if-then-else. (2) A point in a computer program at which one of two or more alternative sets of program statements is selected for execution. Syn: branchpoint. (3) Any of the alternative sets of program statements in (1). (4) To perform the selection in (1).
branch testing
Testing designed to execute each outcome of each decision point in a computer program. Contrast with: path testing; statement testing.
branchpoint
See: branch (2).
breakpoint
A point in a computer program at which execution can be suspended to permit manual or automated monitoring of program performance or results. Types include code breakpoint, data breakpoint, dynamic breakpoint, epilog breakpoint, programmable breakpoint, prolog breakpoint, static breakpoint. Note: A breakpoint is said to be set when both a point in the program and an event that will cause suspension of execution at that point are defined; it is said to be initiated when program execution is suspended.
bubble chart
A data flow, data structure, or other diagram in which entities are depicted with circles (bubbles) and relationships are represented by links drawn between the circles. See also: block diagram; box diagram; flowchart; graph; input-process-output chart; structure chart. Fig 3 Bubble Chart
buffer
(1) A device or storage area used to store data temporarily to compensate for differences in rates of data flow, time of occurrence of events, or amounts of data that can be handled by the devices or processes involved in the transfer or use of the data. (2) A routine that accomplishes the objectives in (1). (3) To allocate, schedule, or use devices or storage areas as in (1). See also: anticipatory buffering; dynamic buffering; simple buffering.
bug
See: error; fault.
bug seeding
See: error seeding.
build
An operational version of a system or component that incorporates a specified subset of the capabilities that the final product will provide.
burn-in period
See: early-failure period.
busy
Pertaining to a system or component that is operational, in service, and in use. See also: down; idle; up.
busy time
In computer performance engineering, the period of time during which a system or component is operational, in service, and in use. See also: down time; idle time; set-up time; up time.
byte
(1) A group of adjacent binary digits operated upon as a unit and usually shorter than a computer word (frequently connotes a group of eight bits). (2) An element of computer storage that can hold a group of bits as in (1). See also: bit; word.

C

call
(1) A transfer of control from one software module to another, usually with the implication that control will be returned to the calling module. Contrast with: go to. (2) A computer instruction that transfers control from one software module to another as in (1) and, often, specifies the parameters to be passed to and from the module. (3) To transfer control from one software module to another as in (1) and, often, to pass parameters to the other module. Syn: cue. See also: call by name; call by reference; call by value; call list; calling sequence.
call by address
See: call by reference.
call by location
See: call by reference.
call by name
A method for passing parameters, in which the calling module provides to the called module a symbolic expression representing the parameter to be passed, and a service routine evaluates the expression and provides the resulting value to the called module. Note: Because the expression is evaluated each time its corresponding formal parameter is used in the called module, the value of the parameter may change during the execution of the called module. Contrast with: call by reference; call by value.
call by reference
A method for passing parameters, in which the calling module provides to the called module the address of the parameter to be passed. Note: With this method, the called module has the ability to change the value of the parameter stored by the calling module. Syn: call by address; call by location. Contrast with: call by name; call by value.
call by value
A method of passing parameters, in which the calling module provides to the called module the actual value of the parameter to be passed. Note: With this method, the called module cannot change the value of the parameter as stored by the calling module. Contrast with: call by name; call by reference.
call graph
A diagram that identifies the modules in a system or computer program and shows which modules call one another. Note: The result is not necessarily the same as that shown in a structure chart. Syn: call tree; tier chart. Contrast with: structure chart. See also: control flow diagram; data flow diagram; data structure diagram; state diagram. Fig 4 Call Graph
call list
The ordered list of arguments used in a call to a software module.
call trace
See: subroutine trace.
call tree
See: call graph.
calling sequence
A sequence of computer instructions and, possibly, data necessary to perform a call to another module.
case
Case
CASE
Acronym for computer-aided software engineering.
case
A single-entry, single-exit multiple-way branch that defines a control expression, specifies the processing to be performed for each value of the control expression, and returns control in all instances to the statement immediately following the overall construct. Syn: multiple exclusive selective construct. Contrast with: go to; jump; if-then-else. See also: multiple inclusive selective construct. Fig 5 Case Construct
catastrophic failure
A failure of critical software.
ccb
CCB
(1) Acronym for configuration control board. (2) Acronym for change control board. See: configuration control board.
cdr
CDR
Acronym for critical design review.
certification
(1) A written guarantee that a system or component complies with its specified requirements and is acceptable for operational use. For example, a written authorization that a computer system is secure and is permitted to operate in a defined environment. (2) A formal demonstration that a system or component complies with its specified requirements and is acceptable for operational use. (3) The process of confirming that a system or component complies with its specified requirements and is acceptable for operational use.
change control
See: configuration control.
change control board
See: configuration control board.
change dump
A selective dump of those storage locations whose contents have changed since some specified time or event. Syn: differential dump. See also: dynamic dump; memory dump; postmortem dump; selective dump; snapshot dump; static dump.
channel capacity
The maximum amount of information that can be transferred on a given channel per unit of time; usually measured in bits per second or in baud. See also: memory capacity; storage capacity.
chapin chart
Chapin chart
See: box diagram.
character
A letter, digit, or other symbol that is used to represent information.
character type
A data type whose members can assume the values of specified characters and can be operated on by character operators, such as concatenation. Contrast with: enumeration type; integer type; logical type; real type.
characteristic
(IEEE Std 1008-1987 [10]) See: data characteristic; software characteristic.
checkout
Testing conducted in the operational or support environment to ensure that a software product performs as required after installation.
checkpoint
A point in a computer program at which program state, status, or results are checked or recorded.
chief programmer
The leader of a chief programmer team; a senior-level programmer whose responsibilities include producing key portions of the software assigned to the team, coordinating the activities of the team, reviewing the work of the other team members, and having an overall technical understanding of the software being developed. See also: backup programmer; chief programmer team.
chief programmer team
A software development group that consists of a chief programmer, a backup programmer, a secretary/librarian, and additional programmers and specialists as needed, and that employs procedures designed to enhance group communication and to make optimum use of each member's skills. See also: backup programmer; chief programmer; egoless programming.
ci
CI
Acronym for configuration item.
clear
To set a variable, register, or other storage location to zero, blank, or other null value. See also: initialize; reset.
closed loop
A loop that has no exit and whose execution can be interrupted only by intervention from outside the computer program or procedure in which the loop is located. Contrast with: UNTIL; WHILE.
closed subroutine
A subroutine that is stored at one given location rather than being copied into a computer program at each place that it is called. Contrast with: open subroutine.
cm
CM
Acronym for configuration management.
code
(1) In software engineering, computer instructions and data definitions expressed in a programming language or in a form output by an assembler, compiler, or other translator. See also: source code; object code; machine code; microcode. (2) To express a computer program in a programming language. (3) A character or bit pattern that is assigned a particular meaning; for example, a status code.
code breakpoint
A breakpoint that is initiated upon execution of a given computer instruction. Syn: control breakpoint. Contrast with: data breakpoint. See also: dynamic breakpoint; epilog breakpoint; programmable breakpoint; prolog breakpoint; static breakpoint.
code generator
(1) A routine, often part of a compiler, that transforms a computer program from some intermediate level of representation (often the output of a root compiler or parser) into a form that is closer to the language of the machine on which the program will execute. (2) A software tool that accepts as input the requirements or design for a computer program and produces source code that implements the requirements or design. Syn: source code generator. See also: application generator.
code inspection
See: inspection.
code of ethics standard
(IEEE Std 1002-1987 [9]) A standard that describes the characteristics of a set of moral principles dealing with accepted standards of conduct by, within, and among professionals.
code review
A meeting at which software code is presented to project personnel, managers, users, customers, or other interested parties for comment or approval. Contrast with: design review; formal qualification review; requirements review; test readiness review.
code trace
See: execution trace.
coding
(1) In software engineering, the process of expressing a computer program in a programming language. (2) (IEEE Std 1002-1987 [9]) The transforming of logic and data from design specifications (design descriptions) into a programming language. See also: software development process.
cohesion
The manner and degree to which the tasks performed by a single software module are related to one another. Types include coincidental, communicational, functional, logical, procedural, sequential, and temporal. Syn: module strength. Contrast with: coupling.
coincidental cohesion
A type of cohesion in which the tasks performed by a software module have no functional relationship to one another. Contrast with: communicational cohesion; functional cohesion; logical cohesion; procedural cohesion; sequential cohesion; temporal cohesion.
command
An expression that can be input to a computer system to initiate an action or affect the execution of a computer program; for example, the "log on" command to initiate a computer session.
command-driven
Pertaining to a system or mode of operation in which the user directs the system through commands. Contrast with: menu-driven.
command language
A language used to express commands to a computer system. See also: command-driven.
comment
Information embedded within a computer program, job control statements, or a set of data, that provides clarification to human readers but does not affect machine interpretation.
common
See: common storage.
common area
See: common storage.
common block
See: common storage.
common coupling
See: common-environment coupling.
common data
See: global data.
common-environment coupling
A type of coupling in which two software modules access a common data area. Syn: common coupling. Contrast with: content coupling; control coupling; data coupling; hybrid coupling; pathological coupling.
common storage
A portion of main storage that can be accessed by two or more modules in a software system. Syn: common area; common block. See also: global data.
communicational cohesion
A type of cohesion in which the tasks performed by a software module use the same input data or contribute to producing the same output data. Contrast with: coincidental cohesion; functional cohesion; logical cohesion; procedural cohesion; sequential cohesion; temporal cohesion.
compaction
In microprogramming, the process of converting a microprogram into a functionally equivalent microprogram that is faster or shorter than the original. See also: local compaction; global compaction.
comparator
A software tool that compares two computer programs, files, or sets of data to identify commonalities or differences. Typical objects of comparison are similar versions of source code, object code, database files, or test results.
compatibility
(1) The ability of two or more systems or components to perform their required functions while sharing the same hardware or software environment. (2) The ability of two or more systems or components to exchange information. See also: interoperability.
compile
To translate a computer program expressed in a high order language into its machine language equivalent. Contrast with: assemble; decompile; interpret.
compile-and-go
An operating technique in which there are no stops between the compiling, linking, loading, and execution of a computer program.
compiler
A computer program that translates programs expressed in a high order language into their machine language equivalents. Contrast with: assembler; interpreter. See also: cross-compiler; incremental compiler; root compiler.
compiler code
Computer instructions and data definitions expressed in a form that can be recognized and processed by a compiler. Contrast with: assembly code; interpretive code; machine code.
compiler compiler
See: compiler generator.
compiler generator
A translator or interpreter used to construct part or all of a compiler. Syn: compiler compiler; metacompiler.
completion code
A code communicated to a job stream processor by a batch program to influence the execution of succeeding steps in the input stream.
complexity
(1) The degree to which a system or component has a design or implementation that is difficult to understand and verify. Contrast with: simplicity. (2) Pertaining to any of a set of structure-based metrics that measure the attribute in (1).
component
One of the parts that make up a system. A component may be hardware or software and may be subdivided into other components. Note: The terms "module," "component," and "unit" are often used interchangeably or defined to be subelements of one another in different ways depending upon the context. The relationship of these terms is not yet standardized.
component standard
(IEEE Std 1002-1987 [9]) A standard that describes the characteristics of data or program components.
component testing
Testing of individual hardware or software components or groups of related components. Syn: module testing. See also: integration testing; interface testing; system testing; unit testing.
composite type
A data type each of whose members is composed of multiple data items. For example, a data type called PAIRS whose members are ordered pairs (x,y). Contrast with: atomic type.
computer-aided software engineering (CASE)
The use of computers to aid in the software engineering process. May include the application of software tools to software design, requirements tracing, code production, testing, document generation, and other software engineering activities.
computer instruction
(1) A statement in a programming language, specifying an operation to be performed by a computer and the addresses or values of the associated operands; for example, Move A to B. See also: instruction format; instruction set. (2) Loosely, any executable statement in a computer program.
computer language
A language designed to enable humans to communicate with computers. See also: design language; query language; programming language. Note: P610.13 [17] defines specific computer languages.
computer performance evaluation
An engineering discipline that measures the performance of computer systems and investigates methods by which that performance can be improved. See also: system profile; throughput; utilization; workload model.
computer program
A combination of computer instructions and data definitions that enable computer hardware to perform computational or control functions. See also: software.
computer program abstract
A brief description of a computer program that provides sufficient information for potential users to determine the appropriateness of the program to their needs and resources.
computer program component (CPC).*
See: computer software component. *Deprecated.
computer program configuration item (CPCI).*
See: computer software configuration item. *Deprecated.
computer resource allocation
The assignment of computer resources to current and waiting jobs; for example, the assignment of main memory, input/output devices, and auxiliary storage to jobs executing concurrently in a computer system. See also: dynamic resource allocation; storage allocation.
computer resources
The computer equipment, programs, documentation, services, facilities, supplies, and personnel available for a given purpose. See also: computer resource allocation.
computer security
Note: P610.9 [16] defines terminology pertaining to computer security.
computer software component (CSC)
A functionally or logically distinct part of a computer software configuration item, typically an aggregate of two or more software units.
computer software configuration item (CSCI)
An aggregation of software that is designated for configuration management and treated as a single entity in the configuration management process. Contrast with: hardware configuration item. See also: configuration item.
computer system
A system containing one or more computers and associated software.
computer word
See: word.
computing center
A facility designed to provide computer services to a variety of users through the operation of computers and auxiliary hardware and through services provided by the facility's staff.
concept phase
(1) (IEEE Std 1002-1987 [9]) The period of time in the software development cycle during which the user needs are described and evaluated through documentation (for example, statement of needs, advance planning report, project initiation memo, feasibility studies, system definition, documentation, regulations, procedures, or policies relevant to the project). (2) (IEEE Std 1012-1986 [12]) The initial phase of a software development project, in which the user needs are described and evaluated through documentation (for example, statement of needs, advance planning report, project initiation memo, feasibility studies, system definition, documentation, regulations, procedures, or policies relevant to the project).
concurrent
Pertaining to the occurrence of two or more activities within the same interval of time, achieved either by interleaving the activities or by simultaneous execution. Syn: parallel (2). Contrast with: simultaneous.
condition code
See: status code.
conditional branch.*
See: conditional jump. *Deprecated.
conditional jump
A jump that takes place only when specified conditions are met. Contrast with: unconditional jump.
configuration
(1) The arrangement of a computer system or component as defined by the number, nature, and interconnections of its constituent parts. (2) In configuration management, the functional and physical characteristics of hardware or software as set forth in technical documentation or achieved in a product. See also: configuration item; form, fit, and function; version.
configuration audit
See: functional configuration audit; physical configuration audit.
configuration control
An element of configuration management, consisting of the evaluation, coordination, approval or disapproval, and implementation of changes to configuration items after formal establishment of their configuration identification. Syn: change control. Contrast with: configuration identification; configuration status accounting. See also: configuration control board; deviation; engineering change; interface control; notice of revision; specification change notice; waiver.
configuration control board (CCB)
A group of people responsible for evaluating and approving or disapproving proposed changes to configuration items, and for ensuring implementation of approved changes. Syn: change control board. See also: configuration control.
configuration diagram
See: block diagram.
configuration identification
(1) An element of configuration management, consisting of selecting the configuration items for a system and recording their functional and physical characteristics in technical documentation. Contrast with: configuration control; configuration status accounting. (2) The current approved technical documentation for a configuration item as set forth in specifications, drawings, associated lists, and documents referenced therein. See also: allocated configuration identification; functional configuration identification; product configuration identification; baseline.
configuration index
A document used in configuration management, providing an accounting of the configuration items that make up a product. See also: configuration item development record; configuration status accounting.
configuration item (CI)
An aggregation of hardware, software, or both, that is designated for configuration management and treated as a single entity in the configuration management process. See also: hardware configuration item; computer software configuration item; configuration identification; critical item.
configuration item development record
A document used in configuration management, describing the development status of a configuration item based on the results of configuration audits and design reviews. See also: configuration index; configuration status accounting.
configuration management (CM)
A discipline applying technical and administrative direction and surveillance to: identify and document the functional and physical characteristics of a configuration item, control changes to those characteristics, record and report change processing and implementation status, and verify compliance with specified requirements. See also: baseline; configuration identification; configuration control; configuration status accounting; configuration audit.
configuration status accounting
An element of configuration management, consisting of the recording and reporting of information needed to manage a configuration effectively. This information includes a listing of the approved configuration identification, the status of proposed changes to the configuration, and the implementation status of approved changes. Contrast with: configuration control; configuration identification. See also: configuration index; configuration item development record.
consecutive
Pertaining to the occurrence of two sequential events or items without the intervention of any other event or item; that is, one immediately after the other.
consistency
The degree of uniformity, standardization, and freedom from contradiction among the documents or parts of a system or component. See also: traceability.
constant
A quantity or data item whose value cannot change; for example, the data item FIVE, with an unchanging value of 5. Contrast with: variable. See also: figurative constant; literal.
constant-failure period
The period of time in the life cycle of a system or component during which hardware failures occur at an approximately uniform rate. Contrast with: early-failure period; wearout-failure period. See also: bathtub curve.
content coupling
A type of coupling in which some or all of the contents of one software module are included in the contents of another module. Contrast with: common-environment coupling; control coupling; data coupling; hybrid coupling; pathological coupling.
contiguous allocation
A storage allocation technique in which programs or data to be stored are allocated a block of storage of equal or greater size, so that logically contiguous programs and data are assigned physically contiguous storage locations. Contrast with: paging (1).
continuous iteration
A loop that has no exit.
control breakpoint
See: code breakpoint.
control coupling
A type of coupling in which one software module communicates information to another module for the explicit purpose of influencing the latter module's execution. Contrast with: common-environment coupling; content coupling; data coupling; hybrid coupling; pathological coupling.
control data
Data that select an operating mode, direct the sequential flow of a program, or otherwise directly influence the operation of software; for example, a loop control variable.
control flow
The sequence in which operations are performed during the execution of a computer program. Syn: flow of control. Contrast with: data flow.
control flow diagram
A diagram that depicts the set of all possible sequences in which operations may be performed during the execution of a system or program. Types include box diagram, flowchart, input-process-output chart, state diagram. Contrast with: data flow diagram. See also: call graph; structure chart.
control flow trace
See: execution trace.
control language
See: job control language.
control program
See: supervisory program.
control statement
A program statement that selects among alternative sets of program statements or affects the order in which operations are performed. For example, if-then-else, case. Contrast with: assignment statement; declaration.
control store
In a microprogrammed computer, the computer memory in which microprograms reside. See also: microword; nanostore.
control variable
See: loop-control variable.
conventions
(IEEE Std 983-1986 [7]) Requirements employed to prescribe a disciplined uniform approach to providing consistency in a software product, that is, uniform patterns or forms for arranging data. See also: practices; standards.
conversational
Pertaining to an interactive system or mode of operation in which the interaction between the user and the system resembles a human dialog. Contrast with: batch. See also: interactive; on-line; real time.
conversational compiler
See: incremental compiler.
conversion
Modification of existing software to enable it to operate with similar functional capability in a different environment; for example, converting a program from FORTRAN to Ada, converting a program that runs on one computer to run on another.
copy
(1) To read data from a source, leaving the source data unchanged, and to write the same data elsewhere in a physical form that may differ from that of the source. For example, to copy data from a magnetic disk onto a magnetic tape. Contrast with: move. (2) The result of a copy process as in (1). For example, a copy of a data file.
core dump.*
See: memory dump. *Deprecated.
coroutine
A routine that begins execution at the point at which operation was last suspended, and that is not required to return control to the program or subprogram that called it. Contrast with: subroutine.
corrective maintenance
Maintenance performed to correct faults in hardware or software. Contrast with: adaptive maintenance; perfective maintenance.
correctness
(1) The degree to which a system or component is free from faults in its specification, design, and implementation. (2) The degree to which software, documentation, or other items meet specified requirements. (3) The degree to which software, documentation, or other items meet user needs and expectations, whether specified or not.
correctness proof
See: proof of correctness.
counter
A variable used to record the number of occurrences of a given event during the execution of a computer program; for example, a variable that records the number of times a loop is executed.
coupling
The manner and degree of interdependence between software modules. Types include common-environment coupling, content coupling, control coupling, data coupling, hybrid coupling, and pathological coupling. Contrast with: cohesion.
cpc
CPC
Acronym for computer program component. See: computer software component.
cpci
CPCI
Acronym for computer program configuration item. See: computer software configuration item.
crash
The sudden and complete failure of a computer system or component. See also: hard failure.
critical design review (CDR)
(1) A review conducted to verify that the detailed design of one or more configuration items satisfy specified requirements; to establish the compatibility among the configuration items and other items of equipment, facilities, software, and personnel; to assess risk areas for each configuration item; and, as applicable, to assess the results of producibility analyses, review preliminary hardware product specifications, evaluate preliminary test planning, and evaluate the adequacy of preliminary operation and support documents. See also: preliminary design review; system design review. (2) A review as in (1) of any hardware or software component.
critical item
In configuration management, an item within a configuration item that, because of special engineering or logistic considerations, requires an approved specification to establish technical or inventory control at the component level.
critical piece first
A system development approach in which the most critical aspects of a system are implemented first. The critical piece may be defined in terms of services provided, degree of risk, difficulty, or other criteria. See also: bottom-up; top-down.
critical software
(IEEE Std 1012-1986 [12]) Software whose failure could have an impact on safety, or could cause large financial or social loss.
criticality
The degree of impact that a requirement, module, error, fault, failure, or other item has on the development or operation of a system. Syn: severity.
cross-assembler
An assembler that executes on one computer but generates machine code for a different computer.
cross-compiler
A compiler that executes on one computer but generates machine code for a different computer.
cross-reference generator
A software tool that accepts as input the source code of a computer program and produces as output a listing that identifies each of the program's variables, labels, and other identifiers and indicates which statements in the program define, set, or use each one. Syn: cross-referencer.
cross-reference list
A list that identifies each of the variables, labels, and other identifiers in a computer program and indicates which statements in the program define, set, or use each one.
cross-referencer
See: cross-reference generator.
csc
CSC
Acronym for computer software component.
csci
CSCI
Acronym for computer software configuration item.
cue
See: call (3).
curriculum standard
(IEEE Std 1002-1987 [9]) A standard that describes the characteristics of a course of study on a body of knowledge that is offered by an educational institution.
cycle
(1) A period of time during which a set of events is completed. See also: software development cycle; software life cycle. (2) A set of operations that is repeated regularly in the same sequence, possibly with variations in each repetition; for example, a computer's read cycle. See also: pass.
cycle stealing
The process of suspending the operation of a central processing unit for one or more cycles to permit the occurrence of other operations, such as transferring data from main memory in response to an output request from an input/output controller.
cyclic search
A storage allocation technique in which each search for a suitable block of storage begins with the block following the one last allocated.

D

data
(1) A representation of facts, concepts, or instructions in a manner suitable for communication, interpretation, or processing by humans or by automatic means. See also: data type. Note: IEEE Std 610.5-1990 [2] defines terminology pertaining to data management. (2) Sometimes used as a synonym for documentation.
data abstraction
(1) The process of extracting the essential characteristics of data by defining data types and their associated functional characteristics and disregarding representation details. See also: encapsulation; information hiding. (2) The result of the process in (1).
data breakpoint
A breakpoint that is initiated when a specified data item is accessed. Syn: storage breakpoint. Contrast with: code breakpoint. See also: dynamic breakpoint; epilog breakpoint; programmable breakpoint; prolog breakpoint; static breakpoint.
data characteristic
(IEEE Std 1008-1987 [10]) An inherent, possibly accidental, trait, quality, or property of data (for example, arrival rates, formats, value ranges, or relationships between field values).
data coupling
A type of coupling in which output from one software module serves as input to another module. Syn: input-output coupling. Contrast with: common-environment coupling; content coupling; control coupling; hybrid coupling; pathological coupling.
data definition
Note: This term is defined in IEEE Std 610.5-1990 [2].
data exception
An exception that occurs when a program attempts to use or access data incorrectly. See also: addressing exception; operation exception; overflow exception; protection exception; underflow exception.
data flow
The sequence in which data transfer, use, and transformation are performed during the execution of a computer program. Contrast with: control flow.
data flow diagram (DFD)
A diagram that depicts data sources, data sinks, data storage, and processes performed on data as nodes, and logical flow of data as links between the nodes. Syn: data flowchart; data flow graph. Contrast with: control flow diagram; data structure diagram. Fig 6 Data Flow Diagram
data flow graph
See: data flow diagram.
data flow trace
See: variable trace.
data flowchart (flow chart)
See: data flow diagram.
data input sheet
User documentation that describes, in a worksheet format, the required and optional input data for a system or component. See also: user manual.
data-sensitive fault
A fault that causes a failure in response to some particular pattern of data. Syn: pattern-sensitive fault. Contrast with: program-sensitive fault.
data structure
A physical or logical relationship among data elements, designed to support specific data manipulation functions. Note: IEEE Std 610.5-1990 [2] defines specific data structures.
data structure-centered design
A software design technique in which the architecture of a system is derived from analysis of the structure of the data sets with which the system must deal. See also: input-process-output; modular decomposition; object-oriented design; rapid prototyping; stepwise refinement; structure clash; structured design; transaction analysis; transform analysis.
data structure diagram
A diagram that depicts a set of data elements, their attributes, and the logical relationships among them. Contrast with: data flow diagram. See also: entity-relationship diagram. Fig 7 Data Structure Diagram
data trace
See: variable trace.
data type
A class of data, characterized by the members of the class and the operations that can be applied to them. For example, character type, enumeration type, integer type, logical type, real type. See also: strong typing.
database
A collection of interrelated data stored together in one or more computerized files. Note: IEEE Std 610.5-1990 [2] defines terminology pertaining to databases.
datum
Singular for data.
deadlock
A situation in which computer processing is suspended because two or more devices or processes are each awaiting resources assigned to the others. See also: lockout.
deassembler.*
See: disassembler. * Deprecated.
deblock
To separate the parts of a block. Contrast with: block (2).
debug
To detect, locate, and correct faults in a computer program. Techniques include use of breakpoints, desk checking, dumps, inspection, reversible execution, single-step operation, and traces.
decision table
A table used to show sets of conditions and the actions resulting from them.
declaration
A non-executable program statement that affects the assembler or compiler's interpretation of other statements in the program. For example, a statement that identifies a name, specifies what the name represents, and, possibly, assigns it an initial value. Contrast with: assignment statement; control statement. See also: pseudo instruction.
declarative language
A nonprocedural language that permits the user to declare a set of facts and to express queries or problems that use these facts. See also: interactive language; rule-based language.
decompile
To translate a compiled computer program from its machine language version into a form that resembles, but may not be identical to, the original high order language program. Contrast with: compile.
decompiler
A software tool that decompiles computer programs.decoupling. The process of making software modules more independent of one another to decrease the impact of changes to, and errors in, the individual modules. See also: coupling.
delimiter
A character or set of characters used to denote the beginning or end of a group of related bits, characters, words, or statements.
delivery
Release of a system or component to its customer or intended user. See also: software life cycle; system life cycle.
demand paging
A storage allocation technique in which pages are transferred from auxiliary storage to main storage only when those pages are needed. Contrast with: anticipatory paging.
demodularization
In software design, the process of combining related software modules, usually to optimize system performance. See also: downward compression; lateral compression; upward compression.
demonstration
A dynamic analysis technique that relies on observation of system or component behavior during execution, without need for post-execution analysis, to detect errors, violations of development standards, and other problems. See also: testing.
derived type
A data type whose members and operations are taken from those of another data type according to some specified rule. See also: subtype.
description standard
(IEEE Std 1002-1987 [9]) A standard that describes the characteristics of product information or procedures provided to help understand, test, install, operate, or maintain the product.
design
(1) The process of defining the architecture, components, interfaces, and other characteristics of a system or component. See also: architectural design; preliminary design; detailed design. (2) The result of the process in (1).
design description
A document that describes the design of a system or component. Typical contents include system or component architecture, control logic, data structures, input/output formats, interface descriptions, and algorithms. Syn: design document; design specification. See also: product specification. Contrast with: requirements specification.
design document
See: design description.
design element
(IEEE Std 990-1987 [8]) A basic component or building block in a design.
design entity
(IEEE Std 1016-1987 [13]) An element (component) of a design that is structurally and functionally distinct from other elements and that is separately named and referenced.
design inspection
See: inspection.
design language
A specification language with special constructs and, sometimes, verification protocols, used to develop, analyze, and document a hardware or software design. Types include hardware design language, program design language. See also: requirements specification language.
design level
(IEEE Std 829-1983 [5]) The design decomposition of the software item (for example, system, subsystem, program, or module).
design phase
The period of time in the software life cycle during which the designs for architecture, software components, interfaces, and data are created, documented, and verified to satisfy requirements. See also: detailed design; preliminary design.
design requirement
A requirement that specifies or constrains the design of a system or system component. Contrast with: functional requirement; implementation requirement; interface requirement; performance requirement; physical requirement.
design review
A process or meeting during which a system, hardware, or software design is presented to project personnel, managers, users, customers, or other interested parties for comment or approval. Types include critical design review, preliminary design review, system design review. Contrast with: code review; formal qualification review; requirements review; test readiness review.
design specification
See: design description.
design standard
(IEEE Std 1002-1987 [9]) A standard that describes the characteristics of a design or a design description of data or program components.
design unit
(IEEE Std 990-1987 [8]) A logically related collection of design elements. In an Ada PDL, a design unit is represented by an Ada compilation unit.
design view
(IEEE Std 1016-1987 [13]) A subset of design entity attribute information that is specifically suited to the needs of a software project activity.
desk checking
A static analysis technique in which code listings, test results, or other documentation are visually examined, usually by the person who generated them, to identify errors, violations of development standards, or other problems. See also: inspection; walk-through.
destination address
The address of the device or storage location to which data is to be transferred. Contrast with: source address.
destructive read
A read operation that alters the data in the accessed location. Contrast with: nondestructive read.
detailed design
(1) The process of refining and expanding the preliminary design of a system or component to the extent that the design is sufficiently complete to be implemented. See also: software development process. (2) The result of the process in (1).
development cycle
See: software development cycle.
development life cycle
See: software development cycle.
development specification
See: requirements specification.
development testing
Formal or informal testing conducted during the development of a system or component, usually in the development environment by the developer. Contrast with: acceptance testing; operational testing. See also: qualification testing.
developmental baseline.*
See: developmental configuration. *Deprecated.
developmental configuration
In configuration management, the software and associated technical documentation that define the evolving configuration of a computer software configuration item during development. Note: The developmental configuration is under the developer's control, and therefore is not called a baseline. Contrast with: allocated baseline; functional baseline; product baseline.
deviation
(1) A departure from a specified requirement. (2) A written authorization, granted prior to the manufacture of an item, to depart from a particular performance or design requirement for a specific number of units or a specific period of time. Note: Unlike an engineering change, a deviation does not require revision of the documentation defining the affected item. See also: configuration control. Contrast with: engineering change; waiver.
device
A mechanism or piece of equipment designed to serve a purpose or perform a function.
dfd
DFD
Acronym for data flow diagram.
diagnostic
Pertaining to the detection and isolation of faults or failures; for example, a diagnostic message, a diagnostic manual.
diagnostic manual
A document that presents the information necessary to execute diagnostic procedures for a system or component, identify malfunctions, and remedy those malfunctions. Typically described are the diagnostic features of the system or component and the diagnostic tools available for its support. See also: installation manual; operator manual; programmer manual; support manual; user manual.
diagonal microinstruction
A microinstruction capable of specifying a limited number of simultaneous operations needed to carry out a machine language instruction. Note: Diagonal microinstructions fall, in size and functionality, between horizontal microinstructions and vertical microinstructions. The designation "diagonal" refers to this compromise rather than to any physical characteristic of the microinstruction. Contrast with: horizontal microinstruction; vertical microinstruction.
differential dump
See: change dump.
digraph
See: directed graph.
direct address
An address that identifies the storage location of an operand. Syn: one-level address. Contrast with: immediate data; indirect address; n-level address. See also: direct instruction.
direct insert subroutine
See: open subroutine.
direct instruction
A computer instruction that contains the direct addresses of its operands. Contrast with: immediate instruction; indirect instruction. See also: absolute instruction; effective instruction.
directed graph
A graph (sense 2) in which direction is implied in the internode connections. Syn: digraph. Contrast with: undirected graph. Fig 8 Directed Graph
directory
A list of data items and information about those data items. Note: IEEE Std 610.5-1990 [2] defines Data Management terms.
disassemble
To translate an assembled computer program from its machine language version into a form that resembles, but may not be identical to, the original assembly language program. Contrast with: assemble.
disassembler
A software tool that disassembles computer programs. Syn: deassembler.
discrete type
A data type whose members can assume any of a set of distinct values. A discrete type may be an enumeration type or an integer type.
diverse redundancy
See: diversity.
diversity
In fault tolerance, realization of the same function by different means. For example, use of different processors, storage media, programming languages, algorithms, or development teams. See also: software diversity.
do-nothing operation
See: no-operation.
document
(1) A medium, and the information recorded on it, that generally has permanence and can be read by a person or a machine. Examples in software engineering include project plans, specifications, test plans, user manuals. (2) To create a document as in (1). (3) To add comments to a computer program.
documentation
(1) A collection of documents on a given subject. (2) Any written or pictorial information describing, defining, specifying, reporting, or certifying activities, requirements, procedures, or results. (3) The process of generating or revising a document. (4) The management of documents, including identification, acquisition, processing, storage, and dissemination.
documentation tree
A diagram that depicts all of the documents for a given system and shows their relationships to one another. See also: specification tree. Fig 9 Documentation Tree
double-operand instruction
See: two-address instruction.
down
Pertaining to a system or component that is not operational or has been taken out of service. Contrast with: up. See also: busy; crash; idle.
down time
The period of time during which a system or component is not operational or has been taken out of service. Contrast with: up time. See also: busy time; idle time; mean time to repair; set-up time.
downward compatible
Pertaining to hardware or software that is compatible with an earlier or less complex version of itself; for example, a program that handles files created by an earlier version of itself. Contrast with: upward compatible.
downward compression
In software design, a form of demodularization in which a superordinate module is copied into the body of a subordinate module. Contrast with: lateral compression; upward compression.
driver
(1) A software module that invokes and, perhaps, controls and monitors the execution of one or more other software modules. See also: test driver. (2) A computer program that controls a peripheral device and, sometimes, reformats data for transfer to and from the device.dual coding. See: software diversity.
dump
(1) A display of some aspect of a computer program's execution state, usually the contents of internal storage or registers. Types include change dump, dynamic dump, memory dump, postmortem dump, selective dump, snapshot dump, static dump. (2) A display of the contents of a file or device. (3) To copy the contents of internal storage to an external medium. (4) To produce a display or copy as in (1), (2), or (3).
dyadic selective construct
An if-then-else construct in which processing is specified for both outcomes of the branch. Contrast with: monadic selective construct.
dynamic
Pertaining to an event or process that occurs during computer program execution; for example, dynamic analysis, dynamic binding. Contrast with: static.
dynamic allocation
See: dynamic resource allocation.
dynamic analysis
The process of evaluating a system or component based on its behavior during execution. Contrast with: static analysis. See also: demonstration; testing.
dynamic binding
Binding performed during the execution of a computer program. Contrast with: static binding.
dynamic breakpoint
A breakpoint whose predefined initiation event is a runtime characteristic of the program, such as the execution of any twenty source statements. Contrast with: static breakpoint. See also: code breakpoint; data breakpoint; epilog breakpoint; programmable breakpoint; prolog breakpoint.
dynamic buffering
A buffering technique in which the buffer allocated to a computer program varies during program execution, based on current need. Contrast with: simple buffering.
dynamic dump
A dump that is produced during the execution of a computer program. Contrast with: static dump. See also: change dump; memory dump; postmortem dump; selective dump; snapshot dump.
dynamic error
An error that is dependent on the time-varying nature of an input. Contrast with: static error.
dynamic relocation
Relocation of a computer program during its execution.
dynamic resource allocation
A computer resource allocation technique in which the resources assigned to a program vary during program execution, based on current need.
dynamic restructuring
The process of restructuring a database, data structure, computer program, or set of system components during program execution.
dynamic storage allocation
A storage allocation technique in which the storage assigned to a computer program varies during program execution, based on the current needs of the program and of other executing programs.

E

er
ER
e-r
E-R diagram
Acronym for entity-relationship diagram.
early-failure period
The period of time in the life cycle of a system or component during which hardware failures occur at a decreasing rate as problems are detected and repaired. Syn: burn-in period. Contrast with: constant-failure period; wearout-failure period. See also: bathtub curve.
echo
(1) To return a transmitted signal to its source, often with a delay to indicate that the signal is a reflection rather than the original. (2) A returned signal, as in (1).
ecp
ECP
Acronym for engineering change proposal.
edit
To modify the form or format of computer code, data, or documentation; for example, to insert, rearrange, or delete characters.
editor
(1) See: text editor. (2) See: linkage editor.
effective address
The address that results from performing any required indexing, indirect addressing, or other address modification on a specified address. Note: If the specified address requires no modification, it is also the effective address. See also: generated address; indirect address; relative address.
effective instruction
The computer instruction that results from performing any required indexing, indirect addressing, or other modification on the addresses in a specified computer instruction. Note: If the specified instruction requires no modification, it is also the effective instruction. See also: absolute instruction; direct instruction; immediate instruction; indirect instruction.
efferent
Pertaining to a flow of data or control from a superordinate module to a subordinate module in a software system. Contrast with: afferent.
efficiency
The degree to which a system or component performs its designated functions with minimum consumption of resources. See also: execution efficiency; storage efficiency.
egoless programming
A software development technique based on the concept of team, rather than individual, responsibility for program development. Its purpose is to prevent individual programmers from identifying so closely with their work that objective evaluation is impaired.
embedded computer system
A computer system that is part of a larger system and performs some of the requirements of that system; for example, a computer system used in an aircraft or rapid transit system.
embedded software
Software that is part of a larger system and performs some of the requirements of that system; for example, software used in an aircraft or rapid transit system.
emulation
(1) A model that accepts the same inputs and produces the same outputs as a given system. See also: simulation. (2) The process of developing or using a model as in (1).
emulator
A device, computer program, or system that accepts the same inputs and produces the same outputs as a given system. See also: simulator.
encapsulation
A software development technique that consists of isolating a system function or a set of data and operations on those data within a module and providing precise specifications for the module. See also: data abstraction; information hiding.
engineering
The application of a systematic, disciplined, quantifiable approach to structures, machines, products, systems, or processes.
engineering change
In configuration management, an alteration in the configuration of a configuration item or other designated item after formal establishment of its configuration identification. See also: configuration control; engineering change proposal. Contrast with: deviation; waiver.
engineering change proposal (ECP)
In configuration management, a proposed engineering change and the documentation by which the change is described and suggested. See also: configuration control.
entity
In computer programming, any item that can be named or denoted in a program. For example, a data item, program statement, or subprogram.
entity attribute
(IEEE Std 1016-1987 [13]) A named characteristic or property of a design entity. It provides a statement of fact about the entity.
entity-relationship (E-R) diagram
A diagram that depicts a set of real-world entities and the logical relationships among them. Syn: entity-relationship map. See also: data structure diagram.
entity-relationship (E-R) map
See: entity-relationship diagram.
entrance
See: entry point.
entry
See: entry point.
entry point
A point in a software module at which execution of the module can begin. Contrast with: exit. Syn: entrance; entry. See also: reentry point.
enumeration type
A discrete data type whose members can assume values that are explicitly defined by the programmer. For example, a data type called COLORS with possible values RED, BLUE, and YELLOW. Contrast with: character type; integer type; logical type; real type.
epilog breakpoint
A breakpoint that is initiated upon exit from a given program or routine. Syn: postamble breakpoint. Contrast with: prolog breakpoint. See also: code breakpoint; data breakpoint; dynamic breakpoint; programmable breakpoint; static breakpoint.
equivalent faults
Two or more faults that result in the same failure mode.
error . .
(1) The difference between a computed, observed, or measured value or condition and the true, specified, or theoretically correct value or condition. For example, a difference of 30 meters between a computed result and the correct result. (2) An incorrect step, process, or data definition. For example, an incorrect instruction in a computer program. (3) An incorrect result. For example, a computed result of 12 when the correct result is 10. (4) A human action that produces an incorrect result. For example, an incorrect action on the part of a programmer or operator. Note: While all four definitions are commonly used, one distinction assigns definition 1 to the word "error," definition 2 to the word "fault," definition 3 to the word "failure," and definition 4 to the word "mistake." See also: dynamic error; fatal error; indigenous error; semantic error; syntactic error; static error; transient error.
error model
In software evaluation, a model used to estimate or predict the number of remaining faults, required test time, and similar characteristics of a system. Syn: error prediction model.
error prediction
A quantitative statement about the expected number or nature of faults in a system or component. See also: error model; error seeding.
error prediction model
See: error model.
error seeding
The process of intentionally adding known faults to those already in a computer program for the purpose of monitoring the rate of detection and removal, and estimating the number of faults remaining in the program. Syn: bug seeding; fault seeding. See also: indigenous error.
error tolerance
The ability of a system or component to continue normal operation despite the presence of erroneous inputs. See also: fault tolerance; robustness.
exception
An event that causes suspension of normal program execution. Types include addressing exception, data exception, operation exception, overflow exception, protection exception, underflow exception.
execute
To carry out an instruction, process, or computer program.
execution efficiency
The degree to which a system or component performs its designated functions with minimum consumption of time. See also: execution time; storage efficiency.
execution monitor
See: monitor (1).
execution time
The amount of elapsed time or processor time used in executing a computer program. Note: Processor time is usually less than elapsed time because the processor may be idle (for example, awaiting needed computer resources) or employed on other tasks during the execution of a program. Syn: run time (3); running time. See also: overhead time.
execution trace
A record of the sequence of instructions executed during the execution of a computer program. Often takes the form of a list of code labels encountered as the program executes. Syn: code trace; control-flow trace. See also: retrospective trace; subroutine trace; symbolic trace; variable trace.
executive
See: supervisory program.
executive program
See: supervisory program.
executive state
See: supervisor state.
exit
A point in a software module at which execution of the module can terminate. Contrast with: entry point. See also: return.
exit routine
A routine that receives control when a specified event, such as an error, occurs.
expandability
See: extendability.
explicit address
See: absolute address.
extendability
The ease with which a system or component can be modified to increase its storage or functional capacity. Syn: expandability; extensibility. See also: flexibility; maintainability.
extensibility
See: extendability.

F

factoring
(1) The process of decomposing a system into a hierarchy of modules. See also: modular decomposition. (2) The process of removing a function from a module and placing it into a module of its own.
fail safe
Pertaining to a system or component that automatically places itself in a safe operating mode in the event of a failure; for example, a traffic light that reverts to blinking red in all directions when normal operation fails. Contrast with: fail soft. See also: fault secure; fault tolerance.
fail soft
Pertaining to a system or component that continues to provide partial operational capability in the event of certain failures; for example, a traffic light that continues to alternate between red and green if the yellow light fails. Contrast with: fail safe. See also: fault secure; fault tolerance.
failure
The inability of a system or component to perform its required functions within specified performance requirements. Note: The fault tolerance discipline distinguishes between a human action (a mistake), its manifestation (a hardware or software fault), the result of the fault (a failure), and the amount by which the result is incorrect (the error). See also: crash; exception; failure mode; failure rate; hard failure; incipient failure; random failure; soft failure.
failure mode
The physical or functional manifestation of a failure. For example, a system in failure mode may be characterized by slow operation, incorrect outputs, or complete termination of execution.
failure rate
The ratio of the number of failures of a given category to a given unit of measure; for example, failures per unit of time, failures per number of transactions, failures per number of computer runs. Syn: failure ratio.
failure ratio
See: failure rate.
fatal error
An error that results in the complete inability of a system or component to function.
fault
(1) A defect in a hardware device or component; for example, a short circuit or broken wire. (2) An incorrect step, process, or data definition in a computer program. Note: This definition is used primarily by the fault tolerance discipline. In common usage, the terms "error" and "bug" are used to express this meaning. See also: data-sensitive fault; program-sensitive fault; equivalent faults; fault masking; intermittent fault.
fault dictionary
A list of faults in a system or component, and the tests that have been designed to detect them.
fault masking
A condition in which one fault prevents the detection of another.
fault secure
Pertaining to a system or component in which no failures are produced from a prescribed set of faults. See also: fault tolerance; fail safe; fail soft.
fault seeding
See: error seeding.
fault tolerance
(1) The ability of a system or component to continue normal operation despite the presence of hardware or software faults. See also: error tolerance; fail safe; fail soft; fault secure; robustness. (2) The number of faults a system or component can withstand before normal operation is impaired. (3) Pertaining to the study of errors, faults, and failures, and of methods for enabling systems to continue normal operation in the presence of faults. See also: recovery; redundancy; restart.
fault tolerant
Pertaining to a system or component that is able to continue normal operation despite the presence of faults.
fca
FCA
Acronym for functional configuration audit.
feasibility
The degree to which the requirements, design, or plans for a system or component can be implemented under existing constraints.
feature
(IEEE Std 1008-1987 [10]) See: software feature.
fetch
To locate and load computer instructions or data from storage. See also: move; store.
fifth generation language (5GL)
A computer language that incorporates the concepts of knowledge-based systems, expert systems, inference engines, and natural language processing. Contrast with: assembly language; fourth generation language; high order language; machine language. Note: Specific languages are defined in P610.13 [17]. Figurative constant A data name that is reserved for a specific constant in a programming language. For example, the data name THREE may be reserved to represent the value 3. See also: literal.
file
A set of related records treated as a unit. For example, in stock control, a file could consist of a set of invoice records.
finite state machine
A computational model consisting of a finite number of states and transitions between those states, possibly with accompanying actions.
firmware
The combination of a hardware device and computer instructions and data that reside as read-only software on that device. Notes: (1) This term is sometimes used to refer only to the hardware device or only to the computer instructions or data, but these meanings are deprecated. (2) The confusion surrounding this term has led some to suggest that it be avoided altogether.
first generation language (1GL)
See: machine language.
flag
A variable that is set to a prescribed state, often "true" or "false," based on the results of a process or the occurrence of a specified condition. See also: indicator; semaphore.
flexibility
The ease with which a system or component can be modified for use in applications or environments other than those for which it was specifically designed. Syn: adaptability. See also: extendability; maintainability.
flow diagram
See: flowchart.
flow of control
See: control flow.
flowchart (flow chart)
A control flow diagram in which suitably annotated geometrical figures are used to represent operations, data, or equipment, and arrows are used to indicate the sequential flow from one to another. Syn: flow diagram. See also: block diagram; box diagram; bubble chart; graph; input-process-output chart; structure chart. Fig 10 Flowchart
flowcharter
A software tool that accepts as input a design or code representation of a program and produces as output a flowchart of the program.
foreground
In job scheduling, the computing environment in which high-priority processes or those requiring user interaction are executed. Contrast with: background. See also: foreground processing.
foreground processing
The execution of a high-priority process while lower priority processes await the availability of computer resources, or the execution of processes that require user interaction. Contrast with: background processing.
form, fit, and function
In configuration management, that configuration comprising the physical and functional characteristics of an item as an entity, but not including any characteristics of the elements making up the item. See also: configuration identification.
formal language
A language whose rules are explicitly established prior to its use. Examples include programming languages and mathematical languages. Contrast with: natural language.
formal parameter
A variable used in a software module to represent data or program elements that are to be passed to the module by a calling module. Contrast with: argument (3).
formal qualification review (FQR)
The test, inspection, or analytical process by which a group of configuration items comprising a system are verified to have met specific contractual performance requirements. Contrast with: code review; design review; requirements review; test readiness review.
formal specification
(1) A specification written and approved in accordance with established standards. (2) A specification written in a formal notation, often for use in proof of correctness.
formal testing
Testing conducted in accordance with test plans and procedures that have been reviewed and approved by a customer, user, or designated level of management. Contrast with: informal testing.
forward recovery
(1) The reconstruction of a file to a given state by updating an earlier version, using data recorded in a chronological record of changes made to the file. (2) A type of recovery in which a system, program, database, or other system resource is restored to a new, not previously occupied state in which it can perform required functions. Contrast with: backward recovery.
four-address instruction
A computer instruction that contains four address fields. For example, an instruction to add the contents of locations A, B, and C, and place the result in location D. Contrast with: one-address instruction; two-address instruction; three-address instruction; zero-address instruction.
four-plus-one address instruction
A computer instruction that contains five address fields, the fifth containing the address of the instruction to be executed next. For example, an instruction to add the contents of locations A, B, and C, place the results in location D, then execute the instruction at location E. Contrast with: one-plus-one address instruction; two-plus-one address instruction; three-plus-one address instruction.
fourth generation language (4GL)
A computer language designed to improve the productivity achieved by high order (third generation) languages and, often, to make computing power available to non-programmers. Features typically include an integrated database management system, query language, report generator, and screen definition facility. Additional features may include a graphics generator, decision support function, financial modeling, spreadsheet capability, and statistical analysis functions. Contrast with: machine language; assembly language; high order language; fifth generation language. Note: Specific languages are defined in P610.13 [17].
fqr
FQR
Acronym for formal qualification review. function. (1) A defined objective or characteristic action of a system or component. For example, a system may have inventory control as its primary function. See also: functional requirement; functional specification; functional testing. (2) A software module that performs a specific action, is invoked by the appearance of its name in an expression, may receive input values, and returns a single value. See also: subroutine.
function field
See: operation field.
functional baseline
In configuration management, the initial approved technical documentation for a configuration item. Contrast with: allocated baseline; developmental configuration; product baseline.
functional cohesion
A type of cohesion in which the tasks performed by a software module all contribute to the performance of a single function. Contrast with: coincidental cohesion; communicational cohesion; logical cohesion; procedural cohesion; sequential cohesion; temporal cohesion.
functional configuration audit (FCA)
An audit conducted to verify that the development of a configuration item has been completed satisfactorily, that the item has achieved the performance and functional characteristics specified in the functional or allocated configuration identification, and that its operational and support documents are complete and satisfactory. See also: configuration management; physical configuration audit.
functional configuration identification
In configuration management, the current approved technical documentation for a configuration item. It prescribes all necessary functional characteristics, the tests required to demonstrate achievement of specified functional characteristics, the necessary interface characteristics with associated configuration items, the configuration item's key functional characteristics and its key lower level configuration items, if any, and design constraints. Contrast with: allocated configuration identification; product configuration identification. See also: functional baseline.
functional decomposition
A type of modular decomposition in which a system is broken down into components that correspond to system functions and subfunctions. See also: hierarchical decomposition; stepwise refinement.
functional design
(1) The process of defining the working relationships among the components of a system. See also: architectural design. (2) The result of the process in (1).
functional language
A programming language used to express programs as a sequence of functions and function calls. Examples include LISP.
functional requirement
A requirement that specifies a function that a system or system component must be able to perform. Contrast with: design requirement; implementation requirement; interface requirement; performance requirement; physical requirement.
functional specification
A document that specifies the functions that a system or component must perform. Often part of a requirements specification.
functional testing
(1) Testing that ignores the internal mechanism of a system or component and focuses solely on the outputs generated in response to selected inputs and execution conditions. Syn: black-box testing. Contrast with: structural testing. (2) Testing conducted to evaluate the compliance of a system or component with specified functional requirements. See also: performance testing.

G

garbage collection
In computer resource management, a synonym for memory compaction (1).
generality
The degree to which a system or component performs a broad range of functions. See also: reusability.generated address. An address that has been calculated during the execution of a computer program. Syn: synthetic address. See also: absolute address; effective address; relative address; indirect address.
generic program unit
A software module that is defined in a general manner and that requires substitution of specific data, instructions, or both, in order to be used in a computer program. See also: instantiation.
glass box
(1) A system or component whose internal contents or implementation are known. Syn: white box. Contrast with: black box. (2) Pertaining to an approach that treats a system or component as in (1).
glass-box testing
See: structural testing.
global compaction
In microprogramming, compaction in which microoperations may be moved beyond the boundaries of the single-entry/single-exit sequential blocks in which they occur. Contrast with: local compaction.
global data
Data that can be accessed by two or more non-nested modules of computer program without being explicitly passed as parameters between the modules. Syn: common data. Contrast with: local data.
global variable
A variable that can be accessed by two or more non-nested modules of a computer program without being explicitly passed as a parameter between the modules. Contrast with: local variable.
go to
A computer program statement that causes a jump. Contrast with: call; case; if-then-else. See also: branch.
graph
(1) A diagram that represents the variation of a variable in comparison with that of one or more other variables; for example, a graph showing a bathtub curve. (2) A diagram or other representation consisting of a finite set of nodes and internode connections called edges or arcs. See also: block diagram; box diagram; bubble chart; directed graph; flowchart; input-process-output chart; structure chart. Fig 11 Graph (1) Fig 12 Graph (2)
grosch's law
Grosch's law
A guideline formulated by H. R. J. Grosch, stating that the computing power of a computer increases proportionally to the square of the cost of the computer. See also: computer performance evaluation.

H

halt
(1) Most commonly, a synonym for stop. (2) Less commonly, a synonym for pause.
hard failure
A failure that results in complete shutdown of a system. Contrast with: soft failure.
hardware
Physical equipment used to process, store, or transmit computer programs or data. Contrast with: software.hardware configuration item (HWCI). An aggregation of hardware that is designated for configuration management and treated as a single entity in the configuration management process. Contrast with: computer software configuration item. See also: configuration item.
hardware design language (HDL)
A language with special constructs and, sometimes, verification protocols, used to develop, analyze, and document a hardware design. See also: program design language.
hardware monitor
(1) A device that measures or records specified events or characteristics of a computer system; for example, a device that counts the occurrences of various electrical events or measures the time between such events. (2) A software tool that records or analyzes hardware events during the execution of a computer program. See also: monitor; software monitor.
hdl
HDL
Acronym for hardware design language. See: design language.
header
(1) A block of comments placed at the beginning of a computer program or routine. (2) Identification or control information placed at the beginning of a file or message. Contrast with: trailer.
hierarchical decomposition
A type of modular decomposition in which a system is broken down into a hierarchy of components through a series of top-down refinements. See also: functional decomposition; stepwise refinement.
hierarchical input-process-output (HIPO)
See: input-process-output.
hierarchical modeling
A technique used in computer performance evaluation, in which a computer system is represented as a hierarchy of subsystems, the subsystems are analyzed to determine their performance characteristics, and the results are used to evaluate the performance of the overall system.
hierarchy
A structure in which components are ranked into levels of subordination; each component has zero, one, or more subordinates; and no component has more than one superordinate component. See also: hierarchical decomposition; hierarchical modeling.
hierarchy chart
See: structure chart.
high level language
See: high order language.
high order language (HOL)
A programming language that requires little knowledge of the computer on which a program will run, can be translated into several different machine languages, allows symbolic naming of operations and addresses, provides features designed to facilitate expression of data structures and program logic, and usually results in several machine instructions for each program statement. Examples include Ada, COBOL, FORTRAN, ALGOL, PASCAL. Syn: high level language; higher order language; third generation language. Contrast with: assembly language; fifth generation language; fourth generation language; machine language. Note: Specific languages are defined in P610.13 [17].
higher order language
See: high order language.
hll
HLL
Acronym for high level language. See: high order language.
hmi
HMI
Acronym for human-machine interface. See: user interface.
hol
HOL
Acronym for high order language.
homogeneous redundancy
In fault tolerance, realization of the same function with identical means, for example, use of two identical processors. Contrast with: diversity.
horizontal microinstruction
A microinstruction that specifies a set of simultaneous operations needed to carry out a given machine language instruction. Note: Horizontal microinstructions are relatively long, often 64 bits or more, and are called "horizontal" because the set of simultaneous operations that they specify are written on a single line, rather than being listed sequentially down the page. Contrast with: diagonal microinstruction; vertical microinstruction.
host machine
(1) A computer used to develop software intended for another computer. Contrast with: target machine (1). (2) A computer used to emulate another computer. Contrast with: target machine (2). (3) The computer on which a program or file is installed. (4) In a computer network, a computer that provides processing capabilities to users of the network.
housekeeping operation
A computer operation that establishes or reestablishes a set of initial conditions to facilitate the execution of a computer program; for example, initializing storage areas, clearing flags, rewinding tapes, opening and closing files. Syn: overhead operation.
human-machine interface (HMI)
See: user interface.
hwci
HWCI
Acronym for hardware configuration item.
hybrid coupling
A type of coupling in which different subsets of the range of values that a data item can assume are used for different and unrelated purposes in different software modules. Contrast with: common-environment coupling; content coupling; control coupling; data coupling; pathological coupling.

I

identifier
The name, address, label, or distinguishing index of an object in a computer program.
idle
Pertaining to a system or component that is operational and in service, but not in use. See also: busy; down; up.
idle time
The period of time during which a system or component is operational and in service, but not in use. Syn: standby time. See also: busy time; down time; set-up time; up time.
if-then-else
A single-entry, single-exit two-way branch that defines a condition, specifies the processing to be performed if the condition is met and, optionally, if it is not, and returns control in both instances to the statement immediately following the overall construct. Contrast with: case; jump; go to. See also: dyadic selective construct; monadic selective construct. Fig 13 If-Then-Else Construct
immediate address.*
See: immediate data. * Deprecated.
immediate control
See: bit steering.
immediate data
Data contained in the address field of a computer instruction. Contrast with: direct address; indirect address; n-level address. See also: immediate instruction.
immediate instruction
A computer instruction whose address fields contain the values of the operands rather than the operands' addresses. Contrast with: direct instruction; indirect instruction. See also: absolute instruction; effective instruction; immediate data.
imperative construct
A sequence of one or more steps not involving branching or iteration.
imperative statement
See: instruction.
implementation
(1) The process of translating a design into hardware components, software components, or both. See also: coding. (2) The result of the process in (1).
implementation phase
The period of time in the software life cycle during which a software product is created from design documentation and debugged.
implementation requirement
A requirement that specifies or constrains the coding or construction of a system or system component. Contrast with: design requirement; functional requirement; interface requirement; performance requirement; physical requirement.
implied addressing
A method of addressing in which the operation field of a computer instruction implies the address of the operands. For example, if a computer has only one accumulator, an instruction that refers to the accumulator needs no address information describing it. Types include one-ahead addressing, repetitive addressing. See also: direct address; indirect address; relative address.
incident
(IEEE Std 1008-1987 [10]) See: software test incident.
incipient failure
A failure that is about to occur.
incremental compiler
A compiler that completes as much of the translation of each source statement as possible during the input or scanning of the source statement. Typically used for on-line computer program development and checkout. Syn: conversational compiler; interactive compiler; on-line compiler.
incremental development
A software development technique in which requirements definition, design, implementation, and testing occur in an overlapping, iterative (rather than sequential) manner, resulting in incremental completion of the overall software product. Contrast with: waterfall model. See also: data structure-centered design; input-process-output; modular decomposition; object-oriented design; rapid prototyping; spiral model; stepwise refinement; structured design; transaction analysis; transform analysis.
independent verification and validation (IV&V)
Verification and validation performed by an organization that is technically, managerially, and financially independent of the development organization.
indexed address
An address that must be added to the contents of an index register to obtain the address of the storage location to be accessed. See also: offset (2); relative address; self-relative address.
indicator
A device or variable that can be set to a prescribed state based on the results of a process or the occurrence of a specified condition. For example, a flag or semaphore.
indigenous error
A computer program error that has not been purposely inserted as part of an error-seeding process.
indirect address
An address that identifies the storage location of another address. The designated storage location may contain the address of the desired operand or another indirect address; the chain of addresses eventually leads to the operand. Syn: multilevel address. Contrast with: direct address; immediate data. See also: indirect instruction; n-level address.
indirect instruction
A computer instruction that contains indirect addresses for its operands. Contrast with: direct instruction; immediate instruction. See also: absolute instruction; effective instruction.
inductive assertion method
A proof of correctness technique in which assertions are written describing program inputs, outputs, and intermediate conditions, a set of theorems is developed relating satisfaction of the input assertions to satisfaction of the output assertions, and the theorems are proved or disproved using proof by induction.
infant mortality
The set of failures that occur during the early-failure period of a system or component.
informal testing
Testing conducted in accordance with test plans and procedures that have not been reviewed and approved by a customer, user, or designated level of management. Contrast with: formal testing.
information hiding
A software development technique in which each module's interfaces reveal as little as possible about the module's inner workings and other modules are prevented from using information about the module that is not in the module's interface specification. See also: encapsulation.
inherited error
An error carried forward from a previous step in a sequential process.
initial program load
See: bootstrap.
initial program loader
A bootstrap loader used to load that part of an operating system needed to load the remainder of the operating system.
initialize
To set a variable, register, or other storage location to a starting value. See also: clear; reset.
inline code
A sequence of computer instructions that is physically contiguous with the instructions that logically precede and follow it.
input
(1) Pertaining to data received from an external source. (2) Pertaining to a device, process, or channel involved in receiving data from an external source. (3) To receive data from an external source. (4) To provide data from an external source. (5) Loosely, input data. Contrast with: output.
input assertion
A logical expression specifying one or more conditions that program inputs must satisfy in order to be valid. Contrast with: loop assertion; output assertion. See also: inductive assertion method.
input-output coupling
See: data coupling.
input-process-output
A software design technique that consists of identifying the steps involved in each process to be performed and identifying the inputs to and outputs from each step. Note: A refinement called hierarchical input-process-output identifies the steps, inputs, and outputs at both general and specific levels of detail. See also: data structure-centered design; input-process-output chart; modular decomposition; object-oriented design; rapid prototyping; stepwise refinement; structured design; transaction analysis; transform analysis.
input-process-output (IPO) chart
A diagram of a software system or module, consisting of a rectangle on the left listing inputs, a rectangle in the center listing processing steps, a rectangle on the right listing outputs, and arrows connecting inputs to processing steps and processing steps to outputs. See also: block diagram; box diagram; bubble chart; flowchart; graph; structure chart. Fig 14 Input-Process-Output Chart
inspection
A static analysis technique that relies on visual examination of development products to detect errors, violations of development standards, and other problems. Types include code inspection; design inspection.
installation and checkout phase
The period of time in the software life cycle during which a software product is integrated into its operational environment and tested in this environment to ensure that it performs as required.
installation manual
A document that provides the information necessary to install a system or component, set initial parameters, and prepare the system or component for operational use. See also: diagnostic manual; operator manual; programmer manual; support manual; user manual.
instantiation
The process of substituting specific data, instructions, or both into a generic program unit to make it usable in a computer program.
instruction
See: computer instruction.
instruction counter
A register that indicates the location of the next computer instruction to be executed. Syn: program counter.
instruction cycle
The process of fetching a computer instruction from memory and executing it. See also: instruction time.
instruction format
The number and arrangement of fields in a computer instruction. See also: address field; address format; operation field.
instruction length
The number of words, bytes, or bits needed to store a computer instruction. See also: instruction format.
instruction modifier
A word or part of a word used to alter a computer instruction.
instruction repertoire
See: instruction set.
instruction set
The complete set of instructions recognized by a given computer or provided by a given programming language. Syn: instruction repertoire.
instruction time
The time it takes a computer to fetch an instruction from memory and execute it. See also: instruction cycle.
instrument
In software and system testing, to install or insert devices or instructions into hardware or software to monitor the operation of a system or component.
instrumentation
Devices or instructions installed or inserted into hardware or software to monitor the operation of a system or component.
integer type
A data type whose members can assume only integer values and can be operated on only by integer arithmetic operations, such as addition, subtraction, and multiplication. Contrast with: character type; enumeration type; logical type; real type.
integrated programming support environment (IPSE)
See: programming support environment.
integration
The process of combining software components, hardware components, or both into an overall system.
integration testing
Testing in which software components, hardware components, or both are combined and tested to evaluate the interaction between them. See also: component testing; interface testing; system testing; unit testing.
integrity
The degree to which a system or component prevents unauthorized access to, or modification of, computer programs or data.
interactive
Pertaining to a system or mode of operation in which each user entry causes a response from or action by the system. Contrast with: batch. See also: conversational; on-line; real time.
interactive compiler
See: incremental compiler.
interactive language
A nonprocedural language in which a program is created as a result of interactive dialog between the user and the computer system. The system provides questions, forms, and so on, to aid the user in expressing the results to be achieved. See also: declarative language; rule-based language.
interface
(1) A shared boundary across which information is passed. (2) A hardware or software component that connects two or more other components for the purpose of passing information from one to the other. (3) To connect two or more components for the purpose of passing information from one to the other. (4) To serve as a connecting or connected component as in (2).
interface control
(1) (IEEE Std 828-1983 [4]) In configuration management, the process of: (a) identifying all functional and physical characteristics relevant to the interfacing of two or more configuration items provided by one or more organizations, and (b) ensuring that proposed changes to these characteristics are evaluated and approved prior to implementation. (2) (DoD usage) In configuration management, the administrative and technical procedures and documentation necessary to identify functional and physical characteristics between and within configuration items provided by different developers, and to resolve problems concerning the specified interfaces. See also: configuration control.
interface requirement
A requirement that specifies an external item with which a system or system component must interact, or that sets forth constraints on formats, timing, or other factors caused by such an interaction. Contrast with: design requirement; functional requirement; implementation requirement; performance requirement; physical requirement.
interface specification
A document that specifies the interface characteristics of an existing or planned system or component.
interface testing
Testing conducted to evaluate whether systems or components pass data and control correctly to one another. See also: component testing; integration testing; system testing; unit testing.
interleave
To alternate the elements of one sequence with the elements of one or more other sequences so that each sequence retains its identity; for example, to alternately perform the steps of two different tasks in order to achieve concurrent operation of the tasks.
intermittent fault
A temporary or unpredictable fault in a component. See also: random failure; transient error.
interoperability
The ability of two or more systems or components to exchange information and to use the information that has been exchanged. See also: compatibility.
interpret
To translate and execute each statement or construct of a computer program before translating and executing the next. Contrast with: assemble; compile.
interpreter
A computer program that translates and executes each statement or construct of a computer program before translating and executing the next. Contrast with: assembler; compiler.
interpretive code
Computer instructions and data definitions expressed in a form that can be recognized and processed by an interpreter. Contrast with: assembly code; compiler code; machine code.
interrupt
(1) The suspension of a process to handle an event external to the process. Syn: interruption. See also: interrupt latency; interrupt mask; interrupt priority; interrupt service routine; priority interrupt. (2) To cause the suspension of a process. (3) Loosely, an interrupt request.
interrupt latency
The delay between a computer system's receipt of an interrupt request and its handling of the request. See also: interrupt priority.
interrupt mask
A mask used to enable or disable interrupts by retaining or suppressing bits that represent interrupt requests.
interrupt priority
The importance assigned to a given interrupt request. This importance determines whether the request will cause suspension of the current process and, if there are several outstanding interrupt requests, which will be handled first.
interrupt request
A signal or other input requesting that the currently executing process be suspended to permit performance of another process.
interrupt service routine
A routine that responds to interrupt requests by storing the contents of critical registers, performing the processing required by the interrupt request, restoring the register contents, and restarting the interrupted process.
interruption
See: interrupt.
invariant
An assertion that should always be true for a specified segment or at a specified point of a computer program.
ipo
IPO chart
Acronym for input-process-output chart.
ipse
IPSE
Acronym for integrated programming support environment. See: programming support environment.
iteration
(1) The process of performing a sequence of steps repeatedly. See also: loop; recursion. (2) A single execution of the sequence of steps in (1).
iterative construct
See: loop.
iv&v
IV&V
Acronym for independent verification and validation.

J

jcl
JCL
Acronym for job control language.
job
A user-defined unit of work that is to be accomplished by a computer. For example, the compilation, loading, and execution of a computer program. See also: job control language; job step; job stream.
job control language (JCL)
A language used to identify a sequence of jobs, describe their requirements to an operating system, and control their execution.
job function
(IEEE Std 1002-1987 [9]) A group of engineering processes that is identified as a unit for the purposes of work organization, assignment, or evaluation. Examples are design, testing, or configuration management.
job step
A user-defined portion of a job, explicitly identified by a job control statement. A job consists of one or more job steps.
job stream
A sequence of programs or jobs set up so that a computer can proceed from one to the next without the need for operator intervention. Syn: run stream.
jump
(1) To depart from the implicit or declared order in which computer program statements are being executed. Syn: transfer. (2) A program statement that causes a departure as in (1). Contrast with: case; if-then-else. See also: branch; go to. (3) The departure described in (1). See also: conditional jump; unconditional jump.

K

kernel
(1) That portion of an operating system that is kept in main memory at all times. Syn: nucleus; resident control program. (2) A software module that encapsulates an elementary function or functions of a system. See also: security kernel.
kops
KOPS
Acronym for kilo-operations per second; that is, thousands of operations per second. A measure of computer processing speed. See also: MFLOPS; MIPS.

L

label
(1) A name or identifier assigned to a computer program statement to enable other statements to refer to that statement. (2) One or more characters, within or attached to a set of data, that identify or describe the data.
language
(1) A systematic means of communicating ideas by the use of conventionalized signs, sounds, gestures, or marks and rules for the formation of admissible expressions. (2) (IEEE Std 830-1984 [6]) A means of communication, with syntax and semantics, consisting of a set of representations, conventions, and associated rules used to convey information. See also: computer language.
language processor
A computer program that translates, interprets, or performs other tasks required to process statements expressed in a given language. See also: assembler; compiler; interpreter; translator.
language standard
(IEEE Std 1002-1987 [9]) A standard that describes the characteristics of a language used to describe a requirements specification, a design, or test data.
latency
The time interval between the instant at which an instruction control unit issues a call for data and the instant at which the transfer of data is started.
lateral compression
In software design, a form of demodularization in which two or more modules that execute one after the other are combined into a single module. Contrast with: downward compression; upward compression.
leading decision
A loop control that is executed before the loop body. Contrast with: trailing decision. See also: WHILE.
library
See: software library.
licensing standard
(IEEE Std 1002-1987 [9]) A standard that describes the characteristics of an authorization given by an official or a legal authority to an individual or organization to do or own a specific thing.
life cycle
See: software life cycle; system life cycle.
link
(1) To create a load module from two or more independently translated object modules or load modules by resolving cross-references among them. See also: linkage editor. (2) A part of a computer program, often a single instruction or address, that passes control and parameters between separate modules of the program. Syn: linkage. (3) To provide a link as in (2).
linkage
See: link (2).
linkage editor
A computer program that creates a single load module from two or more independently translated object modules or load modules by resolving cross-references among the modules and, possibly, by relocating elements. May be part of a loader. Syn: linker. See also: linking loader.
linker
See: linkage editor.
linking loader
A computer program that reads one or more object modules into main memory in preparation for execution, creates a single load module by resolving cross-references among the separate modules, and, in some cases, adjusts the addresses to reflect the storage locations into which the code has been loaded. See also: absolute loader; relocating loader; linkage editor.
list
(1) A set of data items, each of which has the same data definition. (2) To print or otherwise display a set of data items. Note: IEEE Std 610.5-1990 [2] defines Data Management terms.
list processing language
A programming language designed to facilitate the manipulation of data expressed in the form of lists. Examples are LISP and IPL. See also: algebraic language; algorithmic language; logic programming language.
listing
An ordered display or printout of data items, program statements, or other information.
literal
In a source program, an explicit representation of the value of an item; for example, the word FAIL in the instruction: If x = 0 then print "FAIL". See also: immediate data; figurative constant.
load
(1) To read machine code into main memory in preparation for execution and, in some cases, to perform address adjustment and linking of modules. See also: loader. (2) To copy computer instructions or data from external storage to internal storage or from internal storage to registers. Contrast with: store (2). See also: fetch; move.
load-and-go
An operating technique in which there are no stops between the loading and execution phases of a computer program.
load map
A computer-generated list that identifies the location or size of all or selected parts of memory-resident code or data.
load module
A computer program or subprogram in a form suitable for loading into main storage for execution by a computer; usually the output of a linkage editor. See also: object module.
loaded origin
The address of the initial storage location of a computer program at the time the program is loaded into main memory. Contrast with: assembled origin. See also: offset (1); starting address.
loader
(1) A computer program that reads machine code into main memory in preparation for execution and, in some cases, adjusts the addresses and links the modules. Types include absolute loader, linking loader, relocating loader. See also: bootstrap; linkage editor. (2) Any program that reads programs or data into main memory.
local compaction
In microprogramming, compaction in which microoperations are not moved beyond the boundaries of the single-entry, single-exit sequential blocks in which they occur. Contrast with: global compaction.
local data
Data that can be accessed by only one module or set of nested modules in a computer program. Contrast with: global data.
local variable
A variable that can be accessed by only one module or set of nested modules in a computer program. Contrast with: global variable.
lockout
A computer resource allocation technique in which shared resources (especially data) are protected by permitting access by only one device or process at a time. See also: deadlock; semaphore.
logic programming language
A programming language used to express programs in terms of control constructs and a restricted predicate calculus; for example, PROLOG. See also: algebraic language; algorithmic language; list processing language.
logical cohesion
A type of cohesion in which the tasks performed by a software module perform logically similar functions; for example, processing of different types of input data. Contrast with: coincidental cohesion; communicational cohesion; functional cohesion; procedural cohesion; sequential cohesion; temporal cohesion.
logical trace
An execution trace that records only branch or jump instructions. See also: execution trace; retrospective trace; subroutine trace; symbolic trace; variable trace.
logical type
A data type whose members can assume only logical values (usually TRUE and FALSE) and can be operated on only by logical operators, such as AND, OR, and NOT. Contrast with: character type; enumeration type; integer type; real type.
loop
(1) A sequence of computer program statements that is executed repeatedly until a given condition is met or while a given condition is true. Syn: iterative construct. See also: loop body; loop control; UNTIL; WHILE. (2) To execute a sequence of computer program statements as in (1).
loop assertion
A logical expression specifying one or more conditions that must be met each time a particular point in a program loop is executed. Syn: loop invariant. Contrast with: input assertion; output assertion. See also: inductive assertion method.
loop body
The part of a loop that accomplishes the loop's primary purpose. Contrast with: loop control.
loop control
The part of a loop that determines whether to exit from the loop. Contrast with: loop body. See also: leading decision; trailing decision.
loop-control variable
A program variable used to determine whether to exit from a loop.
loop invariant
See: loop assertion.
loopback testing
Testing in which signals or data from a test device are input to a system or component, and results are returned to the test device for measurement or comparison.
low level language
See: assembly language.

M

machine address.*
See: absolute address. *Deprecated.
machine code
Computer instructions and data definitions expressed in a form that can be recognized by the processing unit of a computer. Contrast with: assembly code; compiler code; interpretive code.
machine dependent
Pertaining to software that relies on features unique to a particular type of computer and therefore executes only on computers of that type. Contrast with: machine independent.
machine independent
Pertaining to software that does not rely on features unique to a particular type of computer, and therefore executes on computers of more than one type. Contrast with: machine dependent. See also: portability.
machine language
A language that can be recognized by the processing unit of a computer. Such a language usually consists of patterns of 1s and 0s, with no symbolic naming of operations or addresses. Syn: first generation language; machine-oriented language. Contrast with: assembly language; fifth generation language; fourth generation language; high order language; symbolic language.
machine-oriented language
See: machine language.
machine readable
Pertaining to data in a form that can be automatically input to a computer; for example, data encoded on a diskette.
macro
In software engineering, a predefined sequence of computer instructions that is inserted into a program, usually during assembly or compilation, at each place that its corresponding macroinstruction appears in the program. Syn: macro definition. See also: macroinstruction; macrogenerator; open subroutine.
macro definition
See: macro.
macro generating program
See: macrogenerator.
macro library
A collection of macros available for use by a macrogenerator. See also: system library.
macroassembler
An assembler that includes, or performs the functions of, a macrogenerator.
macrogenerator
A routine, often part of an assembler or compiler, that replaces each macroinstruction in a source program with the predefined sequence of instructions that the macroinstruction represents. Syn: macro generating program.
macroinstruction
A source code instruction that is replaced by a predefined sequence of source instructions, usually in the same language as the rest of the program and usually during assembly or compilation. See also: macro; macrogenerator.
macroprocessor
A routine or set of routines provided in some assemblers and compilers to support the definition and use of macros.
macroprogramming
Computer programming using macros and macroinstructions.
main program
A software component that is called by the operating system of a computer and that usually calls other software components. See also: routine; subprogram.
maintainability
(1) The ease with which a software system or component can be modified to correct faults, improve performance or other attributes, or adapt to a changed environment. See also: extendability; flexibility. (2) The ease with which a hardware system or component can be retained in, or restored to, a state in which it can perform its required functions.
maintenance
(1) The process of modifying a software system or component after delivery to correct faults, improve performance or other attributes, or adapt to a changed environment. Syn: software maintenance. See also: adaptive maintenance; corrective maintenance; perfective maintenance. (2) The process of retaining a hardware system or component in, or restoring it to, a state in which it can perform its required functions. See also: preventive maintenance.
maintenance manual
See: support manual.
man-machine interface (MMI)
See: user interface.
manufacture
In software engineering, the process of copying software to disks, chips, or other devices for distribution to customers or users.
manufacturing phase
(IEEE Std 1002-1987 [9]) The period of time in the software life cycle during which the basic version of a software product is adapted to a specified set of operational environments and is distributed to a customer base.
map program
A software tool, often part of a compiler or assembler, that generates a load map.
mask
A pattern of bits or characters designed to be logically combined with an unknown data item to retain or suppress portions of the data item; for example, the bit string "00000011" when logically ANDed with an eight-bit data item, gives a result that retains the last two bits of the data item and has zero in all the other bit positions. See also: interrupt mask.
master library
A software library containing master copies of software and documentation from which working copies can be made for distribution and use. Contrast with: production library; software development library; software repository; system library.
master state
See: supervisor state.
mean time between failures (MTBF)
The expected or observed time between consecutive failures in a system or component. See also: up time.
mean time to repair (MTTR)
The expected or observed time required to repair a system or component and return it to normal operations. See also: down time.
measurement standard
(IEEE Std 1002-1987 [9]) A standard that describes the characteristics of evaluating a process or product.
memory capacity
The maximum number of items that can be held in a given computer memory; usually measured in words or bytes. See also: channel capacity; storage capacity.
memory compaction
(1) A storage allocation technique in which the contents of all allocated storage areas are moved to the beginning of the storage space and the remaining storage blocks are combined into a single block. Syn: garbage collection. (2) A storage allocation technique in which contiguous blocks of nonallocated storage are combined to form single blocks.
memory dump
A display of the contents of all or part of a computer's internal storage, usually in binary, octal, or hexadecimal form. See also: change dump; dynamic dump; portmortem dump; selective dump; snapshot dump; static dump.
memory map
A diagram that shows where programs and data are stored in a computer's memory.
menu by-pass
In a menu-driven system, a feature that permits advanced users to perform functions in a command-driven mode without selecting options from the menus.
menu-driven
Pertaining to a system or mode of operation in which the user directs the system through menu selections. See also: menu by-pass. Contrast with: command-driven.
metacompiler
See: compiler generator.
metalanguage
A language used to specify some or all aspects of a language; for example, Backus-Naur form. See also: stratified language; unstratified language.
method standard
(IEEE Std 1002-1987 [9]) A standard that describes the characteristics of the orderly process or procedure used in the engineering of a product or performing a service.
metric
A quantitative measure of the degree to which a system, component, or process possesses a given attribute. See also: quality metric.
mflops
MFLOPS
Acronym for millions of floating point operations per second. A measure of computer processing speed. See also: KOPS; MIPS.
microarchitecture
The microword definition, data flow, timing constraints, and precedence constraints that characterize a given microprogrammed computer.
microcode
A collection of microinstructions, comprising part of, all of, or a set of microprograms.
microcode assembler
A computer program that translates microprograms from symbolic form to binary form.
microinstruction
In microprogramming, an instruction that specifies one or more of the basic operations needed to carry out a machine language instruction. Types include diagonal microinstruction, horizontal microinstruction, vertical microinstruction. See also: microcode; microoperation; microprogram.
microoperation
In microprogramming, one of the basic operations needed to carry out a machine language instruction. See also: microinstruction.
microprogram
A sequence of instructions, called microinstructions, specifying the basic operations needed to carry out a machine language instruction.
microprogrammable computer
A microprogrammed computer in which microprograms can be created or altered by the user.
microprogrammed computer
A computer in which machine language instructions are implemented by microprograms rather than by hard-wired logic. Note: A microprogrammed computer may or may not be a microcomputer; the concepts are not related despite the similarity of the terms. See also: microarchitecture; microprogrammable computer.
microprogramming
The process of designing and implementing the control logic of a computer by identifying the basic operations needed to carry out each machine language instruction and representing these operations as sequences of instructions in a special memory called control store. This method is an alternative to hard wiring the control signals necessary to carry out each machine language instruction. Techniques include bit steering, compaction, residual control, single-level encoding, two-level encoding. See also: microcode; microinstruction; microprogram.
microword
An addressable element in the control store of a microprogrammed computer.
minimum delay programming
A programming technique in which storage locations for computer instructions and data are chosen so that access time is minimized.
mips
MIPS
Acronym for million instructions per second. A measure of computer processing speed. See also: KOPS; MFLOPS.
mistake
A human action that produces an incorrect result. Note: The fault tolerance discipline distinguishes between the human action (a mistake), its manifestation (a hardware or software fault), the result of the fault (a failure), and the amount by which the result is incorrect (the error).
mixed mode
Pertaining to an expression that contains two or more different data types. For example, Y := X + N, where X and Y are floating point variables and N is an integer variable. Syn: mixed type.
mixed type
See: mixed mode.
mmi
MMI
Acronym for man-machine interface. See: user interface.
modular
Composed of discrete parts. See also: modular decomposition; modular programming.
modular decomposition
The process of breaking a system into components to facilitate design and development; an element of modular programming. Syn: modularization. See also: cohesion; coupling; demodularization; factoring; functional decomposition; hierarchical decomposition; packaging.
modular programming
A software development technique in which software is developed as a collection of modules. See also: data structure-centered design; input-process-output; modular decomposition; object-oriented design; rapid prototyping; stepwise refinement; structured design; transaction analysis; transform analysis.
modularity
The degree to which a system or computer program is composed of discrete components such that a change to one component has minimal impact on other components. See also: cohesion; coupling.
modularization
See: modular decomposition.
module
(1) A program unit that is discrete and identifiable with respect to compiling, combining with other units, and loading; for example, the input to, or output from, an assembler, compiler, linkage editor, or executive routine. (2) A logically separable part of a program. Note: The terms "module," "component," and "unit" are often used interchangeably or defined to be sub-elements of one another in different ways depending upon the context. The relationship of these terms is not yet standardized.
module strength
See: cohesion.
module testing
See: component testing.
monadic selective construct
An if-then-else construct in which processing is specified for only one outcome of the branch, the other outcome resulting in skipping this processing. Contrast with: dyadic selective construct.
monitor
A software tool or hardware device that operates concurrently with a system or component and supervises, records, analyzes, or verifies the operation of the system or component. Syn: execution monitor. See also: hardware monitor; software monitor.
move
(1) To read data from a source, altering the contents of the source location, and to write the same data elsewhere in a physical form that may differ from that of the source. For example, to move data from one file to another. Contrast with: copy. (2) Sometimes, a synonym for copy. See also: fetch; load; store.
mtbf
MTBF
Acronym for mean time between failures.
mttr
MTTR
Acronym for mean time to repair.
multiaddress instruction
A computer instruction that contains more than one address field. Syn: multiple-address instruction. Contrast with: one-address instruction.
multilevel address
See: indirect address.
multilevel storage
See: virtual storage.
multiple-address instruction
See: multiaddress instruction.
multiple exclusive selective construct
See: case.
multiple inclusive selective construct
A special instance of the case construct in which two or more different values of the control expression result in the same processing. For example, values 1 and 2 cause one branch, 3 and 4 cause another, and so on.
multiprocessing
A mode of operation in which two or more processes are executed concurrently by separate processing units that have access (usually) to a common main storage. Contrast with: multiprogramming. See also: multitasking; time sharing.
multiprogramming
A mode of operation in which two or more computer programs are executed in an interleaved manner by a single processing unit. Contrast with: multiprocessing. See also: multitasking; time sharing.
multitasking
A mode of operation in which two or more tasks are executed in an interleaved manner. See also: multiprocessing; multiprogramming; time sharing.
mutation
See: program mutation.
mutation testing
A testing methodology in which two or more program mutations are executed using the same test cases to evaluate the ability of the test cases to detect differences in the mutations.

N

n-address instruction
A computer instruction that contains n address fields, where n may be any non-negative integer. See also: one-address instruction; two-address instruction; etc. Contrast with: n-plus-one address instruction.
n-level address
An indirect address that specifies the first of a chain of n storage locations, the first n-1 of which contains the address of the next location in the chain and the last of which contains the desired operand. For example, a two-level address. Contrast with: direct address; immediate data.
n-plus-one address instruction
A computer instruction that contains n+1 address fields, the last containing the address of the instruction to be executed next. See also: one-plus-one address instruction; two-plus-one address instruction; etc. Contrast with: n-address instruction.
nanocode
A collection of nanoinstructions.
nanoinstruction
In a two-level implementation of microprogramming, an instruction that specifies one or more of the basic operations needed to carry out a microinstruction.
nanostore
In a two-level implementation of microprogramming, a secondary control store in which nanoinstructions reside.
nassi-shneiderman chart
Nassi-Shneiderman chart
See: box diagram.
natural language
A language whose rules are based on usage rather than being pre-established prior to the language's use. Examples include German and English. Contrast with: formal language.
nest
To incorporate a computer program construct into another construct of the same kind. For example, to nest one subroutine, block, or loop within another; to nest one data structure within another.
no-op
Abbreviation for no-operation.
no-operation
A computer operation whose execution has no effect except to advance the instruction counter to the next instruction. Used to reserve space in a program or, if executed repeatedly, to wait for a given event. Often abbreviated no-op. Syn: do-nothing operation.
node
(1) In a diagram, a point, circle, or other geometric figure used to represent a state, event, or other item of interest. See also: graph (2). (2) Note: The meaning of this term in the context of computer networks is covered in P610.7 [14].
nomenclature standard
(IEEE Std 1002-1987 [9]) A standard that describes the characteristics of a system or set of names, or designations, or symbols.
nondestructive read
A read operation that does not erase the data in the accessed location. Contrast with: destructive read.
nonprocedural language
A language in which the user states what is to be achieved without having to state specific instructions that the computer must execute in a given sequence. Contrast with: procedural language. See also: declarative language; interactive language; rule-based language.
nor
NOR
(1) In configuration management, an acronym for notice of revision. (2) Note: The meaning of this term as a logical operator is given in IEEE Std 610.1/1084-1986 [1, 11].
notation standard
(IEEE Std 1002-1987 [9]) A standard that describes the characteristics of formal interfaces within a profession.
notice of revision (NOR)
A form used in configuration management to propose revisions to a drawing or list, and, after approval, to notify users that the drawing or list has been, or will be, revised accordingly. See also: configuration control; engineering change; specification change notice.
nucleus
See: kernel (1).

O

object
(1) Pertaining to the outcome of an assembly or compilation process. See also: object code; object module; object program. (2) A program constant or variable. (3) An encapsulation of data and services that manipulate that data. See also: object-oriented design.
object code
Computer instructions and data definitions in a form output by an assembler or compiler. An object program is made up of object code. Contrast with: source code.
object language
See: target language.
object module
A computer program or subprogram that is the output of an assembler or compiler. See also: load module; object program.
object-oriented design
A software development technique in which a system or component is expressed in terms of objects and connections between those objects. See also: data structure-centered design; input-process-output; modular decomposition; rapid prototyping; stepwise refinement; structured design; transaction analysis; transform analysis.
object-oriented language
A programming language that allows the user to express a program in terms of objects and messages between those objects. Examples include Smalltalk and LOGO.
object program
A computer program that is the output of an assembler or compiler. Syn: target program. Contrast with: source program. See also: object module.
occupational title standard
(IEEE Std 1002-1987 [9]) A standard that describes the characteristics of the general areas of work or profession.
off-line
Pertaining to a device or process that is not under the direct control of the central processing unit of a computer. Contrast with: on-line (2).
offset
(1) The difference between the loaded origin and the assembled origin of a computer program. Syn: relocation factor. (2) A number that must be added to a relative address to determine the address of the storage location to be accessed. This number may be the difference defined in (1) or another number defined in the program. See also: base address; indexed address; relative address; self-relative address.
on-line
(1) Pertaining to a system or mode of operation in which input data enter the computer directly from the point of origin or output data are transmitted directly to the point where they are used. For example, an airline reservation system. Contrast with: batch. See also: conversational; interactive; real time. (2) Pertaining to a device or process that is under the direct control of the central processing unit of a computer. Contrast with: off-line.
on-line compiler
See: incremental compiler.
one-address instruction
A computer instruction that contains one address field. For example, an instruction to load the contents of location A. Syn: single-address instruction; single-operand instruction. Contrast with: multiaddress instruction; two-address instruction; three-address instruction; four-address instruction; zero-address instruction.
one-ahead addressing
A method of implied addressing in which the operands for a computer instruction are understood to be in the storage locations following the locations of the operands used for the last instruction executed. Contrast with: repetitive addressing.
one-level address
See: direct address.
one-plus-one address instruction
A computer instruction that contains two address fields, the second containing the address of the instruction to be executed next. For example, an instruction to load the contents of location A, then execute the instruction at location B. Contrast with: two-plus-one address instruction; three-plus-one address instruction; four-plus-one address instruction.
op code (opcode)
See: operation code.
open subroutine
A subroutine that is copied into a computer program at each place that it is called. Syn: direct insert subroutine. Contrast with: closed subroutine. See also: inline code; macro.
operand
A variable, constant, or function upon which an operation is to be performed. For example, in the expression A = B + 3, B and 3 are the operands.
operating system
A collection of software, firmware, and hardware elements that controls the execution of computer programs and provides such services as computer resource allocation, job control, input/output control, and file management in a computer system.
operation
(1) In computer mathematics, the action specified by an operator on one or more operands. For example, in the expression A = B + 3, the process of adding B to 3 to obtain A. (2) In programming, a defined action that can be performed by a computer system; for example, addition, comparison, branching. Note: Unlike the mathematical meaning, such an operation may not involve an operator or operands; for example, the operation Halt. (3) The process of running a computer system in its intended environment to perform its intended functions.
operation and maintenance phase
The period of time in the software life cycle during which a software product is employed in its operational environment, monitored for satisfactory performance, and modified as necessary to correct problems or to respond to changing requirements.
operation code
A character or set of characters that specifies a computer operation; for example, the code BNZ to designate the operation "branch if not zero." Syn: op code.
operation exception
An exception that occurs when a program encounters an invalid operation code. See also: addressing exception; data exception; overflow exception; protection exception; underflow exception.
operation field
The field of a computer instruction that specifies the operation to be performed. Syn: function field; operation part. Contrast with: address field.
operation part
See: operation field.
operational
(1) Pertaining to a system or component that is ready for use in its intended environment. (2) Pertaining to a system or component that is installed in its intended environment. (3) Pertaining to the environment in which a system or component is intended to be used.
operational testing
Testing conducted to evaluate a system or component in its operational environment. Contrast with: development testing. See also: acceptance testing; qualification testing.
operator
(1) A mathematical or logical symbol that represents an action to be performed in an operation. For example, in the expression A = B + 3, + is the operator, representing addition. (2) A person who operates a computer system.
operator field
See: operation field.
operator manual
A document that provides the information necessary to initiate and operate a system or component. Typically described are procedures for preparation, operation, monitoring, and recovery. Note: An operator manual is distinguished from a user manual when a distinction is made between those who operate a computer system (mounting tapes, etc.) and those who use the system for its intended purpose. See also: diagnostic manual; installation manual; programmer manual; support manual; user manual.
order clash
In software design, a type of structure clash in which a program must deal with two or more data sets that have been sorted in different orders. See also: data structure-centered design.
origin
The address of the initial storage location assigned to a computer program in main memory. See also: assembled origin; loaded origin. Contrast with: starting address.
output
(1) Pertaining to data transmitted to an external destination. (2) Pertaining to a device, process, or channel involved in transmitting data to an external destination. (3) To transmit data to an external destination. (4) Loosely, output data. Contrast with: input.
output assertion
A logical expression specifying one or more conditions that program outputs must satisfy in order for the program to be correct. Contrast with: input assertion; loop assertion. See also: inductive assertion method.
overflow exception
An exception that occurs when the result of an arithmetic operation exceeds the size of the storage location designated to receive it. See also: addressing exception; data exception; operation exception; protection exception; underflow exception.
overhead operation
See: housekeeping operation.
overhead time
The amount of time a computer system spends performing tasks that do not contribute directly to the progress of any user task; for example, time spent tabulating computer resource usage for billing purposes.
overlay
(1) A storage allocation technique in which computer program segments are loaded from auxiliary storage to main storage when needed, overwriting other segments not currently in use. (2) A computer program segment that is maintained in auxiliary storage and loaded into main storage when needed, overwriting other segments not currently in use. (3) To load a computer program segment from auxiliary storage to main storage in such a way that other segments of the program are overwritten.
overlay supervisor
A routine that controls the sequencing and positioning of overlays.
overload
To assign an operator, identifier, or literal more than one meaning, depending upon the data types associated with it at any given time during program execution.

P

pack
To store data in a compact form in a storage medium, using known characteristics of the data and medium in such a way as to permit recovery of the data. Contrast with: unpack.
package
A separately compilable software component consisting of related data types, data objects, and subprograms. See also: data abstraction; encapsulation; information hiding.
packaging
In software development, the assignment of modules to segments to be handled as distinct physical units for execution by a computer.
padding
(1) The technique of filling out a fixed-length block of data with dummy characters, words, or records. (2) Dummy characters, words, or records used to fill out a fixed-length block of data.
page
(1) A fixed-length segment of data or of a computer program treated as a unit in storage allocation. See also: paging. (2) In a virtual storage system, a fixed-length segment of data or of a computer program that has a virtual address and is transferred as a unit between main and auxiliary storage. (3) A screenful of information on a video display terminal.
page breakage
A portion of main storage that is unused when the last page of data or of a computer program does not fill the entire block of storage allocated to it. See also: paging.
page frame
A block of main storage having the size of, and used to hold, a page. See also: paging.
page swapping
The exchange of pages between main storage and auxiliary storage. See also: paging.
page table
A table that identifies the location of pages in storage and gives significant attributes of those pages. See also: paging.
page turning
See: paging (3).
page zero
In the paging method of storage allocation, the first page in a series of pages.
pager
A routine that initiates and controls the transfer of pages between main and auxiliary storage. See also: paging.
paging
(1) A storage allocation technique in which programs or data are divided into fixed-length blocks called pages, main storage is divided into blocks of the same length called page frames, and pages are stored in page frames, not necessarily contiguously or in logical order. Syn: block allocation. Contrast with: contiguous allocation. (2) A storage allocation technique in which programs or data are divided into fixed-length blocks called pages, main storage is divided into blocks of the same length called page frames, and pages are transferred between main and auxiliary storage as needed. See also: anticipatory paging; demand paging; virtual storage. (3) The transfer of pages as in (2). Syn: page turning. See also: page; page breakage; page frame; page swapping; page table; page zero; pager; working set.
parallel
(1) Pertaining to the simultaneous transfer, occurrence, or processing of the individual parts of a whole, such as the bits of a character, using separate facilities for the various parts. Contrast with: serial (1). (2) See: concurrent.
parallel construct
A program construct consisting of two or more procedures that can occur simultaneously.
parameter
(1) A variable that is given a constant value for a specified application. See also: adaptation parameter. (2) A constant, variable, or expression that is used to pass values between software modules. See also: argument; formal parameter.
parse
To determine the syntactic structure of a language unit by decomposing it into more elementary subunits and establishing the relationships among the subunits. For example, to decompose blocks into statements, statements into expressions, expressions into operators and operands.
parser
A software tool that parses computer programs or other text, often as the first step of assembly, compilation, interpretation, or analysis.
partial correctness
In proof of correctness, a designation indicating that a program's output assertions follow logically from its input assertions and processing steps. Contrast with: total correctness.
partitioning
(IEEE Std 830-1984 [6]) Decomposition; the separation of the whole into its parts.
pass
A single cycle in the processing of a set of data, usually performing part of an overall process. For example, a pass of an assembler through a source program; a pass of a sort program through a set of data.
pass/fail criteria
(IEEE Std 829-1983 [5]) Decision rules used to determine whether a software item or a software feature passes or fails a test. See also: test criteria.
patch
(1) A modification made directly to an object program without reassembling or recompiling from the source program. (2) A modification made to a source program as a last-minute fix or afterthought. (3) Any modification to a source or object program. (4) To perform a modification as in (1), (2), or (3).
path
(1) In software engineering, a sequence of instructions that may be performed in the execution of a computer program. (2) In file access, a hierarchical sequence of directory and subdirectory names specifying the storage location of a file.
path analysis
Analysis of a computer program to identify all possible paths through the program, to detect incomplete paths, or to discover portions of the program that are not on any path.
path condition
A set of conditions that must be met in order for a particular program path to be executed.
path expression
A logical expression indicating the input conditions that must be met in order for a particular program path to be executed.
path testing
Testing designed to execute all or selected paths through a computer program. Contrast with: branch testing; statement testing.
pathological coupling
A type of coupling in which one software module affects or depends upon the internal implementation of another. Contrast with: common-environment coupling; content coupling; control coupling; data coupling; hybrid coupling.
pattern-sensitive fault
See: data-sensitive fault.
pause
To suspend the execution of a computer program. Syn: halt (2). Contrast with: stop.
pca
PCA
Acronym for physical configuration audit.
pdl
PDL
Acronym for program design language.
pdr
PDR
Acronym for preliminary design review.
perfective maintenance
Software maintenance performed to improve the performance, maintainability, or other attributes of a computer program. Contrast with: adaptive maintenance; corrective maintenance.
performance
The degree to which a system or component accomplishes its designated functions within given constraints, such as speed, accuracy, or memory usage.
performance requirement
A requirement that imposes conditions on a functional requirement; for example, a requirement that specifies the speed, accuracy, or memory usage with which a given function must be performed. Contrast with: design requirement; functional requirement; implementation requirement; interface requirement; physical requirement.
performance specification
A document that specifies the performance characteristics that a system or component must possess. These characteristics typically include speed, accuracy, and memory usage. Often part of a requirements specification.
performance testing
Testing conducted to evaluate the compliance of a system or component with specified performance requirements. See also: functional testing.
petri net
Petri net
An abstract, formal model of information flow, showing static and dynamic properties of a system. A Petri net is usually represented as a graph having two types of nodes (called places and transitions) connected by arcs, and markings (called tokens) indicating dynamic properties.
physical configuration audit (PCA)
An audit conducted to verify that a configuration item, as built, conforms to the technical documentation that defines it. See also: functional configuration audit.
physical requirement
A requirement that specifies a physical characteristic that a system or system component must possess; for example, material, shape, size, weight. Contrast with: design requirement; functional requirement; implementation requirement; interface requirement; performance requirement.
pipeline
A software or hardware design technique in which the output of one process serves as input to a second, the output of the second process serves as input to a third, and so on, often with simultaneity within a single cycle time.
plan standard
(IEEE Std 1002-1987 [9]) A standard that describes the characteristics of a scheme for accomplishing defined objectives or work within specified resources.
playback
See: reversible execution.
pointer
A data item that specifies the location of another data item; for example, a data item that specifies the address of the next employee record to be processed.
port-to-port time
The elapsed time between the application of a stimulus to an input interface and the appearance of the response at an output interface. See also: response time; think time; turnaround time.
portability
The ease with which a system or component can be transferred from one hardware or software environment to another. Syn: transportability. See also: machine independent.
post-tested iteration
See: UNTIL.
postamble breakpoint
See: epilog breakpoint.
postmortem dump
A dump that is produced upon abnormal termination of a computer program. See also: change dump; dynamic dump; memory dump; selective dump; snapshot dump; static dump.
postprocessor
A computer program or routine that carries out some final processing step after the completion of the primary process; for example, a routine that reformats data for output. Contrast with: preprocessor.
practices
(IEEE Std 983-1986 [7]) Requirements employed to prescribe a disciplined uniform approach to the software development process. See also: conventions; standards.
pragma
See: pseudo-instruction.
pre-tested iteration
See: WHILE.
preamble breakpoint
See: prolog breakpoint.
precision
The degree of exactness or discrimination with which a quantity is stated; for example, a precision of 2 decimal places versus a precision of 5 decimal places. Contrast with: accuracy.
precompiler
A computer program or routine that processes source code and generates equivalent code that is acceptable to a compiler. For example, a routine that converts structured FORTRAN to ANSI-standard FORTRAN. See also: preprocessor.
preliminary design
(1) The process of analyzing design alternatives and defining the architecture, components, interfaces, and timing and sizing estimates for a system or component. See also: detailed design. (2) The result of the process in (1).
preliminary design review (PDR)
(1) A review conducted to evaluate the progress, technical adequacy, and risk resolution of the selected design approach for one or more configuration items; to determine each design's compatibility with the requirements for the configuration item; to evaluate the degree of definition and assess the technical risk associated with the selected manufacturing methods and processes; to establish the existence and compatibility of the physical and functional interfaces among the configuration items and other items of equipment, facilities, software and personnel; and, as applicable, to evaluate the preliminary operational and support documents. See also: critical design review; system design review. (2) A review as in (1) of any hardware or software component.
preprocessor
A computer program or routine that carries out some processing step prior to the primary process; for example, a precompiler or other routine that reformats code or data for processing. Contrast with: postprocessor.
prestore
To store data that are required by a computer program or routine before the program or routine is entered.
prettyprinting
The use of indentation, blank lines, and other visual cues to show the logical structure of a program.
preventive maintenance
Maintenance performed for the purpose of preventing problems before they occur.
primitive type
See: atomic type.
priority
The level of importance assigned to an item.
priority interrupt
An interrupt performed to permit execution of a process that has a higher priority than the process currently executing.
private type
A data type whose structure and possible values are defined but are not revealed to the user of the type. See also: information hiding.
privileged instruction
A computer instruction that can be executed only by a supervisory program.
privileged state
See: supervisor state.
problem-oriented language
A programming language designed for the solution of a given class of problems. Examples are list processing languages, information retrieval languages, simulation languages.
problem state
In the operation of a computer system, a state in which programs other than the supervisory program can execute. Syn: slave state; user state. Contrast with: supervisor state.
procedural cohesion
A type of cohesion in which the tasks performed by a software module all contribute to a given program procedure, such as an iteration or decision process. Contrast with: coincidental cohesion; communicational cohesion; functional cohesion; logical cohesion; sequential cohesion; temporal cohesion.
procedural language
A programming language in which the user states a specific set of instructions that the computer must perform in a given sequence. All widely-used programming languages are of this type. Syn: procedure-oriented language. Contrast with: nonprocedural language. See also: algebraic language; algorithmic language; list processing language; logic programming language.
procedure
(1) A course of action to be taken to perform a given task. (2) A written description of a course of action as in (1); for example, a documented test procedure. (3) A portion of a computer program that is named and that performs a specific action.
procedure-oriented language
See: procedural language.
process
(1) A sequence of steps performed for a given purpose; for example, the software development process. (2) An executable unit managed by an operating system scheduler. See also: task; job. (3) To perform operations on data.
process management
(IEEE Std 1002-1987 [9]) The direction, control, and coordination of work performed to develop a product or perform a service. Example is quality assurance.
process standard
(IEEE Std 1002-1987 [9]) A standard that deals with the series of actions or operations used in making or achieving a product.
product analysis
(IEEE Std 1002-1987 [9]) The process of evaluating a product by manual or automated means to determine if the product has certain characteristics.
product baseline
In configuration management, the initial approved technical documentation (including, for software, the source code listing) defining a configuration item during the production, operation, maintenance, and logistic support of its life cycle. Contrast with: allocated baseline; developmental configuration; functional baseline. See also: product configuration identification.
product configuration identification
The current approved or conditionally approved technical documentation defining a configuration item during the production, operation, maintenance, and logistic support phases of its life cycle. It prescribes all necessary physical or form, fit, and function characteristics of a configuration item, the selected functional characteristics designated for production acceptance testing, and the production acceptance tests. Contrast with: allocated configuration identification; functional configuration identification. See also: product baseline.
product engineering
(IEEE Std 1002-1987 [9]) The technical processes to define, design, and construct or assemble a product.
product management
(IEEE Std 1002-1987 [9]) The definition, coordination, and control of the characteristics of a product during its development cycle. Example is configuration management.
product specification
(1) A document that specifies the design that production copies of a system or component must implement. Note: For software, this document describes the as-built version of the software. See also: design description. (2) A document that describes the characteristics of a planned or existing product for consideration by potential customers or users.
product standard
(IEEE Std 1002-1987 [9]) A standard that defines what constitutes completeness and acceptability of items that are used or produced, formally or informally, during the software engineering process.
product support
(IEEE Std 1002-1987 [9]) The providing of information, assistance, and training to install and make software operational in its intended environment and to distribute improved capabilities to users.
production library
A software library containing software approved for current operational use. Contrast with: master library; software development library; software repository; system library.
professional standard
(IEEE Std 1002-1987 [9]) A standard that identifies a profession as a discipline and distinguishes it from other professions.
program
(1) See: computer program. (2) To write a computer program.
program counter
See: instruction counter.
program definition language
See: program design language.
program design language (PDL)
A specification language with special constructs and, sometimes, verification protocols, used to develop, analyze, and document a program design. See also: hardware design language; pseudo code.
program flowchart (flow chart)
See: flowchart.
program instruction
A computer instruction in a source program. Note: A program instruction is distinguished from a computer instruction that results from assembly, compilation, or other interpretation process.
program library
See: software library.
program listing
A printout or other human readable display of the source and, sometimes, object statements that make up a computer program.
program mutation
(1) A computer program that has been purposely altered from the intended version to evaluate the ability of test cases to detect the alteration. See also: mutation testing. (2) The process of creating an altered program as in (1).
program network chart
A diagram that shows the relationship between two or more computer programs.
program-sensitive fault
A fault that causes a failure when some particular sequence of program steps is executed. Contrast with: data-sensitive fault.
program status word (PSW)
(1) A computer word that contains information specifying the current status of a computer program. The information may include error indicators, the address of the next instruction to be executed, currently enabled interrupts, and so on. (2) A special-purpose register that contains a program status word as in (1). Syn: status word.
program structure diagram
See: structure chart.
program support library
See: software development library.
program synthesis
The use of software tools to aid in the transformation of a program specification into a program that realizes that specification.
programmable breakpoint
A breakpoint that automatically invokes a previously specified debugging process when initiated. See also: code breakpoint; data breakpoint; dynamic breakpoint; epilog breakpoint; prolog breakpoint; static breakpoint.
programmer manual
A document that provides the information necessary to develop or modify software for a given computer system. Typically described are the equipment configuration, operational characteristics, programming features, input/output features, and compilation or assembly features of the computer system. See also: diagnostic manual; installation manual; operator manual; support manual; user manual.
programming language
A language used to express computer programs. See also: assembly language; high order language; machine language. Contrast with: query language; specification language.
programming support environment
An integrated collection of software tools accessed via a single command language to provide programming support capabilities throughout the software life cycle. The environment typically includes tools for specifying, designing, editing, compiling, loading, testing, configuration management, and project management. Sometimes called integrated programming support environment. See also: scaffolding.
programming system
A set of programming languages and the support software (editors, compilers, linkers, etc.) necessary for using these languages with a given computer system.
project file
A central repository of material pertinent to a project. Contents typically include memos, plans, technical reports, and related items. Syn: project notebook.
project library
See: software development library.
project notebook
See: project file.
project plan
A document that describes the technical and management approach to be followed for a project. The plan typically describes the work to be done, the resources required, the methods to be used, the procedures to be followed, the schedules to be met, and the way that the project will be organized. For example, a software development plan.
prolog breakpoint
A breakpoint that is initiated upon entry into a program or routine. Syn: preamble breakpoint. Contrast with: epilog breakpoint. See also: code breakpoint; data breakpoint; dynamic breakpoint; programmable breakpoint; static breakpoint.
prompt
(1) A symbol or message displayed by a computer system, requesting input from the user of the system. (2) To display a symbol or message as in (1).
proof of correctness
(1) A formal technique used to prove mathematically that a computer program satisfies its specified requirements. See also: assertion; formal specification; inductive assertion method; partial correctness; total correctness. (2) A proof that results from applying the technique in (1).
protection exception
An exception that occurs when a program attempts to write into a protected area in storage. See also: addressing exception; data exception; operation exception; overflow exception; underflow exception.
protocol
A set of conventions that govern the interaction of processes, devices, and other components within a system.
prototype
A preliminary type, form, or instance of a system that serves as a model for later stages or for the final, complete version of the system.
prototyping
A hardware and software development technique in which a preliminary version of part or all of the hardware or software is developed to permit user feedback, determine feasibility, or investigate timing or other issues in support of the development process. See also: rapid prototyping.
pseudo code (pseudocode)
A combination of programming language constructs and natural language used to express a computer program design. For example: IF the data arrives faster than expected, THEN reject every third input.ELSE process all data received.ENDIF
pseudo instruction
A source language instruction that provides information or direction to the assembler or compiler and is not translated into a target language instruction. For example, an instruction specifying the desired format of source code listings. Syn: pragma; pseudo-op; pseudo operation.
pseudo operation
See: pseudo instruction.
pseudo-op
See: pseudo instruction.
psw
PSW
Acronym for program status word.

Q

qa
QA
Acronym for quality assurance.
qc
QC
Acronym for quality control.
qualification
The process of determining whether a system or component is suitable for operational use.
qualification testing
Testing conducted to determine whether a system or component is suitable for operational use. See also: acceptance testing; development testing; operational testing.
quality
(1) The degree to which a system, component, or process meets specified requirements. (2) The degree to which a system, component, or process meets customer or user needs or expectations.
quality assurance (QA)
(1) A planned and systematic pattern of all actions necessary to provide adequate confidence that an item or product conforms to established technical requirements. (2) A set of activities designed to evaluate the process by which products are developed or manufactured. Contrast with: quality control (1).
quality attribute
A feature or characteristic that affects an item's quality. Syn: quality factor. Note: In a hierarchy of quality attributes, higher level attributes may be called quality factors, lower level attributes called quality attributes.
quality control (QC)
Note: This term has no standardized meaning in software engineering at this time. Candidate definitions are: (1) A set of activities designed to evaluate the quality of developed or manufactured products. Contrast with: quality assurance (2). (2) The process of verifying one's own work or that of a co-worker. (3) Synonym for quality assurance.
quality factor
See: quality attribute. Note: In a hierarchy of quality attributes, higher level attributes may be called quality factors, lower level attributes called quality attributes.
quality metric
(1) A quantitative measure of the degree to which an item possesses a given quality attribute. (2) A function whose inputs are software data and whose output is a single numerical value that can be interpreted as the degree to which the software possesses a given quality attribute.
query language
A language used to access information stored in a database. Contrast with: programming language; specification language.
queue
A list in which items are appended to the last position of the list and retrieved from the first position of the list. Note: IEEE Std 610.5-1990 [2] defines Data Management terms.
quiescing
The process of bringing a device or system to a halt by rejecting new requests for work.

R

random failure
A failure whose occurrence is unpredictable except in a probabilistic or statistical sense. See also: intermittent fault; transient error.
rapid prototyping
A type of prototyping in which emphasis is placed on developing prototypes early in the development process to permit early feedback and analysis in support of the development process. Contrast with: waterfall model. See also: data structure-centered design; incremental development; input-process-output; modular decomposition; object-oriented design; spiral model; stepwise refinement; structured design; transaction analysis; transform analysis.
read
To access data from a storage device or data medium. See also: destructive read; nondestructive read. Contrast with: write.
real address
The address of a storage location in the main storage part of a virtual storage system. Contrast with: virtual address.
real storage
The main storage portion of a virtual storage system. Contrast with: virtual storage.
real time
Pertaining to a system or mode of operation in which computation is performed during the actual time that an external process occurs, in order that the computation results can be used to control, monitor, or respond in a timely manner to the external process. Contrast with: batch. See also: conversational; interactive; interrupt; on-line.
real type
A data type whose members can assume real numbers as values and can be operated on by real number arithmetic operations, such as addition, subtraction, multiplication, division, and square root. Contrast with: character type; enumeration type; integer type; logical type.
record
A set of related data items treated as a unit. For example, in stock control, the data for each invoice could constitute one record.
recovery
The restoration of a system, program, database, or other system resource to a state in which it can perform required functions. See also: backward recovery; checkpoint; forward recovery.
recursion
(1) A process in which a software module calls itself. See also: simultaneous recursion. (2) The process of defining or generating a process or data structure in terms of itself.
recursive
(1) Pertaining to a software module that calls itself. (2) Pertaining to a process or data structure that is defined or generated in terms of itself.
redundancy
In fault tolerance, the presence of auxiliary components in a system to perform the same or similar functions as other elements for the purpose of preventing or recovering from failures. See also: active redundancy; diversity; homogeneous redundancy; standby redundancy.
reenterable
See: reentrant.
reentrant
Pertaining to a software module that can be entered as part of one process while also in execution as part of another process and still achieve the desired results. Syn: reenterable.
reentry point
The place in a software module at which the module is reentered following a call to another module.
regression testing
Selective retesting of a system or component to verify that modifications have not caused unintended effects and that the system or component still complies with its specified requirements.
relative address
An address that must be adjusted by the addition of an offset to determine the address of the storage location to be accessed. Contrast with: absolute address. See also: base address; indexed address; self-relative address.
relative loader
See: relocating loader.
reliability
The ability of a system or component to perform its required functions under stated conditions for a specified period of time. See also: availability; MTBF.
reliability growth
The improvement in reliability that results from correction of faults.
relocatable
Pertaining to code that can be loaded into any part of main memory. The starting address is established by the loader, which then adjusts the addresses in the code to reflect the storage locations into which the code has been loaded. See also: relocating loader.
relocatable address
An address that is to be adjusted by the loader when the computer program containing the address is loaded into memory. Contrast with: absolute address.
relocatable code
Code containing addresses that are to be adjusted by the loader to reflect the storage locations into which the code is loaded. Contrast with: absolute code.
relocate
To move machine code from one portion of main memory to another and to adjust the addresses so that the code can be executed in its new location.
relocating assembler
An assembler that produces relocatable code. Contrast with: absolute assembler.
relocating loader
A loader that reads relocatable code into main memory and adjusts the addresses in the code to reflect the storage locations into which the code has been loaded. Syn: relative loader. Contrast with: absolute loader.
relocation dictionary
The part of an object module or load module that identifies the addresses that must be adjusted when a relocation occurs.
relocation factor
See: offset (1).
remote batch entry
See: remote job entry.
remote job entry (RJE)
Submission of jobs through a remote input device connected to a computer through a data link. Syn: remote batch entry.
repeatability
See: test repeatability.
repetitive addressing
A method of implied addressing in which the operation field of a computer instruction is understood to address the operands of the last instruction executed. Contrast with: one-ahead addressing.
replay
See: reversible execution.
report standard
(IEEE Std 1002-1987 [9]) A standard that describes the characteristics of describing results of engineering and management activities.
representation standard
(IEEE Std 1002-1987 [9]) A standard that describes the characteristics of portraying aspects of an engineering or management product.
requirement
(1) A condition or capability needed by a user to solve a problem or achieve an objective. (2) A condition or capability that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed documents. (3) A documented representation of a condition or capability as in (1) or (2). See also: design requirement; functional requirement; implementation requirement; interface requirement; performance requirement; physical requirement.
requirement standard
(IEEE Std 1002-1987 [9]) A standard that describes the characteristics of a requirements specification.
requirements analysis
(1) The process of studying user needs to arrive at a definition of system, hardware, or software requirements. (2) The process of studying and refining system, hardware, or software requirements.
requirements phase
The period of time in the software life cycle during which the requirements for a software product are defined and documented.
requirements review
A process or meeting during which the requirements for a system, hardware item, or software item are presented to project personnel, managers, users, customers, or other interested parties for comment or approval. Types include system requirements review, software requirements review. Contrast with: code review; design review; formal qualification review; test readiness review.
requirements specification
A document that specifies the requirements for a system or component. Typically included are functional requirements, performance requirements, interface requirements, design requirements, and development standards. Contrast with: design description. See also: functional specification; performance specification.
requirements specification language
A specification language with special constructs and, sometimes, verification protocols, used to develop, analyze, and document hardware or software requirements. See also: design language.
rescue point
See: restart point.
reserved word
A word in a programming language whose meaning is fixed by the rules of that language and which, in certain or all contexts, cannot be used by the programmer for any purpose other than its intended one. Examples include IF, THEN, WHILE.
reset
To set a variable, register, or other storage location back to a prescribed state. See also: clear; initialize.
resident control program
See: kernel (1).
residual control
A microprogramming technique in which the meaning of a field in a microinstruction depends on the value in an auxiliary register. Contrast with: bit steering. See also: two-level encoding.
resource allocation
See: computer resource allocation.
resource management
(IEEE Std 1002-1987 [9]) The identification, estimation, allocation, and monitoring of the means used to develop a product or perform a service. Example is estimating.
response time
The elapsed time between the end of an inquiry or command to an interactive computer system and the beginning of the system's response. See also: port-to-port time; think time; turnaround time.
restart
To cause a computer program to resume execution after a failure, using status and results recorded at a checkpoint.
restart point
A point in a computer program at which execution can be restarted following a failure. Syn: rescue point.
retirement
(1) Permanent removal of a system or component from its operational environment. (2) Removal of support from an operational system or component. See also: software life cycle; system life cycle.
retirement phase
The period of time in the software life cycle during which support for a software product is terminated.
retrospective trace
A trace produced from historical data recorded during the execution of a computer program. Note: This differs from an ordinary trace, which is produced cumulatively during program execution. See also: execution trace; subroutine trace; symbolic trace; variable trace.
return
(1) To transfer control from a software module to the module that called it. See also: return code. (2) To assign a value to a parameter that is accessible by a calling module; for example, to assign the value 25 to parameter AGE for use by a calling module. See also: return value. (3) A computer instruction or process that performs the transfer in (1).
return code
A code used to influence the execution of a calling module following a return from a called module.
return value
A value assigned to a parameter by a called module for access by the calling module.
reusability
The degree to which a software module or other work product can be used in more than one computer program or software system. See also: generality.
reusable
Pertaining to a software module or other work product that can be used in more than one computer program or software system.
reverse execution
See: reversible execution.
reversible execution
A debugging technique in which a history of program execution is recorded and then replayed under the user's control, in either the forward or backward direction. Syn: backward execution; playback; replay; reverse execution.
review
A process or meeting during which a work product, or set of work products, is presented to project personnel, managers, users, customers, or other interested parties for comment or approval. Types include code review, design review, formal qualification review, requirements review, test readiness review.
rje
RJE
Acronym for remote job entry.
robustness
The degree to which a system or component can function correctly in the presence of invalid inputs or stressful environmental conditions. See also: error tolerance; fault tolerance.
roll in
To transfer data or computer program segments from auxiliary storage to main storage. Contrast with: roll out. See also: swap.
roll out
To transfer data or computer program segments from main storage to auxiliary storage for the purpose of freeing main storage for other uses. Contrast with: roll in. See also: swap.
root compiler
A compiler whose output is a machine independent, intermediate-level representation of a program. A root compiler, when combined with a code generator, comprises a full compiler.
routine
A subprogram that is called by other programs and subprograms. Note: The terms "routine," "subprogram," and "subroutine" are defined and used differently in different programming languages; the preceding definition is advanced as a proposed standard. See also: coroutine; subroutine.
rule-based language
A nonprocedural language that permits the user to state a set of rules and to express queries or problems that use these rules. See also: declarative language; interactive language.
run
(1) In software engineering, a single, usually continuous, execution of a computer program. See also: run time. (2) To execute a computer program.
run stream
See: job stream.
run time
(1) The instant at which a computer program begins to execute. (2) The period of time during which a computer program is executing. (3) See: execution time.
running time
See: execution time.

S

scaffolding
Computer programs and data files built to support software development and testing, but not intended to be included in the final product. For example, dummy routines or files, test case generators, software monitors, stubs. See also: programming support environment.
scheduler
A computer program, usually part of an operating system, that schedules, initiates, and terminates jobs.
scn
SCN
Acronym for specification change notice.
sdd
SDD
(1) Acronym for software design description. (2) (DoD) Acronym for software design document.
sdp
SDP
Acronym for software development plan.
sdr
SDR
Acronym for system design review.
second generation language (2GL)
See: assembly language.
security kernel
A small, self-contained collection of key security-related statements that works as a privileged part of an operating system, specifying and enforcing criteria that must be met for programs and data to be accessed.
segment
(1) One of the subsystems or combinations of subsystems that make up an overall system; for example, the accounts payable segment of a financial system. (2) In storage allocation, a self-contained portion of a computer program that can be executed without maintaining the entire program in main storage. See also: page. (3) A collection of data that is stored or transferred as a unit. (4) In path analysis, a sequence of computer program statements between two consecutive branch points. (5) To divide a system, computer program, or data file into segments as in (1), (2), or (3).
selective choice construct
See: branch.
selective dump
A dump of designated storage location areas only. See also: change dump; dynamic dump; memory dump; postmortem dump; snapshot dump; static dump.
selective trace
A variable trace that involves only selected variables. See also: execution trace; retrospective trace; subroutine trace; symbolic trace; variable trace.
self-descriptiveness
The degree to which a system or component contains enough information to explain its objectives and properties. See also: maintainability; testability; usability.
self-documented
Pertaining to source code that contains comments explaining its objectives, operation, and other information useful in understanding and maintaining the code.
self-relative address
An address that must be added to the address of the instruction in which it appears to obtain the address of the storage location to be accessed. See also: base address; indexed address; offset; relative address.
semantic error
An error resulting from a misunderstanding of the relationship of symbols or groups of symbols to their meanings in a given language. Contrast with: syntactic error.
semantics
The relationships of symbols or groups of symbols to their meanings in a given language. Contrast with: syntax.
semaphore
A shared variable used to synchronize concurrent processes by indicating whether an action has been completed or an event has occurred. See also: flag; indicator.
sequential
Pertaining to the occurrence of two or more events or activities in such a manner that one must finish before the next begins. Syn: serial (2). See also: consecutive.
sequential cohesion
A type of cohesion in which the output of one task performed by a software module serves as input to another task performed by the module. Contrast with: coincidental cohesion; communicational cohesion; functional cohesion; logical cohesion; procedural cohesion; temporal cohesion.
sequential construct
See: serial construct.
serial
(1) Pertaining to the sequential transfer, occurrence, or processing of the individual parts of a whole, such as the bits of a character, using the same facilities for successive parts. Contrast with: parallel (1). (2) See: sequential.
serial construct
A program construct consisting of a sequence of steps not involving a decision or loop. Syn: sequential construct.
set-up time
The period of time during which a system or component is being prepared for a specific operation. See also: busy time; down time; idle time; up time.
severity
See: criticality.
shell
A computer program or routine that provides an interface between the user and a computer system or program.
simple buffering
A buffering technique in which a buffer is allocated to a computer program for the duration of the program's execution. Contrast with: dynamic buffering.
simplicity
The degree to which a system or component has a design and implementation that is straightforward and easy to understand. Contrast with: complexity.
simulation
(1) A model that behaves or operates like a given system when provided a set of controlled inputs. See also: emulation. (2) The process of developing or using a model as in (1).
simulator
A device, computer program, or system that behaves or operates like a given system when provided a set of controlled inputs. See also: emulator.
simultaneous
Pertaining to the occurrence of two or more events at the same instant of time. Contrast with: concurrent.
simultaneous recursion
A situation in which two software modules call each other.
single-address instruction
See: one-address instruction.
single-level encoding
A microprogramming technique in which different microoperations are encoded as different values in the same field of a microinstruction. Contrast with: two-level encoding.
single-operand instruction
See: one-address instruction.
single-step execution
See: single-step operation.
single-step operation
A debugging technique in which a single computer instruction, or part of an instruction, is executed in response to an external signal. Syn: single-step execution; step-by-step operation.
sizing
The process of estimating the amount of computer storage or the number of source lines required for a software system or component. Contrast with: timing.
slave state
See: problem state.
snapshot dump
A dynamic dump of the contents of one or more specified storage areas. See also: change dump; dynamic dump; memory dump; postmortem dump; selective dump; static dump.
soft error.*
See: transient error. * Deprecated.
soft failure
A failure that permits continued operation of a system with partial operational capability. Contrast with: hard failure.
software
Computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system. See also: application software; support software; system software. Contrast with: hardware.
software characteristic
(IEEE Std 1008-1987 [10]) An inherent, possibly accidental, trait, quality, or property of software (for example, functionality, performance, attributes, design constraints, number of states, lines or branches).
software configuration management
See: configuration management.
software design description (SDD)
(1) (IEEE Std 1012-1986 [12]) A representation of software created to facilitate analysis, planning, implementation, and decision making. The software design description is used as a medium for communicating software design information, and may be thought of as a blueprint or model of the system. (2) (IEEE Std 1016-1987 [13]) A representation of a software system created to facilitate analysis, planning, implementation, and decision making. A blueprint or model of the software system. The SDD is used as the primary medium for communicating software design information.
software development cycle
The period of time that begins with the decision to develop a software product and ends when the software is delivered. This cycle typically includes a requirements phase, design phase, implementation phase, test phase, and sometimes, installation and checkout phase. Contrast with: software life cycle. Notes: (1) The phases listed above may overlap or be performed iteratively, depending upon the software development approach used. (2) This term is sometimes used to mean a longer period of time, either the period that ends when the software is no longer being enhanced by the developer, or the entire software life cycle.
software development file (SDF)
A collection of material pertinent to the development of a given software unit or set of related units. Contents typically include the requirements, design, technical reports, code listings, test plans, test results, problem reports, schedules, and notes for the units. Syn: software development folder; software development notebook; unit development folder.
software development folder
See: software development file.
software development library
A software library containing computer readable and human readable information relevant to a software development effort. Syn: project library; program support library. Contrast with: master library; production library; software repository; system library.
software development notebook
See: software development file.
software development plan (SDP)
A project plan for a software development project.
software development process
The process by which user needs are translated into a software product. The process involves translating user needs into software requirements, transforming the software requirements into design, implementing the design in code, testing the code, and sometimes, installing and checking out the software for operational use. Note: These activities may overlap or be performed iteratively. See also: incremental development; rapid prototyping; spiral model; waterfall model.
software diversity
A software development technique in which two or more functionally identical variants of a program are developed from the same specification by different programmers or programming teams with the intent of providing error detection, increased reliability, additional documentation, or reduced probability that programming or compiler errors will influence the end results. See also: diversity.
software engineering
(1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1).
software engineering environment
The hardware, software, and firmware used to perform a software engineering effort. Typical elements include computer equipment, compilers, assemblers, operating systems, debuggers, simulators, emulators, test tools, documentation tools, and database management systems.
software feature
(1) (IEEE Std 829-1983 [5]) A distinguishing characteristic of a software item (for example, performance, portability, or functionality). (2) (IEEE Std 1008-1987 [10]) A software characteristic specified or implied by requirements documentation (for example, functionality, performance, attributes, or design constraints).
software item
(IEEE Std 829-1983 [5]) Source code, object code, job control code, control data, or a collection of these items.
software library
A controlled collection of software and related documentation designed to aid in software development, use, or maintenance. Types include master library, production library, software development library, software repository, system library. Syn: program library.
software life cycle
The period of time that begins when a software product is conceived and ends when the software is no longer available for use. The software life cycle typically includes a concept phase, requirements phase, design phase, implementation phase, test phase, installation and checkout phase, operation and maintenance phase, and, sometimes, retirement phase. Note: These phases may overlap or be performed iteratively. Contrast with: software development cycle. Fig 15 Sample Software Life Cycle
software maintenance
See: maintenance (1).
software monitor
A software tool that executes concurrently with another program and provides detailed information about the execution of the other program. See also: hardware monitor; monitor.
software product
(1) The complete set of computer programs, procedures, and possibly associated documentation and data designated for delivery to a user. (2) Any of the individual items in (1).
software quality assurance
See: quality assurance.
software quality metric
See: quality metric.
software repository
A software library providing permanent, archival storage for software and related documentation. Contrast with: master library; production library; software development library; system library.
software requirements review (SRR)
(1) A review of the requirements specified for one or more software configuration items to evaluate their responsiveness to and interpretation of the system requirements and to determine whether they form a satisfactory basis for proceeding into preliminary design of the configuration items. See also: system requirements review. Note: This review is called software specification review by the U.S. Department of Defense. (2) A review as in (1) for any software component.
software requirements specification (SRS)
(IEEE Std 1012-1986 [12]) Documentation of the essential requirements (functions, performance, design constraints, and attributes) of the software and its external interfaces.
software specification review (SSR)
See: software requirements review.
software test incident
(IEEE Std 1008-1987 [10]) Any event occurring during the execution of a software test that requires investigation.
software tool
A computer program used in the development, testing, analysis, or maintenance of a program or its documentation. Examples include comparator, cross-reference generator, decompiler, driver, editor, flowcharter, monitor, test case generator, timing analyzer.
source address
The address of a device or storage location from which data is to be transferred. Contrast with: destination address.
source code
Computer instructions and data definitions expressed in a form suitable for input to an assembler, compiler, or other translator. Note: A source program is made up of source code. Contrast with: object code.
source code generator
See: code generator (2).
source language
The language in which the input to a machine-aided translation process is represented. For example, the language used to write a computer program. Contrast with: target language.
source program
A computer program that must be compiled, assembled, or otherwise translated in order to be executed by a computer. Contrast with: object program.
specific address
See: absolute address.
specific code
See: absolute code.
specification
A document that specifies, in a complete, precise, verifiable manner, the requirements, design, behavior, or other characteristics of a system or component, and, often, the procedures for determining whether these provisions have been satisfied. See also: formal specification; product specification; requirements specification.
specification change notice (SCN)
A document used in configuration management to propose, transmit, and record changes to a specification. See also: configuration control; engineering change; notice of revision.
specification language
A language, often a machine-processible combination of natural and formal language, used to express the requirements, design, behavior, or other characteristics of a system or component. For example, a design language or requirements specification language. Contrast with: programming language; query language.
specification tree
A diagram that depicts all of the specifications for a given system and shows their relationships to one another. See also: documentation tree.
spiral model
A model of the software development process in which the constituent activities, typically requirements analysis, preliminary and detailed design, coding, integration, and testing, are performed iteratively until the software is complete. Contrast with: waterfall model. See also: incremental development; rapid prototyping.
spool
To read input data, or write output data, to auxiliary or main storage for later processing or output, in order to permit input/output devices to operate concurrently with job execution. Derived from the acronym SPOOL for Simultaneous Peripheral Output On Line.
spooler
A program that initiates and controls spooling.
srr
SRR
(1) Acronym for software requirements review. (2) (DoD) Acronym for system requirements review.
srs
SRS
Acronym for software requirements specification.
ssr
SSR
Acronym for software specification review. See: software requirements review.
stand-alone
Pertaining to hardware or software that is capable of performing its function without being connected to other components; for example, a stand-alone word processing system.
standards
(IEEE Std 983-1986 [7]) Mandatory requirements employed and enforced to prescribe a disciplined uniform approach to software development, that is, mandatory conventions and practices are in fact standards. See also: practices.
standby redundancy
In fault tolerance, the use of redundant elements that are left inoperative until a failure occurs in a primary element. Contrast with: active redundancy.
standby time
See: idle time.
starting address
The address of the first instruction of a computer program in main storage. Note: This address may or may not be the same as the program's origin, depending upon whether there are data preceding the first instruction. Contrast with: origin. See also: assembled origin; loaded origin.
state
(1) A condition or mode of existence that a system, component, or simulation may be in; for example, the pre-flight state of an aircraft navigation program or the input state of given channel. (2) The values assumed at a given instant by the variables that define the characteristics of a system, component, or simulation.
state data
(IEEE Std 1008-1987 [10]) Data that defines an internal state of the test unit and is used to establish that state or compare with existing states.
state diagram
A diagram that depicts the states that a system or component can assume, and shows the events or circumstances that cause or result from a change from one state to another.
state transition diagram
See: state diagram.
statement
In a programming language, a meaningful expression that defines data, specifies program actions, or directs the assembler or compiler. See also: assignment statement; control statement; declaration.
statement testing
Testing designed to execute each statement of a computer program. Contrast with: branch testing; path testing.
static
Pertaining to an event or process that occurs without computer program execution; for example, static analysis, static binding. Contrast with: dynamic.
static analysis
The process of evaluating a system or component based on its form, structure, content, or documentation. Contrast with: dynamic analysis. See also: inspection; walk-through.
static binding
Binding performed prior to the execution of a computer program and not subject to change during program execution. Contrast with: dynamic binding.
static breakpoint
A breakpoint that can be set at compile time, such as entry into a given routine. Contrast with: dynamic breakpoint. See also: code breakpoint; data breakpoint; epilog breakpoint; programmable breakpoint; prolog breakpoint.
static dump
A dump that is produced before or after the execution of a computer program. Contrast with: dynamic dump. See also: change dump; memory dump; postmortem dump; selective dump; snapshot dump.
static error
An error that is independent of the time-varying nature of an input. Contrast with: dynamic error.
status code
A code used to indicate the results of a computer program operation. For example, a code indicating a carry, an overflow, or a parity error. Syn: condition code.
step-by-step operation
See: single-step operation.
stepwise refinement
A software development technique in which data and processing steps are defined broadly at first and then further defined with increasing detail. See also: data structure-centered design; input-process-output; modular decomposition; object-oriented design; rapid prototyping; structured design; transaction analysis; transform analysis.
stop
To terminate the execution of a computer program. Syn: halt (1). Contrast with: pause.
storage allocation
An element of computer resource allocation, consisting of assigning storage areas to specific jobs and performing related procedures, such as transfer of data between main and auxiliary storage, to support the assignments made. See also: buffer; contiguous allocation; cyclic search; memory compaction; overlay; paging; virtual storage.
storage breakpoint
See: data breakpoint.
storage capacity
The maximum number of items that can be held in a given storage device; usually measured in words or bytes. See also: channel capacity; memory capacity.
storage efficiency
The degree to which a system or component performs its designated functions with minimum consumption of available storage. See also: execution efficiency.
store
(1) To place or retain data in a storage device. (2) To copy computer instructions or data from a register to internal storage or from internal storage to external storage. Contrast with: load (2). See also: fetch; move.
straight-line code
A sequence of computer instructions in which there are no loops.
straight-line coding
A programming technique in which loops are avoided by stating explicitly and in full all of the instructions that would be involved in the execution of each loop. See also: unwind.
stratified language
A language that cannot be used as its own metalanguage. Examples include FORTRAN, COBOL. Contrast with: unstratified language.
stress testing
Testing conducted to evaluate a system or component at or beyond the limits of its specified requirements. See also: boundary value.
strong typing
A feature of some programming languages that requires the type of each data item to be declared, precludes the application of operators to inappropriate data types, and prevents the interaction of data items of incompatible types.
structural testing
Testing that takes into account the internal mechanism of a system or component. Types include branch testing, path testing, statement testing. Syn: glass-box testing; white-box testing. Contrast with: functional testing (1).
structure chart
A diagram that identifies modules, activities, or other entities in a system or computer program and shows how larger or more general entities break down into smaller, more specific entities. Note: The result is not necessarily the same as that shown in a call graph. Syn: hierarchy chart; program structure chart. Contrast with: call graph. Fig 16 Structure Chart
structure clash
In software design, a situation in which a module must deal with two or more data sets that have incompatible data structures See also: data structure-centered design; order clash.
structured design
(1) Any disciplined approach to software design that adheres to specified rules based on principles such as modularity, top-down design, and stepwise refinement of data, system structures, and processing steps. See also: data structure-centered design; input-process-output; modular decomposition; object-oriented design; rapid prototyping; stepwise refinement; transaction analysis; transform analysis. (2) The result of applying the approach in (1).
structured program
A computer program constructed of a basic set of control structures, each having one entry and one exit. The set of control structures typically includes: sequence of two or more instructions, conditional selection of one of two or more sequences of instructions, and repetition of a sequence of instructions. See also: structured design.
structured programming
Any software development technique that includes structured design and results in the development of structured programs.
structured programming language
A programming language that provides the structured program constructs, namely, single-entry/single-exit sequences, branches, and loops, and facilitates the development of structured programs. See also: block-structured language.
stub
(1) A skeletal or special-purpose implementation of a software module, used to develop or test a module that calls or is otherwise dependent on it. (2) A computer program statement substituting for the body of a software module that is or will be defined elsewhere.
subprogram
A separately compilable, executable component of a computer program. Note: The terms "routine," "subprogram," and "subroutine" are defined and used differently in different programming languages; the preceding definition is advanced as a proposed standard. See also: coroutine; main program; routine; subroutine.
subroutine
A routine that returns control to the program or subprogram that called it. Note: The terms "routine," "subprogram," and "subroutine" are defined and used differently in different programming languages; the preceding definition is advanced as a proposed standard. Contrast with: coroutine. See also: closed subroutine; open subroutine.
subroutine trace
A record of all or selected subroutines or function calls performed during the execution of a computer program and, optionally, the values of parameters passed to and returned by each subroutine or function. Syn: call trace. See also: execution trace; retrospective trace; subroutine trace; symbolic trace; variable trace.
subsystem
A secondary or subordinate system within a larger system.
subtype
A subset of a data type, obtained by constraining the set of possible values of the data type. Note: The operations applicable to the subtype are the same as those of the original data type. See also: derived type.
supervisor
See: supervisory program.
supervisor state
In the operation of a computer system, a state in which the supervisory program is executing. This state usually has higher priority than, and precludes the execution of, application programs. Syn: executive state; master state; privileged state. Contrast with: problem state.
supervisory program
A computer program, usually part of an operating system, that controls the execution of other computer programs and regulates the flow of work in a computer system. Syn: control program; executive; executive program; supervisor. See also: supervisor state.
support
The set of activities necessary to ensure that an operational system or component fulfills its original requirements and any subsequent modifications to those requirements. For example, software or hardware maintenance, user training. See also: software life cycle; system life cycle.
support manual
A document that provides the information necessary to service and maintain an operational system or component throughout its life cycle. Typically described are the hardware and software that make up the system or component and procedures for servicing, repairing, or reprogramming it. Syn: maintenance manual. See also: diagnostic manual; installation manual; operator manual; programmer manual; user manual.
support software
Software that aids in the development or maintenance of other software; for example, compilers, loaders, and other utilities. Contrast with: application software. See also: system software.
swap
(1) An exchange of the contents of two storage areas, usually an area of main storage with an area of auxiliary storage. See also: roll in; roll out. (2) To perform an exchange as in (1).
symbol table
A table that presents program symbols and their corresponding addresses, values, and other attributes.
symbolic address
An address expressed as a name or label that must be translated to the absolute address of the device or storage location to be accessed. Contrast with: absolute address.
symbolic execution
A software analysis technique in which program execution is simulated using symbols, such as variable names, rather than actual values for input data, and program outputs are expressed as logical or mathematical expressions involving these symbols.
symbolic language
A programming language that expresses operations and addresses in symbols convenient to humans rather than in machine language. Examples are assembly language, high order language. Contrast with: machine language.
symbolic trace
A record of the source statements and branch outcomes that are encountered when a computer program is executed using symbolic, rather than actual, values for input data. See also: execution trace; retrospective trace; subroutine trace; variable trace.
syntactic error
A violation of the structural or grammatical rules defined for a language; for example, using the statement B + C = A in FORTRAN, rather than the correct A = B + C. Syn: syntax error. Contrast with: semantic error.
syntax
The structural or grammatical rules that define how the symbols in a language are to be combined to form words, phrases, expressions, and other allowable constructs. Contrast with: semantics.
syntax error
See: syntactic error.
synthetic address
See: generated address.
system
A collection of components organized to accomplish a specific function or set of functions.
system design review (SDR)
A review conducted to evaluate the manner in which the requirements for a system have been allocated to configuration items, the system engineering process that produced the allocation, the engineering planning for the next phase of the effort, manufacturing considerations, and the planning for production engineering. See also: critical design review; preliminary design review.
system development cycle
The period of time that begins with the decision to develop a system and ends when the system is delivered to its end user. Note: This term is sometimes used to mean a longer period of time, either the period that ends when the system is no longer being enhanced, or the entire system life cycle. Contrast with: system life cycle. See also: software development cycle.
system flowchart (flow chart)
See: flowchart.
system library
A software library containing system-resident software that can be accessed for use or incorporated into other programs by reference; for example, a macro library. Contrast with: master library; production library; software development library; software repository.
system life cycle
The period of time that begins when a system is conceived and ends when the system is no longer available for use. See also: system development cycle; software life cycle.
system model
In computer performance evaluation, a representation of a system depicting the relationships between workloads and performance measures in the system. See also: workload model.
system profile
A set of measurements used in computer performance evaluation, describing the proportion of time each of the major resources in a computer system is busy, divided by the time that resource is available.
system requirements review (SRR)
A review conducted to evaluate the completeness and adequacy of the requirements defined for a system; to evaluate the system engineering process that produced those requirements; to assess the results of system engineering studies; and to evaluate system engineering plans. See also: software requirements review.
system resources chart
See: block diagram.
system software
Software designed to facilitate the operation and maintenance of a computer system and its associated programs; for example, operating systems, assemblers, utilities. Contrast with: application software. See also: support software.
system testing
Testing conducted on a complete, integrated system to evaluate the system's compliance with its specified requirements. See also: component testing; integration testing; interface testing; unit testing.

T

target language
The language in which the output from a machine-aided translation process is represented. For example, the language output by an assembler or compiler. Syn: object language. Contrast with: source language.
target machine
(1) The computer on which a program is intended to execute. Contrast with: host machine (1). (2) A computer being emulated by another computer. Contrast with: host machine (2).
target program
See: object program.
task
(1) A sequence of instructions treated as a basic unit of work by the supervisory program of an operating system. (2) In software design, a software component that can operate in parallel with other software components.
taxonomy
(IEEE Std 1002-1987 [9]) A scheme that partitions a body of knowledge and defines the relationships among the pieces. It is used for classifying and understanding the body of knowledge.
technical management
(IEEE Std 1002-1987 [9]) The application of technical and administrative resources to plan, organize, and control engineering functions.
technical standard
(IEEE Std 1002-1987 [9]) A standard that describes the characteristics of applying accumulated technical or management skills and methods in the creation of a product or performing a service.
techniques
(IEEE Std 983-1986 [7]) Technical and managerial procedures that aid in the evaluation and improvement of the software development process.
temporal cohesion
A type of cohesion in which the tasks performed by a software module are all required at a particular phase of program execution; for example, a module containing all of a program's initialization tasks. Contrast with: coincidental cohesion; communicational cohesion; functional cohesion; logical cohesion; procedural cohesion; sequential cohesion.
termination construct
A program construct that results in a halt or exit.
test
(1) An activity in which a system or component is executed under specified conditions, the results are observed or recorded, and an evaluation is made of some aspect of the system or component. (2) To conduct an activity as in (1). (3) (IEEE Std 829-1983 [5]) A set of one or more test cases. (4) (IEEE Std 829-1983 [5]) A set of one or more test procedures. (5) (IEEE Std 829-1983 [5]) A set of one or more test cases and procedures.
test bed
An environment containing the hardware, instrumentation, simulators, software tools, and other support elements needed to conduct a test.
test case
(1) A set of test inputs, execution conditions, and expected results developed for a particular objective, such as to exercise a particular program path or to verify compliance with a specific requirement. (2) (IEEE Std 829-1983 [5]) Documentation specifying inputs, predicted results, and a set of execution conditions for a test item. See also: test case generator; test case specification.
test case generator
A software tool that accepts as input source code, test criteria, specifications, or data structure definitions; uses these inputs to generate test input data; and, sometimes, determines expected results. Syn: test data generator; test generator.
test case specification
A document that specifies the test inputs, execution conditions, and predicted results for an item to be tested. Syn: test description; test specification. See also: test incident report; test item transmittal report; test log; test plan; test procedure; test report.
test coverage
The degree to which a given test or set of tests addresses all specified requirements for a given system or component.
test criteria
The criteria that a system or component must meet in order to pass a given test. See also: acceptance criteria; pass-fail criteria.
test data generator
See: test case generator.
test description
See: test case specification.
test design
(IEEE Std 829-1983 [5]) Documentation specifying the details of the test approach for a software feature or combination of software features and identifying the associated tests.
test documentation
Documentation describing plans for, or results of, the testing of a system or component. Types include test case specification, test incident report, test log, test plan, test procedure, test report.
test driver
A software module used to invoke a module under test and, often, provide test inputs, control and monitor execution, and report test results. Syn: test harness.
test generator
See: test case generator.
test harness
See: test driver.
test incident report
A document that describes an event that occurred during testing which requires further investigation. See also: test case specification; test item transmittal report; test log; test plan; test procedure; test report.
test item
(IEEE Std 829-1983 [5]) A software item which is an object of testing.
test item transmittal report
(IEEE Std 829-1983 [5]) A document that identifies one or more items submitted for testing. It contains current status and location information. See also: test case specification; test incident report; test log; test plan; test procedure; test report.
test log
A chronological record of all relevant details about the execution of a test. See also: test case specification; test incident report; test item transmittal report; test plan; test procedure; test report.
test objective
(IEEE Std 1008-1987 [10]) An identified set of software features to be measured under specified conditions by comparing actual behavior with the required behavior described in the software documentation.
test phase
The period of time in the software life cycle during which the components of a software product are evaluated and integrated, and the software product is evaluated to determine whether or not requirements have been satisfied.
test plan
(1) (IEEE Std 829-1983 [5]) A document describing the scope, approach, resources, and schedule of intended test activities. It identifies test items, the features to be tested, the testing tasks, who will do each task, and any risks requiring contingency planning. (2) A document that describes the technical and management approach to be followed for testing a system or component. Typical contents identify the items to be tested, tasks to be performed, responsibilities, schedules, and required resources for the testing activity. See also: test case specification; test incident report; test item transmittal report; test log; test procedure; test report.
test procedure
(1) Detailed instructions for the set-up, execution, and evaluation of results for a given test case. (2) A document containing a set of associated instructions as in (1). (3) (IEEE Std 829-1983 [5]) Documentation specifying a sequence of actions for the execution of a test. Syn: test procedure specification; test script. See also: test case specification; test incident report; test item transmittal report; test log; test plan; test report.
test procedure specification
See: test procedure.
test readiness review (TRR)
(1) A review conducted to evaluate preliminary test results for one or more configuration items; to verify that the test procedures for each configuration item are complete, comply with test plans and descriptions, and satisfy test requirements; and to verify that a project is prepared to proceed to formal testing of the configuration items. (2) A review as in (1) for any hardware or software component. Contrast with: code review; formal qualification review; design review; requirements review.
test repeatability
An attribute of a test, indicating that the same results are produced each time the test is conducted.
test report
A document that describes the conduct and results of the testing carried out for a system or component. Syn: test summary report. See also: test case specification; test incident report; test item transmittal report; test log; test plan; test procedure.
test script
See: test procedure.
test set architecture
(IEEE Std 1008-1987 [10]) The nested relationships between sets of test cases that directly reflect the hierarchic decomposition of the test objectives.
test specification
See: test case specification.
test summary report
(IEEE Std 829-1983 [5]) A document summarizing testing activities and results. It also contains an evaluation of the corresponding test items. See also: test case specification; test incident report; test item transmittal report; test log; test plan; test procedure; test report.
test unit
(IEEE Std 1008-1987 [10]) A set of one or more computer program modules together with associated control data (for example, tables), usage procedures, and operating procedures that satisfy the following conditions: (a) All modules are from a single computer program; (b) At least one of the new or changed modules in the set has not completed the unit test; (c) The set of modules together with its associated data and procedures are the sole object of a testing process.
testability
(1) The degree to which a system or component facilitates the establishment of test criteria and the performance of tests to determine whether those criteria have been met. (2) The degree to which a requirement is stated in terms that permit establishment of test criteria and performance of tests to determine whether those criteria have been met.
testing
(1) The process of operating a system or component under specified conditions, observing or recording the results, and making an evaluation of some aspect of the system or component. (2) (IEEE Std 829-1983 [5]) The process of analyzing a software item to detect the differences between existing and required conditions (that is, bugs) and to evaluate the features of the software items. See also: acceptance testing; benchmark; checkout; component testing; development testing; dynamic analysis; formal testing; functional testing; informal testing; integration testing; interface testing; loopback testing; mutation testing; operational testing; performance testing; qualification testing; regression testing; stress testing; structural testing; system testing; unit testing.
text editor
A computer program, often part of a word processing system, that allows a user to enter, alter, and view text. Syn: editor.
think time
The elapsed time between the end of a prompt or message generated by an interactive system and the beginning of a human user's response. See also: port-to-port time; response time; turnaround time.
third generation language (3GL)
See: high order language.
thrashing
A state in which a computer system is expending most or all of its resources on overhead operations, such as swapping data between main and auxiliary storage, rather than on intended computing functions.
three-address instruction
A computer instruction that contains three address fields. For example, an instruction to add the contents of locations A and B, and place the results in location C. Contrast with: one-address instruction; two-address instruction; four-address instruction; zero-address instruction.
three-plus-one address instruction
A computer instruction that contains four address fields, the fourth containing the address of the instruction to be executed next. For example, an instruction to add the contents of locations A and B, place the results in location C, then execute the instruction at location D. Contrast with: one-plus-one address instruction; two-plus-one address instruction; four-plus-one address instruction.
throughput
The amount of work that can be performed by a computer system or component in a given period of time; for example, number of jobs per day. See also: turnaround time; workload model.
tier chart
See: call graph.
time out
(1) A condition that occurs when a predetermined amount of time elapses without the occurrence of an expected event. For example, the condition that causes termination of an on-line process if no user input is received within a specified period of time. (2) To experience the condition in (1).
time sharing
A mode of operation that permits two or more users to execute computer programs concurrently on the same computer system by interleaving the execution of their program. Note: Time sharing may be implemented by time slicing, priority-based interrupts, or other scheduling methods.
time slicing
A mode of operation in which two or more processes are each assigned a small, fixed amount of continuous processing time on the same processor, and the processes execute in a round-robin manner, each for its allotted time, until all are completed.
timing
The process of estimating or measuring the amount of execution time required for a software system or component. Contrast with: sizing.
timing analyzer
A software tool that estimates or measures the execution time of a computer program or portion of a computer program, either by summing the execution times of the instructions along specified paths or by inserting probes at specified points in the program and measuring the execution time between probes.
top-down
Pertaining to an activity that starts with the highest level component of a hierarchy and proceeds through progressively lower levels; for example, top-down design; top-down testing. Contrast with: bottom-up. See also: critical piece first.
total correctness
In proof of correctness, a designation indicating that a program's output assertions follow logically from its input assertions and processing steps, and that, in addition, the program terminates under all specified input conditions. Contrast with: partial correctness.
trace
(1) A record of the execution of a computer program, showing the sequence of instructions executed, the names and values of variables, or both. Types include execution trace, retrospective trace, subroutine trace, symbolic trace, variable trace. (2) To produce a record as in (1). (3) To establish a relationship between two or more products of the development process; for example, to establish the relationship between a given requirement and the design element that implements that requirement.
traceability
(1) The degree to which a relationship can be established between two or more products of the development process, especially products having a predecessor-successor or master-subordinate relationship to one another; for example, the degree to which the requirements and design of a given software component match. See also: consistency. (2) The degree to which each element in a software development product establishes its reason for existing; for example, the degree to which each element in a bubble chart references the requirement that it satisfies.
traceability matrix
A matrix that records the relationship between two or more products of the development process; for example, a matrix that records the relationship between the requirements and the design of a given software component.
trailer
Identification or control information placed at the end of a file or message. Contrast with: header (2).
trailing decision
A loop control that is executed after the loop body. Contrast with: leading decision. See also: UNTIL.
transaction
In software engineering, a data element, control element, signal, event, or change of state that causes, triggers, or initiates an action or sequence of actions.
transaction analysis
A software development technique in which the structure of a system is derived from analyzing the transactions that the system is required to process. Syn: transaction-centered design. See also: data structure-centered design; input-process-output; modular decomposition; object-oriented design; rapid prototyping; stepwise refinement; structured design; transform analysis.
transaction-centered design
See: transaction analysis.
transaction matrix
A matrix that identifies possible requests for database access and relates each request to information categories or elements in the database.
transfer
(1) To send data from one place and receive it at another. (2) To relinquish control by one process and assume it at another, either with expectation of return (see call) or without such expectation (see jump).
transform analysis
A software development technique in which the structure of a system is derived from analyzing the flow of data through the system and the transformations that must be performed on the data. Syn: transformation analysis; transform-centered design. See also: data structure-centered design; input-process-output; modular decomposition; object-oriented design; rapid prototyping; stepwise refinement; structured design; transaction analysis.
transform-centered design
See: transform analysis.
transformation analysis
See: transform analysis.
transient error
An error that occurs once, or at unpredictable intervals. See also: intermittent fault; random failure.
translator
A computer program that transforms a sequence of statements expressed in one language into an equivalent sequence of statements expressed in another language. See also: assembler; compiler.
transportability
See: portability.
trap
(1) A conditional jump to an exception or interrupt handling routine, often automatically activated by hardware, with the location from which the jump occurred recorded. (2) To perform the operation in (1).
trr
TRR
Acronym for test readiness review.
turnaround time
The elapsed time between the submission of a job to a batch processing system and the return of completed output. See also: port-to-port time; response time; think time.
turnkey
Pertaining to a hardware or software system delivered in a complete, operational state.
two-address instruction
A computer instruction that contains two address fields. For example, an instruction to add the contents of A to the contents of B. Syn: double-operand instruction. Contrast with: one-address instruction; three-address instruction; four-address instruction; zero-address instruction.
two-level address
An indirect address that specifies the storage location containing the address of the desired operand. See also: n-level address.
two-level encoding
A microprogramming technique in which different microoperations may be encoded identically into the same field of a microinstruction, and the one that is executed depends upon the value in another field internal or external to the microinstruction. See also: bit steering; residual control. Contrast with: single-level encoding.
two-plus-one address instruction
A computer instruction that contains three address fields, the third containing the address of the instruction to be executed next. For example, an instruction to add the contents of A to the contents of B, then execute the instruction at location C. Contrast with: one-plus-one address instruction; three-plus-one address instruction; four-plus-one address instruction.
type
See: data type.

U

udf
UDF
Acronym for unit development folder. See: software development file.
unconditional branch.*
See: unconditional jump. *Deprecated.
unconditional jump
A jump that takes place regardless of execution conditions. Contrast with: conditional jump.
underflow exception
An exception that occurs when the result of an arithmetic operation is too small a fraction to be represented by the storage location designated to receive it. See also: addressing exception; data exception; operation exception; overflow exception; protection exception.
undirected graph
A graph (sense 2) in which no direction is implied in the internode connections. Contrast with: directed graph.
unit
(1) A separately testable element specified in the design of a computer software component. (2) A logically separable part of a computer program. (3) A software component that is not subdivided into other components. (4) (IEEE Std 1008-1987 [10]) See: test unit. Note: The terms "module," "component," and "unit" are often used interchangeably or defined to be sub-elements of one another in different ways depending upon the context. The relationship of these terms is not yet standardized.
unit development folder (UDF)
See: software development file.
unit requirements documentation
(IEEE Std 1008-1987 [10]) Documentation that sets forth the functional, interface, performance, and design constraint requirements for a test unit.
unit testing
Testing of individual hardware or software units or groups of related units. See also: component testing; integration testing; interface testing; system testing.
unpack
To recover the original form of one or more data items from packed data. Contrast with: pack.
unstratified language
A language that can be used as its own metalanguage; for example, English, German. Contrast with: stratified language.
until
UNTIL
A single-entry, single-exit loop, in which the loop control is executed after the loop body. Syn: post-tested iteration. Contrast with: closed loop; WHILE. See also: trailing decision. Fig 17 UNTIL Construct
unwind
In programming, to state explicitly and in full all of the instructions involved in multiple executions of a loop. See also: straightline coding.
up
Pertaining to a system or component that is operational and in service. Such a system is either busy or idle. Contrast with: down. See also: busy; idle.
up time
The period of time during which a system or component is operational and in service; that is, the sum of busy time and idle time. Contrast with: down time. See also: busy time; idle time; mean time between failures; set-up time.
upward compatible
Pertaining to hardware or software that is compatible with a later or more complex version of itself; for example, a program that handles files created by a later version of itself. Contrast with: downward compatible.
upward compression
In software design, a form of demodularization in which a subordinate module is copied in-line into the body of a superordinate module. Contrast with: lateral compression; downward compression.
usability
The ease with which a user can learn to operate, prepare inputs for, and interpret outputs of a system or component.
user documentation
Documentation describing the way in which a system or component is to be used to obtain desired results. See also: data input sheet; user manual.
user friendly
Pertaining to a computer system, device, program, or document designed with ease of use as a primary objective.
user guide
See: user manual.
user interface
An interface that enables information to be passed between a human user and hardware or software components of a computer system.
user manual
A document that presents the information necessary to employ a system or component to obtain desired results. Typically described are system or component capabilities, limitations, options, permitted inputs, expected outputs, possible error messages, and special instructions. Note: A user manual is distinguished from an operator manual when a distinction is made between those who operate a computer system (mounting tapes, etc.) and those who use the system for its intended purpose. Syn: user guide. See also: data input sheet; diagnostic manual; installation manual; operator manual; programmer manual; support manual.
user state
See: problem state.
utility
A software tool designed to perform some frequently used support function. For example, a program to copy magnetic tapes.
utilization
In computer performance evaluation, a ratio representing the amount of time a system or component is busy divided by the time it is available. See also: busy time; idle time; up time.

V

v&v
V&V
Acronym for verification and validation.
validation
The process of evaluating a system or component during or at the end of the development process to determine whether it satisfies specified requirements. Contrast with: verification.
value trace
See: variable trace.
variable
A quantity or data item whose value can change; for example, the variable Current_time. Contrast with: constant. See also: global variable; local variable.
variable trace
A record of the name and values of variables accessed or changed during the execution of a computer program. Syn: data-flow trace; data trace; value trace. See also: execution trace; retrospective trace; subroutine trace; symbolic trace.
variant
In fault tolerance, a version of a program resulting from the application of software diversity.
vdd
VDD
Acronym for version description document.
verification
(1) The process of evaluating a system or component to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase. Contrast with: validation. (2) Formal proof of program correctness. See: proof of correctness.
verification and validation (V&V)
The process of determining whether the requirements for a system or component are complete and correct, the products of each development phase fulfill the requirements or conditions imposed by the previous phase, and the final system or component complies with specified requirements. See also: independent verification and validation.
version
(1) An initial release or re-release of a computer software configuration item, associated with a complete compilation or recompilation of the computer software configuration item. (2) An initial release or complete re-release of a document, as opposed to a revision resulting from issuing change pages to a previous release. See also: configuration control; version description document.
version description document (VDD)
A document that accompanies and identifies a given version of a system or component. Typical contents include an inventory of system or component parts, identification of changes incorporated into this version, and installation and operating information unique to the version described.
vertical microinstruction
A microinstruction that specifies one of a sequence of operations needed to carry out a machine language instruction. Note: Vertical microinstructions are relatively short, 12 to 24 bits, and are called "vertical" because a sequence of such instructions, normally listed vertically on a page, is required to carry out a single machine language instruction. Contrast with: diagonal microinstruction; horizontal microinstruction.
virtual address
In a virtual storage system, the address assigned to an auxiliary storage location to allow that location to be accessed as though it were part of main storage. Contrast with: real address.
virtual memory
See: virtual storage.
virtual storage
A storage allocation technique in which auxiliary storage can be addressed as though it were part of main storage. Portions of a user's program and data are placed in auxiliary storage, and the operating system automatically swaps them in and out of main storage as needed. Syn: multilevel storage, virtual memory. Contrast with: real storage. See also: virtual address; paging (2).

W

waiver
A written authorization to accept a configuration item or other designated item which, during production or after having been submitted for inspection, is found to depart from specified requirements, but is nevertheless considered suitable for use as is or after rework by an approved method. See also: configuration control. Contrast with: deviation; engineering change.
walk-through
A static analysis technique in which a designer or programmer leads members of the development team and other interested parties through a segment of documentation or code, and the participants ask questions and make comments about possible errors, violation of development standards, and other problems.
waterfall model
A model of the software development process in which the constituent activities, typically a concept phase, requirements phase, design phase, implementation phase, test phase, and installation and checkout phase, are performed in that order, possibly with overlap but with little or no iteration. Contrast with: incremental development; rapid prototyping; spiral model.
wearout-failure period
The period in the life cycle of a system or component during which hardware failures occur at an increasing rate due to deterioration. Contrast with: constant-failure period; early-failure period. See also: bathtub curve.
while
WHILE
A single-entry, single-exit loop in which the loop control is executed before the loop body. Syn: pre-tested iteration. Contrast with: closed loop; UNTIL. See also: leading decision. Fig 18 WHILE Construct
white box
See: glass box.
white-box testing
See: structural testing.
word
(1) A sequence of bits or characters that is stored, addressed, transmitted, and operated on as a unit within a given computer. Syn: computer word. (2) An element of computer storage that can hold a sequence of bits or characters as in (1). (3) A sequence of bits or characters that has meaning and is considered an entity in some language; for example, a reserved word in a computer language. See also: bit; byte.
working area
See: working space.
working set
In the paging method of storage allocation, the set of pages that are most likely to be resident in main storage at any given point of a program's execution.
working space
That portion of main storage that is assigned to a computer program for temporary storage of data. Syn: working area, working storage.
working storage
See: working space.
workload
The mix of tasks typically run on a given computer system. Major characteristics include input/output requirements, amount and kinds of computation, and computer resources required. See also: workload model.
workload model
A model used in computer performance evaluation, depicting resource utilization and performance measures for anticipated or actual workloads in a computer system. See also: system model.
write
To record data in a storage device or on a data medium. Contrast with: read.

Z

zero-address instruction
A computer instruction that contains no address fields. Contrast with: one-address instruction; two-address instruction; three-address instruction; four-address instruction.

Change Log

960819rtm	Use dl.
960816rtm	Front matter cleanup.
960812rtm	New formatting.