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
- Timetable
- Reading Lists
- See Course Catalogue for information on credits, prerequisites, load and assessment.
- Resources Lecture notes, practical materials, etc.
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:
|
| Coordinator | Ian Miguel |

Follow us: