![]() ![]() ![]() |
![]() |
![]() ![]() Tracks Technical Program Tutorials Workshops DesignFest Educators' Symposium Doctoral Symposium Demonstrations Posters Student Research Competition Student Volunteers Special Events Exhibits Housing Information Registration Information Transportation |
Monday, 4 November 13:30-17:00 Afternoon16 Aspect-Oriented Programming in C++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. Attendee backgroundParticipants should have a good working knowledge of ISO C++. FormatLecture with thorough discussion. PresenterDetlef 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. |
![]() |
![]() |