ESRS Project (975G5)
Engineering Scalable and Reliable Software Project
Module 975G5
Module details for 2022/23.
15 credits
FHEQ Level 7 (Masters)
Module Outline
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.
The lectures present advanced concepts in modern software engineering technology and processes. Alternating problem solving classes and lab classes support the realisation of these concepts through a group project, and reflects that software engineering requires communication, problem solving and processes as well as programming. Students are allocated to teams of 4-5, developing a software product to an evolving brief that requires them to manage the work as a team. This development work is to be documented in a team blog. The blog forms the major part of the coursework, each student documenting their contributions on a regular basis and commenting on the relationship of their work to the posts of others. The produced software forms the other part of the coursework submission.
Module learning outcomes
Manage and participate in a multi-person agile software engineering project
Choose tools and techniques which are appropriate for the software production task and the team
Specify, design, implement, verify and maintain software using modern software engineering methods
Describe and analyse tools, design patterns and processes which support automation, testing, scalability, reliability, security, adaptation to a range of devices and software improvement and evolution.
Type | Timing | Weighting |
---|---|---|
Coursework | 100.00% | |
Coursework components. Weighted as shown below. | ||
Group written submission | A2 Week 1 | 100.00% |
Timing
Submission deadlines may vary for different types of assignment/groups of students.
Weighting
Coursework components (if listed) total 100% of the overall coursework weighting value.
Term | Method | Duration | Week pattern |
---|---|---|---|
Spring Semester | Laboratory | 2 hours | 10101010101 |
How to read the week pattern
The numbers indicate the weeks of the term and how many events take place each week.
Dr Hsi-Ming Ho
Assess convenor
/profiles/519387
Please note that the University will use all reasonable endeavours to deliver courses and modules in accordance with the descriptions set out here. However, the University keeps its courses and modules under review with the aim of enhancing quality. Some changes may therefore be made to the form or content of courses or modules shown as part of the normal process of curriculum management.
The University reserves the right to make changes to the contents or methods of delivery of, or to discontinue, merge or combine modules, if such action is reasonably considered necessary by the University. If there are not sufficient student numbers to make a module viable, the University reserves the right to cancel such a module. If the University withdraws or discontinues a module, it will use its reasonable endeavours to provide a suitable alternative module.