Definitions in this glossary are taken from IEEE Standards 729-1983, ANSI, ISO, the software engineering literature, and common usage. This glossary is not intended to contain definitions for every term you might possibly encounter, but is instead a list of terms and concepts used to understand the Product Life Cycle. In several cases, there are different, but useful definitions for a word than the published standards, in such cases both definitions are included. Terms whose definition are special to this PLC are marked (PLC).
| The criteria a software product must meet to successfully complete a test phase or meet delivery requirements. | |
| Formal testing conducted to determine whether or not a system satisfies its acceptance criteria and to enable the customer to determine whether or not to accept the system. | |
| A quality of that which is free of error. Contrast with precision. | |
| |
| The examination of an algorithm to determine its correctness with respect to its intended use, to determine its operational characteristics, or to understand it more fully in order to modify, simplify, or improve it. | |
| A development milestone at which the feature set is frozen and the product is fully functional and documented. | |
| Same as requirements phase. | |
| American National Standards Institute | |
| Application Programmer's Interface. This is the documentation as to how to use (make calls or pass data) to an externally supplied module or component. | |
| |
| See program architecture. | |
| An independent review for the purpose of assessing compliance with software requirements, specifications, baselines, standards, procedures, instructions, codes, and contractual and licensing requirements. See also code audit. | |
| A specification or product that has been formally reviewed and agreed upon, that thereafter serves as the basis for further development, and that can be changed only through formal change control procedures. | |
| A development milestone where the User Interface is frozen and the product is highly stable. | |
| Pertaining to an approach that starts with the lowest level software components of a hierarchy and proceeds through progressively higher levels to the top level component; for example, bottom-up design, bottom-up programming, bottom-up testing. Contrast with top-down. | |
| The design of a system starting with the most basic or primitive components and proceeding to higher level components that use the lower level ones. Contrast with top-down design. | |
| The basic unit of problem detection and reporting for a product. A bug comes into existence when a person reports a problem with a product currently being developed. Bugs are rated according to severity and likelihood of occurrence. See fault. | |
| An operational version of a software product incorporating a specific subset of the capabilities that the final product will include. | |
| A compiling and linking of the product. | |
| The process by which a change is proposed, evaluated, approved or rejected, scheduled, and tracked. | |
| In an object oriented methodology, a set of objects that share a common structure and a common behavior. | |
| Part of the notation of object-oriented design, used to show the existence of classes and their relationships in the logical design of a system. A class diagram may represent all or part of the class structure of a system. | |
| A set of unambiguous rules specifying what the computer can do. See also source code. | |
| An independent review of source code by a person, team, or tool to verify compliance with software design documentation and programming standards. Correctness and efficiency may also be evaluated. See also audit, static analysis, inspection, walk-through. | |
| A development milestone where the product is ready for final testing before Engineering Release. | |
| See inspection. | |
| See walk-through. | |
| The degree to which the tasks performed by a single program module are functionally related. Contrast with coupling. | |
| To translate a high order language program(source code) into its relocatable or absolute machine code equivalent(object code). | |
| The degree of complication of a system or system component, determined by such factors as the number and intricacy of interfaces, the number and intricacy of conditional branches, the degree of nesting, the types of data structures, and other system characteristics. | |
| |
| Source code that has been compiled by a different team and made available as a self contained sub-system to the product team. Examples are Core Code, Install, and Filters. | |
| The Concept Approval milestone is when decision makers review product concepts and determine funding levels to Project Approval. | |
| |
| The process of verifying that all required configuration items have been produced, that the current version agrees with specified requirements, that the technical documentation completely and accurately describes the configuration items, and that all change requests have been resolved. | |
| The process of evaluating, approving or disapproving, and coordinating changes to configuration items after formal establishment of their configuration identification. | |
| A collection of hardware or software elements treated as a unit for the purpose of configuration management. | |
| The process of identifying and defining the configuration items in a system, controlling the release and change of these items throughout the system life cycle, recording and reporting the status of configuration items and change requests, and verifying the completeness and correctness of configuration items. | |
| |
| A measure of the interdependence among modules in a computer program. Contrast with cohesion. | |
| Pertaining to an approach to software development that focuses on implementing the most critical aspects of a software system first. The critical piece may be defined in terms of services provided, degree of risk, difficulty, or some other criterion. | |
| The person who authorizes the purchase of or buys, (or for internal products commits their team to use) the product. See also user. | |
| |
| In structured programming, a graphic representation of a system. Synonymous with data flow graph, data flow chart. | |
| The process of locating, analyzing, and correcting suspected bugs. Contrast with testing. | |
| See bug and fault. | |
| A chart used to predict the number of bugs (or defects) that will be found before a product is released. | |
| The procedure used to log defects or bugs along with their status and resolutions. | |
| See requirements phase. | |
| An item or feature which is due at an assigned milestone. | |
| The point in the software development cycle at which a product is released for operational use. | |
| The point at which a work product is turned over to another group; such as, the Octagon A4 build is given to SQA. | |
| |
| |
| See inspection. | |
| A language with special constructs and, sometimes, verification protocols used to develop, analyze, and document a design. | |
| A systematic approach to creating a design, consisting of the ordered application of a specific collection of tools, techniques, and guidelines. | |
| The period of time in the software life cycle during which the designs for architecture, software components, interfaces, and data are created, documented, and verified to satisfy requirements. | |
| Any requirement that impacts or constrains the design of a software system or software system component; for example, functional requirements, physical requirements, performance requirements, software development standards, software quality assurance standards. See also requirements specification. | |
| A formal review of an existing or proposed design for the purpose of detection and remedy of problems that could affect fitness-for-use and environmental aspects of the product, process or service, and/or for identification of potential improvements of performance, safety and economic aspects. | |
| A specification that documents the design of a system or system component; for example, a software configuration item. Typical contents include system or component algorithms, control logic, data structures, data set-use information, input/output formats and interface descriptions. See requirements specifications. | |
| |
| See software development cycle. | |
| A systematic approach to the creation of software that defines development phases and specifies the activities, products, verification procedures, and completion criteria for each phase. | |
| The media used to distribute the product; for example 3.5 inch floppy disks and CD-ROM are two such media. | |
| |
| The process of evaluating a program by executing the program and observing the results. Contrast with static analysis. | |
| A development milestone where the product is complete and ready to be sent to customers and users. | |
| A discrepancy between a computed, observed, or measured value or condition and the true, specified, or theoretically correct value or condition. Contrast with failure, fault. | |
| |
| |
| A specification written and approved in accordance with established standards. | |
| The process of conducting testing activities and reporting results in accordance with an approved test plan. | |
| A method of designing a system by breaking it down into its components in such a way that the components correspond directly to system functions and sub-functions. | |
| The specification of the working relationships among the parts of a data processing system. See preliminary design. | |
| A specification that defines the functions that a system or system component must perform. | |
| Institute of Electrical and Electronic Engineers | |
| The process of turning a design into a product. In the case of a software product, this would be writing and debugging the code. | |
| A formal evaluation technique in which software requirements, design, or code are examined in detail by a person or group with the author to detect problems. Contrast with walk-through. See also code audit. | |
| The files that will be copied to distribution media for product distribution. | |
| The process of combining software elements, hardware elements, or both into an overall system. | |
| An orderly progression of testing in which software elements, hardware elements or both are combined and tested until the entire system has been integrated. | |
| |
| See API and User Interface. | |
| A requirement that specifies a hardware, software, or database element with which a system or system component must interface, or that sets forth constraints on formats, timing, or other factors caused by such an interface. | |
| A specification that sets forth the interface requirements for a system of or system component. | |
| Testing conducted to ensure that program or system components pass information or pass control correctly to one another. | |
| International Standards Organization | |
| See software librarian. | |
| See software life cycle, development life cycle, and product life cycle. | |
| The theoretical basis used to plan the strategy for developing a product; two examples, the waterfall model and the spiral model. | |
| To repair, change, or add to a software product. | |
| The ease with which software can be changed and updated. | |
| A scheduled event for which some project member or manager is held accountable and that is used to measure progress; for example, a formal review, issuance of a specification, product delivery. | |
| |
| |
| A method of designing a system by breaking it down into modules. | |
| The extent to which software is composed of discrete components such that a change to one component has minimal impact on other components. | |
| |
| Mean Time Between Failure. | |
| An object is a software "package" that contains a collection of related procedures and data. | |
| Machine readable instructions derived by compiling source code. | |
| Part of the notation of object-oriented design, used to show the existence of objects and their relationships in the logical design of a system. | |
| A method of analysis in which requirements are examined from the perspective of objects found in the problem. | |
| A method of design encompassing the process of object-oriented decomposition; specifically, this notation includes class diagrams, object diagrams, and process diagrams. | |
| A method of implementation in which programs are organized as cooperative collections of objects. | |
| A measure of the ability of a computer system or subsystem to perform its functions; for example, response time, throughput, number of transactions. | |
| A requirement that specifies a performance characteristic that a system or system component must possess; for example speed, accuracy, frequency. | |
| A specification which sets forth the performance requirements for a system or system component. | |
| The degree of discrimination with which a quantity is stated; for example, a three-digit numeral discriminates among 1000 possibilities. Contrast with accuracy. | |
See also design analysis, functional design. | |
| In a computer system, a unique, finite course of events defined by its purpose or by its effect, achieved under given conditions. | |
| A product is the tangible result of any process or work group. This includes, but is not limited to, shrink-wrapped or other software products, software components, support services, and task force deliverables. | |
| A process which defines the phases of the development and deployment of a product. | |
| A group of people representing different disciplines who manage a project. | |
| A measure of effort per unit of time. | |
| |
| The structure and relationships among the components and/or modules of a computer program. The program architecture may also include the program's interface with its operating environment. | |
| A group of people and other resources organized to complete a task. | |
| A formal approval by upper management for the continuation and funding for a project. | |
| A central repository of written material such as memos, plans, technical reports, etc., pertaining to a project. See the Project Completion Milestone Checklist in the PLC for a complete list of items required in the project folder. Synonymous with project file, project notebook. | |
| A management document describing the approach that will be taken for a project. The plan typically describes the work to be done, the resources required, the methods to be used, the configuration management and quality assurance procedures to be followed, the schedules to be met, the project organization, etc. | |
| A method for determining the user's requirements. A quick and dirty product, created specifically to test ideas out and get feedback quickly, used to refine requirements and then be discarded. | |
| A combination of programming language and natural language used for computer program design. | |
| |
| Quality means continually improving our processes by applying optimum quality practices. Quality is a process that involves looking for, identifying, and removing the causes of defects from the product. | |
| A set of distribution media that is ready to be duplicated. | |
| The ability of an item to perform a specific function under stated conditions for a stated period of time. | |
| |
| |
| The period of time in the software life cycle during which the requirements for a software product, such as the functional and performance capabilities, are defined and documented. | |
| A specification that sets forth the requirements for a system or system component; for example, a software configuration item. Typically included are functional requirements, performance requirements, interface requirements, design requirements, and development standards. | |
| The process of examining a design, code, or other work products with the intent of finding defects.. | |
| The process of identifying potential problems and the associated likelihood of those problems. | |
| The process of determining the underlying reasons an error, fault, failure, or bug occurred. The concern is not how to fix the problem but to discover why it occurred and prevent this type of problem from occurring in the future. | |
| Computer programs, procedures, rules, and possible associated documentation and data pertaining to the operation of a computer system. | |
| The period of time that begins with the decision to develop a software product and ends when the product is delivered. This cycle typically includes a requirements phase, design phase, implementation phase, test phase, and sometimes, installation and checkout phase. Contrast with software life cycle. | |
| A person responsible for establishing, controlling, and maintaining a software library. | |
| A controlled collection of software and related documentation designed to aid in software development, use, or maintenance. Library material includes reusable software components, architectures, specifications, standards documents, and software utilities. | |
| The period of time that starts when a software product is conceived and ends when the product is no longer supported. The software life cycle typically includes a requirements phase, design phase, implementation phase, test phase, installation and checkout phase, operation and maintenance phase, and sometimes, retirement phase. Contrast with software development cycle. | |
| |
| Programming statements required for a product. This is a subset of the source files. Source code does not include make files, install scripts resource files, or batch files. Source code is translated into executable code. | |
| All files containing programming statements required for a product. These include header files, install scripts, make files, icons, bitmaps, resource files, and batch files. | |
| |
| Software Quality Assurance. | |
| The process of evaluating a program without executing the program. Contrast with dynamic analysis. | |
| A disciplined approach to software design that adheres to a specified set of rules based on principles such as top-down design, stepwise refinement, and data flow analysis. | |
| |
| A dummy program module used during the development and testing of a program. | |
| |
| Something which must be done. Usually, the smallest unit of work which can be scheduled or defined. | |
| The period of time in the software life cycle during which the components of a software product are evaluated and integrated, and the software product is evaluated to determine whether or not requirements have been satisfied. | |
| A document prescribing the approach to be taken for intended testing activities. The plan typically identifies the items to be tested, the testing to be performed, test schedules, personnel requirements, reporting requirements, evaluation criteria, and any risk requiring contingency planning. | |
| Detailed instructions for the setup, operation, and evaluation of results for a given test. A set of associated procedures is often combined to form a test procedures document. | |
| The process of exercising or evaluating a system or system component by manual or automated means to verify that it satisfies specified requirements or to identify differences between expected and actual results. Compare with debugging. | |
| Testware includes test strategies, procedures, test cases, test drivers, scripts, and files. | |
| Pertaining to an approach that starts with the highest level component of a hierarchy and proceeds through progressively lower levels; for example, top-down design, top-down programming, top-down testing. Contrast with bottom-up. | |
| The process of designing a system by identifying its major components, decomposing them into their lower level components, and iterating until the desired level of detail is achieved. Contrast with bottom-up design. | |
| The testing of a module. | |
| The person who actually uses the product. Contrast with customer. | |
| That portion of the external interface which specifies how the program will respond to human inputs. The "look and feel" of the program. | |
| The process of evaluating software at the end of the software development process to ensure compliance with software requirements. | |
| The process of determining whether or not the products of a given phase of the software development cycle fulfill the requirements of that phase. See also validation. | |
| |
| A review process in which a designer or programmer leads one or more people through a segment of design or code that he or she has written, while the other members ask questions and make comments about technique, style, possible errors, violations of development standards, and other problems. Contrast with inspections. | |
| A simple model for implementing a software life cycle. |