Model-Driven Development Versus Aspect-Oriented Programming - A Case Study

Uwe Hohenstein, Christoph Elsner

2014

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.

References

  1. Anastasopoulos, M., Muthig, D., 2004. An Evaluation of Aspect-Oriented Programming as a Product Line Implementation Technology. In ICSR 2004.
  2. AspectJ. Eclipse AspectJ Homepage. http://eclipse.org/aspectj/, visited 2014-03-18.
  3. Beuche, D., 2006. Variant management with pure::variants. Technical report, pure-systems GmbH, 2006. http://www.pure-systems.com/fileadmin/downloads/pv-whitepaper-en-04.pdf, visited 2014-05-25.
  4. Groher, I., Krüger, C., Schwanninger, C., 2008. A ToolBased Approach to Managing Croscutting Feature Implementations. 7th Int. Conf. on AOSD, Brussels 2008.
  5. Hohenstein, U., 2005. Using Aspect-Orientation to Add Persistency to Applications. Proc. of Datenbanksysteme in Business, Technologie und Web (BTW), Karlsruhe 2005.
  6. Heidenreich, F. Johannes, J. Seifert, M. Wende, C., 2009. Closing the Gap Between modelling and Java. In Proc. of 2nd Int. Conf. on Software Language Engineering, Springer, Lecture Notes in Computer Science, 2009.
  7. Henthorne, C., Tilevich, E., 2007. Code Generation on Steroids: Enhancing Code Generators via Generative Aspects. 2nd Int. Workshop on Incorporating COTS Software into Software Systems: Tools and Techniques (IWICSS'07).
  8. Kästner, C., Apel, S., Batory, D., 2007. A Case Study Implementing Features Using AspectJ. In Proc. Int. Software Product Line Conference (SPLC), Kyoto 2007.
  9. Kaboré, C., Beugnard, A., 2007. Interests and Drawbacks of AOSD compared to MDE - A Position Paper. 3rd Workshop on Aspects and Models, at 21st ECOOP 2007.
  10. Kapteijns, T., Jansen, S., Houet, H., Barendse, R., 2009. A Comparative Case Study of Model Driven Development vs Traditional Development: The Tortoise or the Hare. In CTIT Proc. of 5th European Conf. on Model Driven Architecture, 2009.
  11. Kiczales, G. et al., 2001: An overview of AspectJ. Proc. of 15th ECOOP , 2001.
  12. Lee, K., 2006. Combining Feature-Oriented Analysis and Aspect-Oriented Programming for Product Line Asset Development. In Proc. Int. Software Product Line Conference, 2006.
  13. Liu, J., Lutz, R. Rajan, H., 2006: The Role of Aspects in Modeling Product Line Variabilities. In Proc. of 1st Workshop on Aspect-Oriented Product Line Engineering, GPCE, Portland (Oregon) 2006.
  14. Lussenburg, V., van der Storm, T., Vinju, J., 2010. Mod4J: A Qualitative Case Study of Model-Driven Software Development. In: Model Driven Engineering Languages and Systems. Warmer Lecture Notes in Computer Science Volume 6395, 2010.
  15. Mezini. M. Ostermann, K., 2004. Variabilility Management with Feature-Oriented Programming and Aspects. In Proc. of 12th Int. Symp. On Foundations of Software Engineering (FSE), Newport Beach (CA), 2004.
  16. MPS. JetBrains :: Meta Programming System. http://www.jetbrains.com/mps/, visited 2014- 05-25.
  17. Normén, F., 2007. Remove code smell with AOP. http://weblogs.asp.net/fredriknormen/archive/2007/11/ 29/remove-code-smell-with-aop.aspx, visited 2014- 05-25.
  18. Pinto, M., Fuentes, L. Fernández, L., Valenzuela, J., 2009. Using AOSD and MDD to Enhance the Architectural Design Phase. In: Proc. OTM'09.
  19. Reichel, C. Oberhauser, R., 2004. XML-Based Programming Language Modeling: An Approach to Software Engineering. In: SEA 2004.
  20. Smaragdakis, Y., Huang, S., Zook, D. 2004. Program Generators and the Tools to Make Them. In SIGPLAN Symp. on Partial Evaluation and Semantics-Based Program Manipulation, ACM Press 2004.
  21. Strunk, W., 2007. The Symphonia Product-Line. Java and Object-Oriented (JAOO) Conf, Arhus, Denmark, 2007 Stein, D., Hanenberg, S., 2006. Why Aspect-Oriented Software Development and Model-Driven Development are not the Same - A Position Paper. Electr. Notes Theor. Comput. Sci. 163(1), 2006.
  22. Stahl, T. Völter, M., 2006: Model-Driven Software Development. Wiley&Sons, 2006.
  23. Tarr, P., Osher, H., Harrison, W., Sutton, S., 1999: N Degrees of Separation: Multi-Dimensional Separation of Concerns. In 21st Int. ICSE 1999.
  24. Völter, M., Groher, I., 2007: Product Line Implementation using Aspect-Oriented and Model-Driven Software Development. In: 11th Int. Software Product Line Conference (SPLC), Kyoto (Japan) 2007.
  25. Xtend2. Eclipse Xtend 2 Homepage. http: //www.eclipse.org/Xtext/#xtend2, visited 2014-03-18.
  26. Xtext. Eclipse Xtext Homepage. http://www.eclipse. org/Xtext/, visited 2014- 05-25.
Download


Paper Citation


in Harvard Style

Hohenstein U. and Elsner C. (2014). Model-Driven Development Versus Aspect-Oriented Programming - A Case Study . In Proceedings of the 9th International Conference on Software Paradigm Trends - Volume 1: ICSOFT-PT, (ICSOFT 2014) ISBN 978-989-758-037-6, pages 133-144. DOI: 10.5220/0004999901330144


in Bibtex Style

@conference{icsoft-pt14,
author={Uwe Hohenstein and Christoph Elsner},
title={Model-Driven Development Versus Aspect-Oriented Programming - A Case Study},
booktitle={Proceedings of the 9th International Conference on Software Paradigm Trends - Volume 1: ICSOFT-PT, (ICSOFT 2014)},
year={2014},
pages={133-144},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0004999901330144},
isbn={978-989-758-037-6},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 9th International Conference on Software Paradigm Trends - Volume 1: ICSOFT-PT, (ICSOFT 2014)
TI - Model-Driven Development Versus Aspect-Oriented Programming - A Case Study
SN - 978-989-758-037-6
AU - Hohenstein U.
AU - Elsner C.
PY - 2014
SP - 133
EP - 144
DO - 10.5220/0004999901330144