Multi-Software-Produktlinien - Grundlagen, Konzepte, Methoden
Final Report Abstract
Die Entwicklung von Softwareprodukten, die auf einen speziellen Anwendungsbereich maßgeschneidert sind, birgt große Herausforderungen bezogen auf die Wartbarkeit und die Verwaltung der resultierenden Produkte. Ein vielversprechender Ansatz ist die Verwendung von Produktlinientechnologien, die eine maßgeschneiderte Entwicklung von Softwareprodukten auf einer gemeinsamen Quellcodebasis ermöglicht. Es gibt verschiedenste Produktlinientechniken, die jeweils die Wiederverwendung von Programmsegmenten ermöglichen. Im Gegensatz dazu ist die Wiederverwendung und die Kooperation einer gesamten Produktlinie im Kontext beziehungsweise in Kooperation einer anderen Produktlinie problematisch. Diese beliebige Verknüpfung einer Menge von Produktlinien, die auch als Multiproduktlinie bezeichnet wird, stellt besondere Anforderungen an die Entwickler, die eine korrekte Komposition und Funktionalität des Systems sicherstellen müssen. Vor der Bearbeitung des Projekts MultiPLe existierten nur unzureichende oder unflexible Möglichkeiten, um eine sichere Komposition von Produktlinien zu gewährleisten. Zur Sicherstellung der Korrektheit basierte die Schnittstelle zwischen Produktlinien daher meist auf einer festen Schnittstelle, die dem Maßschneiderungskonzept entgegensteht. In der ersten Projektphase von MultiPLe wurden Konzepte entwickelt, die eine sichere Komposition von Produktlinien auf konzeptioneller Ebene ermöglichen. Des Weiteren wurden Methoden zur Modellierung, Implementierung sowie der Konfiguration von Multiproduktlinien geschaffen, die nun in der zweiten Projektphase verallgemeinert wurden. Im Laufe der zweiten Projektphase von MultiPLe wurde ein allgemeines und flexibles Schnittstellenkonzept entwickelt, dass es ermöglicht, die Schnittstelle zwischen Produktlinien auf mehreren Ebenen zu beschreiben. Das entwickelte Konzept der mehrschichtigen Schnittstellen umfasst die Ebene der Variabilitätsmodelle, die Syntaktische-, die Verhaltens- und die nicht-funktionale Ebene zwischen Produktlinien. Im Gegensatz zu festen Schnittstellen, handelt es sich hierbei um variable Schnittstellen, die eine flexiblere Maßschneiderung und Kombination von Produktlinien ermöglichen und eine korrekte Interoperabilität sicherstellen sollen. Zudem ermöglicht das Schnittstellenkonzept die Verwendung von unterschiedlichsten Entwicklungstechniken, da die Entwicklungsdetails hinter dieser Schnittstelle verborgen werden. Zur Verfeinerung des Konzeptes der mehrschichtigen Schnittstellen wurde unter anderem die Ebene der Implementierung im Detail betrachtet und eine variable Schnittstelle vorgeschlagen, die die Verfügbarkeit und Nutzbarkeit von Methoden anzeigt. Hierbei handelt es sich um ein Konzept, dass nicht nur bei der Implementierung von Multiproduktlinien unterstützt, sondern auch eine Vereinfachung bei der Implementierung von einzelnen Produktlinien darstellt. Dementsprechend kann die Schnittstelle auch genutzt werden, um den Entwickler bei der Programmierung einer Produktlinie zu unterstützen. Das Projekt MultiPLe konnte dadurch nicht nur eine deutlichen Fortschritt im Bereich der sicheren Komposition von Produktlinien verzeichnen, sondern zu der Verbesserung von zugrunde liegenden Techniken im Bereich der Produktlinienentwicklung beitragen. Des Weiteren wurden im Zuge des Projektes grundlegende Konzepte entwickelt, die in Folgeprojekten zur Verfeinerung der Modellierungs-, Verhaltens- und nicht-funktionalen Ebene verwendet werden können. Außerdem wurden die Konzepte in der Entwicklungsumgebung FeatureIDE bereitgestellt, was die Verbreitung der Konzepte als auch deren Weiterentwicklung sicherstellt.
Publications
- Automated Analysis of Dependent Feature Models. In: International Workshop on Variability Modelling of Software-intensive Systems (VaMoS). New York, NY, USA : ACM, Jan. 2013, S. 9:1–9:5
Schröter, R. ; Thüm, T. ; Siegmund, N. ; Saake, G.
- Subclack:Subclack: Feature-Oriented Programming with Behavioral Feature Interfaces. In: Workshop on MechAnisms for SPEcialization, Generalization and inHerItance (MASPEGHI). New York, NY, USA : ACM, Jul. 2013, S. 1–8
Thüm, T. ; Apel, S. ; Zelend, A. ; Schröter, R. ; Möller, B.
- Towards Modular Analysis of Multi Product Lines. In: Proceedings of the 17th International Software Product Line Conference co-located workshops. New York, NY, USA : ACM, Aug 2013 (SPLC ’13 Workshops), S. 96–99
Schröter, R. ; Siegmund, N. ; Thüm, T.
- Feature-Context Interfaces: Tailored Programming Interfaces for Software Product Lines. In: Proceedings of the International Software Product Line Conference (SPLC). New York, NY, USA : ACM, Sept. 2014, S. 102–111
Schröter, R. ; Siegmund, N. ; Thüm, T. ; Saake, G.
(See online at https://doi.org/10.1145/2648511.2648522) - Potential Synergies of Theorem Proving and Model Checking for Software Product Lines. In: Proceedings of the International Software Product Line Conference (SPLC). New York, NY, USA : ACM, Sept. 2014, S. 177–186
Thüm, T. ; Meinicke, J. ; Benduhn, F. ; Hentschel, M. ; Rhein, A. von ; Saake, G.
(See online at https://doi.org/10.1145/2648511.2648530) - Toward Variability Management to Tailor High Dimensional Index Implementations. In: IEEE Eighth International Conference on Research Challenges in Information Science (RCIS), IEEE, 2014, S. 452–457
Köppen, V. ; Schäler, M. ; Schröter, R.
(See online at https://doi.org/10.1109/RCIS.2014.6861069)