Algebra-basierte Feature-orientierte Programmsynthese
Final Report Abstract
Ein Feature ist eine als Einheit auffassbare Verhaltensweise eines Systems. Features werden zur Spezifikation von Gemeinsamkeiten und Unterschieden von Systemen benutzt. Ein Beispiel ist das Anwendungsfeld der Datenhaltung, mit Features wie Transaktionsverwaltung, Anfrageverarbeitung oder Multianwenderbetrieb. Systeme werden wesentlich leichter erstellbar und wartbar, wenn sie auch auf struktureller Ebene aus klar identifizierbaren Features bestehen und mit einfachen Mitteln aus ihnen zusammengesetzt werden können. Im Bereich der Programmierung heißt diese Vorgehensweise Feature-orientierte Softwareentwicklung (FOSD). Sie wird zur Zeit mit einer Fülle von unterschiedlichen Methoden, Sprachen und Werkzeugen verfolgt, die trotz ihrer gemeinsamen Zielsetzung schwer vergleichbar oder gar integrierbar sind. FEATURE FOUNDATION hatte zum Ziel, bisherige Arbeiten unter dem Ansatz der Algebra-basierten Feature-orientierten Programmsynthese zu vereinheitlichen. Die Synthese von Programmen aus Features soll auf ein solides formales Fundament gestellt werden. Neben einer Generatorinfrastruktur und deren Instanziierung in verschiedensten Szenarien, wurden verschiedene Versionen einer Feature-Algebra untersucht, die diese verschiedenen Szenarien abbilden. Ein Kernresultat ist die Entwicklung und Untersuchung von verschiedenen Ausprägungen von Feature-Algebra. Die ursprüngliche Feature-Algebra aus der ersten Projektphase wurde in verschiedenen Richtungen ergänzt und erweitert. Zum Ersten wurde eine algebraische Sichtweise der bis dahin als atomar angesehenen eigentlichen Codemodule eingeführt, mit der auch deren Feinstruktur und Transformationen davon präzise erfasst werden. Zum Zweiten wurden verschiedene Algebren zur Beschreibung von Feature-Interaktion studiert. Zum Dritten wurde die algebraische Behandlung von Constraints, z.B. Abhängigkeitsbeziehungen wie Feature-Implikation/-Ausschluss, aber auch weitere, untersucht. Ein zweites Kernresultat stellt die Konzeption, Entwicklung und Erprobung des Generatorwerkzeugs FEATURE HOUSE dar. Eine grundlegende Eigenschaft von FEATURE HOUSE ist, dass es leicht um neue Sprachen und Werkzeuge zur Komposition und Analyse erweitert werden kann. In einer Reihe von empirischen Studien haben wir FEATURE HOUSE auf Softwaresysteme von substanzieller Größe und Komplexität erfolgreich angewendet, welche in verschiedenen Sprachen wie C, Java, Python, C# und Alloy geschrieben sind. Neben verschiedenen Formen von Feature-Komposition wurde eine Unterstützung für Three-Way-Merges und Variabilitätskodierung integriert. Weiterhin wurde die Algebra erfolgreich zu Modellierung und Auffindung von nicht-funktionalen Feature-Interaktionen eingesetzt. Insgesamt ist das Projekt FEATURE FOUNDATION als äußerst erfolgreich anzusehen. Insbesondere die Synergie zwischen formaler Betrachtung und praktischer Erprobung waren dafür ursächlich.
Publications
-
Language-Independent Reference Checking in Software Product Lines. In Proceedings of the International Workshop on Feature-Oriented Software Development (FOSD), pages 65–71. ACM, October 2010
Sven Apel, Wolfgang Scholz, Christian Lengauer, and Christian Kästner
-
Semistructured Merge: Rethinking Merge in Revision Control Systems. In Proceedings of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE), pages 190–200. ACM, September 2011
Sven Apel, Jörg Liebig, Benjamin Brandl, Christian Lengauer, and Christian Kästner
-
Supplementing Product Families with Behaviour. International Journal of Software and Informatics (IJSI), 5(1-2):245–266, July 2011
Peter Höfner, Ridha Khédri, and Bernhard Möller
-
Foundations of Coloring Algebra with Consequences for Feature-Oriented Programming. In Relational and Algebraic Methods in Computer Science, volume 7560 of Lecture Notes in Computer Science, pages 33–49. Springer, September 2012
Peter Höfner, Bernhard Möller, and Andreas Zelend
-
Predicting Performance via Automated Feature-Interaction Detection. In Proceedings of the IEEE/ACM International Conference on Software Engineering (ICSE), pages 167–177. IEEE, June 2012
Norbert Siegmund, Sergiy Kolesnikov, Christian Kästner, Sven Apel, Don Batory, Marko Rosenmüller, and Gunter Saake
-
Feature-Interaction Detection based on Feature-Based Specifications. Computer Networks, 57(12):2399–2409, August 2013
Sven Apel, Alexander von Rhein, Thomas Thüm, and Christian Kästner
-
Feature-Oriented Language Families: A Case Study. In Proceedings of the International Workshop on Variability Modelling of Software-intensive Systems (VaMoS), pages 53–60. ACM, January 2013
Jörg Liebig, Sven Apel, and Rolf Daniel
-
Features, Modularity, and Variation Points. In Proceedings of the International Workshop on Feature-Oriented Software Development (FOSD), pages 9–16. ACM, October 2013
Don Batory, Peter Höfner, Bernhard Möller, and Andreas Zelend
-
Language-Independent and Automated Software Composition: The FeatureHouse Experience. IEEE Transactions on Software Engineering (TSE), 39(1):63–79, January 2013
Sven Apel, Christian Kästner, and Christian Lengauer
-
Subclack: Feature-Oriented Programming with Behavioral Feature Interfaces. International Workshop on MechAnisms for SPEcialization, Generalization and inHerItance (MASPEGHI), co-located with ECOOP’13, July 2013
Thomas Thüm, Sven Apel, Andreas Zelend, Reimar Schröter, and Bernhard Möller
-
Exploring Modal Worlds. Journal of Logical and Algebraic Methods in Programming, 83(2):135–153, April 2014
Han-Hing Dang, Roland Glück, Bernhard Möller, Patrick Roocks, and Andreas Zelend
-
Structured Document Algebra in Action. Software, Services and Systems. Essays Dedicated to Martin Wirsing on the Occasion of His Emeritation. Lecture Notes in Computer Science ; 8950. Cham 2015.
Don Batory, Peter Höfner, Dominik Köppl, Bernhard Möller, and Andreas Zelend