Software Systems Engineering

Module aims

This module covers the fundamental technologies for designing and building modern software systems. These include networking and distributed systems, databases, web services, cloud computing and continuous delivery methods. All of these are illustrated via practical exercises and projects.

The module spans two terms. During the first term, core topics will be covered through lectures and labs. During the second term you will combine these in a larger project to build a complete system.

Learning outcomes

Upon successful completion of the course, you will be able to:

- Design a complex software system to solve a given problem
- Apply computer networking principles to build a distributed system
- Apply database technology to store and analyse data effectively
- Evaluate and select appropriately from alternative technical solutions
- Plan and execute the implementation of a complex software system
- Apply modern continuous delivery and "DevOps" practices to deploy software reliably

Module syllabus

The module covers theory and practice for all the core components of modern large-scale software
systems. These include:

-  Internet and Web technologies and protocols
-  Client-server architectures
-  Relational databases and SQL
-  Web Development
-  Cloud deployment
-  Continuous Integration
-  Containerisation
-  Monitoring and Observability

Teaching methods

The module will be delivered via lectures, lab sessions, self study and group work.

In the initial part of the course lectures and lab exercises will focus on individual technologies providing guided tutorials. As the course progresses, students will work in teams to apply these technologies in combination to build up a larger system addressing a variety of technical requirements.

Assessments

This module is assessed purely through practical coursework and projects.
- Student groups will present their work at regular checkpoints through the course
- You will be assessed on your mastery of the techniques and technologies covered together with your ability to apply them effectively to solve new problems.

Lab and project work will be marked with written or oral feedback as appropriate. Formative feedback will be given by mentors during lab and clinic sessions.

Reading list

Web Development

Databases

Agile and Continuous Delivery

Cloud

Module leaders

Dr Robert Chatley