CS5030: Software Engineering Principles
This module is offered in 2024-25.
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
- Dharini Balasubramaniam
- Abd Ardati (support)