Abstract
As software architecture is a main driver for the software quality, source code is often accompanied by software architecture specifications. When the implementation is changed, the architecture specification is often not updated along with the code, which introduces inconsistencies between these artifacts. Such inconsistencies imply a risk of misunderstandings and errors during the development, maintenance, and evolution, causing serious degradation over the lifetime of the system. In this chapter we present the Explicitly Integrated Architecture approach and its tool Codeling, which remove the necessity for a separate representation of software architecture by integrating software architecture information with the program code. By using our approach, the specification can be extracted from the source code and changes in the specification can be propagated to the code. The integration of architecture information with the code leaves no room for inconsistencies between the artifacts and creates links between artifacts. We evaluate the approach and tool in a use case with real software in development and with a benchmark software, accompanied by a performance evaluation.
Chapter PDF
Similar content being viewed by others
References
index — TIOBE - The Software Quality Company. http://web.archive.org/web/20200218103554/https://www.tiobe.com/tiobe-index/. Accessed: 2020-02-28.
Josef Adersberger and Michael Philippsen. ReflexML: UML-Based Architecture-to-Code Traceability and Consistency Checking. In Ivica Crnkovic, Volker Gruhn, and Matthias Book, editors, Software Architecture - 5th European Conference, ECSA 2011, Essen, Germany, September 13–16, 2011. Proceedings, volume 6903 of Lecture Notes in Computer Science, pages 344–359. Springer, 2011.
Uwe Aßmann. Automatic Roundtrip Engineering. Electronic Notes in Theoretical Computer Science, 82(5):33–41, April 2003.
Moritz Balz. Embedding Model Specifications in Object-Oriented Program Code: A Bottom-up Approach for Model-based Software Development. PhD thesis, Universität Duisburg-Essen, May 2011.
Steffen Becker, Heiko Koziolek, and Ralf Reussner. The Palladio component model for model-driven performance prediction. Journal of Systems and Software, 82:3–22, 2009.
Enrico Biermann, Claudia Ermel, and Gabriele Taentzer. Formal Foundation of Consistent EMF Model Transformations by Algebraic Graph Transformation. Software & Systems Modeling, 11(2):227–250, 2012.
Hugo Bruneliere, Jordi Cabot, Grégoire Dupé, and Frédéric Madiot. MoDisco: a Model Driven Reverse Engineering Framework. Information and Software Technology, 56(8):1012–1032, August 2014.
S. Ducasse and D. Pollet. Software Architecture Reconstruction: A Process-Oriented Taxonomy. IEEE Transactions on Software Engineering, 35(4):573–591, July 2009.
Thomas Haitzer, Elena Navarro, and Uwe Zdun. Reconciling software architecture and source code in support of software evolution. Journal of Systems and Software, 123:119–144, 2017.
Sebastian Herold, Holger Klus, Yannick Welsch, Constanze Deiters, Andreas Rausch, Ralf Reussner, Klaus Krogmann, Heiko Koziolek, Raffaela Mirandola, Benjamin Hummel, Michael Meisinger, and Christian Pfaller. CoCoME - The Common Component Modeling Example. chapter 3, pages 16–60. Springer-Verlag, 2008.
Marco Konersmann. A Process for Explicitly Integrated Software Architecture. Softwaretechnik-Trends, 36(2), 2016.
Marco Konersmann. Explicitly Integrated Architecture - An Approach for Integrating Software Architecture Model Information with Program Code. phdthesis, University of Duisburg-Essen, March 2018.
Marco Konersmann. On executable models that are integrated with program code. In Proceedings of the 4 thInternational Workshop on Executable Modeling co-located with ACM/IEEE 21 stInternational Conference on Model Driven Engineering Languages and Systems (MODELS 2018), Copenhagen, Denmark, October 14, 2018., 2018.
Marco Konersmann and Michael Goedicke. A Conceptual Framework and Experimental Workbench for Architectures. In Maritta Heisel, editor, Software Service and Application Engineering, volume 7365 of Lecture Notes in Computer Science, pages 36–52. Springer Berlin Heidelberg, 2012.
Huu Loi Lai. Entwicklung einer Werkzeugumgebung zur Visualisierung und Analyse komplexer EMF- Modelltransformationssysteme in Henshin. Master’s thesis, Tecnical University Berlin, May 2013.
Michael Langhammer. Automated Coevolution of Source Code and Software Architecture Models. Phd thesis, Karlsruhe Institute of Technology, February 2017.
Michael Langhammer and Klaus Krogmann. A Co-evolution Approach for Source Code and Component-based Architecture Models. Softwaretechnik-Trends, 35(2), 2015. ISSN 0720-8928.
Nenad Medvidovic and Richard N. Taylor. A Classification and Comparison Framework for Software Architecture Description Languages. IEEE Transactions on Software Engineering, 26(1):70–93, 2000.
T.a Mens and P.b Van Gorp. A Taxonomy of Model Transformation. Electronic Notes in Theoretical Computer Science, 152(1-2):125–142, 2006.
Gail C. Murphy, David Notkin, and Kevin Sullivan. Software Reflexion Models: Bridging the Gap between Source and High-Level Models. In IEEE Transactions on Software Engineering, pages 18–28, 1995.
Marco Müller. Applying Formal Component Specifications to Module Systems in Java. Master’s thesis, Universität Duisburg-Essen, March 2010.
Marco Müller, Moritz Balz, and Michael, Goedicke. Representing Formal Component Models in OSGi. In Gregor Engels, Markus Luckey, and Wilhelm Schäfer, editors, Software Engineering, volume 159 of LNI, pages 45–56. GI, 2010.
Oracle America, Inc. JavaTM Platform, Enterprise Edition (Java EE) Specification, v7, June 2015. http://jcp.org/en/jsr/detail?id=342.
Van Cam Pham, Ansgar Radermacher, and Sébastien Gérard. A New Approach for Reflection of Code Modifications to Model in Synchronization of Architecture Design Model and Code. In Slimane Hammoudi, LuÃs Ferreira Pires, and Bran Selic, editors, Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development, MODELSWARD 2018, Funchal, Madeira - Portugal, January 22–24, 2018, pages 496–503. SciTePress, 2018.
C. Raibulet, F. Arcelli Fontana, and M. Zanoni. Model-Driven Reverse Engineering Approaches: A Systematic Literature Review. IEEE Access, 5:14516–14542, 2017.
Andy Schürr. Specification of Graph Translators with Triple Graph Grammars. In Graph-Theoretic Concepts in Computer Science, 20th International Workshop, WG ’94, Herrsching, Germany, June 16–18, 1994, Proceedings, pages 151–163, 1994.
Andy Schürr and Felix Klar. 15 Years of Triple Graph Grammars. In Hartmut Ehrig, Reiko Heckel, Grzegorz Rozenberg, and Gabriele Taentzer, editors, Proceedings of the 4th International Conference on Graph Transformations, volume 5214 of Lecture Notes in Computer Science, pages 411–425. Springer, September 2008.
Tamal Sen and Rajib Mall. Extracting finite state representation of Java programs. Software and System Modeling, 15(2):497–511, 2016.
Madhusudan Srinivasan, Young Lee, and Jeong Yang. Enhancing Object-Oriented Programming Comprehension Using Optimized Sequence Diagram. In 29th IEEE International Conference on Software Engineering Education and Training, CSEET 2016, Dallas, TX, USA, April 5-6, 2016, pages 81–85. IEEE, 2016.
David Steinberg, Frank Budinsky, Marcelo Paternostro, and Ed Merks. EMF: Eclipse Modeling Framework 2.0. Addison-Wesley Professional, 2nd edition, 2009.
Michael Striewe. An architecture for modular grading and feedback generation for complex exercises. Science of Computer Programming, 129:35–47, 2016. Special issue on eLearning Software Architectures.
R. N. Taylor, Nenad Medvidovic, and Irvine E. Dashofy. Software Architecture: Foundations, Theory, and Practice. Wiley, 1 edition, January 2009.
The OSGi Alliance. OSGi Core. https://osgi.org/download/r6/osgi.core-7.0.0.pdf, April 2018.
Massimo Tisi, Salvador MartÃnez Perez, and Hassene Choura. Parallel execution of ATL transformation rules. In Ana Moreira, Bernhard Schätz, Jeff Gray, Antonio Vallecillo, and Peter J. Clarke, editors, Model-Driven Engineering Languages and Systems - 16th International Conference, MODELS 2013, Miami, FL, USA, September 29 - October 4, 2013. Proceedings, volume 8107 of Lecture Notes in Computer Science, pages 656–672. Springer, 2013.
Stefan Winkler and Jens von Pilgrim. A survey of traceability in requirements engineering and model-driven development. Software & Systems Modeling, 9(4):529–565, September 2010.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Open Access This chapter is licensed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license and indicate if changes were made.
The images or other third party material in this chapter are included in the chapter's Creative Commons license, unless indicated otherwise in a credit line to the material. If material is not included in the chapter's Creative Commons license and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder.
Copyright information
© 2020 The Author(s)
About this chapter
Cite this chapter
Konersmann, M., Goedicke, M. (2020). Same but Different: Consistently Developing and Evolving Software Architecture Models and Their Implementation. In: Felderer, M., et al. Ernst Denert Award for Software Engineering 2019. Springer, Cham. https://doi.org/10.1007/978-3-030-58617-1_6
Download citation
DOI: https://doi.org/10.1007/978-3-030-58617-1_6
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-58616-4
Online ISBN: 978-3-030-58617-1
eBook Packages: Computer ScienceComputer Science (R0)