Engineering Scalable and Reliable Software Project (975G5)

15 credits, Level 7 (Masters)

Spring teaching

This module studies modern approaches to large-scale software production. After a review of the key concepts in the whole life-cycle of a software product (requirement analysis, software architecture and design, implementation, quality assurance and maintenance activities), the course investigates modern software engineering technology and processes, including:

  • agile project management techniques,
  • version control,
  • build automation,
  • use of design patterns and refactoring of code to improve designs as part of an improvement process,
  • testing including unit testing, system testing and continuous integration,
  • design for reliability and scalability, including the use of cloud computing,
  • design of systems to support mobile devices, in particular the adaptation to a range of devices,
  • evolution of software products, including measurement of customer response and technical improvements, A/B testing and managing upgrades.

Teaching

100%: Practical (Laboratory)

Assessment

100%: Coursework (Group submission (written))

Contact hours and workload

This module is approximately 150 hours of work. This breaks down into about 10 hours of contact time and about 140 hours of independent study. The University may make minor variations to the contact hours for operational reasons, including timetabling requirements.

We regularly review our modules to incorporate student feedback, staff expertise, as well as the latest research and teaching methodology. We’re planning to run these modules in the academic year 2024/25. However, there may be changes to these modules in response to feedback, staff availability, student demand or updates to our curriculum.

We’ll make sure to let you know of any material changes to modules at the earliest opportunity.