Methodische Fundierung der dienstbasierten Entwicklung reaktiver Systeme
Final Report Abstract
Erste Projektphase. In dieser ersten Phase wurde eine methodische und wissenschaftliche Fundierung der dienstbasierten Softwareentwicklung erarbeitet. Die Basis bildet ein formaler Dienstbegriff. Ein Dienst ist dabei als partielle Verhaltensspezifikation eines Systems definiert. Verschiedene formale Spezifikationstechniken und methodische Operationen bauen auf dieser Definition auf. Als geeignete Modellierungs- und Beschreibungstechniken wurde die Kombination von Strukturdiagrammen und Sequenzdiagrammen identifiziert. Diese Techniken wurden derart an die dienstorientierte Softwareentwicklung angepasst, dass auch querschnittliche Eigenschaften, die mehrere Dienste einbeziehen, als auch Qualitätseigenschaften beschrieben werden können. Der konzipierte dienstbasierte und iterative Entwicklungsprozess integriert Anforderungen in Form von Anwendungsfällen, den Aufbau eines interaktionsbasierten Dienstmodelles basierend auf logischen Rollen bis hin zur Abbildung dieser Rollen auf zustandsbasierte Komponenten. Dieser Ansatz wurde anhand mehrerer Fallstudien erprobt. Zweite Projektphase. In der zweiten Phase wurden die meisten Konzepte der ersten Phase in Hinblick auf ihre Anwendbarkeit ausgearbeitet. Das Rollenkonzept wurde um Zustandsinformationen, den sogenannten Modi, erweitert. Die neu eingeführte Vererbung von Rollen führte zu Hierarchien von Rollen. Es wurden auch neue Konzepte wie Datenfluss und Transaktionen untersucht, formalisiert und schließlich in einer angepassten Methodik verwirklicht. Um die praktische Anwendbarkeit weiter voranzutreiben, wurde mit der Entwicklung der automatischen Code-Generierung sowie der Werkzeuge zur Unterstützung der gesamten Methodik begonnen. In zwei Fallstudien wurden die Vorteile des erarbeiteten Ansatzes belegt. Hervorzuheben sind dabei, die Möglichkeit leicht verschiedene Architekturen vergleichen zu können und die reduzierte Komplexität bei der Entwicklung durch das entkoppelte Beschreiben von Verhalten, Struktur und Zustand. Erkannt wurden aber Lücken in der Entwicklung, u.a. im Anforderungsmanagement und in der Testphase, die in der dritten Projektphase ausgearbeitet werden sollten. Dritte Projektphase. In der dritten Phase wurde die Theorie in Hinblick auf die Strukturierung der Funktionalität ausgebaut. Das Zusammenführen von Diensten wird nun auch im Falle von Konflikten ("Feature Interaction“) systematisch behandelt. Außerdem wurde der Ansatz auf das Anforderungsmanagement, der Ubergang von Textdokumenten zu Sequenzdiagrammen ist systematisch und werkzeugunterstützt möglich, und das modellbasierte Testen erweitert. Durch die dadurch geschaffene Durchgängigkeit wird das Potential für praktische Anwendbarkeit des Ansatzes erhöht. Fehler bei der Systemintegration werden frühzeitig erkannt und beseitigt, wenn die für multifunktionale Systeme charakteristischen Abhängigkeiten zwischen Diensten systematisch modelliert werden. Die untersuchten Produktlinienkonzepte führen schließlich zu einer höheren Wiederverwendung der dienstbasierten Anforderungsmodelle und machen den Ansatz somit kosten- und zeiteffektiver. Die neu entwickelten Konzepte sind größtenteils in das vorhandene CASE-Werkzeug integriert. Durch zwei Fallstudien wurde der Ansatz und dessen Anwendbarkeit in verschiedenen Domänen evaluiert.
Publications
- Property-driven scenario integration. In: Proceedings of the 7th International Conference on Software Engineering and Formal Methods, pages 147–156. IEEE Computer Society, 2009
Jewgenij Botaschanjan and Alexander Harhurin
- Scenario analysis: Generation of possible scenario interpretations and their visualization. In: Proceedings of the 4th International Workshop on Requirements Engineering Visualization, pages 21–30. IEEE Computer Society, 2009
Leonid Kof
- A Formal Approach to Software Product Families. PhD thesis, Technische Universität München, München, 2010
Alexander Gruler
- From requirements documents to system models: A tool for interactive semi-automatic translation. In: Proceedings of the 18th International Requirements Engineering Conference, pages 391–392. IEEE Computer Society, 2010
Leonid Kof
- Multifunctional software systems: Structured modeling and specification of functional requirements. Science of Computer Programming, 75(12):1193 – 1214, 2010
Manfred Broy
- The role of requirements and specification in product line engineering. In: Proceedings of the 15th International Software Product Line Conference, pages 3 – 7, 2011
Manfred Broy
- Extent and characteristics of dependencies between vehicle functions in automotive software systems. In: Proceedings of the 4th International Workshop on Modelling in Software Engineering, 2012
Andreas Vogelsang, Stefan Teuchert, and Jean-François Girard