Abstract

Model-driven development (MDD) and aspect-oriented programming (AOP) are two very different paradigms, having in common that they both aim at increasing development efficiency. In order to investigate their benefits and liabilities, we compared both in context of a case study on an industrial-grade software system, the Open SOA platform. Already having a model-driven XML/XSL-T implementation in place, we re-implemented the corresponding logic of the Open SOA platform with a corresponding AOP implementation in AspectJ. Considering several comparison criteria, the results of our case study indicate that the AspectJ implementation is less redundant, better testable, and improves on understandability and readability. The model-driven approach, in turn, is the more flexible one, as it allows for generating arbitrary artifacts and structures, without the need for compromising on design. Additionally, we expect that MDD can furthermore catch up on readability and understandability, when more advanced MDD tooling can be leveraged. As our case study mainly centers around implementing wrappers and boilerplate-code, which are rather common issues, our results may be transferred to similar problem settings. Furthermore, our evaluation criteria can guide others in making technology choices. To this end, we give an outlook on how combinations of MDD and AOP may leverage the best of both worlds.

Stein, D., Hanenberg, S.: Why aspect-oriented software development and model-driven development are not the same – a position paper. Electr. Notes Theor. Comput. Sci. 163(1), 2006 (2006)CrossRefGoogle Scholar