{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,25]],"date-time":"2025-03-25T21:27:16Z","timestamp":1742938036356,"version":"3.40.3"},"publisher-location":"Cham","reference-count":35,"publisher":"Springer International Publishing","isbn-type":[{"type":"print","value":"9783030586164"},{"type":"electronic","value":"9783030586171"}],"license":[{"start":{"date-parts":[[2020,1,1]],"date-time":"2020-01-01T00:00:00Z","timestamp":1577836800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2020,12,4]],"date-time":"2020-12-04T00:00:00Z","timestamp":1607040000000},"content-version":"vor","delay-in-days":338,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2020]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>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<jats:italic>Codeling<\/jats:italic>, 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.<\/jats:p>","DOI":"10.1007\/978-3-030-58617-1_6","type":"book-chapter","created":{"date-parts":[[2020,12,3]],"date-time":"2020-12-03T19:03:01Z","timestamp":1607022181000},"page":"87-112","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["Same but Different: Consistently Developing and Evolving Software Architecture Models and Their Implementation"],"prefix":"10.1007","author":[{"given":"Marco","family":"Konersmann","sequence":"first","affiliation":[]},{"given":"Michael","family":"Goedicke","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2020,12,4]]},"reference":[{"key":"6_CR1","unstructured":"index \u2014 TIOBE - The Software Quality Company. http:\/\/web.archive.org\/web\/20200218103554\/https:\/\/www.tiobe.com\/tiobe-index\/. Accessed: 2020-02-28."},{"key":"6_CR2","doi-asserted-by":"crossref","unstructured":"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\u201316, 2011. Proceedings, volume 6903 of Lecture Notes in Computer Science, pages 344\u2013359. Springer, 2011.","DOI":"10.1007\/978-3-642-23798-0_37"},{"issue":"5","key":"6_CR3","doi-asserted-by":"publisher","first-page":"33","DOI":"10.1016\/S1571-0661(04)80732-1","volume":"82","author":"Uwe A\u00dfmann","year":"2003","unstructured":"Uwe A\u00dfmann. Automatic Roundtrip Engineering. Electronic Notes in Theoretical Computer Science, 82(5):33\u201341, April 2003.","journal-title":"Electronic Notes in Theoretical Computer Science"},{"key":"6_CR4","unstructured":"Moritz Balz. Embedding Model Specifications in Object-Oriented Program Code: A Bottom-up Approach for Model-based Software Development. PhD thesis, Universit\u00e4t Duisburg-Essen, May 2011."},{"key":"6_CR5","doi-asserted-by":"publisher","first-page":"3","DOI":"10.1016\/j.jss.2008.03.066","volume":"82","author":"Steffen Becker","year":"2009","unstructured":"Steffen Becker, Heiko Koziolek, and Ralf Reussner. The Palladio component model for model-driven performance prediction. Journal of Systems and Software, 82:3\u201322, 2009.","journal-title":"Journal of Systems and Software"},{"issue":"2","key":"6_CR6","doi-asserted-by":"publisher","first-page":"227","DOI":"10.1007\/s10270-011-0199-7","volume":"11","author":"Enrico Biermann","year":"2012","unstructured":"Enrico Biermann, Claudia Ermel, and Gabriele Taentzer. Formal Foundation of Consistent EMF Model Transformations by Algebraic Graph Transformation. Software & Systems Modeling, 11(2):227\u2013250, 2012.","journal-title":"Software & Systems Modeling"},{"issue":"8","key":"6_CR7","doi-asserted-by":"publisher","first-page":"1012","DOI":"10.1016\/j.infsof.2014.04.007","volume":"56","author":"Hugo Bruneliere","year":"2014","unstructured":"Hugo Bruneliere, Jordi Cabot, Gr\u00e9goire Dup\u00e9, and Fr\u00e9d\u00e9ric Madiot. MoDisco: a Model Driven Reverse Engineering Framework. Information and Software Technology, 56(8):1012\u20131032, August 2014.","journal-title":"Information and Software Technology"},{"issue":"4","key":"6_CR8","doi-asserted-by":"publisher","first-page":"573","DOI":"10.1109\/TSE.2009.19","volume":"35","author":"S Ducasse","year":"2009","unstructured":"S. Ducasse and D. Pollet. Software Architecture Reconstruction: A Process-Oriented Taxonomy. IEEE Transactions on Software Engineering, 35(4):573\u2013591, July 2009.","journal-title":"IEEE Transactions on Software Engineering"},{"key":"6_CR9","doi-asserted-by":"publisher","first-page":"119","DOI":"10.1016\/j.jss.2016.10.012","volume":"123","author":"Thomas Haitzer","year":"2017","unstructured":"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\u2013144, 2017.","journal-title":"Journal of Systems and Software"},{"key":"6_CR10","doi-asserted-by":"crossref","unstructured":"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\u201360. Springer-Verlag, 2008.","DOI":"10.1007\/978-3-540-85289-6_3"},{"key":"6_CR11","unstructured":"Marco Konersmann. A Process for Explicitly Integrated Software Architecture. Softwaretechnik-Trends, 36(2), 2016."},{"key":"6_CR12","unstructured":"Marco Konersmann. Explicitly Integrated Architecture - An Approach for Integrating Software Architecture Model Information with Program Code. phdthesis, University of Duisburg-Essen, March 2018."},{"key":"6_CR13","unstructured":"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."},{"key":"6_CR14","volume-title":"Software Service and Application Engineering, volume 7365 of Lecture Notes in Computer Science, pages 36\u201352","author":"Marco Konersmann","year":"2012","unstructured":"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\u201352. Springer Berlin Heidelberg, 2012."},{"key":"6_CR15","unstructured":"Huu Loi Lai. Entwicklung einer Werkzeugumgebung zur Visualisierung und Analyse komplexer EMF- Modelltransformationssysteme in Henshin. Master\u2019s thesis, Tecnical University Berlin, May 2013."},{"key":"6_CR16","unstructured":"Michael Langhammer. Automated Coevolution of Source Code and Software Architecture Models. Phd thesis, Karlsruhe Institute of Technology, February 2017."},{"key":"6_CR17","unstructured":"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."},{"issue":"1","key":"6_CR18","doi-asserted-by":"publisher","first-page":"70","DOI":"10.1109\/32.825767","volume":"26","author":"Nenad Medvidovic","year":"2000","unstructured":"Nenad Medvidovic and Richard N. Taylor. A Classification and Comparison Framework for Software Architecture Description Languages. IEEE Transactions on Software Engineering, 26(1):70\u201393, 2000.","journal-title":"IEEE Transactions on Software Engineering"},{"key":"6_CR19","doi-asserted-by":"crossref","unstructured":"T.a Mens and P.b Van Gorp. A Taxonomy of Model Transformation. Electronic Notes in Theoretical Computer Science, 152(1-2):125\u2013142, 2006.","DOI":"10.1016\/j.entcs.2005.10.021"},{"key":"6_CR20","doi-asserted-by":"crossref","unstructured":"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\u201328, 1995.","DOI":"10.1145\/222132.222136"},{"key":"6_CR21","volume-title":"Applying Formal Component Specifications to Module Systems in Java","author":"Marco M\u00fcller","year":"2010","unstructured":"Marco M\u00fcller. Applying Formal Component Specifications to Module Systems in Java. Master\u2019s thesis, Universit\u00e4t Duisburg-Essen, March 2010."},{"key":"6_CR22","unstructured":"Marco M\u00fcller, Moritz Balz, and Michael, Goedicke. Representing Formal Component Models in OSGi. In Gregor Engels, Markus Luckey, and Wilhelm Sch\u00e4fer, editors, Software Engineering, volume 159 of LNI, pages 45\u201356. GI, 2010."},{"key":"6_CR23","unstructured":"Oracle America, Inc. JavaTM Platform, Enterprise Edition (Java EE) Specification, v7, June 2015. http:\/\/jcp.org\/en\/jsr\/detail?id=342."},{"key":"6_CR24","doi-asserted-by":"crossref","unstructured":"Van Cam Pham, Ansgar Radermacher, and S\u00e9bastien G\u00e9rard. A New Approach for Reflection of Code Modifications to Model in Synchronization of Architecture Design Model and Code. In Slimane Hammoudi, Lu\u00eds 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\u201324, 2018, pages 496\u2013503. SciTePress, 2018.","DOI":"10.5220\/0006610904960503"},{"key":"6_CR25","doi-asserted-by":"publisher","first-page":"14516","DOI":"10.1109\/ACCESS.2017.2733518","volume":"5","author":"C Raibulet","year":"2017","unstructured":"C. Raibulet, F. Arcelli Fontana, and M. Zanoni. Model-Driven Reverse Engineering Approaches: A Systematic Literature Review. IEEE Access, 5:14516\u201314542, 2017.","journal-title":"IEEE Access"},{"key":"6_CR26","doi-asserted-by":"crossref","unstructured":"Andy Sch\u00fcrr. Specification of Graph Translators with Triple Graph Grammars. In Graph-Theoretic Concepts in Computer Science, 20th International Workshop, WG \u201994, Herrsching, Germany, June 16\u201318, 1994, Proceedings, pages 151\u2013163, 1994.","DOI":"10.1007\/3-540-59071-4_45"},{"key":"6_CR27","volume-title":"Proceedings of the 4th International Conference on Graph Transformations, volume 5214 of Lecture Notes in Computer Science, pages 411\u2013425","author":"Andy Sch\u00fcrr","year":"2008","unstructured":"Andy Sch\u00fcrr 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\u2013425. Springer, September 2008."},{"issue":"2","key":"6_CR28","doi-asserted-by":"publisher","first-page":"497","DOI":"10.1007\/s10270-014-0415-3","volume":"15","author":"Tamal Sen","year":"2016","unstructured":"Tamal Sen and Rajib Mall. Extracting finite state representation of Java programs. Software and System Modeling, 15(2):497\u2013511, 2016.","journal-title":"Software and System Modeling"},{"key":"6_CR29","doi-asserted-by":"crossref","unstructured":"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\u201385. IEEE, 2016.","DOI":"10.1109\/CSEET.2016.37"},{"key":"6_CR30","unstructured":"David Steinberg, Frank Budinsky, Marcelo Paternostro, and Ed Merks. EMF: Eclipse Modeling Framework 2.0. Addison-Wesley Professional, 2nd edition, 2009."},{"key":"6_CR31","doi-asserted-by":"crossref","unstructured":"Michael Striewe. An architecture for modular grading and feedback generation for complex exercises. Science of Computer Programming, 129:35\u201347, 2016. Special issue on eLearning Software Architectures.","DOI":"10.1016\/j.scico.2016.02.009"},{"key":"6_CR32","doi-asserted-by":"crossref","unstructured":"R. N. Taylor, Nenad Medvidovic, and Irvine E. Dashofy. Software Architecture: Foundations, Theory, and Practice. Wiley, 1 edition, January 2009.","DOI":"10.1145\/1810295.1810435"},{"key":"6_CR33","unstructured":"The OSGi Alliance. OSGi Core. https:\/\/osgi.org\/download\/r6\/osgi.core-7.0.0.pdf, April 2018."},{"key":"6_CR34","doi-asserted-by":"crossref","unstructured":"Massimo Tisi, Salvador Mart\u00ednez Perez, and Hassene Choura. Parallel execution of ATL transformation rules. In Ana Moreira, Bernhard Sch\u00e4tz, 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\u2013672. Springer, 2013.","DOI":"10.1007\/978-3-642-41533-3_40"},{"issue":"4","key":"6_CR35","doi-asserted-by":"publisher","first-page":"529","DOI":"10.1007\/s10270-009-0145-0","volume":"9","author":"Stefan Winkler","year":"2010","unstructured":"Stefan Winkler and Jens von Pilgrim. A survey of traceability in requirements engineering and model-driven development. Software & Systems Modeling, 9(4):529\u2013565, September 2010.","journal-title":"Software & Systems Modeling"}],"container-title":["Ernst Denert Award for Software Engineering 2019"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-030-58617-1_6","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,12,2]],"date-time":"2022-12-02T06:27:38Z","timestamp":1669962458000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-030-58617-1_6"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020]]},"ISBN":["9783030586164","9783030586171"],"references-count":35,"URL":"https:\/\/doi.org\/10.1007\/978-3-030-58617-1_6","relation":{},"subject":[],"published":{"date-parts":[[2020]]},"assertion":[{"value":"4 December 2020","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}}]}}