PE Computer Engineering study materials
PE Computer Engineering study resources

PE Computer Engineering: Software Engineering

PE Computer Engineering · Work through your exam, one topic at a time.

All guide sections

Software Engineering

Software Engineering tests lifecycle selection, requirements quality, testing strategy, and complexity analysis. The exam favors questions that distinguish verification from validation and that ask you to derive a metric from a flow graph or test set.

Process and requirements

Waterfall is sequential with late change; iterative and Agile approaches deliver increments and rely on feedback. Requirements should be unambiguous, testable, and traceable. Verification asks whether the product was built right against specifications; validation asks whether the right product was built for user needs.

Testing and coverage

Unit, integration, system, and acceptance testing address different scopes. Black-box techniques include equivalence partitioning and boundary-value analysis; white-box techniques include statement, branch, and condition coverage. Statement coverage does not guarantee branch coverage; modified condition/decision coverage (MC/DC) requires each condition to independently affect the decision.

Complexity and algorithms

Big-O describes asymptotic growth. Binary search is O(log n) on sorted data; hash lookup averages O(1) but degrades with collisions. Cyclomatic complexity V(G) = E − N + 2P for a connected flow graph (P = number of connected components).

Worked example

A flow graph has 9 edges, 7 nodes, and 1 connected component. V(G) = 9 − 7 + 2(1) = 4. This equals the number of linearly independent paths and gives a lower bound on branch-oriented test cases. It is not the same as counting all feasible paths, which can be exponential.

Traps

  • Confusing verification with validation.
  • Treating statement coverage as proof of branch coverage.
  • Applying V(G) = E − N + 2P with P omitted for a single component.
  • Assuming Big-O predicts performance for small inputs or constant factors.