PE Software study materials
PE Software study resources

PE Software flashcards

PE Software · 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 of a behavior or service the system must perform, expressed as input-to-output transformation, described with measurable acceptance criteria so it can be verified by testing.
Non-functional requirement
A quality attribute or constraint on how the system performs its functions, such as response time, availability, security, maintainability, or portability, rather than a specific behavior.
MoSCoW prioritization
A requirement prioritization scheme classifying items as Must have, Should have, Could have, or Won't have this time; the Won't category records deliberate scope exclusions.
Requirements traceability matrix
A table linking each requirement to design elements, source code, and test cases in both directions, enabling impact analysis when a requirement is added, changed, or removed.
INVEST criteria
A checklist for good user stories: Independent, Negotiable, Valuable to users, Estimable, Small enough for one iteration, and Testable with clear acceptance criteria.
V-model
A lifecycle model where each development phase has a matching verification phase: requirements map to acceptance tests, architectural design to integration tests, detailed design to unit tests.
Scope creep
Uncontrolled expansion of project scope through unapproved additions to requirements, typically without corresponding adjustments to schedule, budget, or resources.
Single Responsibility Principle
The SOLID principle that a class should have one reason to change, meaning it should serve one actor or cohesive responsibility rather than mixing unrelated concerns.
Liskov Substitution Principle
Subtypes must be usable wherever their base type is expected without breaking correctness, so overrides may not strengthen preconditions or weaken postconditions.
Dependency Inversion Principle
High-level modules should not depend on low-level modules; both should depend on abstractions, and abstractions should not depend on implementation details.
Coupling and cohesion
Coupling is the degree of interdependence between modules; cohesion is the degree to which a module's internal responsibilities belong together. Good design minimizes coupling and maximizes cohesion.
Strategy pattern
A behavioral pattern that defines a family of interchangeable algorithms behind a common interface and lets a client select one at runtime without conditional logic.
Observer pattern
A behavioral pattern establishing a one-to-many dependency so that when a subject changes state, all registered observers are notified automatically, forming the basis of publish-subscribe.
Architecture decision record
A short document recording the context, the decision made, alternatives considered, and resulting consequences; records are superseded rather than rewritten when decisions change.
Equivalence partitioning
A black-box test design technique dividing inputs into classes expected to be processed identically, so one representative value per class is tested instead of every possible input.
Boundary value analysis
A black-box technique testing values at, immediately below, and immediately above the edges of each input or output range, because defects cluster at boundaries.
Branch coverage
A white-box metric requiring every decision outcome (true and false) to be exercised at least once; achieving full branch coverage guarantees full statement coverage but not full path coverage.
Test double
A stand-in object replacing a real dependency in a test; variants include stubs returning canned answers, spies recording calls, mocks verifying expectations, and fakes with working simplified logic.
Regression testing
Re-executing a selected subset of existing tests after a change to confirm that previously working behavior still works and that no defects were reintroduced.
Static analysis
Examination of source code or models without executing the program, detecting issues such as style violations, type errors, unreachable code, and potential null dereferences.
Continuous integration
A practice where every commit triggers an automated build and test pipeline, keeping the mainline integration-ready and detecting integration defects quickly.
Continuous delivery
A practice keeping the main branch always in a releasable state with automated testing and deployment pipelines, where releasing to production still requires a human decision.
Semantic versioning
A versioning convention MAJOR.MINOR.PATCH where MAJOR signals incompatible API changes, MINOR signals backward-compatible features, and PATCH signals backward-compatible bug fixes.
Git merge versus rebase
Merge combines histories with a commit having two parents and preserves original commits; rebase replays commits onto a new base, producing a linear history with rewritten commit hashes.
Configuration baseline
An approved and fixed configuration of one or more configuration items that serves as a reference for further development and can be changed only through formal change control.
Technical debt
The future cost implied by choosing an expedient design or implementation now instead of a better approach, repaid later through refactoring and tracked deliberately.
Function point analysis
A functional sizing method counting external inputs, outputs, inquiries, internal logical files, and external interface files, then adjusting for complexity and general system characteristics.
Brooks's law
The observation that adding personnel to a late software project delays it further, because onboarding and communication overhead grow faster than productive capacity.
Risk exposure
The product of a risk's probability of occurrence and its impact if it occurs, used to rank risks and decide which to mitigate or accept.
Critical path
The longest chain of dependent activities in a project schedule; it determines the minimum project duration and its activities have zero float.
Cost performance index
Earned value metric CPI = Earned Value / Actual Cost; a value below 1.0 indicates the project is spending more than the work earned justifies.
Professional code of ethics
A statement of obligations such as acting in the public interest, maintaining competence, preserving confidentiality, and disclosing conflicts, which governs engineering practice beyond employer instructions.