This action might not be possible to undo. Are you sure you want to continue?
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
This action might not be possible to undo. Are you sure you want to continue?
We've moved you to where you read on your other device.
Get the full title to continue reading from where you left off, or restart the preview.