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.

Learning Outcomes

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.

Compulsory Elements

This module has no compulsory elements beyond those common to all modules (mark of 4 in each assessment component).

Module Delivery

Back to top

Last Published: 21 Jun 2019.