CS5030: Software Engineering Principles
This module is offered in 2025-26.
Aims
The aims of this module are:
- To give a broad overview of the software lifecycle and the development process.
 - To provide students with an understanding of how software engineering helps to manage software development within a division of labour.
 
Learning Outcomes
On successful completion of this module, the student should be able to:
- Identify the key concerns that are common to all software development processes.
 - Select appropriate process models, approaches and techniques to manage a given software development process and justify the choices.
 - Elicit requirements for a software product and translate these into documented architecture and software design.
 - Discuss ethics, sustainability and dependability issues that affect a given software product.
 - Describe the role that testing and reuse play in the software lifecycle.
 
Syllabus
- Software lifecycle and processes, including plan-driven, agile and DevOps
 - Ethics and sustainability in software engineering
 - Requirements engineering
 - Software architecture and design
 - Modelling with UML: use cases, structure and behaviour
 - Quality assurance including dependability and software testing
 - Software evolution and reuse
 - Professional software engineering: collaborative development and project management
 
Compulsory Elements
This module has no compulsory elements beyond those common to all modules (mark of 4 in each assessment component).
Module Delivery
- Edwin Brady
 - Abd Ardati (support)