International Conference on Software Technologies

Software Technologies pp 269-290 | Cite as

A Case Study on Model-Driven Development and Aspect-Oriented Programming: Benefits and Liabilities

Conference paper
Part of the Communications in Computer and Information Science book series (CCIS, volume 555)

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.

Keywords

AOP AspectJ MDD XSL-T Case study 

References

  1. 1.
    Muthig, D., Anastasopoulos, M.: An evaluation of aspect-oriented programming as a product line implementation technology. In: Krueger, C., Krueger, C., Dannenberg, R.B. (eds.) ICOIN 2004 and ICSR 2004. LNCS, vol. 3107, pp. 141–156. Springer, Heidelberg (2004)Google Scholar
  2. 2.
    AspectJ. Eclipse AspectJ Homepage. http://eclipse.org/aspectj/. Accessed 18 Mar 2014
  3. 3.
    Beuche, D.: Variant management with pure::variants. Technical report, pure-systems GmbH, 2006. http://www.pure-systems.com/fileadmin/down-loads/pv-whitepaper-en-04.pdf (2006). Accessed 25 May 2014
  4. 4.
    Groher, I., Krüger, C., Schwanninger, C.: A Tool-based approach to managing croscutting feature implementations. In: 7th International Conference on AOSD, Brussels (2008)Google Scholar
  5. 5.
    Hohenstein, U.: Using aspect-orientation to add persistency to applications. In: Proceedings of Datenbanksysteme in Business, Technologie und Web (BTW), Karlsruhe (2005)Google Scholar
  6. 6.
    Heidenreich, F., Johannes, J., Seifert, M., Wende, C.: Closing the gap between modelling and Java. In: Gašević, D., van den Brand, M., Gray, J. (eds.) SLE 2009. LNCS, vol. 5969, pp. 374–383. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  7. 7.
    Henthorne, C., Tilevich, E.: Code generation on steroids: enhancing code generators via generative aspects. In: 2nd International Workshop on Incorporating COTS Software into Software Systems: Tools and Techniques (IWICSS 2007) (2007)Google Scholar
  8. 8.
    Hohenstein, U., Elsner, C.: A case study for comparing of model-driven development and aspect-oriented programming. In: 9th International Conference on Software Technologies ICSOFT-PT Vienna (2014)Google Scholar
  9. 9.
    Kästner, C., Apel, S., Batory, D.: A case study implementing features using AspectJ. In: Proceedings of International Software Product Line Conference (SPLC), Kyoto (2007)Google Scholar
  10. 10.
    Kaboré, C., Beugnard, A.: Interests and drawbacks of AOSD compared to MDE – a position paper. In: 3rd Workshop on Aspects and Models, at 21st ECOOP 2007 (2007)Google Scholar
  11. 11.
    Kapteijns, T., Jansen, S., Houet, H., Barendse, R.: A comparative case study of model driven development vs traditional development: the tortoise or the hare. In: CTIT Proceedings of 5th European Conference on Model Driven Architecture (2009)Google Scholar
  12. 12.
    Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of AspectJ. In: Lindskov Knudsen, J. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–357. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  13. 13.
    Lee, K.: Combining feature-oriented analysis and aspect-oriented programming for product line asset development. In: Proceedings of International Software Product Line Conference (2006)Google Scholar
  14. 14.
    Liu, J., Lutz, R., Rajan, H.: The role of aspects in modeling product line variabilities. In: Proceedings of 1st Workshop on Aspect-Oriented Product Line Engineering, GPCE, Portland (Oregon) (2006)Google Scholar
  15. 15.
    Lussenburg, V., van der Storm, T., Vinju, J., Warmer, J.: Mod4J: a qualitative case study of model-driven software development. In: Petriu, D.C., Rouquette, N., Haugen, Ø. (eds.) MODELS 2010, Part II. LNCS, vol. 6395, pp. 346–360. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  16. 16.
    Mezini, M., Ostermann, K.: Variability management with feature-oriented programming and aspects. In: Proceedings of 12th International Symposium on Foundations of Software Engineering (FSE), Newport Beach (CA) (2004)Google Scholar
  17. 17.
    MPS. JetBrains: Meta Programming System. http://www.jetbrains.com/mps/. Accessed 25 May 2014
  18. 18.
    Normén, F.: Remove code smell with AOP (2007). http://weblogs.asp.net/fredriknormen/archive/2007/11/29/remove-code-smell-with-aop.aspx Accessed 25 May 2014
  19. 19.
    Pinto, M., Fuentes, L., Fernández, L., Valenzuela, J.: Using AOSD and MDD to enhance the architectural design phase. In: Proceedings of OTM 2009 (2009)Google Scholar
  20. 20.
    Reichel, C., Oberhauser, R.: XML-based programming language modeling: an approach to software engineering. In: SEA 2004 (2004)Google Scholar
  21. 21.
    Smaragdakis, Y., Huang, S., Zook, D.: Program generators and the tools to make them. In: SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation. ACM Press (2004)Google Scholar
  22. 22.
    Strunk, W.: The symphonia product-line. In: Java and Object-Oriented (JAOO) Conference, Arhus, Denmark (2007)Google Scholar
  23. 23.
    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
  24. 24.
    Stahl, T., Völter, M.: Model-Driven Software Development. Wiley, Hoboken (2006)Google Scholar
  25. 25.
    Tarr, P., Osher, H., Harrison, W., Sutton, S.: N degrees of separation: multi-dimensional separation of concerns. In: 21st International ICSE 1999 (1999)Google Scholar
  26. 26.
    Völter, M., Groher, I.: Product line implementation using aspect-oriented and model-driven software development. In: 11th International Software Product Line Conference (SPLC), Kyoto, Japan (2007)Google Scholar
  27. 27.
    Xtend2. Eclipse Xtend 2 Homepage. http://www.eclipse.org/Xtext/#xtend2. Accessed 18 Mar 2014
  28. 28.
    Xtext. Eclipse Xtext Homepage. http://www.eclipse.org/Xtext/. Accessed 25 May 2014

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  1. 1.Siemens AG, Corporate TechnologyMuenchenGermany
  2. 2.Siemens AG, Corporate TechnologyErlangenGermany

Personalised recommendations