11 mins read ·
13 questions
Define software and software engineering, and distinguish software engineering from programming and from computer science.
10 mins read ·
18 questions
Classify software by type (generic and customised products; system, application, embedded, web and mobile, AI-enabled and safety-critical software) and give an example of each.
10 mins read ·
12 questions
Describe the essential attributes of good software: maintainability, dependability and security, efficiency, and acceptability.
11 mins read ·
9 questions
Explain the significance of software in modern society and the economy, including the share of lifetime cost taken by change and maintenance.
10 mins read ·
12 questions
Explain the essential difficulties of software (complexity, conformity, changeability and invisibility) described in Brooks's "No Silver Bullet".
13 mins read ·
14 questions
Distinguish an error (human mistake), a fault (defect in the code or design) and a failure (observed deviation from required behaviour), and trace how one leads to the next.
11 mins read ·
9 questions
Explain the main causes of software unreliability: ambiguous or changing requirements, design flaws, inadequate testing, schedule pressure and poor estimation, integration and configuration errors, and unanticipated operating conditions.
10 mins read ·
12 questions
Describe common failure modes (crash or omission, incorrect value, timing failure, data corruption, security breach) and relate each to its consequences in a safety-critical system.
11 mins read ·
15 questions
Explain why software engineering emerged as a discipline, with reference to the "software crisis" and the 1968 NATO Software Engineering Conference.
12 mins read ·
20 questions
Analyse the avionics and insulin pump case studies to identify the requirements, design and testing measures (hazard analysis, redundancy, fail-safe states, independent verification) that make embedded safety-critical software dependable.
13 mins read ·
23 questions
Define the software development life cycle (SDLC) and describe the purpose, inputs and outputs of each generic phase: feasibility, requirements, design, implementation, testing, deployment and maintenance.
13 mins read ·
20 questions
Describe the Waterfall model and identify the project conditions under which it is appropriate.