ASSEB HS Computer Science and Application study materials
ASSEB HS Computer Science and Application study resources

ASSEB HS Computer Science and Application: Software Engineering and System Development

ASSEB HS Computer Science and Application · Work through your exam, one topic at a time.

All guide sections

Software Engineering and System Development

Software Engineering and System Development tests how software is specified, designed, built, tested, and maintained. Questions often contrast process models, classify requirements, or choose appropriate test data.

Lifecycle and requirements

The waterfall model proceeds through sequential phases: requirements, design, implementation, testing, deployment, maintenance. Agile uses short iterations and frequent feedback. Functional requirements describe what the system does; non-functional requirements describe qualities such as performance, security, and usability. A requirement should be testable and unambiguous.

Design and testing

Modular design uses cohesion (how focused a module is) and coupling (how dependent modules are); high cohesion and low coupling are desirable. Verification asks “Are we building the product right?” against the specification. Validation asks “Are we building the right product?” for user needs. Black-box testing uses inputs and outputs without internal knowledge; white-box testing uses code structure. Unit, integration, system, and acceptance testing address different scopes. Regression testing checks that changes did not break existing behavior.

Worked example

For a function that accepts ages 0–120, choose boundary values: −1, 0, 1, 119, 120, 121. Boundary-value analysis targets edges where defects cluster. Also include a typical valid value such as 30. Invalid inputs test error handling; valid inputs test normal behavior.

Traps

Do not confuse verification with validation. Testing shows the presence of defects, not their absence. A prototype is not automatically a finished requirement. In agile, documentation is not forbidden; it is prioritized differently. Version control tracks changes and supports collaboration; it does not replace testing.