Computer Science @ University of St Andrews

University of St Andrews crest

CS5031 Advanced Software Engineering

Covers advanced software engineering.

Description

This module introduces advanced software engineering methods with an emphasis on software reuse and test-driven development practices. We will introduce reuse at different levels of scale, from software libraries and components to service-oriented architectures and discuss how reuse presents both challenges and opportunities for the development of quality software. A key process in today's software engineering practice is testing, and we will introduce testing methods that complement the different scales of reuse-oriented development, from unit-level testing to integration testing and system-level testing. Students will work on a project to design, implement and test a complex, distributed application to put the content of the lectures into practice.

Links

Learning Outcomes

On successful completion of this module, the student should:

  • Understand the roles that reuse and testing play in Software Engineering.
  • Have gained knowledge and understanding of various methods of software reuse and of testing.
  • Understand component-based architectures and service-oriented architectures as platforms for software reuse.
  • Understand full lifecycle design, implementation and testing of applications built using the service-oriented methodology.
  • Be able to present software engineering concepts in a concise manner to an audience.

Compulsory Elements

See the School of Computer Science Handbook for general information about compulsory elements.

This module has the following compulsory elements in addition to those common to all modules (tutorials and class tests).

  • Attendance at the group presentation session.
  • Attendance at practical sessions.

Teaching Arrangements

Delivery

The module will be delivered by:

Alex Voss
Coordinator Ian Miguel