Stepwise Migration of Cloned Product Variants to a Compositional Software Product Line
Final Report Abstract
In der ersten Projekthälfte haben wir einen Migrationsprozess von Clone-and-Own Varianten hinzu einer durch Software Product Line Engineering (SPLE) verwalteten integrierten Plattform vorgeschlagen. In der zweiten Projekthälfte haben diesen Ansatz erweitertet und verschiedene Aspekte dazu untersucht. Dabei haben wir unter anderem die Kosten für die Verwaltung von Varianten mittels Clone-and-own und SPLE, die Kosten für die Durchführung des Migrationsprozesses, die Verwendung von annotationbasierten Ansätzen, die Sicherstellung der Qualität des SPLE-Prozesses und der resultierenden Software Produktlinien (SPLs) und die Analyse von Versionsverwaltungssysteme (VCS) betrachtet. In der zweiten Projekthälfte haben wir den von uns vorgeschlagenen Migrationsansatz weiterentwickelt und auf die allgemeine Entwicklung mit SPLE erweitert. Der weiterentwickelte Ansatz ist dabei an moderne, agile Softwareentwicklung mit Fokus auf Evolution der Varianten und des Variantenraums angelehnt und soll dadurch Entwickler besser unterstützen. Zusätzlich haben wir die beim Migrationsprozess entstehenden Kosten mittels Fallstudien näher untersucht. Als Ergebnis kommen wir zu dem Schluss, dass unabhängig vom gewählten Migrationsprozess und Variabilitätsmechanismus immer bestimme Aktivitäten mit entsprechendem Aufwand durchgeführt werden müssen. Ein Unterschied zeigt bei der Wahl eines Variabilitätsmechanismuses. So bedeutet eine Migration zu einem annotationsbasierten Ansatz weniger Aufwand, als bei einem kompositionsbasierten Ansatz. Bei einem Vergleich der laufenden Kosten zur Verwaltung von Varianten mittels Clone-and-Own und einem SPLE-Ansatz zeigt sich, dass SPLE in der Regel zu bevorzugen ist. Überraschend waren bei dieser Untersuchung die Erkenntnisse, dass Fehlerbehebung in SPLE zu ähnlich schweren Problemen führt, wie bei Clone-and-Own und dass SPLE-Ansätze trotz ihrer komplexeren Verwaltung Innovationen fördern können. Weitere Forschung haben wir zu den annotationsbasierten Ansätzen und Microservises für SPLE durchgeführt. Aus den Untersuchung zum Programmverständnis von Entwicklern und die Code-Qualitätergaben sich zum Teil überraschende Ergebnisse, die den etablierten Vorstellungen widersprechen. So kann die Refactorisierung von schlecht strukturierten Präprozessor Annotationen die Gesamtqualität des Codes und damit das Programmverständnis reduzieren. Weiterhin haben wir Untersuchungen im Bereich der Qualitätssicherung des SPLE-Prozesses und resultierenden SPLs durchgeführt. Als Ergebnis können wir das Family Evaluation Framework (FEF) eine geeignete Methode zur Bewertung der Qualität des eingesetzten SPLE-Prozesses identifizieren. Zudem haben wir weitere Untersuchungen im Bereich der Qualitätssicherung von migrierten und bestehenden SPLs und zur allgemeinen Verwaltung und Analyse von SPLs angestellt. Eine weiterer Forschungspunkt war die Nutzung von VCS als Informationsquelle und als Ausgangspunkt für die Migration von Clone-and-Own Varianten. Für die Überführung von Varianten in Forks von VCS haben wir Tool Support entwickelt und evaluiert. Dieses Tool ermöglicht Entwicklern die leichte Verwaltung variantenreicher Systeme und bietet Forschern neue Analysemethoden und Forschungsmöglichkeiten zur Variantenmanagement mittels VCS.
Publications
-
„Effects of explicit feature traceability on program comprehension“. In: Proceedings of the ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/SIGSOFT FSE 2019, Tallinn, Estonia, August 26-30, 2019. ACM, 2019, S. 338–349
Jacob Krüger, Gül Çalikli, Thorsten Berger, Thomas Leich und Gunter Saake
-
„Activities and costs of re-engineering cloned variants into an integrated platform“. In: VaMoS ’20: 14th International Working Conference on Variability Modelling of Software-Intensive Systems, Magdeburg Germany, February 5-7, 2020. ACM, 2020, 21:1–21:10
Jacob Krüger und Thorsten Berger
-
„An empirical analysis of the costs of clone- and platform-oriented software reuse“. In: ESEC/FSE ’20: 28th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, Virtual Event, USA, November 8-13, 2020. ACM, 2020, S. 432–444
Jacob Krüger und Thorsten Berger
-
„EXtracting product lines from vAriaNTs (EXPLANT)“. In: VaMoS ’20: 14th International Working Conference on Variability Modelling of Software-Intensive Systems, Magdeburg Germany, February 5-7, 2020. ACM, 2020, 13:1–13:2
Jacob Krüger, Sebastian Krieter, Gunter Saake und Thomas Leich
-
„Promote-pl: a round-trip engineering process model for adopting and evolving product lines“. In: SPLC ’20: 24th ACM International Systems and Software Product Line Conference, Montreal, Quebec, Canada, October 19-23, 2020, Volume A. ACM, 2020, 2:1–2:12
Jacob Krüger, Wardah Mahmood und Thorsten Berger
-
„YASA: yet another sampling algorithm“. In: VaMoS ’20: 14th International Working Conference on Variability Modelling of Software-Intensive Systems, Magdeburg Germany, February 5-7, 2020. ACM, 2020, 4:1–4:10
Sebastian Krieter, Thomas Thüm, Sandro Schulze, Gunter Saake und Thomas Leich
-
„Software product-line evaluation in the large“. In: Empir. Softw. Eng. 26.2 (2021), S. 30
Robert Lindohf, Jacob Krüger, Erik Herzog und Thorsten Berger
-
„Stability of Product-Line Samplingin Continuous Integration“. In: VaMoS’21: 15th International Working Conference on Variability Modelling of Software-Intensive Systems, Virtual Event / Krems, Austria, February 9-11, 2021. ACM, 2021, 18:1–18:9
Tobias Pett, Sebastian Krieter, Tobias Runge, Thomas Thüm, Malte Lochau und Ina Schaefer
-
„variED: an editor for collaborative, real-time feature modeling“. In: Empir. Softw. Eng. 26.2 (2021), S. 24
Elias Kuiter, Sebastian Krieter, Jacob Krüger, Gunter Saake und Thomas Leich