Undergraduate study

Undergraduate 

Software Engineering (faster route) BSc/MSci

Software Product Release Engineering (M) COMPSCI5115

  • Academic Session: 2026-27
  • School: School of Computing Science
  • Credits: 10
  • Level: Level 5 (SCQF level 11)
  • Typically Offered: Semester 2
  • Available to Visiting Students: Yes
  • Collaborative Online International Learning: No
  • Curriculum For Life: No

Short Description

This course gives students the opportunity to learn about and practice advanced principles, methods and tools in Software Engineering, and discuss the engineering decisions and trade-offs to be made when releasing software products. The course is intended for students who have experience of software development through a summer internship or similar. The course covers technical skills that are needed for designing, implementing, and maintaining releases of software products. The course also covers approaches and trade-offs needed for operating software releases at scale, current "shift-left" approaches, and operating models like DevOps, etc.

Timetable

1 hour of lectures and 2 hours of laboratory time per week in semester 2.

Excluded Courses

Software Product Release Engineering (H)

Co-requisites

None

Assessment

Examination 0%, Coursework (100%).

 

Students will receive lectures during semester 2 covering theoretical material. Each lecture will feature assigned reading and students will be quizzed. Each week will also include a 2-hour lab session where students will apply the theory. Students will build, deploy, and maintain a software API end-point throughout the course. Each week the students will be awarded marks for their API feature availability and up-time. Development of the API will include automated and manual review of submissions to the version-control system, and marks will be awarded based on these.

 

The coursework will comprise the quizzes, the feature- and up-time checks, and the version-control submissions.

 

M level students will work in pairs/groups to plan, design, and deliver a 2hr "masterclass" workshop for the H level participants on the course. The topic of this masterclass will be related or adjacent to the material covered on the course and must be approved by the course coordinator(s) during the 'plan' phase for quality control.

 

As the course is focused on practical, real-world trade-offs involved in planning and deploying software releases, the course is evaluated through hands-on reviews rather than examinations of theory.

Course Aims

To introduce advanced principles, methods and approaches in Software Product Release Engineering,

To introduce techniques for effective maintenance and evolution of working software,

To expose students to the practicalities and reality of software engineering in industry.

Intended Learning Outcomes of Course

By the end of this course students will be able to:

1. Explain a range of advanced practices in software product release engineering including change management,

2. Reflect critically on the design decisions and trade-offs involved in building and releasing long-lived software products;

3. Apply and adapt techniques for planning and maintaining up-time and maintenance cycles;

4. Understand and apply known stability patterns to maintain scaling and software release availability targets;

5. Design, plan, implement, deploy, maintain and evolve software releases;

6. Be aware of the limitations of existing software engineering practices in large scale systems development.

Minimum Requirement for Award of Credits

No exceptions