ACM-SW study materials
ACM-SW study resources

ACM-SW flashcards

ACM-SW · Build recall with a focused review session.

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

Functional requirement
A statement describing a behavior or function the system must perform, such as calculating a total or sending a notification.
Non-functional requirement
A constraint on qualities such as performance, security, usability, or reliability rather than on a specific behavior.
Requirements traceability
The ability to link a requirement to its source and to design, code, and test artifacts, enabling impact analysis and verification.
Use case
A description of a sequence of interactions between an actor and a system that produces an observable result of value.
MoSCoW prioritization
A technique classifying requirements as Must have, Should have, Could have, or Won't have to guide scope decisions.
Coupling and cohesion
Coupling measures interdependence between modules and should be low; cohesion measures relatedness within a module and should be high.
Single Responsibility Principle
A design principle stating that a class should have only one reason to change, meaning it should have one responsibility.
Open-Closed Principle
A design principle stating that software entities should be open for extension but closed for modification.
Dependency Inversion Principle
A design principle stating that high-level modules should not depend on low-level modules; both should depend on abstractions.
Design pattern
A named, reusable solution to a recurring design problem, described by its intent, structure, participants, and consequences.
Cyclomatic complexity
A metric V(G) = E - N + 2P over a control-flow graph, indicating the number of independent paths through a program.
Refactoring
A disciplined change to internal code structure that improves readability or maintainability without altering external behavior.
Code smell
A surface indication of a deeper design problem, such as duplicated code, long methods, or excessive parameters.
DRY principle
The principle that every piece of knowledge in a system should have a single, authoritative representation to avoid inconsistency.
Static analysis
Automated examination of source code without executing it to detect defects, style violations, and potential vulnerabilities.
Black-box testing
Testing that derives test cases from specifications and expected behavior without knowledge of internal code structure.
Branch coverage
A white-box metric measuring the fraction of decision outcomes in the code that have been executed by tests.
Boundary value analysis
A test design technique selecting inputs at and just outside the edges of equivalence classes, where defects often occur.
Regression testing
Re-running existing tests after a change to verify that previously working functionality has not been broken.
Mutation testing
A technique that introduces small faults into code and checks whether the test suite detects them, measuring test effectiveness.
Corrective maintenance
Maintenance performed to diagnose and fix defects discovered after a system has been delivered and is in use.
Perfective maintenance
Maintenance that improves performance, maintainability, or other qualities without correcting a defect or adapting to a new environment.
Software reengineering
Restructuring an existing system to improve maintainability or quality without changing its externally observable functionality.
Impact analysis
The process of identifying the components, artifacts, and tests affected by a proposed change to a system.
Configuration baseline
A formally reviewed and approved set of configuration items that serves as a basis for further development and changes only through change control.
Critical path
The longest sequence of dependent tasks in a project schedule; its length determines the minimum project duration.
Earned value management
A project control technique comparing planned value, earned value, and actual cost to assess schedule and cost performance.
Change control board
A group that reviews proposed changes to baselined artifacts and approves, rejects, or defers them.
Scrum framework
An agile framework with roles Product Owner, Scrum Master, and Developers; artifacts Product Backlog, Sprint Backlog, and Increment; and defined events.
CMMI maturity levels
A process improvement scale from level 1 Initial to level 5 Optimizing, with levels 2 through 5 defined by specific process areas.
Technical debt
The implied future cost of rework caused by choosing an expedient solution now instead of a better approach.
ACM Code of Ethics
A professional code obligating computing professionals to contribute to society, avoid harm, be honest, and respect privacy and confidentiality.