0% found this document useful (0 votes)
99 views

Glossary

This document provides an abbreviated glossary of software engineering terminology with informal definitions. It includes over 100 terms related to processes, activities, roles, and artifacts involved in software development. Some key terms defined include requirements analysis, design, coding, testing, maintenance, project management, and quality control.

Uploaded by

api-3834072
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
99 views

Glossary

This document provides an abbreviated glossary of software engineering terminology with informal definitions. It includes over 100 terms related to processes, activities, roles, and artifacts involved in software development. Some key terms defined include requirements analysis, design, coding, testing, maintenance, project management, and quality control.

Uploaded by

api-3834072
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 9

http://www.rspa.com/spi/glossary.

html

An Abbreviated Software
Engineering Glossary
This glossary is intended for those visitors to the RSP&A web-site who may be
unfamiliar with basic software engineering terminology. All definitions are informal.

Abstraction - (1) the level of technical detail of some representation of software; (2) a
cohesive model of data or an algorithmic procedure

Adaptive maintenance - activity associate with changing an application to make it


conform to changes in its external environment

Analysis - a set of activities that attempt to understand and model customer needs and
constraints

Analysis methods - a notation and heuristics for creating models of customer needs and
constraints

Architectural design - an activity that attempts to layout the module "floor plan" for the
software

Automated estimation tools - tools that help in estimating project cost or effort

Automatic code generation - tools that generate source code from a representation of
software that is not source code

Baseline - a point at which some deliverable produced during the software engineering
process is put under formal change control

Basis path testing - a white box test case design technique that used the algorithmic flow
of the program to design tests

Basis set - the set of tests derived using basis path testing

Behavioral modeling - representing the mode of behavior (called states) of an


application and the events that cause transitions from state to state

Beta testing - testing that is conducted by the user

Black box testing - testing that does not focus on the internal details of the program but
uses external requirements
Boundary value analysis - a black box testing method that designs test cases that
exercise data boundaries

Bounding - removing ambiguity from specification

Builds - see Clusters

Business risks - the set of potential business problems or occurrences that may cause the
project to fail

CASE - Computer-aided software engineering

see also, Tools

Cause-effect graphing - a black-box testing method

Change control - an umbrella process that enables a project team to accept, evaluate, and
act on changes in a systematic manner

Change control authority (CCA) - the person(s) who have responsibility for deciding
whether a change is to be made

Change report - provides detail on the nature of work required to make a change

Change request - provides detail on the type of change that is requested

Chief programmer team - one way of organizing project staff

Classes - a basic construct in object-oriented methods that categorizes elements of the


problem

Classic life cycle - a linear, sequential approach to process modeling

Clusters - a collection of program components (modules) that is tested as a group

Coding - the generation of source code

Complexity - a quantitative measure of a program's complexity

Component reuse - the ability to reuse a portion of a model, source code, test case, etc.

Configuration - the collection of programs, documents and data that must be controlled
when changes are to be made

Configuration audit - an activity performed by an SQA group with the intent of ensuring
that the change control process is working
Configuration control - the control of changes to programs, documents or data

Configuration items - the individual pieces of programs, documents and data that are
controlled using SCM

Configuration status reporting (CSR) - an activity that help software developer to


understand what changes have been made and why

Constraints - an restrictions or limitations placed on requirements or design

Corrective maintenance - finding and fixing defects that have been reported by users

Customer - the person or group that has requested the software and will be paying the
bill for its development

Cyclomatic complexity - a measure of the logical complexity of an algorithm, used in


white-box testing

Data design - an activity that translates the data model developed during analysis into
implementable data structures

Data dictionary - a database that contains definitions of all data items defined during
analysis; see also, Requirements dictionary

Data flow diagram (DFD) - a modeling notation that represents a functional


decomposition of a system

Data modeling - an analysis method that models data objects and their relationships

Data objects - an input or output that is user visible

Debugging - the activity associated with finding and correcting an error or defect - a lack
of conformance to requirements found in the software after delivery to the customer

Design - an activity that translates the requirements model into a more detailed model
that is the guide to implementation of the software

Design specification - a document that describes the design

Design walkthrough - a formal technical review of the design

Detail design - a design activity that focuses on the creation of an algorithm

Documentation - descriptive information

Documents - deliverables produced as part of the software engineering process


Effort - the work-time product (e.g., person-days) associated with a project

Engineering change order (ECO) - a mini-specification that describes the technical


aspects of a change

Enhancement - an extension of functional or performance requirements

Equivalence partitioning - a black-box testing method

Errors - a lack of conformance found before software is delivered to the customer

Estimation - a project planning activity that attempts to project effort and cost for a
software project

FAST - Facilitated application specification techniques, a structured meeting between


developer and customer; intent is to define basic requirements

Formal technical reviews - a structured meeting conducted by software engineering with


the intent of uncovering errors in some deliverable or work product

Function points - a measure of the utility delivered by an application

Functional decomposition - a technique used during planning, analysis and design;


creates a functional hierarchy for the software

Go, no-go decision - a point at which manager or the customer decides whether the
project should proceed

Grammatical parse - a technique that is used during analysis and intended to help
isolate basic data objects and functions

High-order tests - black-box tests conducted once the software has been integrated

Independent test group (ITG) - a group of people whose primary responsibility is


software testing

Integration testing - a testing step that constructs the software while testing it

Integration - the specific approach to integration testing

Interoperability - the degree to which one application communicates or interfaces with


another

Joint application development (JAD) - a specific FAST technique


Levels of abstraction - the degree of detail with which some representation of the
software is presented

Line-of-code metrics - measures of quality or productivity that are normalized using


lines of code produced

LOC - lines of code

Loop testing - a white box testing technique that exercises program loops

Maintainability - the degree to which a program is amenable to change

Maintenance - the activities associated with changes to software after it has been
delivered to end-users

Make-buy decision - determining whether software should be built internally, acquired,


contracted or built from reusable components

Measurement - collecting quantitative data about the software or the software


engineering process

Metrics - a specific measurement

Milestones - a point in time that is used to indicate progress during a project

Modular design - a design approach that stresses modularity

Modularity - an attribute of a design that leads to the creation of high quality program
components

Object-oriented - an approach to software development that makes use of a


classification approach and packages data and processing together

Object-oriented analysis (OOA) - a technique for defined classes of objects, their


relationships and basic structure

Object-oriented design (OOD) - a technique for translating the OOA model into an
implementation model

Objects - a named element of the problem domain containing data and processing

Outsourcing - contracting software work to a third party

Paper prototype - a paper representation of an application (e.g., story boards that


describe the interaction at a human interface)
Paradigms - the process model

PDL - program design language; a combination of natural language with programming


language-like constructs

Perfective maintenance - enhancement,

Portability - the ability to transport software from one target environment to another

Preliminary design - creates representation of the data and architecture

Procedural design - creates representations of algorithmic detail within a module

Processing narrative - a natural language description of a model (program component)

Productivity - work output per unit time

Program design language, see PDL

Project database - the place where configuration items are kept

Project Plan - a description of the management approach for a project

Project planning - the activity that creates the Project Plan

Project risks - the set of potential project problems or occurrences that may cause the
project to fail

Project scope - a statement of basic requirements of the software to be built

Project size - an indication of the overall effort to be expended or the number of people
working on the project

Project tracking - the activity that enables a manager to understand the status of a
project

Project control - the control of quality and change

Prototyping - the creation of a mock-up of an application

Quality - the degree to which a product conforms to both explicit and implicit
requirements

Quality metrics - measures of quality


Re-engineering - a series of activities that transform legacy systems (with poor
maintainability) into software that exhibits high quality

Regression testing - tests that are conducted repeated to ensure that a change has not
introduced side effects

Repository - see Project Database

Requirements analysis - a modeling activity whose objective is to understand what the


customer really wants

Resources - anything that is required to get the project done, people, hardware, materials,
information, etc.

Reusability - the ability to reuse an already-existing program component in another


application

Reusable components - configuration items that are reusable

Reverse engineering - trying to develop design models or an understanding of design


using program code as a starting point

Reviews - see formal technical reviews

Risk - a potential problem or occurrence that put a project in jeopardy

Risk analysis - a techniques for identifying and evaluating risks

Risk Management and Monitoring Plan (RMMP) - a plan for mitigating, monitoring
and managing risks

Scheduling - the activity that lays out a timeline for work to be conducted on a project

Scope - a bounded statement of what must be accomplished

Selective testing - testing only a selected set of program paths and data inputs

Side effects - errors that occur because of changes

Software - programs, documents and data

Software engineering - a discipline that encompasses the process associated with


software development, the methods used to analyze, design and test computer software,
the management techniques associated with the control and monitoring of software
projects and the tools used to support process, methods, and techniques
Software maintenance - see also, Maintenance,

Software metrics - quantitative measures of the process or the product

Software problem report - a report of a defect

Software quality - see quality

Software quality assurance (SQA) - a series of activities that assist an organization in


producing high quality software

Software Requirements Specification - a deliverable that describes all data, functional


and behavioral requirements, all constraints, and all validation requirements for software

Software testing - a set of activities conducted with the intent of finding errors in
software

Spiral model - an evolutionary software engineering paradigm

State transition diagram (STD) - a notation for behavioral modeling

Statistical quality assurance - techniques for process improvement that are based on
measurements of the product and the process

Stepwise refinement - a technique for accomplishing functional decomposition or


procedural design (also called partitioning)

Structured programming - a design method that limited design constructs to only three
basic forms and constrains program flow for better quality

Technical risks - the set of potential technical problems or occurrences that may cause
the project to fail

Test case design - a set of techniques for deriving effective test cases

Test cases, derivation of - the creation of data that can be used to uncover errors in the
software

Test plan and procedure - a description of testing strategy and tactics

Testing - a set of activities that attempt to find errors

Tools - application software used to perform software engineering tasks (e.g., design
tools, testing tools); see also CASE tools
Total quality management - a company commitment to develop a process that achieves
high quality product and customer satisfaction

Unit testing - part of the testing strategy that focuses on tests to individual program
components

User - the person who actually used to software or the product that has software
embedded within it

Validation - tests to ensure that the software conforms to its requirements

White box testing - a test case design technique that makes use of a knowledge of the
internal program logic

Work breakdown structure (WBS) - the set of work tasks required to build the
software; defined as part of the process model

You might also like