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.