CS5030: Software Engineering Principles
This module is offered in 2019-20.
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.
On successful completion of this module, the student should:
- Understand the key concerns that are common to all software development processes.
- Be able to select appropriate process models, approaches and techniques to manage a given software development process.
- Be able to elicit requirements for a software product and translate these into a documented design.
- Be able to identify dependability and security issues that affect a given software product.
- Understand the role that testing and reuse play in the implementation phase and how these activities relate to the wider software process.
- Software processes, traditional and agile.
- Requirements engineering.
- Modelling with UML: use cases; structure; constraints; behaviour.
- Software testing.
- Reuse-oriented software engineering.
- Dependability and security.
- Professional software development: project management, cost estimation, quality metrics, collaboration and ethical issues.
This module has no compulsory elements beyond those common to all modules (mark of 4 in each assessment component).