PASC study materials
PASC study resources

PASC flashcards

PASC · Build recall with a focused review session.

36 cards. Read the term and the definition here. The deck at the top of this page is optional.

Functional requirement
A statement of a service or behavior the system must provide, describing what the software shall do in response to given inputs or events.
Non-functional requirement
A constraint on how the system performs its functions, such as performance, security, usability, reliability, or maintainability targets, often expressed as measurable quality attributes.
MoSCoW prioritization
A requirements prioritization scheme classifying items as Must have, Should have, Could have, and Won't have for a specific delivery, helping scope releases under fixed constraints.
Requirements traceability matrix
A table linking each requirement to its source, design elements, code modules, and test cases, used to detect uncovered requirements and orphaned artifacts.
Use case
A description of a sequence of interactions between an actor and a system that yields an observable result of value to the actor, including main and alternate flows.
Coupling and cohesion
Coupling measures interdependence between modules and should be low; cohesion measures relatedness of responsibilities within a module and should be high.
Single responsibility principle
A SOLID principle stating that a class should have only one reason to change, meaning it should encapsulate one cohesive set of responsibilities.
Dependency inversion principle
A SOLID principle stating that high-level modules should not depend on low-level modules; both should depend on abstractions, and abstractions should not depend on details.
Layered architecture
An architectural style organizing components into layers where each layer provides services to the layer above and depends only on layers below, promoting replaceability and separation.
Observer pattern
A behavioral design pattern defining a one-to-many dependency so that when a subject changes state, all registered observers are notified and updated automatically.
MVC architecture
A pattern separating an application into model (data and logic), view (presentation), and controller (input handling), allowing independent evolution of user interface and core logic.
Code smell
A surface symptom in source code, such as long methods, duplicated logic, or large classes, that suggests a deeper design problem warranting refactoring.
Refactoring
A disciplined restructuring of code that improves internal structure without changing external behavior, typically safeguarded by automated regression tests.
DRY principle
The principle that every piece of knowledge or logic should have a single authoritative representation, avoiding duplicated code that can diverge and cause inconsistent behavior.
Defensive programming
A construction practice that validates inputs and handles error conditions explicitly, so code remains correct even when callers violate expected preconditions.
Static analysis
Automated examination of source code without executing it, detecting issues such as null dereferences, unused variables, and style or security violations.
Boundary value analysis
A black-box test technique selecting inputs at the edges of valid ranges (minimum, maximum, just inside and outside), where defects most often cluster.
Equivalence partitioning
A black-box technique dividing inputs into classes treated identically by the software, so one representative value per class is sufficient for testing.
Regression testing
Re-execution of existing test suites after changes to confirm that previously working functionality remains intact and no new defects were introduced.
Statement versus branch coverage
Statement coverage measures executed statements; branch coverage measures executed decision outcomes. Branch coverage subsumes statement coverage and is generally stronger.
Test oracle
The mechanism or source of expected results used to determine whether an observed test outcome passes or fails, such as a specification or reference implementation.
Configuration item
Any artifact placed under configuration control, including source code, build scripts, requirements documents, and test data, each versioned and tracked.
Baseline
A formally approved and fixed configuration of one or more configuration items that serves as a reference point for subsequent development and change control.
Semantic versioning
A versioning scheme MAJOR.MINOR.PATCH where MAJOR signals incompatible changes, MINOR adds backward-compatible features, and PATCH delivers backward-compatible fixes.
Continuous delivery
A practice keeping software in a continuously deployable state through automated build, test, and release pipelines, with deployment to production requiring a manual decision.
Critical path
The longest sequence of dependent project tasks, determining the minimum possible project duration; tasks on it have zero float or slack.
Earned value CPI and SPI
Cost performance index equals earned value divided by actual cost; schedule performance index equals earned value divided by planned value. Values below 1 indicate overrun or delay.
Brooks's law
The observation that adding manpower to a late software project makes it later, due to communication overhead and ramp-up time for new team members.
Risk exposure
A risk metric computed as the probability of the risk occurring multiplied by the impact if it occurs, used to prioritize risk responses.
Corrective maintenance
Maintenance performed to diagnose and fix defects discovered after release, restoring the software to its intended correct behavior.
Software entropy
The tendency of a software system's complexity and disorder to increase over time as changes accumulate without corresponding refactoring or restructuring.
Impact analysis
An assessment identifying which components, interfaces, and tests are affected by a proposed change, guiding effort estimation and regression test selection.
Technical debt
The implied future cost of choosing an expedient implementation over a better one, which must eventually be repaid through refactoring or rework.
Whistleblowing justification
Disclosure of serious harm from software is justified when public safety is at risk and internal reporting channels have been exhausted without remedy.
Conflict of interest disclosure
A professional obligation to reveal relationships, gifts, or interests that could improperly influence technical judgment, so stakeholders can assess objectivity.
Software Engineering Code of Ethics
The ACM/IEEE-CS code articulating eight principles, including public interest, client and employer, product quality, judgment, management, profession, colleagues, and self.