Home

  About Us

  Products

  Process Models

  SE Resources

  Commentary

  Contact us

Breaking News!

A new blog ...

visit OnCenter, Roger Pressman's running commentary on the world at large

A new edition ... the 7th edition of Software Engineering is available now

A new book ... Roger Pressman and David Lowe on Web Engineering

A first novel ... Roger Pressman's first novel is a technothriller -- The Aymara Bridge

A new curriculum! RSP&A has partnered with QAI to develop a comprehensive Internet-based software engineering curriculum.

A redesigned site! ... we've done a major redesign and added many new features for 2009 - 2010

 
Software Engineering Resources


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

Action (also called Software engineering action) - a named collection of software engineering tasks (e.g., "interface design") that occurs within a software engineering activity

Activity (also called Software engineering activity) - see Framework activity

Adaptive maintenance - activity associate with changing an application to make it conform to changes in its external environment

Aesthetic design - a Web engineering action that focuses on the aesthetics (e.g., the artistic elements) of a WebApp (often encompasses graphic design)

Agile development (also referred to as agile process model) - an adapted version of software engineering that emphasizes customer communication, incremental software delivery, informal methods and work products, and highly motivated teams.

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

Architecture - the overall structure of software components, the data and/or content that components manipulate, and the relationships between them

Aspect-oriented development - a development approach that emphasizes "concerns" (also called "aspectual requirements" that incorporate features, functions and information content) that cut across multiple system functions

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 management - a set of software engineering actions that helps ensure that changes are properly identified, controlled, and reported

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

Cohesion - an informal measure of the degree to which a software component implements a single, focused function

Complexity - a quantitative measure of a program's complexity

Component (also called Software component) - a named, modular building block for computer software

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

Coupling - an informal measure of the degree to which a software component is connected to other components, to data, and to the external environment

CRC (class-responsibility-collaborator) modeling - an object-oriented modeling method that identifies and organizes classes are are relevant to a system

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

Data warehouse - a large, independent database that has access to databases that serve many different applications that are required by a business

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

Defect amplification - when a defect is introduced early in the software process and remains undetected, it often is amplified into multiple defects later in the software process

Defect removal efficiency (DRE) - a nondimension ratio (between 0 and 1) that provides an indication of the degree to which errors are removed from software before it is released to end-users

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

Domain analysis - an object-oriented software engineering activity that attempts to identify classes that are relevant to an entire application domain, rather than a specific application

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

Extreme programming - an agile process model that emphasizes scenario-based planning, incremental delivery, refactoring, pair programming and continuous testing.

Factoring - a technique that distributes control and work in a top-down manner within a software architecture (used a part of structured analysis)

FAST - Facilitated application specification techniques, a structured meeting between developer and customer; intent is to define basic requirements

Formal methods - a software engineering approach in which specification and design are described using mathematically-based formal notation

Formal technical reviews - a structured meeting conducted by software engineering with the intent of uncovering errors in some deliverable or work product

Formulation - a Web engineering action that identifies business need, describes WebApp objectives, defines major features and functions, and establishes mechanisms for requirements gathering

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

GQM (Goal, Question, Metric) paradigm - a technique for defining meaningful metrics for any part of the software process

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

Interface design - a software engineering action that establishes the structure and workflow for a user interface; follows three "golden rules:" place the user in control, reduce the user's memory leoad, make the interface consistent.

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

ISO 9001:2000 - a quality assurance standard that applies to software engineering

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

Load testing - a testing task that determines how software (often a WebApp) will respond to various loading conditions

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

Navigation analysis - a Web engineering action that establishes how a user will navigate between various elements (e.g., content, functions) of a WebApp

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

OCL (Object Constraint Language) - a supplement to UML, this formal language allows a software engineer to construct unambiguous statements about the characteristics of various design model elements

Outsourcing - contracting software work to a third party

Pair programming - two people work together (side-by-side) to design and construct a software component, providing real-time problem solving and quality control.

Paper prototype - a paper representation of an application (e.g., story boards that describe the interaction at a human interface)

Paradigms - the process model

Patterns - a stylized description or characterization of a software problem or capability and/or the manner in which a solution to the problem or capability may be characterized, applied, and implemented

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

Process framework - a relatively small set of fundamental software engineering activities that define a software process

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 function deployment (QFD) - a technique that translates the needs of a customer in technical requirements for software by assessing the value of each requirement

Quality management - a set of software engineering actions that helps ensure that software is built in a way that achieves high quality

Quality metrics - measures of quality

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

Refactoring - changing software in a way that improves its internal structure but does not change it external behavior; often conducted iteratively as design evolves into code.

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

Reliability - a measure of the degree to which software operates reliably over some period of time

Repository - see Project Database

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

Requirements engineering - the activities required to elicit, elaborate, negotiate, specify, and validate system or software requirements

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

Security - the ability of software to operate in a manner that is secure from internal or external attack

Security testing - testing tasks that probe the vulnerability of both client-side and server-side software

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

Side effects - errors that occur because of changes

Six sigma - a widely used strategy for statistical quality assurance

Smoke testing - an integration testing approach that constructs and tests software on a daily basis

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 process improvement (SPI) - a set of software engineering activities that attempt to improve the state of software engineering practice within an organization

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 safety - an SQA activity that focuses on the identification and assessment of potential hazard that may have a negative impact on the operation of software

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

Spiral model - an evolutionary software engineering paradigm

Stakeholders - any person of group that has a stake in the successful completion of a software project

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)

Stress testing - a testing task that determines how software responds when it is forced to meet or exceed operational limits

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

System engineering - focuses on the analysis and design of all elements of a complete product, service, or technology for the transformation of information or control

Task analysis - a software engineering action that is conducted as part of user interface design; intended to better understand how a user is to interact with a system

Task set - a collection fo software engineering tasks that are required to complete an activity or action that is part of a software process framework

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

Time-boxing - a project scheduling and control technique that establishes time boundaries for the completion of a specific project task

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

UML (Unified Modeling Language) - a comprehensive diagrammatic notation for the analysis and design of software

Unified process - a "use-case driven, architecture-centric, iterative and incremental" software process that emphasizes the use of UML notation

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

Usability - An informal measure of the ease with which a user interface can be learned and applied with efficiency and without errors

Use-case - a written description that defines a very specific interaction between a user and a system, often (but not always) written in the form of a usage scenario

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

User hierarchy - a hierarchical representation of the categories of users that will interact with any type of software

User-story - a usage scenario that is used as part of Extreme programming

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

WebApps (Web Applications) - any application that delivers meaningful content or functionality to end users via the Web.

Web engineering - the application of software engineering principles, concepts, and methods (or adaptations of them) to the development of Web-based applications or systems.

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

Work flow - the sequence of tasks that are required to accomplish some activity or action; often (but not always) used in conjunction with software process models

Work product - any cohesive and persistent information that is produced as a consequence of one or more software engineering actions of tasks


Site search! We've added links to a search engine that will enable you to search our entire site for information you need. Enter the appropriate word or phrase below.

PicoSearch



Home About us Products Product Models SE Resources Commentary Contact us

Web site and all contents © R.S. Pressman & Associates, Inc. 2001 - 2010, All rights reserved.
Free website templates