Back to CSC 317

Study notes

Written and reviewed by subject experts from the same material the questions were written from. Read a note, then practise the questions it teaches.

Notes on 113 of 126 objectives.

Software Engineering

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.

Get the course to read them

Find your course

Type your course code or its title. We show you exactly what we hold for it.

Or browse by programme