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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
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)
AspectJ. Eclipse AspectJ Homepage. http://eclipse.org/aspectj/. Accessed 18 Mar 2014
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
Groher, I., Krüger, C., Schwanninger, C.: A Tool-based approach to managing croscutting feature implementations. In: 7th International Conference on AOSD, Brussels (2008)
Hohenstein, U.: Using aspect-orientation to add persistency to applications. In: Proceedings of Datenbanksysteme in Business, Technologie und Web (BTW), Karlsruhe (2005)
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)
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)
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)
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)
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)
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)
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)
Lee, K.: Combining feature-oriented analysis and aspect-oriented programming for product line asset development. In: Proceedings of International Software Product Line Conference (2006)
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)
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)
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)
MPS. JetBrains: Meta Programming System. http://www.jetbrains.com/mps/. Accessed 25 May 2014
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
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)
Reichel, C., Oberhauser, R.: XML-based programming language modeling: an approach to software engineering. In: SEA 2004 (2004)
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)
Strunk, W.: The symphonia product-line. In: Java and Object-Oriented (JAOO) Conference, Arhus, Denmark (2007)
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)
Stahl, T., Völter, M.: Model-Driven Software Development. Wiley, Hoboken (2006)
Tarr, P., Osher, H., Harrison, W., Sutton, S.: N degrees of separation: multi-dimensional separation of concerns. In: 21st International ICSE 1999 (1999)
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)
Xtend2. Eclipse Xtend 2 Homepage. http://www.eclipse.org/Xtext/#xtend2. Accessed 18 Mar 2014
Xtext. Eclipse Xtext Homepage. http://www.eclipse.org/Xtext/. Accessed 25 May 2014
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Hohenstein, U., Elsner, C. (2015). A Case Study on Model-Driven Development and Aspect-Oriented Programming: Benefits and Liabilities. In: Holzinger, A., Cardoso, J., Cordeiro, J., Libourel, T., Maciaszek, L., van Sinderen, M. (eds) Software Technologies. ICSOFT 2014. Communications in Computer and Information Science, vol 555. Springer, Cham. https://doi.org/10.1007/978-3-319-25579-8_16
Download citation
DOI: https://doi.org/10.1007/978-3-319-25579-8_16
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-25578-1
Online ISBN: 978-3-319-25579-8
eBook Packages: Computer ScienceComputer Science (R0)