Aspect-Oriented Software Development

As software systems become increasingly large, complex and distributed, the separation of concerns principle - dealing with one system concern at a time - becomes equally essential. However, traditional development techniques, e.g., object-oriented ones, cannot effectively modularise concerns such as persistence, distribution, security, real-time behaviour, etc. Such broadly scoped concerns that cut across various parts of the system, and often overlap, can severely constrain quality and add to complexity if they are not effectively modularised. Aspect-Oriented Software Development (AOSD) supports systematic identification, modularisation, representation and composition of such crosscutting concerns. AOSD techniques are gaining increasing popularity with interest from major players such as IBM, Siemens and NASA. This course will focus on the current state-of-the-art in AOSD and its applications.

Course Objectives

At the end of the course, students will have:

Syllabus

The course covers a range of topics including:

Assessment

Assessment is completely coursework-based using individual project and group work.

Recommended Reading

In addition, a number of research papers will be made available. Students will be expected to read these as part of the course.

Dates and Details

Lecturers: Prof Awais Rashid and Dr Steffen Zschaler.