Skip to ContentGo to accessibility pageKeyboard shortcuts menu
OpenStax Logo

Key Terms

acceptance testing
process used to determine whether the software solution fulfills the customer’s expectations, also called user acceptance testing
accessibility testing
subset of usability testing that focuses specifically on the needs of users with disabilities
Agile Software Development Ecosystem (ASDE)
Agile SDLC frameworks and methods that emphasize the difficulty of predicting future needs and thus avoid creating long-term plans and fixed processes so developers can instead collaborate with customers and adjust to their current needs
application software
software that enables you to fulfill common tasks such as creating a text document, drawing a picture, or playing music
architecture management
helps improve the architectural design while it is under development
automated testing
form of testing that uses software tools to check functionality of a software system or some of its parts; this allows for repeating tests without requiring repeated effort on the part of the tester
availability
measure of how busy a system is when a user attempts to use it
black box testing
manner of testing where the tests are based on the requirements and the functionality of what is being tested without the need to focus on the code itself; input-output testing, specification-based testing, and behavioral testing
bug
issue or error with software programming
bug tracking system
aids in the tracking and resolution of fixing issues with software
closed-source
form of software licensing that prohibits access to underlying source code; this type of software is typically developed for organizations or for software that is meant to be sold
code coverage
measurement of the percentage of code that is activated or reviewed by unit tests
code review
process whereby the source code written by one developer is manually inspected by another developer or a team of reviewers
construction phase
framework activity in which the design documents are used to write corresponding source code in a programming language and to create any supporting assets
containerized
software packaged in such a way that it can run on different computer systems easily
crosscutting activity
(also: umbrella activity) activity that crosscuts the entire software development process but is not part of the main building steps themselves
debugger
program that assists in detecting and correcting bugs; it does this by allowing the user to pause program execution at any statement, view the state of the program at that moment, before allowing the computer to continue until the next statement at which they want to pause
deployment
framework activity that involves making the developed software solution available to users
design pattern
reusable solution to a design problem that software engineers repeatedly encounter while architecting and designing systems
detail-level design (DLD)
focuses on detailing or expanding upon the HLD; as part of the DLD, every element of a system is provided with detailed specifications, and the logic for each component within each module of a system solution is determined
DevOps model
Agile software process model that combines practices of software development and operations and uses a short development life cycle and continuous delivery to achieve high-quality software products
dynamic quality
nonfunctional feature that relates to the qualitative behavior of software while it is in use, which means that it also depends on the hardware that the system runs on
elaboration phase
framework activity that involves further analyzing the requirements to produce design models of the system to be developed
embedded software
software that is integrated with hardware and can include both application and system software features
extensibility
measure of the amount of work and cost required to add new features to software
flexibility
measure of the amount of work and cost required to make changes to a system when requirements change
functional requirement
based on expectations of the user for the inherent characteristics of the software
gray box testing
manner of testing in which the person who designs the test has a partial knowledge of code structure and understands the intended design of the software; it is a hybrid of white box and black box testing
high-level design (HLD)
focuses on providing a general description of the overall system design, and can include information on the overall aspects of a system, including its architecture, data, systems, services, and platforms as well as the relationships among various modules and components
inception phase
framework activity that involves focusing on the gathering and refinement (i.e., definition) as well as the management of functional and nonfunctional requirements, which is also known as requirements engineering
incremental model
software process model in which software development is divided into modules, and each module focuses on a smaller set of requirements based on an overall business plan
legacy software
software that has been written in the past, relies on obsolete technology, and is still in use today
line coverage
type of code coverage that measures the percentage of activated lines of source code that are tested in a unit test
maintainability
measure of the amount of work required to make changes to a software system
maintenance
process of updating software after it is deployed
manual testing
form of testing where a person must run the software system, provide any input, and manually check all output; repeating tests requires these efforts to be repeated by the tester
nonfunctional requirement
describes a desired quality feature and covers aspects such as flexibility, maintainability, performance, portability, reliability, scalability, security, and more
open-source
form of software licensing that provides access to the underlying code and generally allows the code to be reused and modified; also known as free and open-source (FOSS)
operating system
software that controls and provides access to the computer’s basic functionality
path coverage
type of code coverage that measures the percentage of paths through source code that you go through in a unit test
pattern
high-level concept that supports the idea of reuse and provides reusable solutions to problems often encountered when building software
performance
measure of response time as seen by the user
physical design
graphical representation of the method for effectively implementing what was determined in the logical design of a software solution
portability
measure of the amount of work and cost required to migrate software solutions to a new platform, such as a new operating system
prescriptive process model
advocates an orderly approach to software engineering that involves following a prescribed set of activities in a continuous manner; in contrast to Agile development
profiler
program that performs dynamic program analysis that can be used to optimize or otherwise streamline code
prototyping model
software process model that requires the quick creation of a mock-up (or demo) of the expected final product doing what it is expected to do so that end users may provide feedback; also known as RAD (Rapid Application Development)
refactoring
process of restructuring source code without changing its functionality
requirements modeling
software engineering action that is part of the inception phase and focuses on the analysis/decomposition of software requirements
scalability
measure of the amount of work and cost required to modify a system to provide higher throughput
scenario
specific instance of operational flow within a use case that is focused on understanding a specific action
Scrum
type of Agile software development model
security
measure of confidence that data is protected from unauthorized disclosure and that systems are protected from unauthorized access
software architecture
description of the overall structure of a software system, its major components, and their interrelationships
software design
engineering design task set in which the abstraction and refinement of requirements are formed into a specification that can be used in the creation of a software solution
software development life cycle (SDLC)
structured set of framework activities required to develop a software solution based on a set of requirements
software license
documentation that determines whether an organization’s source code and functionality can be used by others without permission
software process improvement
process of transforming the existing approach to software development into something that is more focused, more repeatable, more reliable (in terms of the quality of the product produced and the timeliness of delivery), and more cost-effective
Software Quality Management (SQM)
focuses on the development and management of the quality of the solution being developed
spiral model
software process model that is a combination of the waterfall model with an iterative model approach and that focuses on reducing risk within a project
sprint
fixed-length workflow event that is part of Agile software process development and typically runs one to four weeks
statement coverage
type of code coverage that measures the percentage of statements that are activated at least once when you run all unit tests
static quality
nonfunctional feature that is unchangeable and thus might be associated with the source code or with legal or project-environment specific requirements
system software
software that enables you to control hardware and provides an environment in which other software can run
system testing
focuses on the complete and fully integrated software product to make sure the complete software solution works on the whole as expected
test-driven development (TDD)
process where developers write tests before they write code
throughput
measure of the total amount of input data that may flow through a system; it is different from performance, which measures how fast a system can perform its functions
traditional process model
process framework that encompasses four framework (i.e., generic) activities that are also known as phases: inception, elaboration, construction, and deployment
umbrella activity
(also: crosscutting activity) activity that crosscuts the entire software development process but is not part of the main building steps themselves
Unified Modeling Language (UML)
visual modeling language that can be used to capture the result of software analysis and design
Unified Process (UP) model
software process model in which the development of a software system is divided into four primary phases (inception, elaboration, construction, and transition), each of which involves multiple iterations
unit testing
tests individual units of code, such as methods and functions, and is usually done by developers during the development of the software or when updates are made
usability
measure of how intuitive the user interface is
usability testing
confirms that the software being developed not only meets the requirements that were set by the user, but is also easy and intuitive for the user to use
use case
describes how software system is expected to be employed by users to accomplish a goal or requirement
user interface/user experience (UI/UX)
part of computer programming that is concerned with how information is presented to the user and how the user can interact with a program
user story
generic explanation aimed at the user to tell them how a software feature works
V-model
software development process model that is similar to the waterfall model in that it is a continuous prescriptive model, but it is associated with a verification or validation testing step/phase, and thus also known as the verification and validation model
validation
tests that the software solution conforms to the requirements and, therefore, does what the user wants it to do
verification
tests that the software solution functions without errors
version control system
tool used to store the history of changes to source code and facilitates collaboration of multiple developers
waterfall model
continuous prescriptive software process model in which phases “flow” into another the way water flows from the top of a waterfall down to the bottom
white box testing
manner of testing where the tester uses the source code so they can develop tests that verify that the internal structure of the item being tested works properly; also known as glass box, clear box, and structural testing
Citation/Attribution

This book may not be used in the training of large language models or otherwise be ingested into large language models or generative AI offerings without OpenStax's permission.

Want to cite, share, or modify this book? This book uses the Creative Commons Attribution License and you must attribute OpenStax.

Attribution information
  • If you are redistributing all or part of this book in a print format, then you must include on every physical page the following attribution:
    Access for free at https://openstax.org/books/introduction-computer-science/pages/1-introduction
  • If you are redistributing all or part of this book in a digital format, then you must include on every digital page view the following attribution:
    Access for free at https://openstax.org/books/introduction-computer-science/pages/1-introduction
Citation information

© Oct 29, 2024 OpenStax. Textbook content produced by OpenStax is licensed under a Creative Commons Attribution License . The OpenStax name, OpenStax logo, OpenStax book covers, OpenStax CNX name, and OpenStax CNX logo are not subject to the Creative Commons license and may not be reproduced without the prior and express written consent of Rice University.