AOSD Conference
›› Program Overview
›› Research Track
›› Industry Track
›› Keynotes
›› Workshops
›› Tutorials
›› Demonstrations
›› Panel
›› BOFs
Back to list of tutorials

T1 : Models and Aspects – Handling Cross-Cutting Concerns in Model-Driven Software Development

Date Monday, March 20, 2006 morning (half day)
Presenters Markus Voelter
Level Intermediate: Basic Understanding of AO concepts as well as MDSD/MDA techniques


Aspect Oriented Software Development (AOSD) as well as Model-Driven Software Development (MSDD) are both becoming more and more important in modern software engineering. Both approaches attack important problems of traditional software development. AOSD addresses the modularization (and thus, reuse) of cross-cutting concerns (CCC). MDSD allows developers to express structures and algorithms in a more problem-domain oriented language, and automates many of the tedious aspects of software development.

But how do the two approaches relate? And how, if at all, can they be used together? This tutorial looks at both of these questions. The first one – how AOSD and MDSD relate – is discussed in the first part of the tutorial. The second, and main part of the tutorial introduces six patterns of how MDSD and AOSD can be used together. These include:

  • Using Code Generation Templates to handle CCC
  • Using AO techniques in template languages
  • Using the platform to handle CCC
  • Using suitable, pattern-based design to handle CCC
  • Generating pointcuts to be woven with the system
  • Using aspect orientation to structure models (AO modelling)

All the patterns are illustrated with practical real-world examples taken from various model-driven software development projects.


Markus Völter works as an independent consultant and coach for software technology and engineering. He focuses on software architecture, middleware as well as model-driven software development. Markus is the author of several magazine articles, patterns and books on middleware and model-driven software development. He is a regular speaker at conferences world wide. Markus can be reached at voelter at acm dot org via or

Summary of teaching experience: Markus has given various tutorials and presentations at conferences worldwide (with a focus in Germany); among them OOP, JAOO, JAX, OOPSLA and ECOOP. A complete listing can be found at He has also given lectures at the University of Applied Sciences, Ulm.

Edited by the AOSD Conference Committee.  Send comments to: