<<

lEEE Std 610.121990 (Revision and reddgnation of IEEEstd7921983)

IEEE Standard Glossary of Software Engineering Terminology

Sponsor standardscoordinatingcodttee of the Computer Society of the IEEE

Approved September 28,1990 IEEEStandardsBOard

Abstract: IEEE Std 610.12-1990,IEEE Standard Glossary of Software Engineering Terminology, identifies terms currently in use in the field of Software Engineering. Standard definitions for those terms are established. Keywords: Software engineering; glossary; terminology; definitions; dictionary

ISBN 1-55937467-X

Copyright 0 1990 by The Institute of Electrical and Electronics Engineers 345 East 47th Street, New York, NY 10017, USA No part of this document may be reproduced in any form, in an electronic retrieval system or otherwise, without the prior written permission of the publisher. IEEE Standards documents are developed within the Technical Committees of the IEEE Societies and the Standards Coordinating Committees of the IEEE Standards Board. Members of the committees serve voluntarily and without compensation. They are not necessar- ily members of the Institute. The standards developed within IEEE represent a consensus of the broad expertise on the subject within the Institute as well as those activities outside of IEEE which have expressed an interest in participating in the development of the standard. Use of an IEEE Standard is wholly voluntary. The existence of an IEEE Standard does not imply that there are no other ways to produce, test, measure, purchase, market, or provide other goods and services related to the scope of the IEEE Standard. Furthermore, the viewpoint expressed at the time a standard is approved and issued is subject to change brought about through developments in the state of the art and comments received from users of the standard. Every IEEE Standard is subjected to review at least once every five for revision or reaffirmation. When a document is more than five years old, and has not been reaffirmed, it is reasonable to conclude that its contents, al- though still of some value, do not wholly reflect the present state of the art. Users are cautioned to check to determine that they have the latest edition of any IEEE Standard. Comments for revision of IEEE Standards are welcome from any interested party, regardless of membership affiliation with IEEE. Suggestions for changes in documents should be in the form of a pro- posed change of text, together with appropriate supporting comments. Interpretations: Occasionally questions may arise regarding the meaning of portions of standards as they relate to specific applica- tions. When the need for interpretations is brought to the attention of IEEE, the Institute will initiate action to prepare appropriate re- sponses. Since IEEE Standards represent a consensus of all con- cerned interests, it is important to ensure that any interpretation has also received the concurrence of a balance of interests. For this reason IEEE and the members of its technical committees are not able to provide an instant response to interpretation requests except in those cases where the matter has previously received formal consideration. Comments on standards and requests for interpretations should be addressed to: Secretary, IEEE Standards Board 345 East 47th Street New York, NY 10017 USA

IEEE Standards documents are adopted by the Institute of Electrical and Electronics Engineers without regard to whether their adoption may involve patents on articles, materials, or processes. Such adop- tion does not assume any liability to any patent owner, nor does it assume any obligation whatever to parties adopting the standards documents. Foreword

(This Foreword is not a part of IEEE Std 610.12-1990, IEEE Standard Glossary of Software Engineering Terminology.)

The computer field is continuing to expand. New terms are being generated and new meanings are being adopted for existing terms. The IEEE Computer Dictionary project was undertaken to document this vocabulary. Its purpose is to identify terms currently in use in the computer field and to establish standard definitions for these terms. The dictionary is intended to serve as a useful reference for those in the computer field and for those who come into contact with computers either through their work or in their everyday lives. The dictionary is being developed as a set of subject-area glossaries covering Computer Architecture, Computer Processors, Computer Storage, Software Engineering, Mathematics of Computing, Theory of Computation, Computer Applications, Artificial Intelligence, Data Management, Image Processing and Pattern Recognition, Modeling and Simulation, Computer Graphics, Computer Networking, Computer Languages, and Computer Security and Privacy. This glossary contains the terms related to Software Engineering. It updates IEEE Std 729-1983, IEEE Standard Glossary of Software Engineering Terminology (ANSI). Every effort has been made to use definitipns from established standards in this dictionary. When existing standards were found to be incomplete, unclear, or inconsistent with other entries in the dictionary, however, new, revised, or composite definitions have been developed. At the time this glossary was approved, the following people formed the steering committee of the Computer Dictionary working group:

Jane Radatz, Chairperson, Software Engineering Glossary

Other subgroup leaders:

Anne Geraci Louise McMonegal Paul Wilson Freny Katki Bennett Meyer Mary Yee Dr. John Lane Dr. Hugh Porteous John Young Dr. Fredrick Springsteel

Other working group members who contributed to this glossary were as follows:

Russell J. Abbott John D. Earls Dr. Jose MuiIoz A. Frank Ackerman Mary Forcht-Tucker Geraldine Neidhart Roger R. Baldwin David Gelperin Mary Rasmussen H. Ronald Berlack A1 Gillen Max Schindler J. David Bezek Shirley A. Gloss-Soler Paul Schmid James H. Bradley John A. Goetz Leonard W. Seagren Kathleen L.Briggs David A. Gustafson Sonja Peterson Shields Homer C. Carney Vir1 Haas Kevin Smith Susann Chonoles James Ingram Wayne Smith Taz Daughtrey Gary S. Lindsay Paul U. Thompson Frank J. Douglas Robert McBeth Andrew H. Weigel William P. Dupras Alicia McCurdy W. Martin Wong

Special representatives to the Computer Dictionary working group were as follows:

Frank Jay, Advisor, IEEE Standards Office

Rollin Mayer, Liaison, Accredited Standards Committee X3K5 The following organizations supported employee participation in the development of this standard:

Amlied Information Development Lockheed Atfantic Consultants Logicon Babcock and Wilcox Marine Midland Bank Burroughs Wellcome The MITRE Corporation Carney Associates Perkin-Elmer Corporation Computer Sciences Corporation Quality Assurance Institute Datapoint Corporation Rabbitt Software Corporation Dutchess Engineering Company RCA Edinbom University of Pennsylvania Sanders Associates Electronics Design Magazine SILOGIC Eyring Research Institute Softran General Electric Company Teledyne Brown Engineering Harris Corporation University of Wisconsin, Madison Information Spectrum, Inc. U.S. Naval Facilities Institute for Zero Defect Software US. Dept. of HUD International Bureau of Software Test Wyse Technology Kansas State University

The IEEE 610 working group wishes to acknowledge the contribution of those who developed IEEE Std 729-1983, IEEE Standard Glossary of Software Engineering Terminology (ANSI), which formed the basis for this glossary. The steering committee of this group had the following members:

Shirley A. Gloss-Soler,Chair

Russell J. Abbott John M. Ives Jane W. Radatz Joan P. Bateman John J. McKissick, Jr. Marilyn J. Stewart Stephen R. Beason Albrecht J. Neumann Alan N. Sukert Milton E. Boyd, Jr. John N. Postak Donald A. Woodmancy Kurt F. Fischer David Yablon The sponsor for the Computer Dictionary project is the IEEE Computer Society Standards Coordinating Committee, which balloted this document for submission to the IEEE Standards Board. At the time this standard was approved, the committee had the following membership:

Harrison Beasley Chris Haynes Louis Miller H. Ronald Berlack Rick Henderson James Mollenauer William Billowitch Ken Hobday Jim Mooney Richard Boberg Scott Hopkinson Gary A. Nelson John Boebinger John Horch Tom Pittman Paul L. Borrill Russell Housley Robert M. Poston Terry Bowen Charles Hudson Shlomo Pri-Tal Elliott Brebner Marlyn Huckeby Jane Radatz J. Reese Brown, Jr. Mike Humphrey Michael Raynham Lin Brown John Hyde Gordon Robinson Fletcher Buckley James Isaak Larry Saunders Randy Bush David James Richard Schmidt Clyde Camp Hal Jesperson Norman Schneidewind Steve Carter Richard Kalish Rudolph Schubert Alan Cobb Matt Kaltenbach David Schultz Paul Cook Hans Karlsson Karen Sheaffer Bill Corwin Freni Katki Basil Sherlund Alan Davis Guy Kelley Sava Sherr Steven Deller Kim Kirkpatrick Fred Springsteel Bulent Dervisoglu Bob Knighten John Starkweather Bob Donnan Stanley Krolikoski Dennis StAnauer Paul Eastman John B. Lane Robert Sulgmve D. Vera Edelstein Ron Leckie Oryal Tanir Tim Elsmore Kevin Lewis Michael D. Teener Dick Evans William Lidinsky Donn Terry Richard Fairley Donald C. Loughry Pat Thaler Wayne Fischer A1 Lowenstein Joseph Toy Kester Fong Bill Maciejewski Leonard Tripp David Gelperin Roger Martin Margaret Updike Anne Geraci Philip Marriott Eike Waltz A1 Gilman Colin Maunder John W. Walz John Graham John McGrory Camille White-Partain Steve Grout Louise McMonegal Les Wibberley Dave Gustavson Sunil Mehta Cynthia Wright A1 Hankinson Paul Menchini John Young Fred Harrison Jerry Mersky Jason Zions Bennett Meyer

When the IEEE Standards Board approved this standard on September 28, 1990, it had the following membership:

Marco W. Migliaro, Chairman James M. Daly, Vice Chairman Andrew G. Salem, Secretary

Dennis Bodson Kenneth D. Hendrix Lawrence V. McCall Paul L. Borrill John W. Horch L. Bruce McClung Fletcher J. Buckley Joseph L. KoepBnger* Donald T. Michael* Allen L. Clapp Irving Kolodny Stig Nilsson Stephen R. Dillon Michael A. Lawler Roy T. Oishi Donald C. Fleckenstein Donald J. Loughry Gary S. Robinson Jay Forster* John E. May, Jr. Terrance R. Whittemore Thomas L. Hannan Donald W. Zipse

*Member Emeritus Contents SECTION PAGE

1. Scope ...... 7

2 . Glossary Structure ...... 7 3 . Definitions for Software Engineering Terms ...... 7 4 . Bibliography ...... 82

FIGURES Fig 1 Block Diagram ...... 13 Fig 2 Box Diagram ...... 13 Fig 3 Bubble Chart ...... 14 Fig 4 Call Graph ...... 15 Fig 5 Case Construct ...... 15 Fig 6 Data Flow Diagram ...... 24 Fig 7 Data Structure Diagram ...... 24 Fig 8 Directed Graph ...... 27 Fig 9 Documentation Tree ...... 28 Fig 10 Flowchart ...... 33 Fig 11 Graph (1) ...... 36 Fig 12 Graph (2) ...... 36 Fig 13 If-Then-Else Construct ...... 38 Fig 14 Input-Process-Output Chart ...... 40 Fig 15 Sample Software Life Cycle ...... 68 Fig 16 Structure Chart ...... 7l Fig 17 UNTIL Construct ...... 79 Fig 18 WHILE Construct ...... 82 IEEE Standard Glossary of Software Engineering Terminology

“test case,” or an acronym, such as “CM.” Phrases are given in their natural order (test This glossary defines terms in the field of plan) rather than in reversed order (plan, Software Engineering. Topics covered in- test). clude addressing; assembling, compiling, Blanks precede all other characters in al- linking, loading; computer performance phabetizing. Hyphens and slashes are treated evaluation; configuration management; data as blanks. Alternative spellings are shown in types; errors, faults, and failures; evaluation parentheses. techniques; instruction types; language types; If a term has more than one definition, the libraries; microprogramming; operating sys- definitions are numbered. In most cases, tems; quality attributes; software documenta- noun definitions are given first, followed by tion; software and system testing; software verb and adjective definitions as applicable. architecture; software development process; Examples, notes, and illustrations have been software development techniques; and soft- added to clarify selected definitions. ware tools. The following cross-references are used to Every effort has been made to include all show a term’s relationship to other terms in the terms that meet these criteria. Terms were ex- dictionary: cluded if they were considered to be parochial to one group or organization; company propri- Contrast with refers to a term with an oppo- etary or trademarked; multi-word terms site or substantially different meaning. whose meaning could be inferred from the Syn refers to a synonymous term. definitions of the component words; or terms See also refers to a related term. whose meaning in the computer field could be See refers to a preferred term or to a term directly inferred from their standard English where the desired definition can be found. meaning. This glossary is an update and expansion of The word “deprecated” indicates a term or IEEE Std 729-1983, IEEE Standard Glossary of definition whose use is discouraged because Software Engineering Terminology (ANSI) such use is obsolete, misleading, or ambiy- L3I.l It increases the number of terms from ous. “DoD” refers to usage by the U.S. approximately 500 to 1300, and updates or Department of Defense. refines the definitions of many terms included in the initial glossary. A few terms that were included in the initial glossary have 3. Definitions for Software Engineering been moved to other glossaries in the 610 Terms series. Some definitions have been recast in a system, rather than software, context. Every 1GL. Acronym for first generation language. effort has been made to preserve the fine work See: machine language. that went into the initial glossary. 2GL. Acronym for generation lan- guage. See: assembly language. 2. Glossary Structure 3GL. Acronym for third generation language. Entries in the glossary are arranged alpha- See: high order language. betically. An entry may consist of a single word, such as “software,” a phrase, such as 4GL. Acronym for fourth generation lan- guage. ‘Numbers in brackets correspond to those in the Bibliography in Section 4. 5GL. Acronym for fifth generation language.

7 IEEE Std 61012-1990 IEEE STANDARD GLOSSARY OF abend. Abbreviation for abnormal end. acceptance criteria. The criteria that a system or component must satisfy in order to be abnormal end (abend). Termination of a accepted by a user, customer, or other process prior to completion. See also: abort; authorized entity. See also: requirement; exception. test criteria. abort. To terminate a process prior to acceptance testing. (1) (IEEE Std 1012-1986U211 completion. See also: abend; exception. Formal testing conducted to determine whether or not a system satisfies its accep- absolute address. An address that is tance criteria and to enable the customer to permanently assigned to a device or storage determine whether or not to accept the location and that identifies the device system. or location without the need for translation (2) Formal testing conducted to enable a or calculation. Syn: explicit address; user, customer, or other authorized entity to specific address. Contrast with: relative determine whether to accept a system or address; relocatable address; symbolic component. address. See also: absolute assembler; Contrast with: development testing. See also: absolute code; absolute instruction; absolute operational testing; qualification testing. loader. accuracy. (1) A qualitative assessment of absolute assembler. An assembler that pro- correctness, or freedom from error. duces absolute code. Contrast with: relocat- (2) A quantitative measure of the magnitude ing assembler. of error. Contrast with: precision. absolute code. Code in which all addresses are absolute addresses. Contrast with: relocat- active redundancy. In fault tolerance, the use able code. Syn: specific code. of redundant elements operating simulta- neously to prevent, or permit recovery from, absolute instruction. A computer instruction failures. Contrast with: standby redun- in which all addresses are absolute ad- dancy. dresses. See also: direct instruction; effec- tive instruction; immediate instruction; actual instruction.* See: effective instruction. indirect instruction. * Deprecated. absolute loader. A loader that reads absolute actual parameter. See: argument (3). machine code into main memory, begin- ning at the initial address assigned to the Ada. Note: Ada and other specific computer code by the assembler or compiler, and languages are defined in P610.13 [171. performs no address adjustments on the code. Contrast with: relocating loader. adaptability. See: flexibility. abstract data type. A data type for which only adaptation data. Data used to adapt a program the properties of the data and the operations to to a given installation site or to given condi- be performed on the data are specified, tions in its operational environment. without concern for how the data will be represented or how the operations will be adaptation parameter. A variable that is given implemented. a specific value to adapt a program to a given installation site or to given conditions in its abstraction. (1)A view of an object that focuses operational environment; for example, the on the information relevant to a particular variable Installation-Site-Latitude. purpose and ignores the remainder of the information. See also: data abstraction. adaptive maintenance. Software mainte- (2) The process of formulating a view as nance performed to make a computer pro- in (1). gram usable in a changed environment.

8 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 Contrast with: corrective maintenance; protection exception; underflow excep- perfective maintenance. tion. address. (1)A number, character, or group of afferent. Pertaining to a flow of data or control characters that identifies a given device or from a subordinate module to a superordi- storage location. nate module in a software system. Contrast (2) To refer to a device or storage location by with: efferent. an identifying number, character, or group of characters. algebraic language. A programming lan- See also: absolute address; effective guage that permits the construction of address; implied addressing; indirect statements resembling algebraic expres- address; relative address; relocatable sions, such as Y =X + 5. For example, address; symbolic address; virtual address. FORTRAN. See also: algorithmic lan- guage; list processing language; logic address field. Any of the fields of a computer programming language. instruction that contain addresses, infor- mation necessary to derive addresse;, or algorithm. (1) A finite set of well-defined values of operands. Syn: address part. rules for the solution of a problem in a finite Contrast with: operation field. number of steps; for example, a complete specification of a sequence of arithmetic address format. (1) The number and ar- operations for evaluating sine x to a given rangement of address fields in a computer precision. instruction. See also: n-address instruc- (2) Any sequence of operations for tion; n-plus-oneaddress instruction. performing a specific task. (2) The number and arrangement of elements within an address, such as the algorithmic language. A programming lan- elements needed to identify a particular guage designed for expressing algorithms; channel, device, disk sector, and record in for example, ALGOL. See also: algebraic magnetic disk storage. language; list processing language; logic programming language. address modification. Any arithmetic, logi- cal, or syntactic operation performed on an allocated baseline. In configuration man- address. See also: effective address; in- agement, the initial approved specifications dexed address; relative address; relocatable governing the development of configuration address. items that are part of a higher level configu- ration item. Contrast with: developmental address part. See: address field. configuration; functional baseline; product baseline. See also: allocated configuration address space. (1) The addresses that a identification. computer program can access. Note: In some systems, this may be the set of physical allocated configuration identification. In con- storage locations that a program can access, figuration management, the current ap- disjoint from other programs, together with proved specifications governing the de- the set of virtual addresses referring to those velopment of configuration items that are storage locations, which may be accessible part of a higher level configuration item. by other programs. Each specification defines the functional (2) The number of memory locations that a characteristics that are allocated from those central processing unit can address. of the higher level configuration item, estab- lishes the tests required to demonstrate addressing exception. An exception that achievement of its allocated functional occurs when a program calculates an characteristics, delineates necessary inter- address outside the bounds of the storage face requirements with other associated available to it. See also: data exception; configuration items, and establishes design operation exception; overflow exception; constraints, if any. Contrast with: func-

9 IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF tional configuration identification; product architecture. The organizational structure of a configuration identification. See also: system or component. See also: component; allocated baseline. module; subprogram;routine. allocation. (1) The process of distributing argument. (1) An independent variable; for requirements, resources, or other entities example, the variable m in the equation among the components of a system or E = mc2. program. (2) A specific value of an independent (2) The result of the distribution in (1). variable; for example, the value m = 24 kg. (3) A constant, variable, or expression used anomaly. (IEEE Std 1012-1986 [121) Anything in a call to a software module to specify data observed in the documentation or operation or program elements to be passed to that of software that deviates from expectations module. Syn: actual parameter. Contrast based on previously verified software with: formal parameter. products or reference documents. array. An n-dimensional ordered set of data anticipatory buffering. A buffering technique items identified by a single name and one in which data are stored in a buffer in or more indices, so that each element of anticipation of a need for the data. See also: the set is individually addressable. For dynamic buffering; simple buffering. example, a matrix, table, or vector. anticipatory paging. A storage allocation artificial intelligence. Note: P610.8 [151 de- technique in which pages are transferred fines terminology pertaining to artificial from auxiliary storage to main storage in intelligence. anticipation of a need for those pages. Contrast with: demand paging. artificial language. See: formal language. application generator. A code generator that assemble. To translate a computer program produces programs to solve one or more expressed in an assembly language into its problems in a particular application area; machine language equivalent. Contrast for example, a payroll generator. with: compile; disassemble; interpret. application-oriented language. A computer assemble-and-go. An operating technique in language with facilities or notations which there are no stops between the assem- applicable primarily to a single application bling, linking, loading, and execution of a area; for example, a language for computer- computer program. assisted instruction or hardware design. See also: authoring language; specification assembled origin. The address of the initial language; query language; simulation storage location assigned to a computer pro- language. gram by an assembler, a compiler, or a linkage editor. Contrast with: loaded application software. Software designed to origin. See also: offset (1); starting address. fulfill specific needs of a user; for example, software for navigation, payroll, or process assembler. A computer program that trans- control. Contrast with: support software; lates programs expressed in assembly system software. language into their machine language equivalents. See also: absolute assembler; architectural design. (1) The process of cross-assembler; relocating assembler. defining a collection of hardware and Contrast with: compiler; interpreter. software components and their interfaces to establish the framework for the development assembler code. See: assembly code. of a computer system. See also: functional design. assembler language. See: assembly lan- (2) The result of the process in (1). guage.

10 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1590 assembly code. Computer instructions and for computer-assisted instruction. See also: data definitions expressed in a form that authoring system. can be recognized and processed by an assembler. Syn: assembler code. Contrast authoring system. A programming system with: compiler code; interpretive code; that incorporates an authoring language. machine code. automated verification system. (1)A software assembly language. A programming lan- tool that accepts as input a computer program guage that corresponds closely to the instruc- and a representation of its specification and tion set of a given computer, allows symbolic produces, possibly with human help, a proof naming of operations and addresses, and or disproof of the correctness of the program. usually results in a one-to-one translation (2) Any software tool that automates part or of program instructions into machine in- all of the verification process. structions. Syn: assembler language; low level language; second generation lan- availability. The to which a system or guage. Contrast with: fifth generation lan- component is operational and accessible guage; fourth generation language; high when required for use. Often expressed as a order language; machine language. Note: probability. See also: error tolerance; fault Specific languages are defined in P610.13 tolerance; robustness. D71. back-to-back testing. Testing in which two or assertion. A logical expression specifying a more variants of a program are executed program state that must exist or a set of with the same inputs, the outputs are conditions that program variables must compared, and errors are analyzed in case satisfy at a particular point during program of discrepancies. See also: mutation testing. execution. Types include input assertion, loop assertion, output assertion. See also: background. In job scheduling, the computing invariant; proof of correctness. environment in which low-priority pro- cesses or those not requiring user interac- assignment statement. A computer program tion are executed. Contrast with: fore- statement that assigns a value to a variable; ground. See also: background processing. for example, Y := X - 5. Contrast with: control statement; declaration. See also: background processing. The execution of a clear; initialize; reset. low-priority process while higher priority processes are not using computer resources, atomic type. A data type, each of whose mem- or the execution of processes that do not bers consists of a single, nondecomposable require user interaction. Contrast with: data item. Syn: primitive type. Contrast foreground processing. with: composite type. backup. (1) A system, component, file, attribute. A characteristic of an item; for ex- procedure, or person available to replace or ample, the item's color, size, or type. See help restore a primary item in the event of a also: quality attribute. failure or externally caused disaster. (2) To create or designate a system, audit. An independent examination of a component, file, procedure, or person as work product or set of work products to in (1). assess compliance with specifications, standards, contractual agreements, or backup programmer. The assistant leader of a other criteria. See also: functional chief programmer team; responsibilities configuration audit; physical configuration include contributing significant portions of audit. the software being developed by the team, aiding the chief programmer in reviewing authoring language. A high level program- the work of other team members, ming language used to develop courseware substituting for the chief programmer when

11 IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF necessary, and having an overall technical additional input or user interaction. understanding of the software being Contrast with: conversational; interactive; developed. See also: chief programmer. online; real time. backward execution. See: reversible bathtub curve. A graph of the number of fail- execution. ures in a system or component as a function of time. The name is derived from the usual backward recovery. (1)The reconstruction of shape of the graph: a period of decreasing a file to a given state by reversing all failures (the early-failure period), followed changes made to the file since it was in that by a relatively steady period (the constant- state. failure period), followed by a period of (2) A type of recovery in which a system, increasing failures (the wearout-failure program, database, or other system resource period). is restored to a previous state in which it can perform required functions. benchmark. (1) A standard against which Contrast with: forward recovery. measurements or comparisons can be made. base address. An address used as a reference (2) A procedure, problem, or test that can be point to which a relative address is added to used to compare systems or components to determine the address of the storage location each other or to a standard as in (1). to be accessed. See also: indexed address; (3) A recovery file. relative address; self-relative address. big-bang testing. A type of integration testing baseline. (1)A specification or product that has in which software elements, hardware ele- been formally reviewed and agreed upon, ments, or both are combined all at once into that thereafter serves as the basis for further an overall system, rather than in stages. development, and that can be changed only through formal change control procedures. binary digit (bit).(l)A unit of information that (2) A document or a set of such documents can be represented by either a zero or a one. formally designated and fixed at a specific (2) An element of computer storage that can time during the life cycle of a configuration hold a unit of information as in (1). item. Note: Baselines, plus approved (3) A numeral used to represent one of the changes from those baselines, constitute the two digits in the binary numeration system; current configuration identification. See zero (0) or one (1). also: allocated baseline; developmental See also: byte; word. configuration; functional baseline; product baseline. bind. To assign a value to an identifier. For (3) Any agreement or result designated and example, to assign a value to a parameter or fixed at a given time, from which changes to assign an absolute address to a symbolic require justification and approval. address in a computer program. See also: dynamic binding; static binding. baseline management. In configuration management, the application of technical bit. Acronym for binary digit. and administrative direction to designate the documents and changes to those docu- bit steering. A microprogramming technique ments that formally identify and establish in which the meaning of a field in a baselines at specific times during the life microinstruction is dependent on the value cycle of a configuration item. of another field in the microinstruction. Syn: immediate control. Contrast with: batch. Pertaining to a system or mode of residual control. See also: two-level operation in which inputs are collected and encoding. processed all at one time, rather than being processed as they arrive, and a job, once black box. (1) A system or component whose started, proceeds to completion without inputs, outputs, and general function are

12 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 known but whose contents or implementa- bootstrap. (1)A short computer program that is tion are unknown or irrelevant. Contrast permanently resident or easily loaded into a with: glass box. computer and whose execution brings a (2) Pertaining to an approach that treats a larger program, such as an operating system or component as in (1). See also: system or its loader, into memory. encapsulation. (2) To use a program as in (1). Syn: initial program load. black-box testing. See: functional testing (1). bootstrap loader. A short computer program block. (1) A group of contiguous storage used to load a bootstrap. locations, computer program statements, records, words, characters, or bits that are bottom-up. Pertaining to an activity that starts treated as a unit. See also: block-structured with the lowest-level components of a hier- language; delimiter. archy and proceeds through progressively (2) To form a group as in (1).Contrast with: higher levels; for example, bottom-up deblock. design; bottom-up testing. Contrast with: top-down. See also: critical piece first. block allocation. See: paging (1). boundary value. A data value that corresponds block diagram. A diagram of a system, com- to a minimum or maximum input, internal, puter, or device in which the principal parts or output value specified for a system or are represented by suitably annotated geo- component. See also: testing. metrical figures to show both the functions of the parts and their functional relation- box diagram. A control flow diagram consist- ships. Syn: configuration diagram; system ing of a rectangle that is subdivided to show resources chart. See also: box diagram; bub- sequential steps, if-then-else conditions, ble chart; flowchart; graph; input-process- repetition, and case conditions. Syn: Chapin output chart; strumchart. chart; Nassi-Shneiderman chart; program structure diagram. See also: block dia- Card Mainframe gram; bubble chart; flowchart; graph; input- Reader Com puter p~ss-outputchart; program ~truch~?dia- gram; structure chart.

(Z$&yJPrinter Do while there are transaction records Read transaction record Fig 1 Check for errors Block Diagram block-structured language. A design or pro- gramming language in which sequences of Update salary I Display error msg statements, called blocks, are defined, Excess sick usually with begin and end delimiters, and variables or labels defined in one block are Cease processing not recognized outside that block. Examples Print this record include Ada, ALGOL, PL/I. See also: struc-

tured programming language. ~~

IPrint check I blocking factor. The number or records, words, characters, or bits in a block. Fig 2 Box Diagram boot. To initialize a computer system by clear- ing memory and reloading the operating branch. (1) A computer program construct in system. Derived from bootstrap. which one of two or more alternative sets of

13 IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF program statements is selected for execu- buffer. (1) A device or storage area used to tion. See also:case; jump; go to; if-then- store data temporarily to compensate for else. differences in rates of data flow, time of (2) A point in a computer program at which occurrence of events, or amounts of data that one of two or more alternative sets of pro- can be handled by the devices or processes gram statements is selected for execution. involved in the transfer or use of the data. Syn: branchpoint. (2) A routine that accomplishes the objectives (3) Any of the alternative sets of program in (1). statements in (1). (3) To allocate, schedule, or use devices or (4) To perform the selection in (1). storage areas as in (1).See also: anticipa- tory buffering; dynamic buffering; simple branch testing. Testing designed to execute buffering. each outcome of each decision point in a computer program. Contrast with: path bug. See: error; fault. testing; statement testing. branchpoint. See: branch (2). bug seeding. See: error seeding. breakpoint. A point in a computer program at build. An operational version of a system or which execution can be suspended to permit component that incorporates a specified sub- manual or automated monitoring of pro- set of the capabilities that the final product gram performance or results. Types include will provide. code breakpoint, data breakpoint, dynamic breakpoint, epilog breakpoint, program- burn-in period. See: early-failureperiod. mable breakpoint, prolog breakpoint, static breakpoint. Note: A breakpoint is said to be busy. Pertaining to a system or component that set when both a point in the program and an is operational, in service, and in use. See event that will cause suspension of execution also: down; idle; up. at that point are defined; it is said to be initiated when program execution is sus- busy time. In computer performance engi- pended. neering, the period of time during which a bubble chart. A data flow, data structure, or system or component is operational, in other diagram in which entities are depicted service, and in use. See also: down time; with circles (bubbles) and relationships are idle time; set-up time; up time. represented by links drawn between the circles. See also: block diagram; box byte. (1) A group of adjacent binary digits diagram; flowchart; graph; input-process- operated upon as a unit and usually shorter output chart; strumchart. than a computer word (frequently connotes a group of eight bits). (2) An element of computer storage that can Update Qinventory hold a group of bits as in (1). See also: bit; word. Pull items shelf call. (1) A transfer of control from one order bled ~ software module to another, usually with items. order the implication that control will be returned to the calling module. Contrast with: go (2) A computer instruction that transfers billing Update data account control from one software module to another as in (1) and, often, specifies the parameters to be passed to and from the module. Fig 3 (3) To transfer control from one software Bubble Chart module to another as in (1) and, often, to pass

14 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990

parameters to the other module. Syn: Main cue. Program 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 evalu- Fig 4 ates the expression and provides the Call Graph resulting value to the called module. Note: Because the expression is evaluated call list. The ordered list of arguments used in each time its corresponding formal a call to a software module. parameter is used in the called module, the value of the parameter may change call trace. See: subroutine trace. during the execution of the called module. Contrast with: call by reference; call by call tree. See: call graph. value. calling sequence. A sequence of computer call by reference. A method for passing instructions and, possibly, data necessary to parameters, in which the calling module perform a call to another module. provides to the called module the address of the parameter to be passed. Note: CASE. Acronym for computer-aidedsoftware With this method, the called module engineering. has the ability to change the value of the parameter stored by the calling module. case. A single-entry, single-exit multiple- Syn: call by address; call by location. way branch that defines a control expres- Contrast with: call by name; call by value. sion, specifies the processing to be performed for each value of the control expression, and call by value. A method of passing returns control in all instances to the state- parameters, in which the calling module ment immediately following the overall provides to the called module the actual construct. Syn: multiple exclusive selective value of the parameter to be passed. construct. Contrast with: go to; jump; if- Note: With this method, the called mod- then-else. See also: multiple inclusive ule cannot change the value of the para- selective construct. meter 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 \- I tree; tier chart. Contrast with: structure chart. See also: control flow diagram; data flow diagram; data structure diagram; state Fig 5 diagram. Case Construct

15 JEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF catastrophic failure. A failure of critical Contrast with: enumeration type; integer software. type; logical type; real type.

CCB. (1) Acronym for configuration control characteristic. (IEEE Std 1008-1987 [lo]) See: board. data characteristic;softwam characteristic. (2) Acronym for change control board. See: configuration control board. checkout. Testing conducted in the operational or support environment to ensure that a CDR Acronym for critical design review. software product performs as required after installation. certification. (1) A written guarantee that a system or component complies with its speci- checkpoint. A point in a computer program at fied requirements and is acceptable for which program state, status, or results are operational use. For example, a written au- checked or recorded. thorization that a computer system is secure and is permitted to operate in a defined chief programmer. The leader of a chief pro- environment. grammer team; a senior-level programmer (2) A formal demonstration that a system or whose responsibilities include producing component complies with its specified re- key portions of the software assigned to the quirements and is acceptable for operational team, coordinating the activities of the team, use. reviewing the work of the other team mem- (3) The process of confirming that a system bers, and having an overall technical un- or component complies with its specified re- derstanding of the software being developed. quirements and is acceptable for operational See also: backup programmer; chief pro- use. grammer team. change control. See: configuration control. chief programmer team. A software develop- ment group that consists of a chief change control board. See: configuration programmer, a backup programmer, a control board. secretaryllibrarian, and additional pro- grammers and specialists as needed, and change dump. A selective dump of those that employs procedures designed to en- storage locations whose contents have hance group communication and to make changed since some specified time or event. optimum use of each member's skills. See Syn: differential dump. See also: dynamic also: backup programmer; chief program- dump; memory dump; postmortem dump; mer; egoless programming. selective dump; snapshot dump; static dump. CI. Acronym for configuration item. channel capacity. The maximum amount of clear. To set a variable, register, or other information that can be transferred on a storage location to zero, blank, or other null given channel per unit of time; usually value. See also: initialize; reset. measured in bits per second or in baud. See also: memory capacity; storage capacity. closed loop. A loop that has no exit and whose execution can be interrupted only by Chapin chart. See: box diagram. intervention from outside the computer program or procedure in which the loop is character. A letter, digit, or other symbol that located. Contrast with: UNTIL; WHILE. is used to represent information. closed subroutine. A subroutine that is stored character type. A data type whose members at one given location rather than being can assume the values of specified copied into a computer program at each place characters and can be operated on by that it is called. Contrast with: open subrou- character operators, such as concatenation. tine.

16 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 CM. Acronym for configuration manage- coding. (1) In software engineering, the ment. process of expressing a computer program in a programming language. code. (1) In software engineering, computer (2) (IEEE Std 1002-1987 [91) The trans- instructions and data definitions expressed forming of logic and data from design in a programming language or in a form specifications (design descriptions) into a output by an assembler, compiler, or other programming language. translator. See also: source code; object See also: software development process. code; machine code; microcode. (2) To express a computer program in a cohesion. The manner and degree to which the programming language. tasks performed by a single software mod- (3) A character or bit pattern that is assigned ule are related to one another. Types include a particular meaning; for example, a status coincidental, communicational, functional, code. logical, procedural, sequential, and tempo- ral. Syn: module strength. Contrast with: code breakpoint. A breakpoint that is initiated coupling. upon execution of a given computer instruc- tion. Syn: control breakpoint. Contrast aith: coincidental cohesion. A type of cohesion in data breakpoint. See also: dynamic break- which the tasks performed by a software point; epilog breakpoint; programmable module have no functional relationship to breakpoint;pmlog breakpoint; static break- one another. Contrast with: communica- point. tional cohesion; functional cohesion; logi- cal cohesion; procedural cohesion; sequen- code generator. (1)A routine, often part of a tial cohesion; temporal cohesion. compiler, that transforms a computer program from some intermediate level of command. An expression that can be input to a representation (often the output of a root computer system to initiate an action or compiler or parser) into a form that is closer affect the execution of a computer program; to the language of the machine on which the for example, the “log on” command to program will execute. initiate a computer session. (2) A software tool that accepts as input the requirements or design for a computer command-driven. Pertaining to a system or program and produces source code that mode of operation in which the user directs implements the requirements or design. the system through commands. Contrast Syn: source code generator. See also: with: menu-driven. application generator. command language. A language used to deinspection. See: inspection. express commands to a computer system. See also: command-driven. code of ethics standard. (IEEE Std 1002-1987 [SI) A standard that describes the character- comment. Information embedded within a istics of a set of moral principles dealing computer program, job control statements, or with accepted standards of conduct by, a set of data, that provides clarification to within, and among professionals. human readers but does not affect machine interpretation. code review. A meeting at which software code is presented to project personnel, managers, common. See: common storage. users, customers, or other interested parties for comment or approval. Contrast with: common area. See: common storage. design review; formal qualification review; requirements review; test readiness common block. See: common storage. review. common coupling. See: common-environ- detrace. See: execution trace. ment coupling.

17 IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF common data. See: global data. compiler. A computer program that translates programs expressed in a high order lan- common-environment coupling. A type of guage into their machine language equiva- coupling in which two software modules lents. Contrast with: assembler; interpreter. access a common data area. Syn: common See also: cross-compiler;incremental com- coupling. Contrast with: content coupling; piler; root compiler. control coupling; data coupling; hybrid coupling; pathological coupling. compiler code. Computer instructions and data definitions expressed in a form that common storage. A portion of main storage can be recognized and processed by a com- that can be accessed by two or more modules piler. Contrast with: assembly code; inter- in a software system. Syn: common area; pmtive code; machine code. common block. See also: global data. compiler compiler. See: compiler generator. communicational cohesion. A type of cohesion in which the tasks performed by a software compiler generator. A translator or inter- module use the same input data or contribute preter used to construct part or all of a to producing the same output data. Contrast compiler. Syn: compiler compiler; meta- with: coincidental cohesion; functional compiler. cohesion; logical cohesion; procedural cohesion; sequential cohesion; temporal completion code. A code communicated to a job cohesion. stream processor by a batch program to influence the execution of succeeding steps compaction. In microprogramming, the pro- in the input stream. cess of converting a microprogram into a functionally equivalent microprogram complexity. (1)The degree to which a system that is faster or shorter than the original. or component has a design or implementa- See also: local compaction; global com- tion that is difficult to understand and paction. verify. Contrast with: simplicity. (2) Pertaining to any of a set of structure- comparator. A software tool that compares based metrics that measure the attribute two computer programs, files, or sets of data in (1). to identify commonalities or differences. Typical objects of comparison are similar component. One of the parts that make up versions of source code, object code, data a system. A component may be hardware base files, or test results. or software and may be subdivided into other components. Note: The terms “module,” compatibility. (1) The ability of two or more “component,” and “unit” are often used systems or components to perform their interchangeably or defined to be sub- required functions while sharing the same elements of one another in different ways hardware or software environment. depending upon the context. The rela- (2) The ability of two or more systems or tionship of these terms is not yet stan- components to exchange information. See also: interoperability. dardized. compile. To translate a computer program component standard. (IEEE Std 1002-1987 193) expressed in a high order language into its A standard that describes the characteristics machine language equivalent. Contrast of data or program components. with: assemble; decompile; interpret. component testing. Testing of individual compile-and-go. An operating technique in hardware or software components or groups which there are no stops between the of related components. Syn: module testing. compiling, linking, loading, and execution See also: integration testing; interface of a computer program. testing; system testing; unit testing.

18 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 composite type. A data type each of whose computer program configuration item members is composed of multiple data (CPCD.* See: computer software configura- items. For example, a data type called tion item. PAIRS whose members are ordered pairs *Deprecated. (xy).Contrast with: atomic type. computer resource allocation. The assign- computer-aidedsoftware engineering (CASE). ment of computer resources to current and The use of computers to aid in the soft- waiting jobs; for example, the assignment of ware engineering process. May include main memory, input/output devices, and the application of software tools to software auxiliary storage to jobs executing concur- design, requirements tracing, code pro- rently in a computer system. See also: duction, testing, document generation, dynamic resource allocation; storage allo- and other software engineering activ- cation. ities. computer resources. The computer equipment, computer instruction. (1) A statement in a programs, documentation, services, facili- programming language, specifying an ties, supplies, and personnel available for a operation to be performed by a computer and given purpose. See also: computer resource the addresses or values of the associated allocation. operands; for example, Move A to B. See also: instruction format; instruction set. computer security. Note: P610.9 [161 defines (2) Loosely, any executable statement in a terminology pertaining to computer secu- computer program. rity.

computer language. A language designed to computer software component (CSC). A func- enable humans to communicate with com- tionally or logically distinct part of a puters. See also: design language; query computer software configuration item, typi- language; programming language. Note: cally an aggregate of two or more software P610.13 [171 defines specific computer lan- units. gu ages. computer software configuration item (CSCI). computer performance evaluation. An An aggregation of software that is desig- engineering discipline that measures the nated for configuration management and performance of computer systems and treated as a single entity in the configura- investigates methods by which that perfor- tion management process. Contrast with: mance can be improved. See also: system hardware configuration item. See also: profile; throughput; utilization; workload configuration item. model. computer system. A system containing one or computer program. A combination of computer more computers and associated software. instructions and data definitions that en- able computer hardware to perform computa- computer word. See: word. tional or control functions. See also: soft- ware. computing center. A facility designed to provide computer services to a variety of computer program abstract. A brief descrip- users through the operation of computers and tion of a computer program that provides auxiliary hardware and through services sufficient information for potential users to provided by the facility's staff. determine the appropriateness of the pro- gram to their needs and resources. concept phase. (1) (IEEE Std 1002-1987[91) The period of time in the software development computer program component (CPC).* See: cycle during which the user needs are computer software component. described and evaluated through documen- *Deprecated. tation (for example, statement of needs,

19 IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF advance planning report, project initiation interface control; notice of revision; speci- memo, feasibility studies, system defini- fication change notice; waiver. tion, documentation, regulations, proce- dures, or policies relevant to the project). configuration control board (CCB). A group of (2) (IEEE Std 1012-1986 [121) The initial people responsible for evaluating and ap- phase of a software development project, in proving or disapproving proposed changes to which the user needs are described and configuration items, and for ensuring im- evaluated through documentation (for plementation of approved changes. Syn: example, statement of needs, advance change control board. See also: configura- planning report, project initiation memo, tion control. feasibility studies, system definition, documentation, regulations, procedures, or configuration diagram. See: block diagram. policies relevant to the project). configuration identification. (1) An element concurrent. Pertaining to the occurrence of configuration management, consisting of of two or more activities within the same selecting the configuration items for a sys- interval of time, achieved either by inter- tem and recording their functional and leaving the activities or by simultaneous physical characteristics in technical docu- execution. Syn: parallel (2). Contrast with: mentation. Contrast with: configuration simultaneous. control; configuration status accounting. (2) The current approved technical docu- condition code. See: status code. mentation for a configuration item as set forth in specifications, drawings, associated conditional branch.* See: conditional jump. lists, and documents referenced therein. See *Deprecated. also: allocated configuration identification; functional configuration identification; conditional jump. A jump that takes place product configuration identification; base- only when specified conditions are met. line. Contrast with: unconditional jump. configuration index. A document used in con- configuration. (1) The arrangement of a figuration management, providing an ac- computer system or component as defined by counting of the configuration items that the number, nature, and interconnections of make up a product. See also: configuration its constituent parts. item development record; configuration (2) In configuration management, the status accounting. functional and physical characteristics of configuration item (CI). An aggregation of hardware or software as set forth in technical documentation or achieved in a hardware, software, or both, that is desig- product. See also: configuration item; form, nated for configuration management and fit and function; version. treated as a single entity in the configura- tion management process. See also: hard- configuration audit. See: functional configu- ware configuration item; computer softwan? ration audit; physical configuration audit. configuration item; configuration identifi- cation; critical item. configuration control. An element of configu- configuration item development record. A ration management, consisting of the eval- document used in configuration manage- uation, coordination, approval or disap- ment, describing the development status of a proval, and implementation of changes to configuration item based on the results of configuration items after formal establish- configuration audits and design reviews. ment of their configuration identification. See also: configuration index; configura- Syn: change control. Contrast with: config tion status accounting. uration identification; configuration status accounting. See also: configuration control configuration management (CM).A disci- board; deviation; engineering change; pline applying technical and administra- IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 tive direction and surveillance to: identify contiguous allocation. A storage allocation and document the functional and physical technique in which programs or data to be characteristics of a configuration item, stored are allocated a block of storage of control changes to those characteristics, equal or greater size, so that logically record and report change processing and contiguous programs and data are assigned implementation status, and verify compli- physically contiguous storage locations. ance with specified requirements. See also: Contrast with: paging (1). baseline; configuration identification; con- figuration control; configuration status continuous iteration. A loop that has no exit. accounting, configuration audit. control bwakpoint. See: code breakpoint. configuration status accounting. An element of configuration management, consisting of control coupling. A type of coupling in which the recording and reporting of information one software module communicates infor- needed to manage a configuration effec- mation to another module for the explicit tively. This information includes a listing purpose of influencing the latter module's of the approved configuration identification, execution. Contrast with: common-envi- the status of proposed changes to the configu- ronment coupling; content coupling; data ration, and the implementation status of coupling; hybrid coupling; pathological approved changes. Contrast with: configu- coupling. ration control;configuration identification. See also: configuration index; configura- control data. Data that select an operating tion item development record. mode, direct the sequential flow of a pro- gram, or otherwise directly influence the consecutive. Pertaining to the occurrence of operation of software; for example, a loop two sequential events or items without the control variable. intervention of any other event or item; that is, one immediately after the other. control flow. The sequence in which opera- tions are performed during the execution of consistency. The degree of uniformity, stan- a computer program. Syn: flow of control. dardization, and freedom from contradic- Contrast with: data flow. tion among the documents or parts of a system or component. See also: traceability. control flow diagram. A diagram that depicts the set of all possible sequences in which constant. A quantity or data item whose value operations may be performed during the cannot change; for example, the data item execution of a system or program. Types FIVE, with an unchanging value of 5. include box diagram, flowchart, input- Contrast with: variable. See also: figurative process-output chart, state diagram. literal. constant; Contrast with: data flow diagram. See also: call graph; Structw-e chart. constant-failure period. The period of time in the life cycle of a system or component during which hardware failures occur at an control flow trace. See: execution trace. approximately uniform rate. Contrast with: early-failure period; wearout-failure pe- control language. See: job control language. riod. See also: bathtub curve. control program. See: supervisory program. content coupling. A type of coupling in which some or all of the contents of one software control statement. A program statement that module are included in the contents of selects among alternative sets of program another module. Contrast with: common- statements or affects the order in which environment coupling; control coupling; operations are performed. For example, if- data coupling; hybrid coupling; pathological then-else, case. Contrast with: assignment coupling. statement; declaration.

23 IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF control store. In a microprogrammed com- correctness. (1) The degree to which a sys- puter, the computer memory in which micro- tem or component is free from faults in programs reside. See also: microword; its specification, design, and implementa- nanostore. tion. (2) The degree to which software, documen- contml variable. See: loop-control variable. tation, or other items meet specified re- quirements. conventions. (IEEE Std 983-1986 [71) (3) The degree to which software, documen- Requirements employed to prescribe a tation, or other items meet user needs and disciplined uniform approach to providing expectations, whether specified or not. consistency in a software product, that is, uniform patterns or forms for arranging correctness pmf. See: pmf of correctness. data. See also: practices; standards. counter. A variable used to record the number conversational. Pertaining to an interactive of occurrences of a given event during system or mode of operation in which the the execution of a computer program; for interaction between the user and the system example, a variable that records the number resembles a human dialog. Contrast with: of times a loop is executed. batch. See also: interactive; on-line; real time. coupling. The manner and degree of interde- pendence between software modules. Types conversational compiler. See: incremental include common-environment coupling, compiler. content coupling, control coupling, data coupling, hybrid coupling, and pathological conversion. Modification of existing software coupling. Contrast with: cohesion. to enable it to operate with similar func- tional capability in a different environ- CPC. Acronym for computer program compo- ment; for example, converting a program nent. See: computer software component. from Fortran to Ada, converting a program that runs on one computer to run on another. CPCI. Acronym for computer program config- uration item. See: computer software con- copy. (1) To read data from a source, leaving figuration item. the source data unchanged, and to write the same data elsewhere in a physical form crash. The sudden and complete failure of a that may differ from that of the source. For computer system or component. See also: example, to copy data from a magnetic hard failure. disk onto a magnetic tape. Contrast with: move. critical design review (CDR). (1) A review (2) The result of a copy process as in (1).For conducted to verify that the detailed design example, a copy of a data file. of one or more configuration items satisfy specified requirements; to establish the core dump.* See: memory dump. compatibility among the configuration *Deprecated. items and other items of equipment, facili- ties, software, and personnel; to assess risk coroutine. A routine that begins execution at areas for each configuration item; and, as the point at which operation was last applicable, to assess the results of pro- suspended, and that is not required to return ducibility analyses, review preliminary control to the program or subprogram that hardware product specifications, evaluate called it. Contrast with: subroutine. preliminary test planning, and evaluate the adequacy of preliminary operation and corrective maintenance. Maintenance per- support documents. See also: preliminary formed to correct faults in hardware or soft- design review; system design review. ware. Contrast with: adaptive maintenance; (2) A review as in (1) of any hardware or perfective maintenance. software Component. IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 critical item. In configuration management, cue. See: call (3). an item within a configuration item that, because of special engineering or logistic curriculum standard. (IEEE Std 1002-1987[91) considerations, requires an approved speci- A standard that describes the characteristics fication to establish technical or inventory of a course of study on a body of knowledge control at the component level. that is offered by an educational institution. critical piece first. A system development ap- cycle. (1)A period of time during which a set of proach in which the most critical aspects of a events is completed. See also: software system are implemented first. The critical development cycle; software life cycle. piece may be defined in terms of services (2) A set of operations that is repeated regu- provided, degree of risk, difficulty, or other larly in the same sequence, possibly with criteria. See also: bottom-up;top-down. variations in each repetition; for example, a computer's read cycle. See also: pass. critical software. (IEEE Std 1012-1986 [123) Software whose failure could have an impact cycle stealing. The process of suspending the on safety, or could cause large financial or operation of a central processing unit for one social loss. or more cycles to permit the occurrence of other operations, such as transferring data criticality. The degree of impact that a from main memory in response to an output requirement, module, error, fault, failure, request from an input/output controller. or other item has on the development or operation of a system. Syn: severity. cyclic search. A storage allocation technique in which each search for a suitable block of cross-assembler. An assembler that executes storage begins with the block following the on one computer but generates machine code one last allocated. for a different computer. data. (1)A representation of facts, concepts, or cross-compiler. A compiler that executes on instructions in a manner suitable for com- one computer but generates machine code for munication, interpretation, or processing by a different computer. humans or by automatic means. See also: data type.Note: IEEE Std 610.5-1990 [21 cross-reference generator. A software tool that defines terminology pertaining to data accepts as input the source code of a computer program and produces as output a listing management. (2) Sometimes used as a synonym for docu- that identifies each of the program's vari- ables, labels, and other identifiers and indi- mentation. cates which statements in the program define, set, or use each one. Syn: cross- data abstraction. (1)The process of extracting referencer. the essential characteristics of data by defining data types and their associated cross-reference list. A list that identifies each functional characteristics and disregard- of the variables, labels, and other identifiers ing representation details. See also: encap- in a computer program and indicates which sulation; information hiding. statements in the program define, set, or use (2) The result of the process in (1). each one. data breakpoint. A breakpoint that is initiated cross-referencer.See: cross-referencegener- when a specified data item is accessed. Syn: ator. storage breakpoint. Contrast with: code breakpoint. See also: dynamic breakpoint; CSC. Acronym for computer software compo- epilog breakpoint; programmable break- nent. point; prolog breakpoint; static breakpoint.

CSCL Acronym for computer software config- data characteristic. (IEEE Std 1008-1987 [lo]) uration item. An inherent, possibly accidental, trait,

23 IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF quality, or property of data (for example, data flowchart (flow chart). See: data flow arrival rates, formats, value ranges, or diagram. relationships between field values). data input sheet. User documentation that de- data coupling. A type of coupling in which scribes, in a worksheet format, the required output from one software module serves as and optional input data for a system or input to another module. Syn: input-output component. See also: user manual. coupling. Contrast with: common-envi- ronment coupling, content coupling; control data-sensitive fault. A fault that causes a fail- coupling; hybrid coupling; pathological ure in response to some particular pattern of coupling. data. Syn: pattern-sensitive fault. Contrast with: program-sensitivefault. data definition. Note: This term is defined in IEEE Std 610.5-1990 [23. data structure. A physical or logical relation- ship among data elements, designed to sup- data exception. An exception that occurs when port specific data manipulation functions. a program attempts to use or access data in- Note: IEEE Std 610.5-1990 121 defines specific correctly. See also: addressing exception; data structures. operation exception; overflow exception; pmtection exception; underflow exception. data structure-centered design. A software design technique in which the architecture data flow. The sequence in which data trans- of a system is derived from analysis of the fer, use, and transformation are performed structure of the data sets with which the during the execution of a computer program. system must deal. See also: input-process- Contrast with: control flow. output; modular decomposition; object- oriented design; rapid prototyping; stepwise data flow diagram (DF'D). A diagram that de- refinement; structure clash; structured picts data sources, data sinks, data storage, design; transaction analysis; transform and processes performed on data as nodes, analysis. and logical flow of data as links between the nodes. Syn: data flowchart; data flow graph. data structure diagram. A diagram that de- Contrast with: control flow diagram; data picts a set of data elements, their attributes, structure diagram. and the logical relationships among them. Contrast with: data flow diagram. See also: entity-relationshipdiagram.

I Employee Record

Emp, Emp. Name Dept. Ernp. No. I -invalid Reports 2 I First Mid. Last Street City State Zip No' Valid (41) (1OC) (1C) (16C) (20C) (20C) (2C) (el) l3') (41) Reports I - Integer C - Character 1 Fig 7 Data StrumDiagram

data trace. See: variable trace. Fig 6 Data Flow Diagram data type. A class of data, characterized by the members of the class and the operations that can be applied to them. For example, data flow graph. See: data flow diagram. character type, enumeration type, integer type, logical type, real type. See also: strong data flow trace. See: variable trace. typing.

24 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 database. A collection of interrelated data decoupling. The process of making software stored together in one or more computerized modules more independent of one another to files. Note: IEEE Std 610.5-1990 121 defines decrease the impact of changes to, and errors terminology pertaining to databases. in, the individual modules. See also: COU- pling. datum. Singular for data. delimiter. A character or set of characters deadlock. A situation in which computer used to denote the beginning or end of a processing is suspended because two or more group of related bits, characters, words, or devices or processes are each awaiting statements. resources assigned to the others. See also: lockout. delivery. Release of a system or component to its customer or intended user. See also: deassembler.*See: disassembler. software life cycle; system life cycle. * Deprecated. demand paging. A storage allocation tech- deblock. To separate the parts of a block. nique in which pages are transferred from Contrast with: block (2). auxiliary storage to main storage only when those pages are needed. Contrast with: debug. To detect, locate, and correct faults in a anticipatory paging. computer program. Techniques include use of breakpoints, desk checking, dumps, demodularization. In software design, the inspection, reversible execution, single-step process of combining related software mod- operation, and traces. ules, usually to optimize system perfor- mance. See also: downward compression; decision table. A table used to show sets of lateral compression; upward compression. conditions and the actions resulting from them. demonstration. A dynamic analysis tech- nique that relies on observation of system or de clar a t i on . A non-exe cuta ble program component behavior during execution, with- statement that affects the assembler or com- out need for post-execution analysis, to detect piler's interpretation of other statements in errors, violations of development standards, the program. For example, a statement that and other problems. See also: testing. identifies a name, specifies what the name represents, and, possibly, assigns it an derived type. A data type whose members and initial value. Contrast with: assignment operations are taken from those of another statement; control statement. See also: data type according to some specified rule. pseudo instruction. See also: subtype. declarative language. A nonprocedural lan- description standard. (IEEE Std 1002-1987[SI) guage that permits the user to declare a set of A standard that describes the characteristics facts and to express queries or problems that of product information or procedures pro- use these facts. See also: interactive lan- vided to help understand, test, install, oper- guage; rule-based language. ate, or maintain the product. decompile. To translate a compiled computer design. (1) The process of defining the archi- program from its machine language ver- tecture, components, interfaces, and other sion into a form that resembles, but may characteristics of a system or component. not be identical to, the original high See also: architectural design; preliminary order language program. Contrast with: design; detailed design. compile. (2) The result of the process in (1). decompiler. A software tool that decompiles design description. A document that describes computer programs. the design of a system or component.

25 IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF Typical contents include system or compo- design review, system design review. nent architecture, control logic, data struc- Contrast with: code review; formal qualifi- tures, input/ output formats, interface de- cation review; requirements review; test scriptions, and algorithms. Syn: design readiness review. document; design specification. See also: product specification. Contrast with: re- design specification. See: design description. quirements specification. design standard. (IEEE Std 1002-1987 [91) A design document. See: design description. standard that describes the characteristics of a design or a design description of data or design element. (IEEE Std 990-1987 [81) A basic program components. component or building block in a design. design unit. (IEEE Std 990-1987 [81) A logically design entity. (IEEE Std 1016-1987 [131) An related collection of design elements. In an element (component) of a design that is Ada PDL, a design unit is represented by an structurally and functionally distinct from Ada compilation unit. other elements and that is separately named and referenced. design view. (IEEE Std 1016-1987 [131) A subset of design entity attribute information that is design inspection. See: inspection. specifically suited to the needs of a software project activity. design language. A specification language with special constructs and, sometimes, ver- desk checking. A static analysis technique in ification protocols, used to develop, analyze, which code listings, test results, or other and document a hardware or software documentation are visually examined, usu- design. Types include hardware design ally by the person who generated them, to language, program design language. See identify errors, violations of development also: requirements specification language. standards, or other problems. See also: inspection; walk-through. design level. (IEEE Std 829-1983 [51) The design decomposition of the software item destination address. The address of the device (for example, system, subsystem, program, or storage location to which data is to be or module). transferred. Contrust with: source address. design phase. The period of time in the soft- destructive read. A read operation that alters ware life cycle during which the designs for the data in the accessed location. Contrast architecture, software components, inter- with: nondestructive read. faces, and data are created, documented, and verified to satisfy requirements. See detailed design. (1) The process of refining also: detailed design; preliminary design. and expanding the preliminary design of a system or component to the extent that the design requirement. A requirement that spec- design is sufficiently complete to be imple- ifies or constrains the design of a system or mented. See also: software development system component. Contrast with: func- pmcess. tional re quirement; implementation re- (2) The result of the process in (1). quirement; interface requirement; perfor- mance requirement;physical requirement. development cycle. See: software development cycle. design review. A process or meeting during which a system, hardware, or software de- development life cycle. See: software devel- sign is presented to project personnel, man- opment cycle. agers, users, customers, or other interested parties for comment or approval. Types development specification. See: requirements include critical design review, preliminary specification.

26 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std610.12-1990 development testing. Formal or informal test- operator manual; programmer manual; ing conducted during the development of a support manual; user manual. system or component, usually in the devel- opment environment by the developer. diagonal microinstruction. A microinstruc- Contrast with: acceptance testing; opera- tion capable of specifying a limited number tional testing. See also: qualification of simultaneous operations needed to carry testing. out a machine language instruction. Note: Diagonal microinstructions fall, in size developmental baseline.* See: developmental and functionality, between horizontal mi- configuration. croinstructions and vertical microinstruc- *Deprecated. tions. The designation “diagonal” refers to this compromise rather than to any physical developmental configuration. In configura- characteristic of the microinstruction. Con- tion management, the software and associ- trast with: horizontal microinstruction; ated technical documentation that define the vertical microinstruction. evolving configuration of a computer soft- ware configuration item during develop- differential dump. See: change dump. ment. Note: The developmental configura- tion is under the developer’s control, and digraph. See: directed graph. therefore is not called a baseline. Contrast with: allocated baseline; functional base- direct address. An address that identifies the line; product baseline. storage location of an operand. Syn: one- level address. Contrast with: immediate deviation. (1) A departure from a specified data; indirect address; n-level address. See requirement. also: direct instruction. (2) A written authorization, granted prior to the manufacture of an item, to depart from a direct insert subroutine. See: open subroutine. particular performance or design require- ment for a specific number of units or a direct instruction. A computer instruction that specific period of time. Note: Unlike an contains the direct addresses of its engineering change, a deviation does not operands. Contrast with: immediate in- require revision of the documentation struction; indirect instruction. See also: defining the affected item. See also: config absolute instruction; effective instruction. uration control. Contrast with: engineering change; waiver. directed graph. A graph (sense 2) in which direction is implied in the internode device. A mechanism or piece of equipment connections. Syn: digraph. Contrast with: designed to serve a purpose or perform a undirected graph. function.

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 diag- nostic procedures for a system or component, identify malfunctions, and remedy those W’ malfunctions. Typically described are the diagnostic features of the system or compo- nent and the diagnostic tools available for Fig 8 its support. See also: installation manual; Dimcted Graph

27 IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF directory. A list of data items and information shows their relationships to one another. See about those data items. Note: IEEE Std also: specification tree. 610.5-1990 [21 defines Data Management terms. Software Documentation disassemble. To translate an assembled com- puter program from its machine language User Program Data version into a form that resembles, but c may not be identical to, the original assembly language program. Contrast with: assemble. disassembler. A software tool that disassem- bles computer programs. Syn: deassembler. Fig 9 discrete type. A data type whose members can Documentation Tree assume any of a set of distinct values. A discrete type may be an enumeration type or an integer type. double-operandinstruction. See: two-address diverse redundancy. See: diversity. instruction. diversity. In fault tolerance, realization of the down. Pertaining to a system or component same function by different means. For that is not operational or has been taken out example, use of different processors, storage of service. Contrast with: up. See also: busy; media, programming languages, algo- crash; idle. rithms, or development teams. See also: software diversity. down time. The period of time during which a system or component is not operational or do-nothing operation. See: no-operation. has been taken out of service. Contrast with: up time. See also: busy time; idle time; document. (1)A medium, and the information mean time to repair; set-up time. recorded on it, that generally has perma- nence and can be read by a person or a downward compatible. Pertaining to hard- machine. Examples in software engineer- ware or software that is compatible with an ing include project plans, specifications, test earlier or less complex version of itself; for plans, user manuals. example, a program that handles files (2) To create a document as in (1). created by an earlier version of itself. (3) To add comments to a computer program. Contrast with: upward compatible. documentation. (1) A collection of documents downward compression. In software design, a on a given subject. form of demodularization in which a super- (2) Any written or pictorial information ordinate module is copied into the body of a describing, defining, specifying, reporting, subordinate module. Contrast with: lateral or certifying activities, requirements, pro- compression;upward compression. cedures, or results. (3) The process of generating or revising a driver. (1) A software module that invokes document. and, perhaps, controls and monitors the (4) The management of documents, includ- execution of one or more other software ing identification, acquisition, processing, modules. See also: test driver. storage, and dissemination. (2) A computer program that controls a peripheral device and, sometimes, refor- documentation tree. A diagram that depicts all mats data for transfer to and from the of the documents for a given system and device.

28 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 'dual coding. See: software diversity. Contrast with: static dump. See also: change dump; memory dump; postmortem dump; dump. (1) A display of some aspect of a com- selective dump; snapshot dump. puter program's execution state, usually the contents of internal storage or registers. dynamic error. An error that is dependent on Types include change dump, dynamic the time-varying nature of an input. dump, memory dump, postmortem dump, se- Contrast with: static error. lective dump, snapshot dump; static dump. (2) A display of the contents of a file or dynamic relocation. Relocation of a computer device. program during its execution. (3) To copy the contents of internal storage to an external medium. dynamic resource allocation. A computer re- (4) To produce a display or copy as in (l), (2), source allocation technique in which the re- or (3). sources assigned to a program vary during program execution, based on current need. dyadic selective construct. An if-then-else construct in which processing is specified dynamic restructuring. The process of re- for both outcomes of the branch. Contrast structuring a database, data structure, com- with: monadic selective construct. puter program, or set of system components during program execution. dynamic. Pertaining to an event or process that occurs during computer program dynamic storage allocation. A storage alloca- execution; for example, dynamic analysis, tion technique in which the storage assigned dynamic binding. Contrast with: static. to a computer program varies during pro- gram execution, based on the current needs dynamic allocation. See: dynamic resource of the program and of other executing allocation. programs. dynamic analysis. The process of evaluating E-R diagram. Acronym for entity-relation- a system or component based on its behavior ship diagram. during execution. Contrast with: static analysis. See also: demonstration;testing. early-failure period. The period of time in the life cycle of a system or component during dynamic binding. Binding performed during which hardware failures occur at a decreas- the execution of a computer program. ing rate as problems are detected and Contrast with: static binding. repaired. Contrast with: constant-failure period; wearout-failure period. Syn: burn- dynamic breakpoint. A breakpoint whose pre- in period. See also: bathtub curve. defined initiation event is a runtime char- acteristic of the program, such as the execu- echo. (1) To return a transmitted signal to its tion of any twenty source statements. Con- source, often with a delay to indicate that trast with: static breakpoint. See also: code the signal is a reflection rather than the breakpoint; data breakpoint; epilog break- original. point; programmable breakpoint; prolog (2) A returned signal, as in (1). breakpoint. ECP. Acronym for engineering change dynamic buffering. A buffering technique in ProposaL which the buffer allocated to a computer pro- gram varies during program execution, edit. To modify the form or format of computer based on current need. Contrast with: sim- code, data, or documentation; for example, to ple buffering. insert, rearrange, or delete characters. dynamic dump. A dump that is produced editor. (1) See: text editor. during the execution of a computer program. (2) See: linkage editor. IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF effective address. The address that results (2) The process of developing or using a from performing any required indexing, model as in (1). indirect addressing, or other address modi- fication on a specified address. Note: If the emulator. A device, computer program, or specified address requires no modification, system that accepts the same inputs and it is also the effective address. See also: gen- produces the same outputs as a given system. erated address; indirect address; relative See also: simulator. address. encapsulation. A software development effective instruction. The computer instruc- technique that consists of isolating a system tion that results from performing any function or a set of data and operations on required indexing, indirect addressing, or those data within a module and providing other modification on the addresses in a precise specifications for the module. See specified computer instruction. Note: If the also: data abstraction; information hiding. specified instruction requires no modifica- tion, it is also the effective instruction. See engineering. The application of a systematic, also: absolute instruction; direct instruc- disciplined, quantifiable approach to struc- tion; immediate instruction; indirect in- tures, machines, products, systems, or pro- struction. cesses. efferent. Pertaining to a flow of data or control engineering change. In configuration man- from a superordinate module tb a subordi- agement, an alteration in the configuration nate module in a software system. Contrast of a configuration item or other designated with: afferent. item after formal establishment of its configuration identification. See also: con- efficiency. The degree to which a system or figuration control; engineering change component performs its designated func- proposal. Contrast with: deviation; waiver. tions with minimum consumption of re- sources. See also: execution efficiency; engineering change proposal (ECP). In con- storage efficiency. figuration management, a proposed engi- neering change and the documentation by egoless programming. A software develop- which the change is described and sug- ment technique based on the concept of team, gested. See also: configuration control. rather than individual, responsibility for program development. Its purpose is to entity. In computer programming, any item prevent individual programmers from that can be named or denoted in a program. identifying so closely with their work that For example, a data item, program state- objective evaluation is impaired. ment, or subprogram. embedded computer system. A computer entity attribute. (IEEE Std 1016-1987 D31) A system that is part of a larger system and named characteristic or property of a design performs some of the requirements of that entity. It provides a statement of fact about system; for example, a computer system the entity. used in an aircraft or rapid transit system. entity-relationship (E-R) diagram. A dia- embedded software. Software that is part of a gram that depicts a set of real-world entities larger system and performs some of the and the logical relationships among them. requirements of that system; for example, Syn: entity-relationship map. See also: data software used in an aircraft or rapid transit structure diagram. system. entity-relationship (E-R) map. See: entity- emulation. (1) A model that accepts the same relationship diagram. inputs and produces the same outputs as a given system. See also: simulation. entrance. See: entry point.

30 EEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 entry. See: entry point. similar characteristics of a system. Syn: error prediction model. entry point. A point in a software module at which execution of the module can begin. error prediction. A quantitative statement Contrast with: exit. Syn: entrance; entry. about the expected number or nature of faults See also: reentry point. in a system or component. See a1so:error model; error seeding. enumeration type. A discrete data type whose members can assume values that are error prediction model. See: error model. explicitly defined by the programmer. For example, a data type called COLORS with error seeding. The process of intentionally possible values RED, BLUE, and YELLOW. adding known faults to those already in a Contrast with: character type; integer type; computer program for the purpose of moni- logical type; real type. toring the rate of detection and removal, and estimating the number of faults remaining epilog breakpoint. A breakpoint that is initi- in the program. Syn: bug seeding; fault ated upon exit from a given program or seeding. See also: indigenous error. routine. Syn: postamble breakpoint. Con- trast with: prolog breakpoint. See also: code error tolerance. The ability of a system or breakpoint; data breakpoint; dynamic component to continue normal operation breakpoint; programmable breakpoint; despite the presence of erroneous inputs. See static breakpoint. also: fault tolerance; robustness. equivalent faults. Two or more faults that exception. An event that causes suspension of result in the same failure mode. normal program execution. Types include addressing exception, data exception, opera- error. (1) The difference between a computed, tion exception, overflow exception, protection observed, or measured value or condition exception, underflow exception. and the true, specified, or theoretically correct value or condition. For example, a execute. To carry out an instruction, process, difference of 30 meters between a computed or computer program. result and the correct result. (2) An incorrect step, process, or data defini- execution efficiency. The degree to which a tion. For example, an incorrect instruction system or component performs its desig- in a computer program. nated functions with minimum consump- (3) An incorrect result. For example, a tion of time. See also: execution time; stor- computed result of 12 when the correct result age efficiency. is 10. (4) A human action that produces an execution monitor. See: monitor (1). incorrect result. For example, an incorrect action on the part of a programmer or execution time. The amount of elapsed time or operator. processor time used in executing a computer Note: While all four definitions are program. Note: Processor time is usually commonly used, one distinction assigns less than elapsed time because the processor definition 1 to the word “error,” definition 2 may be idle (for example, awaiting needed to the word “fault,” definition 3 to the word computer resources) or employed on other “failure,” and definition 4 to the word tasks during the execution of a program. “mistake.” See a2so: dynamic error; fatal Syn: run time (3); running time. See also: error; indigenous error; semantic error; overhead time. syntactic error; static error; transient error. execution trace. A record of the sequence of error model. In software evaluation, a model instructions executed during the execution used to estimate or predict the number of of a computer program. Often takes the form remaining faults, required test time, and of a list of code labels encountered as the

31 IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF program executes. Syn: code trace; control- within specified performance require- flow trace. See also: retrospective trace; sub- ments. Note: The fault tolerance discipline routine trace; symbolic trace; variable distinguishes between a human action (a trace. mistake), its manifestation (a hardware or software fault), the result of the fault (a fail- executive. See: supervisory program. ure), and the amount by which the result is incorrect (the error). See also: crash; depen- executive program. See: supervisory program. dent failure; exception; failure mode; fail- executive state. See: supervisor state. ure rate; hard failure; incipient failure; independent failure; random failure; soft exit. A point in a software module at which failure; stuck failure. execution of the module can terminate. Contrast with: entry point. See also: failure mode. The physical or functional return. manifestation of a failure. For example, a system in failure mode may be character- exit routine. A routine that receives control ized by slow operation, incorrect outputs, or when a specified event, such as an error, complete termination of execution. occurs. failure rate. The ratio of the number of expandability. See: extendability. failures of a given category to a given unit of measure; for example, failures per unit of explicit address. See: absolute address. time, failures per number of transactions, failures per number of computer runs. Syn: extendability. The ease with which a system or failure ratio. component can be modified to increase its storage or functional capacity. Syn: ex- failure ratio. See: failure rate. pandability; extensibility. See also: flexi- bility; maintainability. fatal error. An error that results in the complete inability of a system or component extensibility. See: extendability. to function. factoring. (1) The process of decomposing a fault. (1) A defect in a hardware device or system into a hierarchy of modules. See component; for example, a short circuit or also: modular decomposition. broken wire. (2) The process of removing a function from (2) An incorrect step, process, or data defini- a module and placing it into a module of its tion in a computer program. Note: This own. definition is used primarily by the fault fail safe. Pertaining to a system or component tolerance discipline. In common usage, the that automatically places itself in a safe terms “error” and “bug” are used to express operating mode in the event of a failure; for this meaning. See also: data-sensitive example, a traffic light that reverts to fault; program sensitive fault; equivalent blinking red in all directions when normal faults; fault masking; intermittent fault. operation fails. Contrast with: fail soft. See fault dictionary. A list of faults in a system or also: fault secure; fault tolerance. component, and the tests that have been designed to detect them. fail soft. Pertaining to a system or component that continues to provide partial operational fault masking. A condition in which one fault capability in the event of certain failures; prevents the detection of another. for example, a traffic light that continues to alternate between red and green if the fault secure. Pertaining to a system or yellow light fails. Contrast with: fail safe. component in which no failures are See also: fault secure; fault tolerance. produced from a prescribed set of faults. See also: fault tolerance; fail safe; fail soft. failure. The inability of a system or compo- nent to perform its required functions fault seeding. See: error seeding.

32 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 fault tolerance. (1)The ability of a system or firmware. The combination of a hardware component to continue normal operation device and computer instructions and data despite the presence of hardware or software that reside as read-only software on that faults. See also: error tolerance; fail safe; device. Notes: (1) This term is sometimes fail soft; fault secure; robustness. used to refer only to the hardware device (2) The number of faults a system or or only to the computer instructions or component can withstand before normal data, but these meanings are deprecated. operation is impaired. (2) The confusion surrounding this term has (3) Pertaining to the study of errors, faults, led some to suggest that it be avoided and failures, and of methods for enabling altogether. systems to continue normal operation in the presence of faults. See also: recovery; first generation language (1GL). See: redundancy;restart. machine language. fault tolerant. Pertaining to a system or flag. A variable that is set to a prescribed state, component that is able to continue normal often “true” or “false,” based on the results operation despite the presence of faults. of a process or the occurrence of a specified condition. See also: indicator; semaphore. FCA. Acronym for functional configuration’ audit. flexibility. The ease with which a system or component can be modified for use in feasibility. The degree to which the applications or environments other than requirements, design, or plans for a system those for which it was specifically designed. or component can be implemented under Syn: adaptability. See also: extendability; existing constraints. maintainability. feature. (IEEE SM 1008-19871101) See: software flow diagram. See: flowchart. feature. flow of control. See: control flow. fetch. To locate and load computer instruc- tions or data from storage. See also: move; flowchart (flow chart). A control flow diagram Store. in which suitably annotated geometrical figures are used to represent operations, fifth generation language (5GL). A computer language that incorporates the concepts of data, or equipment, and arrows are used to indicate the sequential flow from one to knowledge-based systems, expert systems, inference engines, and natural language another. Syn: flow diagram. See also: block processing. Contrast with: assembly lan- diagram; box diagram; bubble chart; graph; input-process-output chart. guage; fourth generation language; high chart; structure order language; machine language. Note: Specific languages are defined in START P610.13 E171. figurative constant. A data name that is reserved for a specific constant in a INPUT 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. RECORD? CWNTER 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 Fig 10 with accompanying actions. Flowchart

33 IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF flowcharter. A software tool that accepts as have been reviewed and approved by a cus- input a design or code representation of a tomer, user, or designated level of man- program and produces as output a flowchart agement. Contrast with: informal testing. of the program. forward recovery. (1)The reconstruction of a foreground. In job scheduling, the computing file to a given state by updating an earlier environment in which highpriority pro- version, using data recorded in a chronolog- cesses or those requiring user interaction ical record of changes made to the file. are executed. Contrast with: background. (2) A type of recovery in which a system, See also: foreground processing. program, database, or other system resource is restored to a new, not previously occupied foreground processing. The execution of a state in which it can perform required func- high-priority process while lower-priority tions. processes await the availability of computer Contrast with: backward recovery. resources, or the execution of processes that require user interaction. Contrast with: four-addressinstruction. A computer instruc- background processing. tion that contains four address fields. For example, an instruction to add the contents form, fit, and function. In configuration man- of locations A, B, and C, and place the result agement, that configuration comprising the in location D. Contrast with: one-address physical and functional characteristics of instruction; two-address instruction; three- an item as an entity, but not including any address instruction; zero-address instruc- characteristics of the elements making up tion. the item. See also: configuration identifica- tion. four-plus-oneaddress instruction. A computer instruction that contains five address fields, formal language. A language whose rules are the fifth containing the address of the in- explicitly established prior to its use. Exam- struction to be executed next. For example, ples include programming languages and an instruction to add the contents of loca- mathematical languages. Contrast with: tions A, B, and C, place the results in loca- natural language. tion D, then execute the instruction at loca- tion E. Contrast with: one-plus-one address formal parameter. A variable used in a soft- instruction;two-plus-one address instruc- ware module to represent data or program tion; three-plus-one address instruction. elements that are to be passed to the module by a calling module. Contrast with: argu- fourth generation language (4GL). A computer ment (3). language designed to improve the produc- tivity achieved by high order (third genera- formal qualification review (FQR).The test, tion) languages and, often, to make comput- inspection, or analytical process by which a ing available to non-programmers. group of configuration items comprising a Features typically include an integrated system are verified to have met specific database management system, query lan- contractual performance requirements. guage, report generator, and screen defini- Contrast with: code review; design review; tion facility. Additional features may in- requirements review; test readiness review. clude a graphics generator, decision support function, financial modeling, spreadsheet formal specification. (1)A specification writ- capability, and statistical analysis func- ten and approved in accordance with estab- tions. Contrast with: machine language; lished standards. assembly language; high order language; (2) A specification written in a formal nota- fifth generation language. Note: Specific tion, often for use in proof of correctness. languages are defined in P610.13 D71. formal testing. Testing conducted in accor- FQR. Acronym for formal qualification dance with test plans and procedures that review.

34 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 function. (1)A defined objective or character- with: allocated configuration identifica- istic action of a system or component. For tion; product configuration identification. example, a system may have inventory See also: functional baseline. control as its primary function. See also: functional requirement; functional specifi- functional decomposition. A type of modular cation; functional testing. decomposition in which a system is broken (2) A software module that performs a down into components that correspond to specific action, is invoked by the appearance system functions and subfunctions. See of its name in an expression, may receive also: hierarchical decomposition; stepwise input values, and returns a single value. refinement. See also: subroutine. functional design. (1)The process of defining function field. See: operation field. the working relationships among the com- ponents of a system. See also: architectural functional baseline. In Configuration man- design. agement, the initial approved technical (2) The result of the process in (1). documentation for a configuration item. Contrast with: allocated baseline; de- functional language. A programming lan- velopmental configuration;product base- guage used to express programs as a line. See also: functional configuration sequence of functions and function calls. item. Examples include LISP. functional cohesion. A type of cohesion in functional requirement. A requirement that which the tasks performed by a software specifies a function that a system or system module all contribute to the performance of a component must be able to perform, Contrast single function. Contrast with: coincidental with: design requirement; implementation cohesion; communicational cohesion; logi- requirement; interface requirement; per- cal cohesion; procedural cohesion; sequen- formance requirement; physical require- tial cohesion; temporal cohesion. ment. functional configuration audit (FCA). An functional specification. A document that audit conducted to verify that the develop- specifies the functions that a system or ment of a configuration item has been component must perform. Often part of a completed satisfactorily, that the item has requirements specification. achieved the performance and functional characteristics specified in the functional or functional testing. (1) Testing that ignores allocated configuration identification, and the internal mechanism of a system or that its operational and support documents component and focuses solely on the outputs are complete and satisfactory. See also: con- generated in response to selected inputs figuration management; physical configu- and execution conditions. Syn: black- ration audit. box testing. Contrast with: structural testing. functional configuration identification. In (2) Testing conducted to evaluate the configuration management, the current compliance of a system or component with approved technical documentation for a specified functional requirements. See also: configuration item. It prescribes all performance testing. necessary functional characteristics, the tests required to demonstrate achievement of garbage collection. In computer resource specified functional characteristics, the management, a synonym for memory necessary interface characteristics with compaction (1). associated Configuration items, the configu- ration item's key functional characteristics generality. The degree to which a system or and its key lower level configuration items, component performs a broad range of if any, and design constraints. Contrast functions. See also: reusability. IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF generated address. An address that has been calculated during the execution of a computer program. Syn: synthetic address. See also: absolute address; effective v) address: relative address: indirect ad- Q) L dress. -.-3 (d li 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 I in a computer program. See also: instanti- Time ation.

glass box. (1) A system or component whose Fig 11 internal contents or implementation are Graph (1) known. Syn: white box. Contrast with: black box (2) A diagram or other representation con- (2) Pertaining to an approach that treats a sisting of a finite set of nodes and internode system or component as in (1). connections called edges or arcs. See also: block diagram; box diagram; bubble chart; glass-box testing. See: structural testing. directed graph; flowchart; input-process- output chart; strumchart. 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. Fig 12 Syn: common data. Contrast with: local Graph (2) data.

globa1 variable* A variable that can be lawe A guideline formulated by accessed by two or more non-nested modules Grosch, stating that the computing of a computer program without being H. R. J. power of a computer increases proportion- explicitly passed as a parameter between ally to the square of the cost of the computer. the modules. Contrast with: local vari- See also: computer performance evaluation. able. halt. (1) Most commonly, a synonym for stop. go to. A computer program statement that (2) Less commonly, a synonym for pause. causes a jump. Contrast with: call; case; if-then-else.See also: branch. hard failure. A failure that results in complete shutdown of a system. Contrast with:soft graph. (1) A diagram that represents the failure. variation of a variable in comparison with that of one or more other variables; hardware. Physical equipment used to pro- for example, a graph showing a bathtub cess, store, or transmit computer programs curve. or data. Contrast with: software.

36 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 hardware configuration item (HWCI). An hierarchy. A structure in which components aggregation of hardware that is designated are ranked into levels of subordination; for configuration management and treated each component has zero, one, or more as a single entity in the configuration man- subordinates; and no component has more agement process. Contrast with: computer than one superordinate component. See also: software configuration item. See also: con- hierarchical decomposition;hierarchical figuration item. modeling. hardware design language (HDL). A hierarchy chart. See: structum chart. language with special constructs and, some- times, verification protocols, used to de- high level language. See: high order velop, analyze, and document a hardware language. design. See also: program design lan- guage. high order language (HOL). A programming language that requires little knowledge of hardware monitor. (1) A device that measures the computer on which a program will run, or records specified events or characteristics can be translated into several different ma- of a computer system; for example, a device chine languages, allows symbolic naming that counts the occurrences of various of operations and addresses, provides electrical events or measures the time features designed to facilitate expression of between such events. data structures and program logic, and (2) A software tool that records or analyzes usually results in several machine instruc- hardware events during the execution of a tions for each program statement. Examples computer program. include Ada, COBOL, FORTRAN, ALGOL, See also: monitor; software monitor. PASCAL. Syn: high level language; higher order language; third generation language. HDL. Acronym for hardware design lan- Contrast with: assembly language; fifth guage. See: design language. generation language; fourth generation language; machine language. Note: Spe- header. (1) A block of comments placed at the cific languages are defined in P610.13 D71. beginning of a computer program or rou- tine. higher order language. See: high order (2) Identification or control information language. placed at the beginning of a file or message. Contrast with: trailer. HLL. Acronym for high level language. See: high order language. hierarchical decomposition. A type of modular decomposition in which a system is broken HMI. Acronym for human-machine inter- down into a hierarchy of components face. See: user interface. through a series of top-down refinements. See also: functional decomposition;stepwise HOL. Acronym for high order language. refinement. homogeneous redundancy. In fault tolerance, hierarchical input-process-output (HIPO). realization of the same function with identi- See: input-process-output. cal means, for example, use of two identical processors. Contrast with: diversity. hierarchical modeling. A technique used in computer performance evaluation, in which horizontal microinstruction. A microinstruc- a computer system is represented as a hier- tion that specifies a set of simultaneous archy of subsystems, the subsystems are operations needed to carry out a given analyzed to determine their performance machine language instruction. Note: characteristics, and the results are used to Horizontal microinstructions are relatively evaluate the performance of the overall long, often 64 bits or more, and are called system. “horizontal” because the set of simultaneous

37 IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF operations that they specify are written on a if-then-else. A single-entry, single-exit two- single line, rather than being listed sequen- way branch that defines a condition, speci- tially down the page. Contrast with: diago- fies the processing to be performed if the nal microinstruction; vertical microin- condition is met and, optionally, if it is not, struction. and returns control in both instances to the statement immediately following the over- host machine. (1) A computer used to develop all construct. Contrast with: case; jump; go software intended for another computer. to. See also: dyadic selective construct; Contrast with: target machine (1). monadic selective construct. (2) A computer used to emulate an- other computer. Contrast with: target ma- chine (2). - (3) The computer on which a program or file is installed. b (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 Fig 13 initial conditions to facilitate the execution If-Then-ElseConstruct of a computer program; for * example, initializing storage areas, clearing flags, rewinding tapes, opening and closing files. Syn: overhead operation. immediate address.* See: immediate data. * Deprecated. human-machine interface (HMI). See: user interface. immediate control. See: bit steering.

HWCI. Acronym for hardware configuration immediate data. Data contained in the ad- item. dress field of a computer instruction. Con- trast with: direct address; indirect address; hybrid coupling. A type of coupling in which n-level address. See also: immediate in- different subsets of the range of values that a struction. data item can assume are used for different and unrelated purposes in different software immediate instruction. A computer instruc- module. Contrast with: common-environ- tion whose address fields contain the values ment coupling; content coupling; control of the operands rather than the operands' coupling; data coupling; pathological addresses. Contrast with: direct instruction; coupling. indirect instruction. See also: absolute instruction; effective instruction; immedi- identifier. The name, address, label, or ate data. distinguishing index of an object in a computer program. imperative construct. A sequence of one or more steps not involving branching or idle. Pertaining to a system or component that iteration. is operational and in service, but not in use. See also: busy; down; up. imperative statement. See: instruction. idle time. The period of time during which a implementation. (1) The process of translat- system or component is operational and in ing a design into hardware components, service, but not in use. Syn: standby time. software components, or both. See also: See also: busy time; down time; set-up time; coding. up time. (2) The result of the process in (1).

38 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1590 implementation phase. The period of time in independent verification and validation the software life cycle during which a (IV&V). Verification and validation per- software product is created from design formed by an organization that is techni- documentation and debugged. cally, managerially, and financially inde- pendent of the development organization. implementation requirement. A requirement that specifies or constrains the coding or indexed address. An address that must be construction of a system or system compo- added to the contents of an index register to nent. Contrast with: design requirement; obtain the address of the storage location to functional requirement; interface require- be accessed. See also: offset (2); relative ment; performance requirement; physical address; self-relativeaddress. requirement. indicator. A device or variable that can be set to a prescribed state based on the results of a implied addressing. A method of addressing process or the occurrence of a specified con- in which the operation field of an computer dition. For example, a flag or semaphore. instruction implies the address of the operands. For example, if a computer has indigenous error. A computer program error only one accumulator, an instruction that that has not been purposely inserted as part refers to the accumulator needs no address of an error-seeding process. information describing it. Types include one-ahead addressing, repetitive address- indirect address. An address that identifies ing. See also: direct address; indirect the storage location of another address. The address; relative address. designated storage location may contain the address of the desired operand or another incident. (IEEE Std 1008-1987 [lo]) See: soft- indirect address; the chain of addresses ware test incident. eventually to the operand. Syn: multilevel address. Contrast with: direct incipient failure. A failure that is about to address; immediate data. See also: indirect occur. instruction; n-level address. indirect instruction. A computer instruction incremental compiler. A compiler that that contains indirect addresses for its completes as much of the translation of each operands. Contrast with: direct instruction; source statement as possible during the input immediate instruction. See also: absolute or scanning of the source statement. instruction; effective instruction. Typically used for on-line computer pro- gram development and checkout. Syn: inductive assertion method. A proof of conversational compiler; interactive com- correctness technique in which assertions piler; on-line compiler. are written describing program inputs, outputs, and intermediate conditions, a set of incremental development. A software devel- theorems is developed relating satisfaction opment technique in which requirements of the input assertions to satisfaction of the definition, design, implementation, and output assertions, and the theorems are testing occur in an overlapping, iterative proved or disproved using proof by (rather than sequential) manner, resulting induction. in incremental completion of the overall software product. Contrast with: waterfall infant mortality. The set of failures that occur model. See also: data structure-centered during the early-failure period of a system design; input-process-output;modular de- or component. composition; object-oriented design; rapid prototyping; spiral model; stepwise refine- informal testing. Testing conducted in ment; structured design; transaction anal- accordance with test plans and procedures ysis; transform analysis. that have not been reviewed and approved by

39 IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF a customer, user, or designated level of identifying the inputs to and outputs from management. Contrast with: formal each step. Note: A refinement called hierar- testing. chical input-process-output identifies the steps, inputs, and outputs at both general and information hiding. A software development detailed levels of detail. See also: data technique in which each module's inter- structurecentered design; input-process- faces reveal as little as possible about the output chart; modular decomposition;objec- module's inner workings and other mod- briented design; rapid pmbtyping; stepwise ules are prevented from using information refinement; structured design; transaction about the module that is not in the module's analysis; transform analysis. interface specification. See also: encapsu- lation. input-process-output(PO) chart. A diagram of a software system or module, consisting of a inherited error. An error carried forward rectangle on the left listing inputs, a from a previous step in a sequential process. rectangle in the center listing processing steps, a rectangle on the right listing outputs, initial program load. See: bootstrap. and arrows connecting inputs to processing steps and processing steps to outputs. See initial program loader. A bootstrap loader also: block diagram; box diagram; bubble used to load that part of an operating system chart; flowchart;graph; structure chart. needed to load the remainder of the operating system. Input Process output For each order: 1. Validate order form initialize. To set a variable, register, or other Inventory storage location to a starting value. See also: File Inventory clear; reset. U 2. Decrement item counts in inventory file inline code. A sequence of computer Orders instructions that is physically contiguous 3. Generate customer with the instructions that logically precede and follow it. Fig 14 input. (1) Pertaining to data received from an Input-ms-outputchart external source. (2) Pertaining to a device, process, or inspection. A static analysis technique that channel involved in receiving data from an relies on visual examination of develop- external source. ment products to detect errors, violations of (3) To receive data from an external source. development standards, and other problems. (4)To provide data from an external source. Types include code inspection; design (5) Loosely, input data. inspection. Contrast with: output. installation and checkout phase. The period of input assertion. A logical expression time in the software life cycle during which specifying one or more conditions that a software product is integrated into its program inputs must satisfy in order to be operational environment and tested in this valid. Contrast with: loop assertion; output environment to ensure that it performs as assertion. See also: inductive assertion required. method. installation manual. A document that input-output coupling. See: data coupling. provides the information necessary to install a system or component, set initial input-process-output. A software design tech- parameters, and prepare the system or nique that consists of identifying the steps component for operational use. See also: involved in each process to be performed and diagnostic manual; operator manual;

40 IEEE SOFTWARE ENGINEERING TERMINOLOGY SM 610.12-1990 programmer manual; support manual; user operations, such as addition, subtraction, manual. and multiplication. Contrast with: charac- ter type; enumeration type; logical type; real instantiation. The process of substituting type. specific data, instructions, or both into a generic program unit to make it usable in a integration. The process of combining soft- computer program. ware components, hardware components, or both into an overall system. instruction. See: computer instruction. integration testing. Testing in which software instruction counter. A register that indicates components, hardware components, or both the location of the next computer instruction are combined and tested to evaluate the in- to be executed. Syn: program counter. teraction between them. See also: component testing; interface testing; system testing; instruction cycle. The process of fetching a unit testing. computer instruction from memory and executing it. See also: instruction time. integrity. The degree to which a system or component prevents unauthorized access to, instruction format. The number and or modification of, computer programs or arrangement of fields in a computer data. instruction. See also: address field; address format; operation field. interactive. Pertaining to a system or mode of operation in which each user entry causes a instruction length. The number of words, response from or action by the system. Con- bytes, or bits needed to store a computer trast with: batch. See also: conversational; instruction. See also: instruction format. on-line;real time. instruction modifier. A word or part of a word interactive compiler. See: incremental corn- used to alter a computer instruction. piler. instruction repertoire. See: instruction set. interactive language. A nonprocedural lan- guage in which a program is created as a instruction set. The complete set of instruc- result of interactive dialog between the user tions recognized by a given computer or pro- and the computer system. The system vided by a given programming language. provides questions, forms, and so on, to aid Syn: instruction repertoire. the user in expressing the results to be achieved. See also: declarative language; instruction time. The time it takes a computer rule-basedlanguage. to fetch an instruction from memory and execute it. See also: instruction cycle. interface. 1) A shared boundary across which information is passed. instrument. In software and system testing, to (2) A hardware or software component that install or insert devices or instructions into connects two or more other components for hardware or software to monitor the the purpose of passing information from one operation of a system or component. to the other. (3) To connect two or more components for instrumentation. Devices or instructions the purpose of passing information from one installed or inserted into hardware or to the other. software to monitor the operation of a system (4) To serve as a connecting or connected or component. component as in (2). integer type. A data type whose members can interface control. (1) (IEEE Std 828-1983 [41) In assume only integer values and can be configuration management, the process of: operated on only by integer arithmetic (a) identifying all functional and physical EEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF characteristics relevant to the interfacing of program before translating and executing two or more configuration items provided by the next. Contrast with: assemble; com- one or more organizations, and (b) ensuring pile. that proposed changes to these characteris- tics are evaluated and approved prior to interpreter. A computer program that trans- implementation. lates and executes each statement or (2) (DOD usage) In configuration manage- construct of a computer program before ment, the administrative and technical translating and executing the next. Contrast procedures and documentation necessary to with: assembler; compiler. identify functional and physical character- istics between and within configuration interpretive code. Computer instructions and items provided by different developers, and data definitions expressed in a form that to resolve problems concerning the specified can be recognized and processed by an interfaces. See also: configuration control. interpreter. Contrast with: assembly code; compiler code; machine code. interface requirement. A requirement that specifies an external item with which a sys- interrupt. (1) The suspension of a process to tem or system component must interact, or handle an event external to the process. Syn: that sets forth constraints on formats, interruption. See also: interrupt latency; timing, or other factors caused by such an interrupt mask; interrupt priority; interrupt interaction. Contrast with: design require- service routine; priority interrupt. ment; functional requirement; implemen- (2) To cause the suspension of a process. tation requirement; performance require- (3) Loosely, an interrupt request. ment; physical requirement. interrupt latency. The delay between a interface specification. A document that computer system's receipt of an interrupt specifies the interface characteristics of an request and its handling of the request. See existing or planned system or component. also: interrupt priority. interface testing. Testing conducted to evalu- interrupt mask. A mask used to enable or ate whether systems or components pass data disable interrupts by retaining or sup- and control correctly to one another. See pressing bits that represent interrupt re- also: component testing; integration test- que st s. ing; system testing; unit testing. interrupt priority. The importance assigned to interleave. To alternate the elements of one a given interrupt request. This importance sequence with the elements of one or more determines whether the request will cause other sequences so that each sequence suspension of the current process and, if retains its identity; for example, to alter- there are several outstanding interrupt nately perform the steps of two different requests, which will be handled first. tasks in order to achieve concurrent opera- tion of the tasks. interrupt request. A signal or other input requesting that the currently executing intermittent fault. A temporary or unpre- process be suspended to permit performance dictable fault in a component. See also: of another process. random failure; transient error. interrupt service routine. A routine that interoperability. The ability of two or more responds to interrupt requests by storing the systems or components to exchange infor- contents of critical registers, performing the mation and to use the information that has processing required by the interrupt request, been exchanged. See also: compatibility. restoring the register contents, and restart- ing the interrupted process. interpret. To translate and execute each statement or construct of a computer interruption. See: interrupt.

42 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 invariant. An assertion that should always be statements are being executed. Syn: true for a specified segment or at a specified transfer. point of a computer program. (2) A program statement that causes a departure as in (1). Contrast with: case; if- POchart. Acronym for input-process-output then-else.See also: branch; go to. chart. (3) The departure described in (1).See also: conditional jump; unconditional jump. IPSE. Acronym for integrated programming support environment. See: programming kernel. (1) That portion of an operating support environment. system that is kept in main memory at all times. Syn: nucleus; resident control iteration. (1) The process of performing a program sequence of steps repeatedly. See also: loop; (2) A software module that encapsulates an recursion. elementary function or functions of a (2) A single execution of the sequence of system. See also: security kernel. steps in (1). KOPS. Acronym for kilo-operations per iterative construct. See: loop. second; that is, thousands of operations per second. A measure of computer processing IV&V. Acronym for independent verification speed. See also: MFLOPS; MIPS. and validation. label. (1) A name or identifier assigned to a JCL. Acronym for job control language. computer program statement to enable other statements to refer to that statement. job. A user-defined unit of work that is to be (2) One or more characters, within or accomplished by a computer. For example, attached to a set of data, that identify or the compilation, loading, and execution of a describe the data. computer program. See also: job control language; job step;job stream. language. (1)A systematic means of commu- nicating ideas by the use of conventional- job control language (JCL). A language used ized signs, , gestures, or marks and to identify a sequence of jobs, describe their rules for the formation of admissible requirements to an operating system, and expressions. control their execution. (2) (IEEE Std 830-1984 [SI) A means of com- munication, with syntax and semantics, job function. (IEEE Std 1002-1987 [91) A group of consisting of a set of representations, engineering processes that is identified as a conventions, and associated rules used to unit for the purposes of work organization, convey information. assignment, or evaluation. Examples are See also: computer language. design, testing, or configuration manage- ment. language processor. A computer program that translates, interprets, or performs other job step. A user-defined portion of a job, tasks required to process statements ex- explicitly identified by a job control pressed in a given language. See also: statement. A job consists of one or more job assembler; compiler; interpreter; trans- steps. lator. job stream. A sequence of programs or jobs set language standard. (IEEE Std 1002-1987191) A up so that a computer can proceed from one to standard that describes the characteristics of the next without the need for operator a language used to describe a requirements intervention. Syn: run stream. specification, a design, or test data. jump. (1) To depart from the implicit or latency. The time interval between the instant declared order in which computer program at which an instruction control unit issues a

43 IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF call for data and the instant at which the modules, and, in some cases, adjusts the transfer of data is started. addresses to reflect the storage locations into which the code has been loaded. See also: lateral compression. In software design, a absolute loader; relocating loader; linkage form of demodularization in which two or editor. more modules that execute one after the other are combined into a single module. Contrast list. (1) A set of data items, each of which has with: downward compression; upward the same data definition. compression. (2) To print or otherwise display a set of data items. leading decision. A loop control that is Note: IEEE Std 610.5-1990 121 defines Data executed before the loop body. Contrast with: Management terms. trailing decision. See also: WHILE. list processing language. A programming library. See: software library. language designed to facilitate the manipu- lation of data expressed in the form of lists. licensing standard. (IEEE Std 1002-1987 191) Examples are LISP and IPL. See also: A standard that describes the characteristics algebraic language; algorithmic language; of an authorization given by an official or a logic programming language. legal authority to an individual or organi- zation to do or own a specific thing. listing. An ordered display or printout of data items, program statements, or other life cycle. See: software life cycle; system life information. cycle. literal. In a source program, an explicit link. (1) To create a load module from two representation of the value of an item; for or more independently translated object example, the word FAIL in the instruction: modules or load modules by resolving cross- If x = 0 then print “FAIL”. See also: references among them. See also: linkage immediate data; figurative constant. editor. (2) A part of a computer program, often a load. (1) To read machine code into main single instruction or address, that passes memory in preparation for execution and, control and parameters between separate in some cases, to perform address adjust- modules of the program. Syn: linkage. ment and linking of modules. See also: (3) To provide a link as in (2). loader. (2) To copy computer instructions or data linkage. See: link (2). from external storage to internal storage or from internal storage to registers. Contrast linkage editor. A computer program that with: store (2). See also: fetch; move. creates a single load module from two or more independently translated object load-and-go. An operating technique in which modules or load modules by resolving cross- there are no stops between the loading and references among the modules and, execution phases of a computer program. possibly, by relocating elements. May be part of a loader. Syn: linker. See also: load map. A computer-generated list that linking loader. identifies the location or size of all or selected parts of memory-resident code or linker. See: linkage editor. data.

linking loader. A computer program that load module. A computer program or reads one or more object modules into main subprogram in a form suitable for loading memory in preparation for execution, into main storage for execution by a creates a single load module by resolving computer; usually the output of a linkage cross-references among the separate editor. See also: object module.

44 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 loaded origin. The address of the initial logical trace. An execution trace that records storage location of a computer program at the only branch or jump instructions. See time the program is loaded into main also: execution trace; retrospective trace; memory. Contrast with: assembled origin. subroutine trace; symbolic trace; variable See also: offset (1); starting address. trace. loader. (1) A computer program that reads logical type. A data type whose members can machine code into main memory in assume only logical values (usually TRUE preparation for execution and, in some and FALSE) and can be operated on only by cases, adjusts the addresses and links the logical operators, such as AND, OR, and modules. Types include absolute loader, NOT. Contrust with: character type; enu- linking loader, relocating loader. See also: meration type; integer type; real type. bootstrap;linkage editor. (2) Any program that reads programs or loop. (1) A sequence of computer program data into main memory. statements that is executed repeatedly until a given condition is met or while a given con- local compaction. In microprogramming, dition is true. Syn: iterative construct. See compaction in which microoperations are also: loop body; loop control; UNTIL; not moved beyond the boundaries of the WHILE. single entry, single exit sequential blocks (2) To execute a sequence of computer pro- in which they occur. Contrast with: global gram statements as in (1). compaction. loop assertion. A logical expression specify- local data. Data that can be accessed by only ing one or more conditions that must be met one module or set of nested modules in a each time a particular point in a program computer program. Contrast with: global loop is executed. Syn: loop invariant. Con- data. trast with: input assertion;output assertion. See also: inductive assertion method. local variable. A variable that can be accessed by only one module or set of nested modules loop body. The part of a loop that accomplishes in a computer program. Contrast with: the loop's primary purpose. Contrast with: global variable. loop controL lockout. A computer resource allocation loop control. The part of a loop that determines technique in which shared resources whether to exit from the loop. Contrast with: (especially data) are protected by permitting loop body. See also: leading decision; access by only one device or process at a trailing decision. time. See also: deadlock; semaphore. loop-control variable. A program variable logic programming language. A program- used to determine whether to exit from a ming language used to express programs in loop. terms of control constructs and a restricted predicate calculus; for example, PROLOG. loop invariant. See: loop assertion. See also: algebraic language; algorithmic language; list processing language. loopback testing. Testing in which signals or data from a test device are input to a logical cohesion. A type of cohesion in which system or component, and results are the tasks performed by a software module returned to the test device for measurement perform logically similar functions; for or comparison. example, processing of different types of input data. Contrast with: coincidental low level language. See: assembly language. cohesion; communicational cohesion; functional cohesion; procedural cohesion; machine address.* See: absolute address. sequential cohesion; temporal cohesion. *Deprecated.

45 IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF machine code. Computer instructions and macroassembler. An assembler that includes, data definitions expressed in a form that or performs the functions of, a macrogen- can be recognized by the processing unit of a erator. computer. Contrast with: assembly code; compiler code; interpretive code. macrogenerator. A routine, often part of an assembler or compiler, that replaces each machine dependent. Pertaining to software macroinstruction in a source program with that relies on features unique to a particular the predefined sequence of instructions that type of computer and therefore executes only the macroinstruction represents. Syn.- on computers of that type. Contrast with: ma- generating program. machine independent. macroinstruction. A source code instruction machine independent. Pertaining to software that is replaced by a predefined sequence of that does not rely on features unique to a source instructions, usually in the same particular type of computer, and therefore language as the rest of the program and executes on computers of more than one type. usually during assembly or compilation. Contrast with: machine dependent. See also: See also: macro; macrogenerator. portability. macroprocessor. A routine or set of routines machine language. A language that can be provided in some assemblers and compilers recognized by the processing unit of a com- to support the definition and use of macros. puter. Such a language usually consists of patterns of 1s and Os, with no symbolic nam- macroprogramming. Computer program- ing of operations or addresses. Syn: first- ming using macros and macroinstructions. generation language; machine-oriented language. Contrast with: assembly lan- main program. A software component that guage; fifth-generation language; fourth is called by the operating system of a generation language; high order language; computer and that usually calls other symbolic language. software components. See also: routine; subprogram. machine-oriented language. See: machine language. maintainability. (1) The ease with which a software system or component can be modi- machine readable. Pertaining to data in a fied to correct faults, improve performance form that can be automatically input to a or other attributes, or adapt to a changed en- computer; for example, data encoded on a vironment. See also: extendability; flexi- diskette. bility. (2) The ease with which a hardware system macro. In software engineering a predefined or component can be retained in, or restored sequence of computer instructions that is to, a state in which it can perform its re- inserted into a program, usually during quired functions. assembly or compilation, at each place that its corresponding macroinstruction appears maintenance. (1) The process of modifying a in the program. Syn: macro definition. See also: macroinstruction; macrogenerator; software system or component after delivery open subroutine. to correct faults, improve performance or other attributes, or adapt to a changed envi- macro definition. See: macro. ronment. Syn: software maintenance. See also: adaptive maintenance; corrective macro generating program. See: macrogen- maintenance; perfective maintenance. erator. (2) The process of retaining a hardware system or component in, or restoring it to, a macro library. A collection of macros state in which it can perform its required available for use by a macrogenerator. See functions. See also: preventive mainte- also: system library. nance.

46 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 maintenance manual. See: support manual. memory capacity. The maximum number of items that can be held in a given computer man-machine interface (MMI). See: user memory; usually measured in words or interface. bytes. See also: channel capacity; storage capacity. manufacture. In software engineering, the process of copying software to disks, chips, memory compaction. (1)A storage allocation or other devices for distribution to customers technique in which the contents of all or users. allocated storage areas are moved to the beginning of the storage space and the manufacturing phase. (IEEE SM 1002-1987[91) remaining storage blocks are combined into The period of time in the software life cycle a single block. Syn: garbage collection. during which the basic version of a software (2) A storage allocation technique in which product is adapted to a specified set of contiguous blocks of nonallocated storage operational environments and is distributed are combined to form single blocks. to a customer base. memory dump. A display of the contents of all map program. A software tool, often part of a or part of a computer’s internal storage, compiler or assembler, that generates a load usually in binary, octal, or hexadecimal map. form. See also: change dump; dynamic dump; port mortem dump; selective dump; mask. A pattern of bits or characters designed snapshot dump; static dump. to be logically combined with an unknown data item to retain or suppress portions of the memory map. A diagram that shows where data item; for example, the bit string programs and data are stored in a “00000011” when logically ANDed with an computer’s memory. eight-bit data item, gives a result that retains the last two bits of the data item and menu by-pass. In a menu-driven system, a has zero in all the other bit positions. See feature that permits advanced users to also: interrupt mask. perform functions in a command-driven mode without selecting options from the master library. A software library containing menus. master copies of software and documenta- tion from which working copies can be made menu-driven. Pertaining to a system or mode for distribution and use. Contrast with: of operation in which the user directs the production library; software development system through menu selections. See also: library; software repository; system li- menu by-pass. Contrast with: command- brary. driven. master state. See: supervisor state. metacompiler. See: compiler generator. mean time between failures (MTBF). The ex- metalanguage. A language used to specify pected or observed time between consecutive some or all aspects of a language; for failures in a system or component. See also: example, Backus-Naur form. See also: up time. stratified language; unstratified language. mean time to repair (M“R). The expected or method standard. (IEEE Std 1002-1987 [91) A observed time required to repair a system or standard that describes the characteristics of component and return it to normal opera- the orderly process or procedure used in the tions. See also: down time. engineering of a product or performing a service, measurement standard. (IEEE Std 1002-1987 [91) A standard that describes the character- metric. A quantitative measure of the degree to istics of evaluating a process of product. which a system, component, or process

47 IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF possesses a given attribute. See also: quality microprogramming. The process of design- metric. ing and implementing the control logic of a computer by identifying the basic operations MFLOPS. Acronym for millions of floating needed to carry out each machine language point operations per second. A measure of instruction and representing these opera- computer processing speed. See also: KOPS; tions as sequences of instructions in a MIPS. special memory called control store. This method is an alternative to hard wiring the microarchitecture. The microword definition, control signals necessary to carry out each data flow, timing constraints, and prece- machine language instruction. Techniques dence constraints that characterize a given include bit steering, compaction, residual microprogrammed computer. control, single-level encoding, two-level encoding. See also: microcode; microin- microcode. A collection of microinstructions, struction; microprogram comprising part of, all of, or a set of micro- programs. microword. An addressable element in the control store of a microprogrammed com- microcode assembler. A computer program puter. that translates microprograms from sym- bolic form to binary form. minimum delay programming. A program- ming technique in which storage locations microinstruction. In microprogramming, an for computer instructions and data are instruction that specifies one or more of the chosen so that access time is minimized. basic operations needed to carry out a ma- chine language instruction. Types include MIPS. Acronym for million instructions per diagonal microinstruction; horizontal mi- second. A measure of computer processing croinstruction; vertical microinstruction. speed. See also: KOPS; MFLOPS. See also: microcode; microoperation; mi- -PWP=l. mistake. A human action that produces an incorrect result. Note: The fault tolerance microoperation. In microprogramming, one discipline distinguishes between the human of the basic operations needed to carry out a action (a mistake), its manifestation (a machine language instruction. See also: hardware or software fault), the result of the microinstruction. fault (a failure), and the amount by which the result is incorrect (the error). microprogram. A sequence of instructions, called microinstructions, specifying the mixed mode. Pertaining to an expression that basic operations needed to carry out a contains two or more different data types. machine language instruction. For example, Y := X + N, where X and Y are floating point variables and N is an integer microprogrammable computer. A micropro- variable. Syn: mixed type. grammed computer in which micropro- grams can be created or altered by the mixed type. See: mixed mode. user. MMI. Acronym for man-machine interface. microprogrammed computer. A computer in See: user interface. which machine language instructions are implemented by microprograms rather than modular. Composed of discrete parts. See also: by hard-wired logic. Note: A micropro- modular decomposition; modular pro- grammed computer may or may not be a mi- gramming. crocomputer; the concepts are not related de- spite the similarity of the terms, See modular decomposition. The process of break- also: microarchitecture; microprogram- ing a system into components to facilitate mable computer. design and development; an element of IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 modular programming. Syn: modulariza- move. (1)To read data from a source, altering tion. See also: cohesion; coupling; demodu- the contents of the source location, and to larization; factoring; functional decompo- write the same data elsewhere in a physical sition; hierarchical decomposition;pack- form that may differ from that of the source. aging. For example, to move data from one file to another. Contrast with: copy. modular programming. A software develop- (2)Sometimes, a synonym for copy. ment technique in which software is devel- See also: fetch; load; store. oped as a collection of modules. See also: data structure-centered design; input- MTBF. Acronym for mean time between process-output; modular decomposition; failures. object-oriented design; rapid prototyping; stepwise refinement; structured design; M’ITR. Acronym for mean time to repair. transaction analysis; transform analysis. multiaddress instruction. A computer instruc- modularity. The degree to which a system tion that contains more than one address or computer program is composed of discre4e field. Syn: multiple-address instruction. components such that a change to one Contrast with: one-addressinstruction. component has minimal impact on other components. See also: cohesion; coupling. multilevel address. See: indirect address. modularization. See: modular decomposition. multilevel storage. See: virtual storage. module. (1) A program unit that is discrete multiple-address instruction. See: multiad- and identifiable with respect to compiling, dress instructions. combining with other units, and loading; for example, the input to, or output from, an multiple exclusive selective construct. See: assembler, compiler, linkage editor, or case. executive routine. (2) A logically separable part of a program. multiple inclusive selective construct. A Note: The terms “module,” “component,” special instance of the case construct in and “unit” are often used interchangeably which two or more different values of the or defined to be sub-elements of one another control expression result in the same in different ways depending upon the processing. For example, values 1 and 2 context. The relationship of these terms is cause one branch, 3 and 4 cause another, and not yet standardized. so on. module strength. See: cohesion. multiprocessing. A mode of operation in which two or more processes are executed module testing. See: component testing. concurrently by separate processing units that have access (usually) to a common monadic selective construct. An if-then-else main storage. Contrast with: multipro- construct in which processing is specified gramming. See also: multitasking; time for only one outcome of the branch, the other sharing. outcome resulting in skipping this pro- cessing. Contrast with: dyadic selective multiprogramming. A mode of operation in construct. which two or more computer programs are executed in an interleaved manner by a monitor. A software tool or hardware device single processing unit. Contrast with: that operates concurrently with a system or multiprocessing. See also: multitasking; component and supervises, records, ana- time sharing. lyzes, or verifies the operation of the system or component. Syn: execution monitor. See multitasking. A mode of operation in which also: hardware monitoq software monitor. two or more tasks are executed in an

49 EEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF interleaved manner. See also: multipro- nest. To incorporate a computer program cessing; multiprogramming; time sharing. construct into another construct of the same kind. For example, to nest one subroutine, mutation. See: program mutation. block, or loop within another; to nest one data structure within another. mutation testing. A testing methodology in which two or more program mutations are no-op. Abbreviation for no-operation. executed using the same test cases to evaluate the ability of the test cases to detect no-operation. A computer operation whose differences in the mutations. execution has no effect except to advance the instruction counter to the next instruction. n-address instruction. A computer instruction Used to reserve space in a program or, if that contains n address fields, where n may executed repeatedly, to wait for a given be any non-negative integer. See also: one- event. Often abbreviated no-op. Syn: do- address instruction; two-address instruc- nothing operation. tion; etc. Contrast with: n-plus-one address instruction. node. (1) In a diagram, a point, circle, or other geometric figure used to represent a state, n-level address. An indirect address that event, or other item of interest. See also: specifies the first of a chain of n storage graph (2). locations, the first n-1 of which contain the (2) Note: The meaning of this term in the address of the next location in the chain and context of computer networks is covered in the last of which contains the desired P610.7-1990 [141. operand. For example, a two-level address. Contrast with: direct address; immediate nomenclature standard. (IEEE SM 1002-1987 data. [91) A standard that describes the character- istics of a system or set of names, or n-plus-one address instruction. A computer designations, or symbols. instruction that contains n+l address fields, the last containing the address of the nondestructive read. A read operation that instruction to be executed next. See also: does not erase the data in the accessed one-plus-one address instruction; two-plus- location. Contrast with: destructive read. one address instruction; etc. Contrast with: n-address instruction. nonprocedural language. A language in which the user states what is to be achieved nanocode. A collection of nanoinstructions. without having to state specific instructions that the computer must execute in a given nanoinstruction. In a two-level implemen- sequence. Contrast with: procedural lan- tation of microprogramming, an instruc- guage. See also: declarative language; tion that specifies one or more of the basic interactive language; rule-based language. operations needed to carry out a microin- struction. NOR. (1) In configuration management, an acronym for notice of revision. nanostore. In a two-level implementation of (2) Note: The meaning of this term as a microprogramming, a secondary control logical operator is given in IEEE Std store in which nanoinstructions reside. 610.1/1084-1986 [l,111.

Nassi-Shneiderman chart. See: box diagram. notation standard. (IEEE Std 1002-1987 [91) A standard that describes the characteristics of natural language. A language whose rules formal interfaces within a profession. are based on usage rather than being pre- established prior to the language's use. notice of revision (NOR). A form used in Examples include German and English. configuration management to propose revi- Contrast with: formal language. sions to a drawing or list, and, after IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 approval, to notify users that the drawing or off-line. Pertaining to a device or process that list has been, or will be, revised accord- is not under the direct control of the central ingly. See also: configuration control; processing unit of a computer. Contrast engineering change; specification change with: on-line (2). notice. offset. (1) The difference between the loaded nucleus. See: kernel (1). origin and the assembled origin of a computer program. Syn: relocation factor. object. (1) Pertaining to the outcome of (2) A number that must be added to a relative an assembly or compilation process. See address to determine the address of the also: object code; object module; object pro- storage location to be accessed. This number gram. may be the difference defined in (1) or (2) A program constant or variable. another number defined in the program. See (3) An encapsulation of data and services also: base address; indexed address; that manipulate that data. See also: object- relative address; self-relative address. oriented design. on-line. (1)Pertaining to a system or mode of object code. Computer instructions and data operation in which input data enter the definitions in a form output by an assembler computer directly from the point of origin or or compiler. An object program is made up output data are transmitted directly to the of object code. Contrast with: source code. point where they are used. For example, an airline reservation system. Contrast with: object language. See: target language. batch. See also: conversational; interactive; real time. object module. A computer program or subpro- (2) Pertaining to a device or process that is gram that is the output of an assembler or under the direct control of the central compiler. See also: load module; object processing unit of a computer. program. Contrast with: off-line.

object-oriented design. A software on-line compiler. See: incremental compiler. development technique in which a system or component is expressed in terms of objects one-address instruction. A computer and connections between those objects. See instruction that contains one address field. also: data structure-centered design; input- For example, an instruction to load the process-output; modular decomposition; contents of location A. Syn: single-address rapid prototyping; stepwise refinement; instruction; single-operand instruction. structured design; transaction analysis; Contrast with: multiaddress instruction; transform analysis. two-address instruction; three-address instruction; four-address instruction; zero- object-oriented language. A programming address instruction. language that allows the user to express a program in terms of objects and messages one-ahead addressing. A method of implied between those objects. Examples include addressing in which the operands for a Smalltalk and LOGO. computer instruction are understood to be in the storage locations following the locations object program. A computer program that is the of the operands used for the last instruction output of an assembler or compiler. Contrast executed. Contrast with: repetitive ad- with: source program. Syn: target program. dressing. See also: object module. one-level address. See: direct address. occupational title standard. (IEEE Std 1002- 1987 [91) A standard that describes the one-plus-one address instruction. A computer characteristics of the general areas of work instruction that contains two address fields, or profession. the second containing the address of the

51 IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF instruction to be executed next. For example, example, the code BNZ to designate the an instruction to load the contents of location operation '%ranch if not zero." Syn: op code. A, then execute the instruction at location B. Contrast with: two-plus-oneaddress instruc- operation exception. An exception that occurs tion; three-plus-one address instruction; when a program encounters an invalid four-plus-one address instruction. operation code. See also: addressing excep- tion; data exception; overflow exception; op code (opcode).See: operation code. pmtection exception;underflow exception. open subroutine. A subroutine that is copied operation field. The field of a computer into a computer program at each place that it instruction that specifies the operation to be is called. Syn: direct insert subroutine. performed. Syn: function field; operation Contrast with: closed subroutine. See also: part. Contrast with: address field. inline code; macro. operation part. See: operation field. operand. A variable, constant, or function upon which an operation is to be performed. operational. (1) Pertaining to a system or For example, in the expression A = B + 3, B component that is ready for use in its and 3 are the operands. intended environment. (2) Pertaining to a system or component that operating system. A collection of software, is installed in its intended environment. firmware, and hardware elements that (3) Pertaining to the environment in which controls the execution of computer programs a system or component is intended to be and provides such services as computer used. resource allocation, job control, input/output control, and file management in a computer operational testing. Testing conducted to system. evaluate a system or component in its operational environment. Contrast with: operation. (1) In computer mathematics, the development testing. See also: acceptance action specified by an operator on one or testing; qualification testing. more operands. For example, in the expression A = B + 3, the process of adding B operator. (1) A mathematical or logical to 3 to obtain A. symbol that represents an action to be (2) In programming, a defined action that performed in an operation. For example, in can be performed by a computer system; for the expression A = B + 3, + is the operator, example, addition, comparison , branching. representing addition. Note: Unlike the mathematical meaning, (2) A person who operates a computer such an operation may not involve an system. operator or operands; for example, the operation Halt. operator field. See: operation field. (3) The process of running a computer system in its intended environment to operator manual. A document that provides the perform its intended functions. information necessary to initiate and operate a system or component. Typically operation and maintenance phase. The period described are procedures for preparation, of time in the software life cycle during operation, monitoring, and recovery. Note: which a software product is employed in its An operator manual is distinguished from a operational environment, monitored for user manual when a distinction is made satisfactory performance, and modified as between those who operate a computer system necessary to correct problems or to respond to (mounting tapes, etc.) and those who use the changing requirements. system for its intended purpose. See also: diagnostic manual; installation manual; operation code. A character or set of characters programmer manual; support manual; user that specifies a computer operation; for manual.

52 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.1 2-1 990 order clash. In software design, a type of into main storage when needed, overwriting structure clash in which a program must other segments not currently in use. deal with two or more data sets that have (3) To load a computer program segment been sorted in different orders. See also: from auxiliary storage to main storage in data structurecentereddesign. such a way that other segments of the program are overwritten. origin. The address of the initial storage location assigned to a computer program in overlay supervisor. A routine that controls the main memory. See also: assembled origin; sequencing and positioning of overlays. loaded origin. Contrast with: starting address. overload. To assign an operator, identifier, or literal more than one meaning, depending . output. (1) Pertaining to data transmitted to an upon the data types associated with it at any external destination. given time during program execution. (2) Pertaining to a device, process, or channel involved in transmitting data to an pack. To store data in a compact form in a external destination. storage medium, using known characteris- (3) To transmit data to an external tics of the data and medium in such a way as destination. to permit recovery of the data. Contrast with: (4) Loosely, output data. unpack. Contrast with: input. package. A separately compilable software output assertion. A logical expression specify- component consisting of related data types, ing one or more conditions that program data objects, and subprograms. See also: outputs must satisfy in order for the program data abstraction; encapsulation; informa- to be correct. Contrast with: input assertion; tion hiding. loop assertion. See also: inductive assertion method. packaging. In software development, the assignment of modules to segments to be overflow exception. An exception that occurs handled as distinct physical units for when the result of an arithmetic operation execution by a computer. exceeds the size of the storage location des- ignated to receive it. See also: addressing padding. (1) The technique of filling out a exception; data exception; operation excep- fixed-length block of data with dummy tion; protection exception; underflow excep characters, words, or records. tion. (2) Dummy characters, words, or records used to fill out a fixed-length block of data. overhead operation. See: housekeeping operation. page. (1)A fixed-length segment of data or of a computer program treated as a unit in overhead time. The amount of time a computer storage allocation. See also: paging. system spends performing tasks that do not (2) In a virtual storage system, a fixed- contribute directly to the progress of any user length segment of data or of a computer task; for example, time spent tabulating program that has a virtual address and is computer resource usage for billing transferred as a unit between main and purposes. auxiliary storage. (3) A screenful of information on a video overlay. (1) A storage allocation technique in display terminal. which computer program segments are loaded from auxiliary storage to main page breakage. A portion of main storage that storage when needed, overwriting other is unused when the last page of data or of a segments not currently in use. computer program does not fill the entire (2) A computer program segment that is block of storage allocated to it. See also: maintained in auxiliary storage and loaded paging. IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF page frame. A block of main storage having parameter. (1) A variable that is given a the size of, and used to hold, a page. See also: constant value for a specified application. paging. See also: adaptation parameter. (2) A constant, variable, or expression that is page swapping. The exchange of pages used to pass values between software mod- between main storage and auxiliary ules. See also: argument; formal parame- storage. See also: paging. ter. page table. A table that identifies the location parse. To determine the syntactic structure of of pages in storage and gives significant a language unit by decomposing it into more attributes of those pages. See also: paging. elementary subunits and establishing the relationships among the subunits. For ex- page turning. See: paging (3). ample, to decompose blocks into statements, statements into expressions, expressions page zero. In the paging method of storage into operators and operands. allocation, the first page in a series of pages. parser. A software tool that parses computer programs or other text, often as the first step pager. A routine that initiates and controls the of assembly, compilation, interpretation, or transfer of pages between main and analysis. auxiliary storage. See also: paging. partial correctness. In proof of correctness, a paging. (1) A storage allocation technique in designation indicating that a program's which programs or data are divided into output assertions follow logically from its fixed-length blocks called pages, main stor- input assertions and processing steps. age is divided into blocks of the same length Contrast with: total correctness. called page frames, and pages are stored in page frames, not necessarily contiguously partitioning. (IEEE Std 830-1984 [SI) Decom- or in logical order. Syn: block allocation. position; the separation of the whole into its Contrast with: contiguous allocation. parts. (2) A storage allocation technique in which programs or data are divided into fixed- pass. A single cycle in the processing of a set length blocks called pages, main storage is of data, usually performing part of an divided into blocks of the same length called overall process. For example, a pass of an page frames, and pages are transferred assembler through a source program; a pass between main and auxiliary storage as of a sort program through a set of data. needed. See also: anticipatory paging; de- mand paging; virtual storage. pass/fail criteria. (IEEE Std 829-1983 [51) (3) The transfer of pages as in (2). Syn: page Decision rules used to determine whether a turning. software item or a software feature passes or See also: page; page breakage; page frame; fails a test. See also: test criteria. page swapping; page table; page zero;pager; working set. patch. (1) A modification made directly to an object program without reassembling or parallel. (1 Pertaining to the simultaneous recompiling from the source program. transfer, occurrence, or processing of the (2) A modification made to a source program individual parts of a whole, such as the bits as a last- fix or afterthought. of a character, using separate facilities for (3) Any modification to a source or object the various parts. Contrast with: serial (1). program. (2) See: concurrent. (4) To perform a modification as in (11, (21, or (3). parallel construct. A program construct consisting of two or more procedures that path. (1) In software engineering, a sequence can occur simultaneously. of instructions that may be performed in the

54 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 execution of a computer program. performance. The degree to which a system or (2) In file access, a hierarchical sequence of component accomplishes its designated directory and subdirectory names specify- functions within given constraints, such as ing the storage location of a file. speed, accuracy, or memory usage. path analysis. Analysis of a computer pro- performance requirement. A requirement that gram to identify all possible paths through imposes conditions on a functional re- the program, to detect incomplete paths, or to quirement; for example a requirement that discover portions of the program that are not specifies the speed, accuracy, or memory on any path. usage with which a given function must be performed. Contrast with: design require- path condition. A set of conditions that must be ment; functional requirement; implemen- met in order for a particular program path to tation requirement; interface requirement; be executed. physical requirement. path expression. A logical expression indicat- performance specification. A document that ing the input conditions that must be met in specifies the performance characteristics order for a particular program path to be that a system or component must possess. executed. These characteristics typically include speed, accuracy, and memory usage. Often path testing. Testing designed to execute all or part of a requirements specification. selected paths through a computer program. Contrast with: branch testing; statement performance testing. Testing conducted to testing. evaluate the compliance of a system or component with specified performance pathological coupling. A type of coupling requirements. See also: functional testing. in which one software module affects or depends upon the internal implemen- Petri net. An abstract, formal model of infor- tation of another. Contrast with: common- mation flow, showing static and dynamic environment coupling; content coupling; properties of a system. A Petri net is usually control coupling; data coupling; hybrid represented as a graph having two types of coupling. nodes (called places and transitions) connected by arcs, and markings (called pattern-sensitive fault. See: data-sensitive tokens) indicating dynamic properties. fault. physical configuration audit (PCA).An audit pause. To suspend the execution of a computer conducted to verify that a configuration program. Syn: halt (2). Contrast with: item, as built, conforms to the technical hP* documentation that defines it. See also: functional configuration audit. PCA. Acronym for physical configuration audit. physical requirement. A requirement that specifies a physical characteristic that a PDL. Acronym for program design language. system or system component must possess; for example, material, shape, size, weight. PDR. Acronym for preliminary design Contrast with: design requirement; func- review. tional requirement; implementation re- quirement; interface requirement; perfor- perfective maintenance. Software mainte- mance requirement. nance performed to improve the perfor- mance, maintainability, or other attributes pipeline. A software or hardware design of a computer program. Contrast with: technique in which the output of one process adaptive maintenance; corrective mainte- serves as input to a second, the output of the nance. second process serves as input to a third, and

55 IEEE Std 610.12-1990 LEEE STANDARD GLOSSARY OF so on, often with simultaneity within a precision. The degree of exactness or single cycle time. discrimination with which a quantity is stated; for example, a precision of 2 decimal plan standard. (IEEE Std 1002-1987 [91) A stan- places versus a precision of 5 decimal dard that describes the characteristics of a places. Contrast with: accuracy. scheme for accomplishing defined objec- tives or work within specified resources. precompiler. A computer program or routine that processes source code and generates playback. See: reversible execution. equivalent code that is acceptable to a com- piler. For example, a routine that converts pointer. A data item that specifies the location structured FORTRAN to ANSI-standard of another data item; for example, a data FORTRAN. See also: preprocessor. item that specifies the address of the next employee record to be processed. preliminary design. (1) The process of ana- lyzing design alternatives and defining the port-to-port time. The elapsed time between the architecture, components, interfaces, and application of a stimulus to an input timing and sizing estimates for a system or interface and the appearance of the response component. See also: detailed design. at an output interface. See also: response (2) The result of the process in (1). time; think time; turnaround time. preliminary design review (PDR). (1) A portability. The ease with which a system or review conducted to evaluate the progress, component can be transferred from one technical adequacy, and risk resolution of hardware or software environment to the selected design approach for one or more another. Syn: transportability. See also: configuration items; to determine each machine independent. design's compatibility with the require- ments for the configuration item; to evaluate post-tested iteration. See: UNTIL. the degree of definition and assess the technical risk associated with the selected postamble breakpoint. See: epilog breakpoint. manufacturing methods and processes; to establish the existence and compatibility of postmortem dump. A dump that is produced the physical and functional interfaces upon abnormal termination of a computer among the configuration items and other program. See also: change dump; dynamic items of equipment, facilities, software and dump; memory dump; selective dump; personnel; and, as applicable, to evaluate the snapshot dump; static dump. preliminary operational and support documents. See also: critical design review; postprocessor. A computer program or routine system design review. that carries out some final processing step (2) A review as in (1) of any hardware or after the completion of the primary process; software component. for example, a routine that reformats data for output. Contrast with: preprocessor. preprocessor. A computer program or routine that carries out some processing step prior to practices. (IEEE Std 983-1986 [71) Require- the primary process; for example, a precom- ments employed to prescribe a disciplined piler or other routine that reformats code or uniform approach to the software develop- data for processing. Contrast with: postpro- ment process. See also: conventions; stan- cessor. dards. prestore. To store data that are required by a computer program or routine before the pragma. See: pseudo-instruction. program or routine is entered. pre-tested iteration. See: WHILE. prettyprinting. The use of indentation, blank lines, and other visual cues to show the preamble breakpoint. See: pmlog breakpoint. logical structure of a program.

56 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 preventive maintenance. Maintenance per- language; list processing language; logic formed for the purpose of preventing programming language. problems before they occur. procedure. (1) A course of action to be taken to primitive type. See: atomic type. perform a given task. (2) A written description of a course of action priority. The level of importance assigned to as in (1);for example, a documented test an item. procedure. (3) A portion of a computer program that is priority interrupt. An interrupt performed to named and that performs a specific action. permit execution of a process that has a higher priority than the process currently procedure-oriented language. See: procedural executing. language.

private type. A data type whose structure and process. (1)A sequence of steps performed for a possible values are defined but are not given purpose; for example, the software revealed to the user of the type. See also; development process. information hiding. (2) An executable unit managed by an operating system scheduler. See also: task; privileged instruction. A computer instruction job. that can be executed only by a supervisory (3) To perform operations on data. program. process management. (IEEE Std 1002-1987[91) privileged state. See: supervisor state. The direction, control, and coordination or work performed to develop a product or problem-oriented language. A programming perform a service. Example is quality language designed for the solution of a assurance. given class of problems. Examples are list processing languages, information re- process standard. (IEEE Std 1002-1987 [91) A trieval languages, simulation languages. standard that deals with the series of actions or operations used in making or achieving a problem state. In the operation of a computer product. system, a state in which programs other than the supervisory program can execute. Syn: product analysis. (IEEE SM 1002-1987 [91) The slave state; user state. Contrast with: super- process of evaluating a product by manual or visor state. automated means to determine if the product has certain characteristics. procedural cohesion. A type of cohesion in which the tasks performed by a software product baseline. In configuration manage- module all contribute to a given program ment, the initial approved technical docu- procedure, such as an iteration or decision mentation (including, for software, the process. Contrust with: coincidental cohe- source code listing) defining a configura- sion; communicational cohesion; func- tion item during the production, operation, tional cohesion; logical cohesion; sequen- maintenance, and logistic support of its life tial cohesion; temporal cohesion. cycle. Contrast with: allocated baseline; developmental configuration; functional procedural language. A programming lan- baseline. See also: product configuration guage in which the user states a specific set identification. of instructions that the computer must perform in a given sequence. All widely- product configuration identification. The cur- used programming languages are of this rent approved or conditionally approved type. Syn: procedure-oriented language. technical documentation defining a config- Contrast with: nonprocedural language. See uration item during the production, opera- also: algebraic language; algorithmic tion, maintenance, and logistic support

57 LEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF phases of its life cycle. It prescribes all program. (1)See: computer program. necessary physical or form, fit and function (2)To write a computer program. characteristics of a configuration item, the selected functional characteristics desig- program counter. See: instruction counter. nated for production acceptance testing, and the production acceptance tests. Contrast program definition language. See: program with: allocated configuration identifica- design language. tion; functional configuration identifica- tion. See also: product baseline. program design language (PDL). A specifica- tion language with special constructs and, product engineering. (IEEE Std 1002-1987 [91) sometimes, verification protocols, used to The technical processes to define, design, develop, analyze, and document a program and construct or assemble a product. design. See also: hardware design lan- guage; pseudo de. product management. (IEEE Std 1002-1987 [91) The definition, coordination, and control of program flowchart (flow chart). See: the characteristics of a product during its flowchart. development cycle. Example is configura- tion management. program instruction. A computer instruction in a source program. Note: A program product specification. (1) A dacument that instruction is distinguished from a com- specifies the design that production copies of puter instruction that results from assembly, a system or component must implement. compilation, or other interpretation process. Note: For software, this document describes the as-built version of the software. See also: program library. See: software library. design description. (2)A document that describes the character- program listing. A printout or other human istics of a planned or existing product for readable display of the source and, some- consideration by potential customers or times, object statements that make up a users. computer program. product standard. (IEEE Std 1002-1987 [91) A program mutation. (1)A computer program standard that defines what constitutes com- that has been purposely altered from the pleteness and acceptability of items that are intended version to evaluate the ability of used or produced, formally or informally, test cases to detect the alteration. See also: during the software engineering process. mutation testing. (2) The process of creating an altered product support. (IEEE Std 1002-1987 [91) The program as in (1). providing of information, assistance, and training to install and make software program network chart. A diagram that shows operational in its intended environment the relationship between two or more and to distribute improved capabilities to computer programs. users. program-sensitive fault. A fault that causes a production library. A software library failure when some particular sequence of containing software approved for current program steps is executed. Contrast with: operational use. Contrast with: master data-sensitive fault. library; software development library; software repositow, system library. program status word (PSW). (1) A computer word that contains information specifying professional standard. (IEEE Std 1002-1987 191) the current status of a computer program. A standard that identifies a profession as a The information may include error indica- discipline and distinguishes it from other tors, the address of the next instruction to professions. be executed, currently enabled interrupts, IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 and so on. compilers, linkers, etc.) necessary for us- (2) A special-purpose register that contains a ing these languages with a given computer program status word as in (1). system. Syn: status word. project file. A central repository of material program structure diagram. See: structure pertinent to a project. Contents typically chart. include memos, plans, technical reports, and related items. Syn: project notebook. program support library. See: software development lib-. project library. See: software development library. program synthesis. The use of software tools to aid in the transformation of a program project notebook See: project file. specification into a program that realizes that specification. project plan. A document that describes the technical and management approach to be programmable breakpoint. A breakpoint that followed for a project. The plan typically automatically invokes a previously speci- describes the work to be done, the resources fied debugging process when initiated. See required, the methods to be used, the proce- also: code breakpoint; data breakpoint; dures to be followed, the schedules to be met, dynamic breakpoint; epilog breakpoint; and the way that the project will be orga- prolog breakpoint; static breakpoint. nized. For example, a software development plan. programmer manual. A document that provides the information necessary to prolog breakpoint. A breakpoint that is initi- develop or modify software for a given ated upon entry into a program or routine. computer system. Typically described are Syn: preamble breakpoint. Contrast with: the equipment configuration, operational epilog breakpoint. See also: code breakpoint; characteristics, programming features, data breakpoint; dynamic breakpoint; pro- inputloutput features, and compilation or grammable breakpoint; static breakpoint. assembly features of the computer system. See also: diagnostic manual; installation prompt. (1)A symbol or message displayed by manual; operator manual; support manual; a computer system, requesting input from user manual. the user of the system. (2) To display a symbol or message as in (1). programming language. A language used to express computer programs. See also: proof of correctness. (1) A formal technique assembly language; high order language; used to prove mathematically that a machine language. Contrast with: query computer program satisfies its specified language; specification language. requirements. See also: assertion; formal specification; inductive assertion method; programming support environment. An inte- partial correctness; total correctness. grated collection of software tools accessed (2) A proof that results from applying the via a single command language to provide technique in (1). programming support capabilities through- out the software life cycle. The environment protection exception. An exception that occurs typically includes tools for specifying, when a program attempts to write into a pro- designing, editing, compiling, loading, tected area in storage. See also: addressing testing, configuration management, and exception; data exception; operation excep- project management. Sometimes called in- tion; overflow exception; underflow excep- tegrated programming support environ- tion. ment. See also: scaffolding. protocol. A set of conventions that govern the programming system. A set of programming interaction of processes, devices, and other languages and the support software (editors, components within a system.

59 ZEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF prototype. A preliminary type, form, or (2) The degree to which a system, compo- instance of a system that serves as a model nent, or process meets customer or user for later stages or for the final, complete needs or expectations. version of the system. quality assurance (QA). (1) A planned and prototyping. A hardware and software devel- systematic pattern of all actions necessary opment technique in which a preliminary to provide adequate confidence that an item version of part or all of the hardware or or product conforms to established technical software is developed to permit user feed- requirements. back, determine feasibility, or investigate (2) A set of activities designed to evaluate the timing or other issues in support of the process by which products are developed or development process. See also: rapid proto- manufactured. Contrast with: quality con- typing. trol (1). pseudo code (pseudocode).A combination of quality attribute. A feature or characteristic programming language constructs and that affects an item's quality. Syn: quality natural language used to express a computer factor. Note: In a hierarchy of quality at- program design. For example: tributes, higher level attributes may be IF the data arrives faster than expected, called quality factors, lower level attributes THEN reject every third input. called quality attributes. ELSE process all data received. ENDIF quality control (QO. Note: This term has no standardized meaning in software engi- pseudo instruction. A source language in- neering at this time. Candidate definitions struction that provides information or direc- are: (1) A set of activities designed to evalu- tion to the assembler or compiler and is not ate the quality of developed or manufactured translated into a target language instruc- products. Contrast with: quality assur- tion. For example, an instruction specifying ance (2). the desired format of source code listings. (2) The process of verifying one's own work Syn: pragma; pseudo-op; pseudo operation. or that of a co-worker. (3) Synonym for quality assurance. pseudo operation. See: pseudo instruction. quality factor. See: quality attribute. Note: In pseudo-op. See: pseudo instruction. a hierarchy of quality attributes, higher level attributes may be called quality fac- PSW. Acronym for program status word. tors, lower level attributes called quality attributes. QA. Acronym for quality assurance. quality metric. (1) A quantitative measure of QC. Acronym for quality control. the degree to which an item possesses a given quality attribute. qualification. The process of determining (2) A function whose inputs are software whether a system or component is suitable data and whose output is a single numerical for operational use. value that can be interpreted as the degree to which the software possesses a given quality qualification testing. Testing conducted to attribute. determine whether a system or component is suitable for operational use. See also: query language. A language used to access acceptance testing; development testing; information stored in a database. Contrast operational testing. with: programming language; specification language. quality. (1) The degree to which a system, component, or process meets specified queue. A list in which items are appended to requirements. the last position of the list and retrieved from IEEE SOFTWARE ENGINEERING TERMINOLOGY Std61012-1990 the first position of the list. Note: IEEE Std Contrast with: character type; enumeration 610.5-1990 [21 defines Data Management type; integer type; logical type. terms. record. A set of related data items treated as a quiescing. The process of bringing a device or unit. For example, in stock control, the data system to a halt by rejecting new requests for for each invoice could constitute one record. work. recovery. The restoration of a system, random failure. A failure whose occurrence is program, database, or other system resource unpredictable except in a probabilistic or to a state in which it can perform required statistical sense. See also: intermittent functions. See also: backward recovery; fault; transient error. checkpoint;forward recovery.

rapid prototyping. A type of prototyping in recursion. (1) A process in which a software which emphasis is placed on developing module calls itself. See also: simultaneous prototypes early in the development process recursion. to permit early feedback and analysis in (2) The process of defining or generating a support of the development process. Contrast# process or data structure in terms of itself. with: waterfall model. See also: data struc- ture-centered design; incremental devel- recursive. (1) Pertaining to a software module opment; input-process-output;modular de- that calls itself. composition; object-orienteddesign; spiral (2) Pertaining to a process or data structure model; stepwise refinement; structured de- that is defined or generated in terms of sign; transaction analysis; transform itself. analysis. redundancy. In fault tolerance, the presence of read. To access data from a storage device auxiliary components in a system to per- or data medium. See also: destructive form the same or similar functions as other read; nondestructive read. Contrast with: elements for the purpose of preventing or write. recovering from failures. See also: active redundancy; diversity; homogeneous re- real address. The address of a storage location dundancy; standby redundancy. in the main storage part of a virtual storage system. Contrast with: virtual address. reenterable. See: reentrant.

real storage. The main storage portion of a reentrant. Pertaining to a software module virtual storage system. Contrast with: vir- that can be entered as part of one process tual storage. while also in execution as part of another process and still achieve the desired results. real time. Pertaining to a system or mode of Syn: reenterable. operation in which computation is per- formed during the actual time that an reentry point. The place in a software module external process occurs, in order that the at which the module is reentered following a computation results can be used to control, call to another module. monitor, or respond in a timely manner to the external process. Contrast with: batch. regression testing. Selective retesting of a See also: conversational; interactive; inter- system or component to verify that modifica- rupt; on-line. tions have not caused unintended effects and that the system or component still real type. A data type whose members can complies with its specified requirements. assume real numbers as values and can be operated on by real number arithmetic relative address. An address that must be operations, such as addition, subtraction, adjusted by the addition of an offset to multiplication, division, and square root. determine the address of the storage location WEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF to be accessed. Contrast with: absolute relocation factor. See: offset (1). address. See also: base address; indexed address; self-relativeaddress. remote batch entry. See: remote job entry. relative loader. See: relocating loader. remote job entry (RJE).Submission of jobs through a remote input device connected to a reliability. The ability of a system or compo- computer through a data link. Syn: remote nent to perform its required functions under batch entry. stated conditions for a specified period of time. See also: availability; MTBF. repeatability.See: test repeatability. reliability growth. The improvement in repetitive addressing. A method of implied reliability that results from correction of addressing in which the operation field of faults. an computer instruction is understood to address the operands of the last instruction relocatable. Pertaining to code that can be executed. Contrast with: one-ahead ad- loaded into any part of main memory. The dressing. starting address is established by the loader, which then adjusts the addresses in the code replay. See: reversible execution. to reflect the storage locations into which the code has been loaded. See also: relocating report standard. (IEEE Std 1002-1987 191) A loader. standard that describes the characteristics of describing results of engineering and relocatable address. An address that is to be management activities. adjusted by the loader when the computer program containing the address is loaded representation standard. (IEEE Std 1002-1987 into memory. Contrast with: absolute ad- [9]) A standard that describes the character- dress. istics of portraying aspects of an engineer- ing or management product. relocatable code. Code containing addresses that are to be adjusted by the loader to reflect requirement. (1) A condition or capability the storage locations into which the code is needed by a user to solve a problem or loaded. Contrast with: absolute code. achieve an objective. (2) A condition or capability that must be met relocate. To move machine code from one or possessed by a system or system compo- portion of main memory to another and to nent to satisfy a contract, standard, specifi- adjust the addresses so that the code can be cation, or other formally imposed docu- executed in its new location. ments. (3) A documented representation of a condi- relocating assembler. An assembler that tion or capability as in (1)or (2). produces relocatable code. Contrast with: See also: design requirement; functional absolute assembler. requirement; implementation requirement; interface requirement; performance re- relocating loader. A loader that reads quirement; physical requirement. relocatable code into main memory and adjusts the addresses in the code to reflect the requirement standard. (IEEE Std 1002-1987 [91) storage locations into which the code has A standard that describes the characteristics been loaded. Syn: relative loader. Contrast of a requirements specification. with: absolute loader. requirements analysis. (1) The process of relocation dictionary. The part of an object studying user needs to arrive at a definition module or load module that identifies the of system, hardware, or software require- addresses that must be adjusted when a ments. relocation occurs. (2) The process of studying and refining

62 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 system, hardware, or software require- microinstruction depends on the value in an ments. auxiliary register. Contrast with: bit steer- ing. See also: two-level encoding. requirements phase. The period of time in the software life cycle during which the re- resource allocation. See: computer resource quirements for a software product are allocation. defined and documented. resource management. (IEEE Std 1002-1987 requirements review. A process or meeting [9]) The identification, estimation, alloca- during which the requirements for a system, tion, and monitoring of the means used to hardware item, or software item are pre- develop a product or perform a service. sented to project personnel, managers, Example is estimating. users, customers, or other interested parties for comment or approval. Types include response time. The elapsed time between the system requirements review, software end of an inquiry or command to an requirements review. Contrast with: code interactive computer system and the begin- review; design review; formal qualifica- ning of the system's response. See also: port- tion review; test readiness review. to-port time; think time; turnaround time. requirements specification. A document that restart. To cause a computer program to specifies the requirements for a system or resume execution after a failure, using component. Typically included are func- status and results recorded at a checkpoint. tional requirements, performance require- ments, interface requirements, design re- restart point. A point in a computer program at quirements, and development standards. which execution can be restarted following a Contrast with: design description. See also: failure. Syn: rescue point. functional specification; performance spec- retirement. (1) Permanent removal of a sys- ification. tem or component from its operational envi- ronment. requirements specification language. A speci- (2) Removal of support from an operational fication language with special constructs and, sometimes, verification protocols, used system or component. See also: software life cycle; system life to develop, analyze, and document hardware cycle. or software requirements. See also: design language. retirement phase. The period of time in the software life cycle during which support for rescue point. See: restart point. a software product is terminated. reserved word. A word in a programming retrospective trace. A trace produced from language whose meaning is fixed by the historical data recorded during the execu- rules of that language and which, in certain tion of a computer program. Note: This dif- or all contexts, cannot be used by the fers from an ordinary trace, which is programmer for any purpose other than its produced cumulatively during program intended one. Examples include IF, THEN, execution. See also: execution trace; subrou- WHILE. tine trace; symbolic trace; variable trace. reset. To set a variable, register, or other return. (1) To transfer control from a software storage location back to a prescribed state. module to the module that called it. See also: See also: clear; initialize. lleturn code. (2) To assign a value to a parameter that is resident control program. See: kernel (1). accessible by a calling module; for example, to assign the value 25 to parameter AGE for residual control. A microprogramming tech- use by a calling module. See also: return nique in which the meaning of a field in a value.

63 EEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF (3) A computer instruction or process that storage for the purpose of freeing main performs the transfer in (1). storage for other uses. Contrast with: roll in. See also: swap. return code. A code used to influence the execution of a calling module following a root compiler. A compiler whose output is a return from a called module. machine independent, intermediate-level representation of a program. A root com- return value. A value assigned to a parameter piler, when combined with a code generator, by a called module for access by the calling comprises a full compiler. module. routine. A subprogram that is called by other reusability. The degree to which a software programs and subprograms. Note: The module or other work product can be used in terms “routine,” “subprogram,” and “sub- more than one computer program or routine” are defined and used differently in software system. See also: generality. different programming languages; the preceding definition is advanced as a reusable. Pertaining to a software module or proposed standard. See also: coroutine; other work product that can be used in more subroutine. than one computer program or software system. rule-based language. A nonprocedural lan- guage that permits the user to state a set of reverse execution. See: reversible execution. rules and to express queries or problems that use these rules. See also: declarative reversible execution. A debugging technique language; interactive language. in which a history of program execution is recorded and then replayed under the user’s run. (1) In software engineering, a single, control, in either the forward or backward usually continuous, execution of a computer direction. Syn: backward execution; play- program. See also: run time. back; replay; reverse execution. (2) To execute a computer program. review. A process or meeting during which a run stream. See: job stream. work product, or set of work products, is presented to project personnel, managers, run time. (1) The instant at which a computer users, customers, or other interested parties program begins to execute. for comment or approval. Types include (2) The period of time during which a code review, design review, formal qualifi- computer program is executing. cation review, requirements review, test (3) See: execution time. readiness review. running time. See: execution time. RJE. Acronym for remote job entry. scaffolding. Computer programs and data robustness. The degree to which a system or files built to support software development component can function correctly in the and testing, but not intended to be included presence of invalid inputs or stressful in the final product. For example, dummy environmental conditions. See also: error routines or files, test case generators, soft- tolerance; fault tolerance. ware monitors, stubs. See also: program- ming support environment. roll in. To transfer data or computer program segments from auxiliary storage to main scheduler. A computer program, usually part storage. Contrast with: roll out. See also: of an operating system, that schedules, swap. initiates, and terminates jobs. roll out. To transfer data or computer program SCN. Acronym for specification change segments from main storage to auxiliary notice. IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 SDD. (1) Acronym for software design self-documented. Pertaining to source code description. that contains comments explaining its (2) (DoD) Acronym for software design objectives, operation, and other information document. See: software design description. useful in understanding and maintaining the code. SDP. Acronym for software development plan. self-relative address. An address that must be added to the address of the instruction in SDR. Acronym for system design review. which it appears to obtain the address of the storage location to be accessed. See also: second generation language (2GL).See: base address; indexed address; offset; assembly language. relative address. security kernel. A small, self-contained semantic error. An error resulting from a collection of key security-related statements misunderstanding of the relationship of that works as a privileged part of an symbols or groups of symbols to their operating system, specifying and enforcing. meanings in a given language. Contrast criteria that must be met for programs and with: syntactic error. data to be accessed. semantics. The relationships of symbols segment. (1) One of the subsystems or or groups of symbols to their meanings combinations of subsystems that make up an in a given language. Contrast with: overall system; for example, the accounts syntax. payable segment of a financial system. (2) In storage allocation, a self-contained semaphore. A shared variable used to syn- portion of a computer program that can be chronize concurrent processes by indicating executed without maintaining the entire whether an action has been completed or an program in main storage. See also: page. event has occurred. See also:flag; indi- (3) A collection of data that is stored or cator. transferred as a unit. (4) In path analysis, a sequence of computer sequential. Pertaining to the occurrence of two program statements between two consecutive or more events or activities in such a man- branch points. ner that one must finish before the next (5) To divide a system, computer program, begins. Syn: serial (2). See also: consec- or data file into segments as in (11, (2), utive. or (3). sequential cohesion. A type of cohesion in selective choice construct. See: branch. which the output of one task performed by a software module serves as input to another selective dump. A dump of designated storage task performed by the module. Contrast location areas only. See also: change dump; with: coincidental cohesion; communica- dynamic dump; memory dump; postmortem tional cohesion; functional cohesion; logi- dump; snapshot dump; static dump. cal cohesion; procedural cohesion; temporal cohesion. selective trace. A variable trace that involves only selected variables. See also: execution sequential construct. See: serial construct. trace; retrospective trace; subroutine trace; symbolic trace; variable trace. serial. (1) Pertaining to the sequential transfer, occurrence, or processing of the self-descriptiveness. The degree to which individual parts of a whole, such as the bits a system or component contains enough of a character, using the same facilities information to explain its objectives and for successive parts. Contrast with: par- properties. See also: maintainability; testa- allel (1). bility; usability. (2) See: sequential.

65 IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF serial construct. A program construct consist- single-step execution. See: single-step ing of a sequence of steps not involving a opemtion. decision or loop. Syn: sequential construct. single-step operation. A debugging technique set-up time. The period of time during which a in which a single computer instruction, or system or component is being prepared for a part of an instruction, is executed in specific operation. See also: busy time; down response to an external signal. Syn: single- time; idle time; up time. step execution; stepby-step operation.

severity. See: criticality. sizing. The process of estimating the amount of computer storage or the number of source shell. A computer program or routine that lines required for a software system or provides an interface between the user and a component. Contrast with: timing. computer system or program. slave state. See: problem state. simple buffering. A buffering technique in which a buffer is allocated to a computer pro- snapshot dump. A dynamic dump of the gram for the duration of the program's exe- contents of one or more specified storage cution. Contrast with: dynamic buffering. areas. See also: change dump; dynamic dump; memory dump; postmortem dump; simplicity. The degree to which a system or selective dump; static dump. component has a design and implementa- tion that is straightforward and easy to un- soft error.* See: transient error. derstand. Contrast with: complexity. * Deprecated.

simulation. (1)A model that behaves or oper- soft failure. A failure that permits continued ates like a given system when provided a set operation of a system with partial opera- of controlled inputs. See also: emulation. tional capability. Contrast with: hard fail- (2). The process of developing or using a ure. model as in (1). software. Computer programs, procedures, simulator. A device, computer program, or and possibly associated documentation and system that behaves or operates like a given data pertaining to the operation of a com- system when provided a set of controlled puter system. See also: application software; inputs. See also: emulator. support software; system software. Contrast with: hardware. simultaneous. Pertaining to the occurrence of two or more events at the same instant of software characteristic. (IEEE Std 1008-1987 time. Contrast with: concurrent. [lo]) An inherent, possibly accidental, trait, quality, or property of software (for example, simultaneous recursion. A situation in which functionality, performance, attributes, de- two software modules call each other. sign constraints, number of states, lines or branches). single-address instruction. See: one-address instruction. software configuration management. See: configuration management. single-level encoding. A microprogramming technique in which different microopera- software design description (SDD). (1)(IEEE tions are encoded as different values in the Std 1012-1986 [121) A representation of same field of a microinstruction. Contrast software created to facilitate analysis, with: two-level encoding. planning, implementation, and decision making. The software design description is single-operand instruction. See: one-address used as a medium for communicating instruction. software design information, and may be

66 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 thought of as a blueprint or model of the software development process. The process by sy stem. which user needs are translated into a (2)(IEEE Std 1016-1987 [131) A representation software product. The process involves of a software system created to facilitate translating user needs into software analysis, planning, implementation, and requirements, transforming the software decision making. A blueprint of model of requirements into design, implementing the software system. The SDD is used as the the design in code, testing the code, and primary medium for communicating sometimes, installing and checking out the software design information. software for operational use. Note: These activities may overlap or be performed itera- software development cycle. The period of tively. See also: incremental development; time that begins with the decision to develop rapid prototyping; spiral model; waterfall a software product and ends when the soft- model. ware is delivered. This cycle typically in- cludes a requirements phase, design phase, software diversity. A software development implementation phase, test phase, and some- technique in which two or more functionally times, installation and checkout phase. identical variants of a program are devel- Contrast with: software life cycle. oped from the same specification by Notes: (1) The phases listed above may over- different programmers or programming lap or be performed iteratively, depending teams with the intent of providing error upon the software development approach detection, increased reliability, additional used. documentation, or reduced probability that (2) This term is sometimes used to mean a programming or compiler errors will influ- longer period of time, either the period that ence the end results. See also: diversity. ends when the software is no longer being enhanced by the developer, or the entire software engineering. (1) The application of software life cycle. a systematic, disciplined, quantifiable ap- proach to the development, operation, and software development file (SDF). A collection maintenance of software; that is, the of material pertinent to the development of a application of engineering to software. given software unit or set of related units. (2) The study of approaches as in (1). Contents typically include the require- ments, design, technical reports, code list- software engineering environment. The ings, test plans, test results, problem reports, hardware, software, and firmware used to schedules, and notes for the units. Syn: soft- perform a software engineering effort. Typ- ware development folder; software devel- ical elements include computer equipment, opment notebook unit development folder. compilers, assemblers, operating systems, debuggers, simulators, emulators, test tools, software development folder. See: software documentation tools, and database man- development file. agement systems.

software development library. A software software feature. (1)(IEEE Std 829-1983 [51) A library containing computer readable and distinguishing characteristic of a software human readable information relevant to a item (for example, performance, portability, software development effort. Syn: project or functionality). library; program support library. Contrast (2) (IEEE Std 1008-1987 [lo]) A software with: master library; production library; characteristic specified or implied by software repository; system library. requirements documentation (for example, functionality, performance, attributes, or software development notebook See: software design constraints). development file. software item. (IEEE Std 829-1983 [51) Source software development plan (SDP). A project code, object code, job control code, control plan for a software development project. data, or a collection of these items.

67 IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF software library. A controlled collection of software quality metic. See: quality metric. software and related documentation de- signed to aid in software development, use, software repository. A software library provid- or maintenance. Types include master ing permanent, archival storage for soft- library, production library, software devel- ware and related documentation. Contrast opment library, software repository, system with: master library; production library; library. Syn: program library. software development library; system library. software life cycle. The period of time that be- gins when a software product is conceived software requirements review (SRR). (1)A and ends when the software is no longer review of the requirements specified for one available for use. The software life cycle or more software configuration items to typically includes a concept phase, require- evaluate their responsiveness to and inter- ments phase, design phase, implementation pretation of the system requirements and to phase, test phase, installation and checkout determine whether they form a satisfactory phase, operation and maintenance phase, basis for proceeding into preliminary and, sometimes, retirement phase. Note: design of the configuration items. See also: These phases may overlap or be performed system requirements review. Note: This iteratively. Contrast with: software devel- review is called software specification opment cycle. review by the US.Department of Defense. (2) A review as in (1) for any software component. EXPLORATION

REQUIREMENTS software requirements specification (SRS). (IEEE Std 1012-1986 [121) Documentation of the essential requirements (functions, performance, design constraints, and attributes) of the software and its external I TEST I interfaces. software specification review (SSR). See: software requirements review.

software test incident. (IEEE Std 1008-1987[loll Any event occurring during the execution Fig 15 of a software test that requires investi- Sample SohmLife Cycle gation.

software maintenance. See: maintenance (1). software tool. A computer program used in the development, testing, analysis, or mainte- software monitor. A software tool that executes nance of a program or its documentation. concurrently with another program and Examples include comparator, cross-refer- provides detailed information about the ence generator, decompiler, driver, editor, execution of the other program. See also: flowcharter, monitor, test case generator, hardware monitor; monitor. timing analyzer.

software product. (1) The complete set of source address. The address of a device or computer programs, procedures, and possi- storage location from which data is to bly associated documentation and data be transferred. Contrast with: destination designated for delivery to a user. address. (2) Any of the individual items in (1). source code. Computer instructions and data software quality assurance. See: quality definitions expressed in a form suitable for assurance. input to an assembler, compiler, or other IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.l2-1990 translator. Note: A source program is made preliminary and detailed design, coding, up of source code. Contrast with: object code. integration, and testing, are performed iteratively until the software is complete. source code generator. See: Code generator (2). Contrast with: waterfall model. See also: incremental development; rapid proto- source language. The language in which the typing. input to a machine-aided translation process is represented. For example, the spool. To read input data, or write output data, language used to write a computer program. to auxiliary or main storage for later pro- Contrast with: target language. cessing or output, in order to permit inpuffoutput devices to operate concurrently source program. A computer program that with job execution. Derived from the must be compiled, assembled, or otherwise acronym SPOOL for Simultaneous Periph- translated in order to be executed by a eral Output On Line. computer. Contrast with: object program. spooler. A program that initiates and controls specific address. See: absolute address. spooling. specific code. See: absolute code. SRR. (1)Acronym for software requirements review. specification. A document that specifies, in a (2) (DoD) Acronym for system requirements complete, precise, verifiable manner, the review. requirements, design, behavior, or other characteristics of a system or component, SRS. Acronym for software requirements and, often, the procedures for determining specification. whether these provisions have been satis- fied. See also: formal specification;product SSR. Acronym for software specification specification; requirements specification. review, See: software requirements review. specification change notice (SCN). A docu- stand-alone. Pertaining to hardware or ment used in configuration management to software that is capable of performing its propose, transmit, and record changes to a function without being connected to other specification. See also: configuration con- components; for example, a stand-alone trol; engineering change; notice of revi- word processing system. sion. standards. (IEEE Std 983-1986 [71) Mandatory specification language. A language, often a requirements employed and enforced to machine-processible combination of natu- prescribe a disciplined uniform approach to ral and formal language, used to express the software development, that is, mandatory requirements, design, behavior, or other conventions and practices are in fact characteristics of a system or component. standards. See also: practices; standards. For example, a design language or re- quirements specification language. Con- standby redundancy. In fault tolerance, the trast with: programming language; query use of redundant elements that are left inop- language. erative until a failure occurs in a primary element. Contrast with: active redundancy. specification tree. A diagram that depicts all of the specifications for a given system and standby time. See: idle time. shows their relationships to one another. See also: documentation tree. starting address. The address of the first instruction of a computer program in main spiral model. A model of the software devel- storage. Note: This address may or may not opment process in which the constituent be the same as the program's origin, activities, typically requirements analysis, depending upon whether there are data

69 IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF preceding the first instruction. Contrast static breakpoint. A breakpoint that can be set with: origin. See also: assembled origin; at compile time, such as entry into a given loaded origin. routine. Contrast with: dynamic break- point. See also: code bmakpoint; data break- state. (1) A condition or mode of existence that point; epilog breakpoint; programmable a system, component, or simulation may be breakpoint;pmlog breakpoint. in; for example, the pre-flight state of an aircraft navigation program or the input static dump. A dump that is produced before or state of given channel. after the execution of a computer program. (2) The values assumed at a given instant by Contrast with: dynamic dump. See also: the variables that define the characteristics change dump; memory dump; postmortem of a system, component, or simulation. dump; selective dump; snapshot dump. state data. (IEEE Std 1008-1987 [lo]) Data that static error. An error that is independent of the defines an internal state of the test unit and time-varying nature of an input. Contrast is used to establish that state or compare with with: dynamic error. existing states. status code. A code used to indicate the results state diagram. A diagram that depicts the of a computer program operation. For states that a system or component can example, a code indicating a carry, an assume, and shows the events or circum- overflow, or a parity error. Syn: condition stances that cause or result from a change code. from one state to another. step-by-stepoperation. See: single-stepoper- state transition diagram. See: state diagram. ation. statement. In a programming language, a stepwise refinement. A software development meaningful expression that defines data, technique in which data and processing specifies program actions, or directs the steps are defined broadly at first and then assembler or compiler. See also: assign- further defined with increasing detail. See ment statement; control statement; decla- also: data structure-centered design; input- ration. processoutput; modular decomposition; object-orienteddesign; rapid prototyping statement testing. Testing designed to exe- structured design; transaction analysis; cute each statement of a computer pro- transform analysis. gram. Contrast with: branch testing; path testing. stop. To terminate the execution of a compu- ter program. Syn: halt (1). Contrust with: static. Pertaining to an event or process that pause. occurs without computer program execution; for example, static analysis, static binding. storage allocation. An element of computer Contrast with: dynamic. resource allocation, consisting of assigning storage areas to specific jobs and perform- static analysis. The process of evaluating a ing related procedures, such as transfer of system or component based on its form, data between main and auxiliary storage, to structure, content, or documentation. Con- support the assignments made. See also: trast with: dynamic analysis. See also: buffer; contiguous allocation; cyclic search; inspection; walk-through. memory compaction; overlay; paging; vir- tual storage. static binding. Binding performed prior to the execution of a computer program storage breakpoint. See: data breakpoint. and not subject to change during pro- gram execution. Contrast with: dynamic storage capacity. The maximum number of binding. items that can be held in a given storage

70 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 device; usually measured in words or bytes. into smaller, more specific entities. Note: The See also: channel capacity; memory result is not necessarily the same as that capacity. shown in a call graph. Syn: hierarchy chart; program structure chart. Contrast with: call storage efficiency. The degree to which a graph. system or component performs its desig- nated functions with minimum consump- System tion of available storage. See also: execution efficiency.

Subsystem store. (1) To place or retain data in a storage Subsystem device. Q Q (2) To copy computer instructions or data from a register to internal storage or from internal storage to external storage. Con- trast with: load (2). See also: fetch; move. Program straight-line code. A sequence of computer la instructions in which there are no loops. Fig 16 straight-line coding. A programming tech- structurechart nique in which loops are avoided by stating explicitly and in full all of the instructions that would be involved in the execution of structure clash. In software design, a situation each loop. See also: unwind. in which a module must deal with two or more data sets that have incompatible data stratified language. A language that cannot be structures. See also: data structure-centered used as its own metalanguage. Examples design; order clash. include FORTRAN, COBOL. Contrast with: unstratified language. structured design. (1) Any disciplined ap- proach to software design that adheres to stress testing. Testing conducted to evaluate a specified rules based on principles such as system or component at or beyond the limits modularity, top-down design, and stepwise of its specified requirements. See also: refinement of data, system structures, and boundary value. processing steps. See also: data structure- centered design; input-process-output;mod- strong typing. A feature of some program- ular decomposition; object-oriented design; ming languages that requires the type of rapid prototyping; stepwise refinement; each data item to be declared, precludes the transaction analysis; transform analysis. application of operators to inappropriate data (2) The result of applying the approach types, and prevents the interaction of data in (1). items of incompatible types. structured program. A computer program structural testing. Testing that takes into constructed of a basic set of control struc- account the internal mechanism of a system tures, each having one entry and one exit. or component. Types include branch testing, The set of control structures typically in- path testing, statement testing. Syn: glass- cludes: sequence of two or more instruc- box testing; white-boxtesting. Contrast with: tions, conditional selection of one of two or functional testing (1). more sequences of instructions, and repeti- tion of a sequence of instructions. See also: structure chart. A diagram that identifies structured design. modules, activities, or other entities in a system or computer program and shows how structured programming. Any software de- larger or more general entities break down velopment technique that includes struc-

n IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF tured design and results in the development the subtype are the same as those of the of structured programs. original data type. See also: derived type.

structured programming language. A pro- supervisor. See: supervisory program ’ gramming language that provides the struc- tured program constructs, namely, single- supervisor state, In the operation of a computer entry-single-exit sequences, branches, and system, a state in which the supervisory loops, and facilitates the development of program is executing. This state usually structured programs. See also: block- has higher priority than, and precludes structured language. the execution of, application programs. Syn: executive state; master state; stub. (1) A skeletal or special-purpose imple- privileged state. Contrast with: problem mentation of a software module, used to State. develop or test a module that calls or is otherwise dependent on it. supervisory program. A computer program, (2) A computer program statement substitut- usually part of an operating system, that ing for the body of a software module that is controls the execution of other computer or will be defined elsewhere. programs and regulates the flow of work in a computer system. Syn: control program; subprogram. A separately compilable, exe- executive; executive program; supervisor. cutable component of a computer program. See also: supervisor state. Note: The terms “routine,” “subprogram,” and “subroutine” are defined and used support. The set of activities necessary to differently in different programming lan- ensure that an operational system or compo- guages; the preceding definition is ad- nent fulfills its original requirements vanced as a proposed standard. See also: and any subsequent modifications to those coroutine; main program; routine; subrou- requirements. For example, software or tine. hardware maintenance, user training. See also: software life cycle; system life subroutine. A routine that returns control to cycle. the program or subprogram that called it. Note: The terms “routine,” “subprogram,” support manual. A document that provides the and “subroutine” are defined and used dif- information necessary to service and ferently in different programming lan- maintain an operational system or compo- guages; the preceding definition is ad- nent throughout its life cycle. Typically vanced as a proposed standard. Contrast described are the hardware and software with: coroutine. See also: closed subroutine; that make up the system or component and open submutine. procedures for servicing, repairing, or re- programming it. Syn: maintenance man- subroutine trace. A record of all or selected ual. See also: diagnostic manual; installa- subroutines or function calls performed tion manual; operator manual; program- during the execution of a computer program mer manual; user manual. and, optionally, the values of parameters passed to and returned by each subroutine or support software. Software that aids in the de- function. Syn: call trace. See also: execu- velopment or maintenance of other software, tion trace; retrospective trace; subroutine for example, compilers, loaders, and other trace; symbolic trace; variable trace. utilities. Contrast with: application soft- ware. See also: system software. subsystem. A secondary or subordinate system with a larger system. swap. (1) An exchange of the contents of two storage areas, usually an area of main subtype. A subset of a data type, obtained by storage with an area of auxiliary storage. constraining the set of possible values of the See also: roll in; roll out. data type. Note: The operations applicable to (2) To perform an exchange as in (1).

72 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 symbol table. A table that presents program system design review (SDR). A review symbols and their corresponding addresses, conducted to evaluate the manner in which values, and other attributes. the requirements for a system have been allocated to configuration items, the system symbolic address. An address expressed as a engineering process that produced the name or label that must be translated to the allocation, the engineering planning for the absolute address of the device or storage next phase of the effort, manufacturing Iocation to be accessed. Contrast with: considerations, and the planning for absolute address. production engineering. See also: critical design review; preliminary design review. symbolic execution. A software analysis technique in which program execution is system development cycle. The period of time simulated using symbols, such as variable that begins with the decision to develop a names, rather than actual values for input system and ends when the system is data, and program outputs are expressed as delivered to its end user. Note: This term is logical or mathematical expressions sometimes used to mean a longer period of involving these symbols. time, either the period that ends when the system is no longer being enhanced, or the symbolic language. A programming lan- entire system life cycle. Contrast with: sys- guage that expresses operations and tem life cycle. See also: software develop- addresses in symbols convenient to humans ment cycle. rather than in machine language. Exam- ples are assembly language, high order system flowchart (flow chart). See: flowchart. language. Contrast with: machine lan- guage. system library. A software library containing system-resident software that can be symbolic trace. A record of the source accessed for use or incorporated into other statements and branch outcomes that are programs by reference; for example, a encountered when a computer program is macro library. Contrast with: master li- executed using symbolic, rather than actual, brary; production library; software devel- values for input data. See also: execution opment library; software repository. trace;retrospective trace; subroutine trace; variable trace. system life cycle. The period of time that begins when a system is conceived and ends syntactic error. A violation of the structural or when the system is no longer available for grammatical rules defined for a language; use. See also: system development cycle; for example, using the statement B + C = A in software life cycle. Fortran, rather than the correct A = B + C. Syn: syntax error. Contrast with: semantic system model. In computer performance eval- error. uation, a representation of a system depict- ing the relationships between workloads syntax. The structural or grammatical rules and performance measures in the system. that define how the symbols in a language See also: workload model. are to be combined to form words, phrases, expressions, and other allowable constructs. system profile. A set of measurements used in Contrast with: semantics. computer performance evaluation, describ- ing the proportion of time each of the major syntax error. See: syntactic error. resources in a computer system is busy, divided by the time that resource is synthetic address. See: generated address. availab1 e. system. A collection of components organized system requirements review (SRR). A review to accomplish a specific function or set of conducted to evaluate the completeness and functions. adequacy of the requirements defined for a

73 LEEE Std610.12-1990 IEEE STANDARD GLOSSARY OF system; to evaluate the system engineering istrative resources to plan, organize, and process that produced those requirements; to control engineering functions. assess the results of system engineering studies; and to evaluate system engineering technical standard. (IEEE Std 1002-1987[91) A plans. See also: software requirements standard that describes the characteristics of review. applying accumulated technical or man- agement skills and methods in the creation system resources chart. See: block diagram. of a product or performing a service.

system software. Software designed to facili- techniques. (IEEE Std 983-1986 [71) Technical tate the operation and maintenance of a and managerial procedures that aid in the computer system and its associated pro- evaluation and improvement of the software grams; for example, operating systems, development process. assemblers, utilities. Contrast with: appli- cation software. See also: support soft- temporal cohesion. A type of cohesion in which ware. the tasks performed by a software module are all required at a particular phase of system testing. Testing conducted on a com- program execution; for example, a module plete, integrated system to evaluate the sys- containing all of a program's initialization tem's compliance with its specified re- tasks. Contrast with: coincidental cohesion; quirements. See also: component testing; communicational cohesion; functional co- integration testing; interface testing; unit hesion; logical cohesion; procedural cohe- testing. sion; sequential cohesion.

target language. The language in which the termination construct. A program construct output from a machine-aided translation that results in a halt or exit. process is represented. For example, the language output by an assembler or com- test. (1) An activity in which a system or piler. Syn: object language. Contrast with: component is executed under specified source language. conditions, the results are observed or recorded, and an evaluation is made of target machine. (1)The computer on which a some aspect of the system or component. program is intended to execute. Contrast (2) To conduct an activity as in (1). with: host machine (1). (3) (IEEE Std 829-1983 [51) A set of one or (2) A computer being emulated by another more test cases. computer. Contrast with: host machine (2). (4) (IEEE Std 829-1983 [SI) A set of one or more test procedures. target program. See: object program. (5) (IEEE Std 829-1983 [51) A set of one or more test cases and procedures. task. (1) A sequence of instructions treated as a basic unit of work by the supervisory test bed. An environment containing the program of an operating system. hardware, instrumentation, simulators, (2) In software design, a software component software tools, and other support elements that can operate in parallel with other needed to conduct a test. software components. test case. (1) A set of test inputs, execu- taxonomy. (IEEE Std 1002-1987 [91) A scheme tion conditions, and expected results devel- that partitions a body of knowledge and oped for a particular objective, such as to defines the relationships among the pieces. exercise a particular program path or to It is used for classifying and understanding verify compliance with a specific require- the body of knowledge. ment. (2) (IEEE Std 829-1983 153) Documentation technical management. (IEEE Std 1002-1987 specifying inputs, predicted results, and a [91) The application of technical and admin- set of execution conditions for a test item.

74 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1 990 See also: test case generator; test case test incident report. A document that describes specification. an event that occurred during testing which requires further investigation. See also: test test case generator. A software tool that accepts case specification;test item transmittal re- as input source code, test criteria, specifica- port; test log; test plan; test procedure; test tions, or data structure definitions; uses Ireport. these inputs to generate test input data; and, sometimes, determines expected test item. (IEEE Std 829-1983 151) A software results. Syn: test data generator; test item which is an object of testing. generator. test item transmittal report. (IEEE Std 829-1983 test case specification. A document that speci- [51) A document that identifies one or more fies the test inputs, execution conditions, and items submitted for testing. It contains predicted results for an item to be tested. current status and location information. See Syn: test description;test specification. See also: test case specification; test incident also: test incident report; test item transmit- report; test log; test plan; test procedure; test tal report; test log; test plan; test procedure; report, test log. A chronological record of all relevant test coverage. The degree to which a given test details about the execution of a test. See also: or set of tests addresses all specified re- test case specification; test incident report; quirements for a given system or com- test item transmittal report; test plan; test ponent. pmced~testrceport. test criteria. The criteria that a system or com- test objective. (IEEE Std 1008-1987 [loll An ponent must meet in order to pass a given identified set of software features to be test. See also: acceptance criteria; pass-fail measured under specified conditions by criteria. comparing actual behavior with the required behavior described in the software documen- test data generator. See: test case generator. tation. test description. See: test case specification. test phase. The period of time in the software life cycle during which the components of a test design. (IEEE Std 829-1983[51) Documenta- software product are evaluated and inte- tion specifying the details of the test grated, and the software product is evaluated approach for a software feature or com- to determine whether or not requirements bination of software features and identify- have been satisfied. ing the associated tests. test plan. (1) (IEEE Std 829-1983 [51) A docu- test documentation. Documentation describ- ment describing the scope, approach, re- ing plans for, or results of, the testing sources, and schedule of intended test ac- of a system or component. Types include tivities. It identifies test items, the features test case specification, test incident report, to be tested, the testing tasks, who will do test log, test plan, test procedure, test each task, and any risks requiring contin- report. gency planning. (2) A document that describes the technical test driver. A software module used to invoke a and management approach to be followed for module under test and, often, provide test testing a system or component. Typical con- inputs, control and monitor execution, and tents identify the items to be tested, tasks to report test results. Syn: test harness. beperformed, responsibilities, schedulesand required resources for the testing activity. test generator. See: test case generator. See also: test case specification;test incident report; test item transmittal report; test log; test harness. See: test driver. test pmcedm; test reporti

75 IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF test procedure. (1) Detailed instructions for the of the corresponding test items. See also: test set-up, execution, and evaluation of results case specification; test incident report, test for a given test case. item transmittal report; test log; test plan; (2) A document containing a set of associ- testplXK!EdUE?;testrepXt ated instructions as in (1). (3) (IEEE Std 829-1983 153) Documentation test unit. (IEEE Std 1008-1987 [lo]) A set of one specifying a sequence of actions for the exe- or more computer program modules together cution of a test. with associated control data, (for example, Syn: test procedure specification; test script. tables), usage procedures, and operating pro- See also: test case specification;test incident cedures that satisfy the following condi- report; test item transmittal report; test log; tions: (a) All modules are from a single testplan;testreporL computer program; (b) At least one of the new or changed modules in the set has not test procedure specification. See: test proce- completed the unit test; (c) The set of mod- dure. ules together with its associated data and procedures are the sole object of a testing test readiness review (TRR). (1) A review process. conducted to evaluate preliminary test re- sults for one or more configuration items; to testability. (1)The degree to which a system or verify that the test procedures for each con- component facilitates the establishment of figuration item are complete, comply with test criteria and the performance of tests to test plans and descriptions, and satisfy test determine whether those criteria have been requirements; and to verify that a project is met. prepared to proceed to formal testing of the (2) The degree to which a requirement is Configuration items. stated in terms that permit establishment of (2) A review as in (1) for any hardware or test criteria and performance of tests to software component. determine whether those criteria have been Contrast with: code review; formal qualifi- met. cation review; design review; requirements review. testing. (1)The process of operating a system or component under specified conditions, test repeatability. An attribute of a test, indi- observing or recording the results, and cating that the same results are produced making an evaluation of some aspect of the each time the test is conducted. system or component. (2) (IEEE Std 829-1983 [51) The process of an- test report. A document that describes the con- alyzing a software item to detect the differ- duct and results of the testing carried out for ences between existing and required condi- a system or component. Syn: test summary tions (that is, bugs) and to evaluate the report. See also: test case specification;test features of the software items. incident report; test item transmittal report; See also: acceptance testing; benchmark; test log; test plan; test procedure. checkout; component testing; development testing; dynamic analysis; formal testing; test script. See: test procedure. functional testing; informal testing; inte- gration testing; interface testing; loopback test set architecture. (IEEE Std 1008-1987 [lo]) testing; mutation testing; operational test- The nested relationships between sets of test ing; performance testing; qualification test- cases that directly reflect the hierarchic ing; regression testing; stress testing; decomposition of the test objectives. structural testing; system testing; unit testing. test specification.See: test case specification. text editor. A computer program, often part test SU- report. (IEEE Std 829-1983[5]) A of a word processing system, that allows a document summarizing testing activities user to enter, alter, and view text. Syn: and results. It also contains an evaluation editor.

76 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 think time. The elapsed time between the end system by interleaving the execution of their of a prompt or message generated by an program. Note: Time sharing may be im- interactive system and the beginning of a plemented by time slicing, priority-based human user's response. See also: port-to- interrupts, or other scheduling methods. port time; response time; turnamund time. time slicing. A mode of operation in which two third generation language (3GL). See: high or more processes are each assigned a order language. small, fixed amount of continuous process- ing time on the same processor, and the thrashing. A state in which a computer system processes execute in a round-robin manner, is expending most or all of its resources on each for its allotted time, until all are overhead operations, such as swapping data completed. between main and auxiliary storage, rather than on intended computing functions. timing. The process of estimating or measur- ing the amount of execution time required three-address instruction. A computer in- for a software system or component. Con- struction that contains three address fields. trast with: sizing. For example, an instruction to add the contents of locations A and B, and place the timing analyzer. A software tool that results in location C. Contrast with: one- estimates or measures the execution time of address instruction; two-address instruc- a computer program or portion of a computer tion; four-addressinstruction; zero-address program, either by summing the execution instruction. times of the instructions along specified paths or by inserting probes at specified three-plus-one address instruction. A com- points in the program and measuring the puter instruction that contains four address execution time between probes. fields, the fourth containing the address of the instruction to be executed next. For ex- top-down. Pertaining to an activity that starts ample, an instruction to add the contents of with the highest level component of a hierar- locations A and B, place the results in loca- chy and proceeds through progressively tion C, then execute the instruction at loca- lower levels; for example, top-down design; tion D. Contrast with: one-plus-one address top-down testing. Contrast with: bottom-up. instruction;two-plus-one address instruc- See also: critical piece first. tion; four-plusaneaddress instruction. total correctness. In proof of correctness, a throughput. The amount of work that can designation indicating that a program's be performed by a computer system or output assertions follow logically from its component in a given period of time; for input assertions and processing steps, and example, number of jobs per . See also: that, in addition, the program terminates turnaround time; workload model. under all specified input conditions. Con- trast with: partial correctness. tier chart. See: call graph. trace. (1) A record of the execution of a com- time out. (1) A condition that occurs when a puter program, showing the sequence of predetermined amount of time elapses with- instructions executed, the names and values out the occurrence of an expected event. For of variables, or both. Types include execu- example, the condition that causes termina- tion trace, retrospective trace, subroutine tion of an on-line process if no user input is trace, symbolic trace, variable trace. received within a specified period of time. (2) To produce a record as in (1). (2) To experience the condition in (1). (3) To establish a relationship between two or more products of the development process; time sharing. A mode of operation that permits for example, to establish the relationship two or more users to execute computer pro- between a given requirement and the design grams concurrently on the same computer element that implements that requirement.

77 EEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF traceability. (1) The degree to which a rela- transfer. (1) To send data from one place and tionship can be established between two or receive it at another. more products of the development process, (2) To relinquish control by one process and especially products having a predecessor- assume it at another, either with expectation successor or master-subordinate relation- of return (see call) or without such expecta- ship to one another; for example, the degree tion (see jump). to which the requirements and design of a given software component match. See also: transform analysis. A software development consistency. technique in which the structure of a system (2) The degree to which each element in is derived from analyzing the flow of data a software development product establishes through the system and the transformations its reason for existing; for example, the that must be performed on the data. Syn: degree to which each element in a bubble transformation analysis; transform-cen- chart references the requirement that it tered design. See also: data structure-cen- satisfies. tered design; input-process-output;modular decomposition; object-oriented design; traceability matrix. A matrix that records the rapid prototyping; stepwise refinement; relationship between two or more products of structured design; transaction analysis. the development process; for example, a matrix that records the relationship between transform-centered design. See: transform the requirements and the design of a given analysis. software component. transformation analysis. See: transform trailer. Identification or control information analysis. placed at the end of a file or message. Contrast with: header (2). transient error. An error that occurs once, or at unpredictable intervals. See also: inter- trailing decision. A loop control that is mittent fault; random failure. executed after the loop body. Contrast with: leading decision. See also: UNTIL. translator. A computer program that trans- forms a sequence of statements expressed in transaction. In software engineering, a data one language into an equivalent sequence of element, control element, signal, event, or statements expressed in another language. change of state that causes, triggers, or See also: assembler; compiler. initiates an action or sequence of actions. transportability.See: portability. transaction analysis. A software development technique in which the structure of a system trap. (1)A conditional jump to an exception or is derived from analyzing the transactions interrupt handling routine, often automati- that the system is required to process. Syn: cally activated by hardware, with the loca- transaction-centereddesign. See also: data tion from which the jump occurred recorded. structure-centered design; input-process- (2) To perform the operation in (1). output; modular decomposition; object- oriented design; rapid prototyping stepwise TR.R. Acronym for test readiness review. refinement; structured design; transform analysis. turnaround time. The elapsed time between the submission of a job to a batch processing transaction-centered design. See: transaction system and the return of completed output. analysis. See also: port-to-port time; response time; think time. transaction matrix. A matrix that identifies possible requests for database access and turnkey. Pertaining to a hardware or software relates each request to information cate- system delivered in a complete, operational gories or elements in the database. state.

78 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 two-address instruction. A computer instruc- undirected graph. A graph (sense 2) in which tion that contains two address fields. For no direction is implied in the internode example, an instruction to add the contents connections. Contrast with: directed graph. of A to the contents of B. Syn: double-operand instruction. Contrast with: one-address in- unit. (1) A separately testable element speci- struction; three-address instruction; four- tied in the design of a computer software address instruction; zero-address instruc- component. tion. (2) A logically separable part of a computer program. two-level address. An indirect address that (3) A software component that is not specifies the storage location containing the subdivided into other components. address of the desired operand. See also: n- (4) (IEEE Std 1008-1987 [loll See: test unit. level address. Note: The terms “module,” “component,” and “unit” are often used interchangeably two-level encoding. A microprogramming or defined to be sub-elements of one another technique in which different microopera- in different ways depending upon the tions may be encoded identically into the context. The relationship of these terms is same field of a microinstruction, and the not yet standardized. one that is executed depends upon the value in another field internal or external to the unit development folder (UDF).See: software microinstruction. See also: bit steering; development file. residual control. Contrast with: single-level encoding. unit requirements documentation. (IEEE Std 1008-1987 [lo]) Documentation that sets forth two-plus-oneaddress instruction. A computer the functional, interface, performance, and instruction that contains three address design constraint requirements for a test fields, the third containing the address of the unit. instruction to be executed next. For example, an instruction to add the contents of A to the unit testing. Testing of individual hardware contents of B, then execute the instruction at or software units or groups of related units. location C. Contrast with: one-plus-one ad- See also: component testing; integration dress instruction; three-plus-one address testing; interface testing; system testing. instruction; four-plus-oneaddress instruc- tion. unpack. To recover the original form of one or more data items from packed data. Contrast type. See: data type. with: pack.

UDF. Acronym for unit development folder. unstratified language. A language that can be See: software development file. used as its own metalanguage; for example, English, German. Contrast with: stratified unconditional branch.* See: unconditional language. jump. *Deprecated. UNTIL. A single-entry, single-exit loop, in which the loop control is executed after the unconditional jump. A jump that takes place loop body. Syn: post-tested iteration. Con- regardless of execution conditions. Contrast trast with: closed loop; WHILE. See also: with: conditional jump. trailing decision. 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; Fig 17 pmtection exception. UNTIL Construct

79 IEEE Std 610.12-1990 IEEE STANDARD GLOSSARY OF unwind. In programming, to state explicitly ically described are system or component and in full all of the instructions involved capabilities, limitations, options, permitted in multiple executions of a loop. See also: inputs, expected outputs, possible error mes- straightline coding. sages, and special instructions. Note: A user manual is distinguished from an op- up. Pertaining to a system or component that is erator manual when a distinction is made operational and in service. Such a system is between those who operate a computer system either busy or idle. Contrast with: down. See (mounting tapes, etc.) and those who use the also: busy; idle. system for its intended purpose. Syn: user guide. See also: data input sheet; diagnostic up time. The period of time during which a manual; installation manual; operator system or component is operational and in manual; programmer manual; support service; that is, the sum of busy time and manual; user manual. idle time. Contrast with: down time. See also: busy time; idle time; mean time user state. See: problem state. between failures;setup time. utility. A software tool designed to perform upward compatible. Pertaining to hardware or some frequently used support function. For software that is compatible with a later or example, a program to copy magnetic more complex version of itself; for example, tapes. a program that handles files created by a later version of itself. Contrast with: down- utilization. In computer performance evalua- ward compatible. tion, a ratio representing the amount of time a system or component is busy divided by the upward compression. In software design, a time it is available. See also: busy time; idle form of demodularization in which a subor- time ;up time. dinate module is copied in-line into the body of a superordinate module. Contrast with: V&V. Acronym for verification and lateral compression; downward compres- validation. sion. validation. The process of evaluating a sys- usability. The ease with which a user can tem or component during or at the end of the learn to operate, prepare inputs for, and development process to determine whether it interpret outputs of a system or component. satisfies specified requirements. Contrast with: verification. user documentation. Documentation describ- ing the way in which a system or component value trace. See: variable trace. is to be used to obtain desired results. See also: data input sheet; user manuaL variable. A quantity or data item whose value can change; for example, the variable user friendly. Pertaining to a computer sys- Current-time. Contrast with: constant. See tem, device, program, or document designed also: global variable; local variable. with ease of use as a primary objective. variable trace. A record of the name and user guide. See: user manual. values of variables accessed or changed during the execution of a computer program. user interface. An interface that enables Syn: data-flow trace; data trace; value information to be passed between a human trace. See also: execution trace; retrospec- user and hardware or software components tive trace; subroutine trace; symbolic of a computer system. trace. user manual. A document that presents the variant. In fault tolerance, a version of a information necessary to employ a system program resulting from the application of or component to obtain desired results. Typ- software diversity. IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 VDD. Acronym for version description virtual address. In a virtual storage system, document. the address assigned to an auxiliary storage location to allow that location to be accessed verification. (1) The process of evaluating a as though it were part of main storage. system or component to determine whether Contrast with: real address. the products of a given development phase satisfy the conditions imposed at the start of virtual memory. See: virtual storage. that phase. Contrast with: validation. (2) Formal proof of program correctness. virtual storage. A storage allocation technique See: pdof correctness. in which auxiliary storage can be addressed as though it were part of main storage. Por- verification and validation (V&V). The pro- tions of a user’s program and data are cess of determining whether the require- placed in auxiliary storage, and the operat- ments for a system or component are com- ing system automatically swaps them in plete and correct, the products of each and out of main storage as needed. Syn: development phase fulfill the requirements multilevel storage, virtual memory. Con- or conditions imposed by the previous trast with: real storage. See also: virtual phase, and the final system or compon’ent address; paging (2). complies with specified requirements. See also: independent verification and valida- waiver. A written authorization to accept a tion. configuration item or other designated item which, during production or after having version. (1) An initial release or re-release been submitted for inspection, is found to of a computer software Configuration item, depart from specified requirements, but is associated with a complete compilation or nevertheless considered suitable for use as recompilation of the computer software is or after rework by an approved method. configuration item. See also: configuration control. Contrast (2) An initial release or complete re-release with: deviation; engineering change. of a document, as opposed to a revision resulting from issuing change pages to a walk-through. A static analysis technique in previous release. which a designer or programmer leads See also: configuration control; version members of the development team and other description document. interested parties through a segment of documentation or code, and the participants version description document (VDD). A ask questions and make comments about document that accompanies and identifies a possible errors, violation of development given version of a system or component. standards, and other problems. Typical contents include an inventory of system or component parts, identification of waterfall model. A model of the software de- changes incorporated into this version, and velopment process in which the constituent installation and operating information activities, typically a concept phase, re- unique to the version described. quirements phase, design phase, implemen- tation phase, test phase, and installation and vertical microinstruction. A microinstruction checkout phase, are performed in that order, that specifies one of a sequence of operations possibly with overlap but with little or no needed to carry out a machine language iteration. Contrast with: incremental devel- instruction. Note: Vertical microinstruc- opment; rapid pmtotyping; spiral modeL tions are relatively short, 12 to 24 bits, and are called “vertical” because a sequence of wearout-failure period. The period in the life such instruction, normally listed vertically cycle of a system or component during on a page, are required to carry out a single which hardware failures occur at an in- machine language instruction. Contrast creasing rate due to deterioration. Contrast with: diagonal microinstruction;horizontal with: constant-failure period; early-failure microinstruction. period. See also: bathtub curve. IEEE Std 61012-1990 IEEE STANDARD GLOSSARY OF WHILE. A single-entry, single-exit loop in workload model. A model used in computer which the loop control is executed before the performance evaluation, depicting resource loop body. Syn: pre-tested iteration. Contrast utilization and performance measures for with: closed loop; UNTIL. See also: leading anticipated or actual workloads in a com- decision. puter system. See also: system model.

write. To record data in a storage device or on a data medium. Contrast with: read.

zero-addressinstruction. A computer instruc- tion that contains no address fields. Con- trast with: one-address instruction; two- address instruction; three-address instruc- tion; four-address instruction. Fig 18 WHILE Construct white box. See: glass box. 4. Bibliography white-bog testing. See: structural testing. word. (1)A sequence of bits. or characters that [ll IEEE Std 610.1-see IEEE Std 1084-1986, is stored, addressed, transmitted, and oper- IEEE Standard Glossary of Mathematics of ated on as a unit within a given computer. Computing Terminology (ANSI) [1112 Syn: computer word. (2) An element of computer storage that [21 IEEE Std 610.5-1990, IEEE Standard can hold a sequence of bits or characters as Glossary of Data Management Termi- in (1). no 1o gy . (3) A sequence of bits or characters that has meaning and is considered an entity in [31 IEEE SM 729-1983, IEEE Standard Glossary some language; for example, a reserved of Software Engineering Terminology word in a computer language. (AN S I). See also: bit; byte. [41 IEEE Std 828-1983, IEEE Standard for Soft- working area. See: working space. ware Configuration Management Plans (ANS I). working set. In the paging method of storage allocation, the set of pages that are most [51 IEEE Std 829-1983, IEEE Standard for likely to be resident in main storage at any Software Test Documentation (ANSI). given point of a program's execution. [61 IEEE Std 830-1984, IEEE Guide for Software working space. That portion of main storage Requirements Specifications (ANSI). that is assigned to a computer program for temporary storage of data. Syn: working [71 IEEE Std 983-1986, IEEE Guide for Software area, working storage. Quality Assurance Planning (ANSI). working storage. See: working space. [81 IEEE Std 990-1987, IEEE Recommended Practice for Ada as a Program Design Lan- workload. The mix of tasks typically run on a guage (ANSI). given computer system. Major characteris- tics include input/output requirements, amount and kinds of computation, and com- - 'IEEE publications are available from the IEEE Service puter required*See Center, Insitute of Electrical and Electronics Engineers, model. 445 Hoes Lane, P.O.Box 1331, Piscataway, NJ 08855-1331.

82 IEEE SOFTWARE ENGINEERING TERMINOLOGY Std 610.12-1990 [91 IEEE Std 1002-1987, IEEE Standard Taxon- When the following documents are completed, omy for Software Engineering Standards approved, and published by IEEE, they will (ANSI). become a part of the Bibliography of this standard: DO1 IEEE Std 1008-1987, IEEE Standard for Software Unit Testing (ANSI). [141 P610.7, Draft Standard Glossary of U11 IEEE Std 1084-1986, IEEE Standard Glos- Computer Networking Terminology. sary of Mathematics of Computing Terminol- ogy (ANSI). [151 P610.8, Draft Standard Glossary of Artificial Intelligence Terminology. [121 IEEE Std 1012-1986, IEEE Standard for Software Verification and Validation Plans [I61 P610.9, Draft Standard Glossary of (ANSI). Computer Security and Privacy Termi- nology. 1131 IEEE Std 1016-1 987, IEEE Recommended Practice for Software Design Descriptions [171 P610.13, Draft Standard Glossary of (ANSI). Computer Languages Terminology. THIS PAGE WAS BLANK IN THE ORIGINAL