EXtracting Product Lines from vAriaNTs (EXPLANT)

Softwareproduktlinien (SPL) unerstützen die strategische Wiederverwendung und Variabilität von Software durch einen systematischen Ansatz. In der Praxis werden existierende Programme jedoch oft nur durch kopieren und anpassen (Clone-and-Own)  wiederverwendet. Dadurch entstehen eine Vielzahl von separaten Varianten, so dass der Wartungsaufwand mit der Zeit ansteigt.

Unser Projekt zielt darauf ab, geklonte Produktefamilien in eine strukturierte, modulare Produktlinie zu überführen. Unter Verwendung von Code-Clone Detektion, Architekturanalysen und Domainwissen wird eine semi-automatische, semantik erhaltende, schrittweise Transformation angestrebt. In jedem Schritt werden der Code und/oder das Feature-Modell entsprechend angepasst und werden als sematik-erhaltende Transformationen bezeichnet.

Kooperation

Das Projekt EXPLANT wird von der Deutschen Forschungsgemeinschafft (DFG) gefördert und in Kooperation mit der Otto-von-Guericke-Universität Magdeburg durchgeführt.

Projektmitglieder an der Hochschule Harz (Grant LE 3382/2-1):

  • Prof. Dr.-Ing. Thomas Leich
  • Jacob Krüger M.Sc.

Weitere Projektmitglieder an der OvGU sind (Grant SA 465/49-1):

Im Rahmen des Forschungsprojektes ist Jacob Krüger für einen Forschungsaufenthalt seit Oktober 2017 in Schweden. Hierbei stehen Kooperationen mit industriellen Partnern im Vordergrund, die durch die Technische Hochschule Chalmers und Universität Göteborg ermöglicht werden, insbesondere durch die Hilfe von

Related Work

Das Literatur Survey "A Taxonomy of Software Product Line Reengineering" stellt das grundsätzliche Umfeld des Projektes dar. Es werden drei Hauptypen des SPL-Refactorings unterschieden, wobei der Fokus von EXPLANT auf dem im Artikel definierten Bereich Variant-Preserving Migration liegt. Dessen Ziel ist die Überführung existierender Softwaresysteme zu einer SPL. Neben der Klassifizierung existiernder Arbeiten im Bereich des SPL-Refactorings ist eine der wichtigsten Schlussfolgerungen, dass der Bereich der Migration von mehreren geklonten Varianten auf Codelevel bisher wenig addressiert wurde.

  • Wolfram Fenske, Thomas Thüm, and Gunter Saake. A Taxonomy of Software Product Line Reengineering. In Proceedings of the International Workshop on Variability Modeling of Software-Intensive Systems (VaMoS), pages 4:1–4:8, 2014. ACM.

Auszeichnungen

Im Rahmen dieses Forschungsprojektes wurden die folgenden Mitarbeiter und Arbeiten ausgezeichnet:

  • Hugo-Junckers Preis 2016 als innovative Allianz für FeatureIDE, das im Rahmen dieses Projektes genutzt und weiterentwickelt wird (10.000€).
  • Best Paper Award der International Conference on Generative Programming 2017 für Dipl.- Inform. Wolfram Fenske, für den Beitrag How Preprocessor Annotations (Do Not) Affect Maintainability: A Case Study on Change-Pronenes.
  • Wissenschaftspreis der Wernigeröder Stadtwerkestiftung 2017 für M.Sc. Jacob Krüger, für den Artikel Composing Annotations Without Regret? Practical Experiences Using FeatureC (3.000€).

Lehre

Im Rahmen des Forschungsprojektes bieten wir sowohl an der Hochschule Harz als auch der Universität Magdeburg Projekte und Abschlussarbeiten an. Bei Interesse können aktuelle Projektthemen gerne erfragt werden.

Abschlussarbeiten

2018

  • Kai Ludwig: Physische Separation annotierter Features: Ein Ausweg aus der #ifdef-Hölle?, Master thesis, Harz University of Applied Sciences, 2018. In German.
  • Louis Nell: Finding Lost Features in Cloned Systems, Bachelor thesis, Harz University of Applied Sciences, 2018. In German.

2017

  • Niklas Corr: Eclipse IDE à la carte - eine empirische Analyse des Eclipse Marketplace, Bachelor thesis, Harz University of Applied Sciences, 2017. In German.
  • Christian Lausberger. Konzeption von Suchprozessen und Suchstrategien für systematische Literatur Reviews. Master thesis, University of Magdeburg, 2017. In German.
  • Jens Wiemann. Measuring Code Familiarity in Forked Product Variants. Master thesis, University of Magdeburg, 2017.
  • Daniel Püsche. Featurebaum-basierte Produktkonfiguration. Bachelor thesis, University of Magdeburg, 2017. In German.
  • Yusra Shakeel. Supporting Quality Assessment in Systematic Literature Reviews. Master thesis, University of Magdeburg, 2017.
  • Shravya Rama. Suggesting Suitable Learning Approaches To Improve Programming Skills. Master thesis, University of Magdeburg, 2017.

2016

  • Steffen Schulze. Feature-orientiertes Refactoring zur Migration von Produktvarianten, Master thesis, University of Magdeburg, 2016. In German.
  • Jacob Krüger. A Cost Estimation Model for the Extractive Software-Product-Line Approach. Master thesis, University of Magdeburg, 2016.

2015

  • Konstantin Tonscheidt. Leveraging Code Clone Detection for the Incremental Migration of Cloned Product Variants to a Software Product Line: An Explorative Study. Bachelor thesis, University of Magdeburg, 2015.

Publikationen

2018

  • Jacob Krüger, Marcus Pinnecke, Andy Kenner, Christopher Kruczek, Fabian Benduhn, Thomas Leich, and Gunter Saake. Composing Annotations Without Regret? Practical Experiences Using FeatureC. Software: Practice and Experience, 48(3):402-427, 2018.
  • Jacob Krüger, Thorsten Berger, and Thomas Leich. Software Engineering for Variability Intensive Systems, chapter Features and How to Find Them: A Survey of Manual Feature Location, page 29. CRC Press, April 2018. Accepted.
  • Jacob Krüger, Mustafa Al-Hajjaji, Thomas Leich, and Gunter Saake. Mutation Operators for Feature-Oriented Software Product Lines. Software Testing, Verification and Reliability, April 2018. Accepted.
  • Gabriel Campero Durand, Anusha Janardhana, Marcus Pinnecke, Yusra Shakeel, Jacob Krüger, Thomas Leich, and Gunter Saake. Exploring Large Scholarly Networks with Hermes. In International Conference on Extending Database Technology, EDBT, 2018. Accepted.

  • Jacob Krüger, Jens Wiemann, Wolfram Fenske, Gunter Saake, and Thomas Leich. Do You Remember This Source Code? In International Conference on Software Engineering, ICSE. ACM, 2018. Accepted.
  • Sebastian Krieter, Jacob Krüger, Nico Weichbrodt, Vasily A. Sartakov, Rüdiger Kapitza, and Thomas Leich. Towards Secure Dynamic Product Lines in the Cloud. In International Conference on Software Engineering - New Ideas and Emerging Results Track, ICSE-NIER. ACM, 2018. Accepted.

  • Mukelabai Mukelabai, Benjamin Behringer, Moritz Fey, Jochen Palz, Jacob Krüger, and Thorsten Berger. Multi-View Editing of Software Product Lines with PEoPL. In International Conference on Software Engineering - Demonstration Track, ICSE-DEMO. ACM, 2018. Accepted.
  • Jacob Krüger, Mustafa Al-Hajjaji, Sandro Schulze, Gunter Saake, and Thomas Leich. Towards Automated Test Refactoring for Software Product Lines. In International Systems and Software Product Line Conference, SPLC. ACM, September 2018. Accepted.
  • Elias Kuiter, Jacob Krüger, Sebastian Krieter, Thomas Leich, and Gunter Saake. Getting Rid of Clone-And-Own: Moving To A Software Product Line for Temperature Monitoring. In International Systems and Software Product Line Conference, SPLC. ACM, September 2018. Accepted.
  • Jacob Krüger, Wolfram Fenske, Thomas Thüm, Dirk Aporius, Gunter Saake, and Thomas Leich. Apo-Games - A Case Study for Reverse Engineering Variability from Cloned Java Variants. In International Systems and Software Product Line Conference, SPLC, 2018. Accepted.

  • Jacob Krüger. When to Extract Features: Towards a Recommender System. In International Conference on Software Engineering - ACM Student Research Competition, ICSE-SRC. ACM, 2018. Accepted.

  • Ivonne von Nostitz-Wallwitz, Jacob Krüger, Janet Siegmund, and Thomas Leich. Poster: Knowledge Transfer from Research to Industry: A Survey on Program Comprehension. In International Conference on Software Engineering - Poster Track, ICSE-Poster. ACM, 2018. Accepted.

  • Sebastian Krieter, Jacob Krüger, and Thomas Leich. Don’tWorry About it: Managing Variability On-The-Fly. In International Workshop on Variability Modelling of Software-Intensive Systems, VaMoS, pages 19–26. ACM, 2018.
  • Jacob Krüger, Wanzi Gu, Hui Shen, Mukelabai Mukelabai, Regina Hebig, Thorsten Berger. Towards a Better Understanding of Software Features and Their Characteristics: A Case Study of Marlin. In International Workshop on Variability Modelling of Software-Intensive Systems, VaMoS, pages 105–112. ACM, 2018.
  • Jacob Krüger. Separation of Concerns: Experiences of the Crowd. In Symposium on Applied Computing - Student Research Competition, SAC-SRC. ACM, 2018. Accepted.
  • Jacob Krüger, Kai Ludwig, Bernhard Zimmermann, and Thomas Leich. Physical Separation of Features: A Survey with CPP Developers. In Symposium on Applied Computing - Variability and Software Product Line Engineering, SAC-VSPLE. ACM, 2018. Accepted.

2017

  • Jens Meinicke, Thomas Thüm, Reimer Schröter, Fabian Benduhn, Thomas Leich, and Gunter Saake. Mastering Software Variability with FeatureIDE. Springer, 2017.
  • Jacob Krüger. Lost in Source Code: Physically Separating Features in Legacy Systems. In International Conference on Software Engineering Companion, ICSE-C, pages 461–462. IEEE, 2017.
  • Jacob Krüger, Stephan Dassow, Karl-Albert Bebber, and Thomas Leich. Daedalus or Icarus? Experiences on Follow-The-Sun. In International Conference on Global Software Engineering, ICGSE, pages 31–35. IEEE, 2017.
  • Jacob Krüger, Ivonne Schröter, Andy Kenner, and Thomas Leich. Empirical Studies in Question-Answering Systems: A Discussion. In International Workshop on Conducting Empirical Studies in Industry, CESI, pages 23–26. IEEE, 2017.
  • Mustafa Al-Hajjaji, Jacob Krüger, Fabian Benduhn, Thomas Leich, and Gunter Saake. Efficient Mutation Testing in Configurable Systems. In International Workshop on Variability and Complexity in Software Design, VACE, pages 2–8. IEEE, 2017.
  • Mustafa Al-Hajjaji, Jacob Krüger, Sandro Schulze, Thomas Leich, and Gunter Saake. Efficient Product-Line Testing using Clustering-Based Product Prioritization. In International Workshop on Automation of Software Test, AST, pages 16–22. IEEE, 2017.
  • Ivonne Schröter, Jacob Krüger, Philipp Ludwig, Marcus Thiel, Andreas Nürnberger, and Thomas Leich. Identifying Innovative Documents: Quo vadis?. In Slimane Hammoudi, Michal Smialek, Olivier Camp, and Joaquim Filipe, editors, International Conference on Enterprise Information Systems, ICEIS, pages 653–658. ScitePress, 2017.
  • Jacob Krüger, Niklas Corr, Ivonne Schröter, and Thomas Leich. Digging into the Eclipse Marketplace. In Federico Balaguer, Roberto Di Cosmo, Alejandra Garrido, Fabio Kon, Gregorio Robles, and Stefano Zacchiroli, editors, International Conference on Open Source Systems: Towards Robust Practices, pages 60–65. Springer, 2017.
  • Ivonne Schröter, Jacob Krüger, Janet Siegmund, and Thomas Leich. Comprehending Studies on Program Comprehension. In International Conference on Program Comprehension, ICPC, pages 308–311. IEEE, 2017.
  • Jacob Krüger, Sebastian Nielebock, Sebastian Krieter, Christian Diedrich, Thomas Leich, Gunter Saake, Sebastian Zug, and Frank Ortmeier. Beyond Software Product Lines: Variability Modeling in Cyber-Physical Systems. In International Systems and Software Product Line Conference, SPLC, pages 237–241. ACM, 2017.
  • Sebastian Krieter, Marcus Pinnecke, Jacob Krüger, Joshua Sprey, Christopher Sontag, Thomas Thüm, Thomas Leich, and Gunter Saake. FeatureIDE: Empowering Third-Party Developers. In International Systems and Software Product Line Conference, SPLC, pages 42–45. ACM, 2017.
  • Jacob Krüger, Louis Nell, Wolfram Fenske, Gunter Saake, and Thomas Leich. Finding Lost Features in Cloned Systems. In International Systems and Software Product Line Conference, SPLC, pages 65–72. ACM, 2017.
  • Wolfram Fenske, Jens Meinicke, Sandro Schulze, Steffen Schulze, and Gunter Saake. Variant-Preserving Refactorings for Migrating Cloned Products to a Product Line. In International Conference on Software Analysis, Evolution and Reengineering, SANER, pages 316–326. IEEE, 2017.
  • Wolfram Fenske, Sandro Schulze, and Gunter Saake. How Preprocessor Annotations (Do Not) Affect Maintainability: A Case Study on Change-Proneness. In International Conference on Generative Programming: Concepts & Experience, GPCE, pages 77–90. ACM, 2017.

2016

  • Jacob Krüger, Ivonne Schröter, Andy Kenner, Christopher Kruczek, and Thomas Leich. FeatureCoPP: Compositional Annotations. In International Workshop on Feature-Oriented Software Development, FOSD, pages 74–84. ACM, 2016.
  • Jacob Krüger, Wolfram Fenske, Jens Meinicke, Thomas Leich, and Gunter Saake. Extracting Software Product Lines: A Cost Estimation Perspective. In International Systems and Software Product Line Conference, SPLC, pages 354–361. ACM, 2016.

Prof. Dr.-Ing. Thomas Leich

Projektleiter Hochschule Harz

FB Automatisierung und Informatik
Tel +49 3943 659 318
Raum 2.003, Haus 2, Wernigerode
Sprechzeiten nach Vereinbarung per E-Mail