CS5031: Software Engineering Practice
This module is offered in 2019-20.
The aims of this module are:
- To introduce practical aspects of software engineering, focusing on the development phase of the software lifecycle.
- To exercise practices involved in the development of non-trivial software systems.
- To provide experience with a number of practical tools supporting these practices.
On successful completion of this module, the student should:
- Be able to translate a set of requirements and a high-level design into a complex working system.
- Be able to develop the system implementation using the test-driven development approach.
- Be able to write tests for a complex system consisting of a set of collaborating classes.
- Be able to reuse components and access remote services.
- Be able to utilise version control and build management systems to manage a collaborative implementation process.
- Build and dependency management.
- Software version control.
- Software testing, testing with mock objects.
- Software reuse, web services.
- Optional topics: reuse and patterns; aspect-oriented programming; modular architectures.
This module has no compulsory elements beyond those common to all modules (mark of 4 in each assessment component).