Abstract: |
This case study compares two different technologies – model-driven development (MDD) and aspect-oriented
programming (AOP) – both trying to avoid redundant code, but with very different approaches. A
real industrial software system, the OpenSOA platform, which had already applied a model-driven
XML/XSL-T approach, is used as the basis for implementation and comparison. For evaluation purpose, we
have re-implemented the XSL-T implemented logic with a corresponding AOP implementation in AspectJ.
Taking into account several criteria, our case study indicates that the AOP implementation reveals its
strengths in avoiding redundancy, better testability, and understandability. However, more advanced tooling
could significantly improve the position of MDD for the latter. MDD is in turn the more flexible approach,
allowing generation of arbitrary artefacts the design demands. As the main issue of the case study, to
generate wrapper classes and boilerplate-code, is rather common, we believe that our results have potential
to be transferred to other problem settings. Furthermore, we think that our evaluation criteria will help
guiding others in making technology choices. We also give an outlook on how combinations of MDD and
AOP may leverage the best of both worlds. |