
Aspect-Oriented Programming (AOP) has gained a certain momentum in modern software development. The goal of AOP is to provide better modularization by providing techniques for the separation of concerns in software development. A main target of this separation is cross-cutting concerns, which are often distributed among several parts of the system in traditional design.
Most AOP tools provide a weaving mechanism that takes the separately defined cross-cutting concerns and inserts them at the appropriate places into the main code. For that, they take a main language (e.g. Java) and provide a complementary language, which defines the weaving process. A similar approach is possible in C++ only: using native C++ features like namespaces and templates, the C++ compiler can fulfill the weaving job for AOP. But weaving is not always the best solution for AOP. C++ provides a rich set of techniques to separate concerns. One of the most promising ideas is Andrei Alexandrescu's "policy class" approach.
This tutorial presents the weaving approach in C++, discusses some drawbacks of weaving and then presents in-depth the use of policy classes to implement cross-cutting concerns in an AOP way.
Participants should have a good working knowledge of ISO C++.
Lecture with thorough discussion.
Detlef Vollmann has a background of 15 years in software engineering and more than 10 years with object technology. As an independent consultant he supports several Swiss companies with the design of object-oriented systems. Since 1991, he has authored and taught courses in C++, Object-Oriented Technologies, Software Architecture and Distributed Computing for major Swiss companies.