Software Engineering (faster route) BSc/MSci
Software Product Release Engineering (H) COMPSCI4102
- Academic Session: 2026-27
- School: School of Computing Science
- Credits: 10
- Level: Level 4 (SCQF level 10)
- 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 (M)
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.
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, continuous integration and -delivery, software evolution, build automation, and software security;
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.