CS5035 Software Quality

Academic year

2024 to 2025 Semester 2

Key module information

SCOTCAT credits

15

The Scottish Credit Accumulation and Transfer (SCOTCAT) system allows credits gained in Scotland to be transferred between institutions. The number of credits associated with a module gives an indication of the amount of learning effort required by the learner. European Credit Transfer System (ECTS) credits are half the value of SCOTCAT credits.

SCQF level

SCQF level 11

The Scottish Credit and Qualifications Framework (SCQF) provides an indication of the complexity of award qualifications and associated learning and operates on an ascending numeric scale from Levels 1-12 with SCQF Level 10 equating to a Scottish undergraduate Honours degree.

Module Staff

dopgt-cs@st-andrews.ac.uk

This information is given as indicative. Staff involved in a module may change at short notice depending on availability and circumstances.

Module description

This module covers essential tools and skills for ensuring and maintaining software quality. It covers various approaches to testing, including test-driven development, and unit testing. It covers software verification using formal methods and their application to critical systems. It introduces key approaches to dependability, including dependability dimensions, tactics, and evaluation. It discusses the problems of technical debt and the need for refactoring.

Relationship to other modules

Pre-requisites

BEFORE TAKING THIS MODULE YOU MUST PASS CS3099,BEFORE TAKING THIS MODULE YOU MUST PASS CS5030

Assessment pattern

Coursework - 60%, Written examination - 40%

Re-assessment

Coursework - 60%, Written examination - 40%

Learning and teaching methods and delivery

Weekly contact

2hr x 11 weeks lectures, 1hr x 5 weeks tutorial/discussion

Scheduled learning hours

27

The number of compulsory student:staff contact hours over the period of the module.

Guided independent study hours

123

The number of hours that students are expected to invest in independent study over the period of the module.

Intended learning outcomes

  • Understand and be able to apply various approaches to software testing.
  • Understand the role and application of software verification to critical systems
  • Understand key approaches to software dependability.
  • Be able to apply refactoring to reduce technical debt.