Integrierte und hybride Konstruktion von Software-Produktlinien Vortrag zur Verteidigung der Dissertation Dipl. Inf. Ulrich Dinger 12.06.2009
Bildungsweg/Beruflicher Werdegang 10/1999 – 11/2004 Studium der Informatik an der TUD; Diplomarbeit bei der Siemens AG in München 01/2005 – 06/2009 Promotion im Fach Informatik an der TUD/ Siemens AG (München und Erlangen), Mitarbeit an EU- Projekt sowie verschiedenen Projekten in der Wirtschaft 10/2006 – 04/2007 Praktikum bei Siemens Corporate Research in Princeton/NJ (USA) 05/2007 – heute Selbständige Mitarbeit bei Siemens Building Technologies in München
Inhalt Motivation und Ziele Grundlagen Stand der Technik Konzepte Realisierung Evaluierung Zusammenfassung und Ausblick
Motivation und Ziele
Motivation Automobilbau vor 100 Jahren heute Software-Entwicklung übernimmt Konzepte Software-Produktlinien Projekte aus Umfeld der Medizintechnik Soarian Integrated Care (SIC, [SMS07]) = Krankenhausinformationssystem; Kunden mit unterschiedlichen Anforderungen; gleiche Codebasis; über die Jahre gewachsen Elektronische Fallakte (eFA, [CBN07]) = Standard für arztgeführte Patientenakte Implementierung neu aufgesetzt; optionale Integration in SIC
Erstellung von Software-Produktlinien Ziele Erstellung von Software-Produktlinien Ohne Altsystem Mit Altsystem Gemeinsamkeiten? Größtmögliche Automatisierung/Computeruntstützung Erstellung Referenzarchitektur Realisierung von durchgehender Werkzeugunterstützung Diese Folie wird später als Grundlage für Verfeinerung + Evaluierung genommen
Grundlagen
(UML Klassendiagramm) Grundlagen Modellgetriebene SW-Entwicklung + Domänenspezifische Sprachen Software Product Line Engineering (Domain- vs. Application-Engineering) SW-Kompositionssysteme (Kompositionstechniken, Komponentenbeschreibungssprachen, Kompositionsbeschreibungssprachen) Meta-Meta-Modell (MOF) (Bsp: Ecore [EMF08]) Meta-Grammatik (Bsp: ANTLR [Par09]) Meta-Modell (UML Meta-Modell) Grammatik Modell (UML Klassendiagramm) (Instanz) Satz der Grammatik M3 M2 M1
Stand der Technik
Stand der Technik Software Product Line Engineering feature-basiert, entscheidungsbasiert konzeptioneller Aufbau = SW-Kompositionssystem Probleme Kompositionsprogramm von Hand erstellt Wartung/Erweiterung Fragmentierung Beschränkungen Technische Beschränkungen & Variantenauswahl Anpassung/Rekonfiguration Modellierung von Variabilitäten Komponenten-beschreibungssprachen Probleme Von hand erstelltes und gewartetes kompositionsprogramm Fragmentierung kompositionsprogramm Vermischung von technischen und nicht-technischen beschränkungen mappings + Kompositionsprogramm enthält technische beschränkungen (reihenfolgen, inkompatibilitäten) während variantenauswahl kein zugriff darauf Feature- + komponenten-modellierung ähnliche aufgabe: modellierung von variabilitäten Produktanpassung außerhalb des gesamten prozesses
Stand der Technik Komponenten-Beschreibungssprachen (Meta-Modelle) Informationen, auf die während Komposition zugegriffen wird Schnittstellen, Konfiguration der Komponente, Internationalisierung, Fehler, … Gibt große Anzahl OSGi, POM, CORBA + WSDL, Microsoft Interface Definition Language, … Probleme: Auswahl eines Meta-Modells forciert andere Entscheidungen Abbildung der Meta-Modelle aufeinander unnötig kompliziert, da unterschiedliche Repräs. (XML,…) Mangelnde Anpassbarkeit Referenzierbarkeit zwischen (Meta-) Modellen
Konzepte/Thesen
Konzepte/Thesen T1: T2: T3: Einsatz einer auto- Erstellung von Software-Produkt-Linien Ohne Altsystem Mit Altsystem Gemeinsamkeiten? Forward-Engineering Reverse-Engineering Hybrider Ansatz T1: Einsatz einer auto- matischen Planungskomponente löst Probleme T2: Minimales, erweiterbares Komponenten-Meta-Modell hilft, Beschränkungen existierender Ansätze zu überwinden T3: Es lassen sich beide Ansätze zusammenführen und Vorteile nutzbar machen
Konzepte/Forward-Engineering Aktuelles Vorgehen Änderungen Feature-Modellierungssprache erweitert, um auch technische Komponenten beschreiben zu können Zerlegung des Kompositionsprogramms in semantisch annotierte Kompositionsschritte (IOPE) Nutzung einer Planungskomponente; Variantenauswahl = Anfrage an Planer Adaption = Beschreibung der Änderungen als Kompositionsschritte Δ Erweiterte Feature-Meta-Modell, Kompositionsschrittbeschreibungssprache, Planungskomponente
Kompositionsschrittbeschreibung Basis-Sprache = Service Language Layer (SLL) = Web-Service-Programmiersprache Erweiterung um semantische Annotationen Bsp: Integration der Patientensuche Anfrage an Planer = Semantische Beschreibung des gesuchten Services -> Synthetisierung der Applikationslogik durch Planer - name : String service PatientSearchService { operation addPatientSearch($efa as EFA)… { semantic { precondition { <precondition variable=“efa“> <prohibitsFeature> <feature>…patientSearch</…> </prohibitsFeature> </precondition> } effect { <effect> <hasFeature>…</hasFeature> </effect> // Applikationslogik // z.B. Aufruf von Services zum // Kompilieren oder adaptieren von Java- // Code etc ...
Konzepte/Reverse-Engineering Aktuelles Vorgehen Änderungen Minimal invasives Vorgehen, Nutzung des existierenden Build/Kompositionsprogrammes Erstellung von „virtuellen Komponenten“ + Beschreibung derer Variabilitäten + Wrapper in Altsystem Variantenauswahl = Konfiguration einfaches, erweiterbares Komponenten-Meta-Modell (Komponenten-Beschreibungssprache)
Konzepte/Reverse-Engineering Bsp: Internationalisierung Erweiterungsmechanismus mit modellgetriebenen Ansätzen (Ecore als Meta-Meta-Modell) Instanziierung der Meta-Modelle Wiederverwendung auf Meta-Modell- und Modell-Ebene Nutzung der Meta-Modelle über Komponenten-Grenzen hinweg
Konzepte/Reverse-Engineering Beschreibung von Komponenten mittels beliebiger Meta-Modelle Meta-Modelle adaptierbar + erweiterbar Modelltransformationen durch gleiche Basis leichter möglich Code-Generierung + generierte Editoren mit identischem L&F Zusätzliches Meta-Modell zur Beschreibung von Produkt-Konfigurationen konfigurierbare Produkt-Basis ist erster Schritt anschließend Konzepte des Forward-Engineering (Transformation Ecore2FMM)
Konzepte/Hybrider Ansatz Beobachtung Feature-Meta-Modell und Komponenten-Meta-Meta-Modell dienen der Modellierung von Variabilitäten + ähnliche Mächtigkeit Entscheidung für eines der beiden Ecore Anpassung der Meta-Modelle des Forward-Engineering Ermöglicht Nutzung des Reverse-Engineering bei der Erstellung von neuer Software; späterer Einsatz der Konzepte des Forward-Engineering möglich Ecore-Meta-Meta-Modell
Realisierung
Realisierung Modellgetriebener Ansatz Nutzung des Ecore-Meta-Meta-Modells FXL-Framework = Code-Generator FXL Gen = Ecore zu Java Transformationen FXL Edit = Editor-Genierung (baum-basiert) Generelle Vorgehensweise (Bsp. Feature-MM)
Realisierung Varianten-Editor Komponenten-Editor
Evaluierung
Evaluierung/Forward Engineering eFA-Feature-Modelle
Evaluierung/Forward Engineering Kompositionsschrittbeschreibung Als Teil des SLL-Editors
Evaluierung/Forward Engineering Variantenauswahl, Planer und Bauen der Variante => Konzepte + Werkzeuge funktionieren vom Beschreiben der Komponenten bis zum Bauen der Variante basierend auf einer Variantenauswahl Ausführen des synthetisierten Kompositionsprogrammes = Bauen der Variante Variantenauswahl (Rolle = Vertrieb) Variantenauswahl (Rolle = SW-Entwickler)
Evaluierung/Reverse Engineering Erstellte Komponenten-Meta-Modelle MPI + EHR (SIC-Komponenten) Internationalisierung, Dokumentation, Änderungshistorie Konfiguration eines Produktes => Einfache, erweiterbare Komponenten-Beschreibungssprache sowie die entsprechenden Werkzeuge helfen mir, das Software-System in beliebiger Form zu beschreiben + Produkte zu konfigurieren
Zusammenfassung und Ausblick
Zusammenfassung T1:Nutzung einer automatischen Planungs- komponente vereinfacht Erstellung und Wartung von SW-Produktlinien und beseitigt konzeptionelle Probleme existierender Lösungen T2: Einfaches, erweiterbares Komponenten-Meta-Modell erlaubt bei minimal invasiven Vorgehen die flexible Beschreibung von Komponenten + Erweiterung der Beschreibungssprache selbst T3: Vereinigung der Konzepte durch Nutzung von Ecore zur Modellierung von Variabilitäten macht Vorteile nutzbar für Neuerstellung und Umarbeitung Bereitstellung von in Eclipse integrierte SW-Entwicklungswerkzeuge; Evaluiert an zwei Beispielen aus dem Umfeld der Medizintechnik
Ausblick Realisierung SW-Werkzeuge für hybriden Ansatz Nutzung weiterer Standards OCL zur Beschreibung von Beschränkungen Modelltransformationssprache für Transformation der Komponenten-Modelle (QVT) Mächtigere Sprache für Berechnungen (Expression L.) Optimierung der Planungskomponente Nutzung von verteilter Planung Forschungsergebnisse aus anderen Disziplinen Semantic Web Services (OWL-S) Künstliche Intelligenz Bereitstellung anderer Sichten auf Modelle Nutzung DSL-Frameworks
Vielen Dank für die Aufmerksamkeit
Referenzen [SMS07] SIEMENS MEDICAL SOLUTIONS: Soarian Integrated Care – Administrationshandbuch; Softwareversion v02.00 und höher. 2007 [CBN07] CAUMANNS, JÖRG, OLIVER BOEHM UND JAN NEUHAUS: Elektronische Fallakten zur sicheren einrichtungsübergreifenden Kommunikation; Bundesamt für Sicherheit in der Informationstechnik: Innovationsmotor ITSicherheit. Tagungsband zum 10. Deutschen IT-Sicherheitskongress, 2007 [EMF08] THE ECLIPSE FOUNDATION: The Eclipse Modeling Framework Project. Zugegriffen 02.09.2008 http://www.eclipse.org/modeling/emf/ [Par09] PARR, TERRENCE: ANTLR Parser Generator. Zugegriffen am 02.02.2009 http://www.antlr.org/
Stand der Technik Kompositionsbeschreibungssprachen/Workflow-Beschreibungssprachen
Konzepte/Forward-Engineering Erweitertes Feature-Meta-Modell Parametrisierung Wiederverwendung Meta-Architektur als SOA Service Language Layer Kompositionsbeschreibungssprache Semantische Beschreibung der Kompositionsschritte auf Basis Feature-Modelle + Meta-Modell (IOPE)
Zusätzliche Materialien Tutorials/Demos Variantenauswahl eFA CDF Erweiterung, I18n, Versioning/History Meta-Modelle Feature-~, Datentypen, Beschränkungen Semantische Beschreibung/Vorbedingung/Effekte/Berechnungen/Beschränkungen Anfrage an Planer/Vorbedingungen/Nachbedingungen Komponentenmodell/TMX/I18n Ecore/Angepaßte Anfragevorbedingungen Planer
Anhang Meta-Modell-Dokumentationen (HTML) Dokumentationssprache CDF + I18n + TMX Ecore (Meta-Modell + Klassenhierarchie) Feature-Meta-Modell Semantische Beschreibungen FODA Beispiele (Bilder) Variantenauswahl Wizard History/Release-Notes Meta-Modell-Dokumentation
Feature-Meta-Modell
Datentypen Definierte Datentypen (UML-Instanzdiagramm)
Beschränkungen
Semantische Beschreibung (1)
Semantik (2/Vorbedingungen)
Semantik (3/Effekte)
Semantik (4/Beschränkungen/Berechnungen)
Anfragen an Planer
Anfragevorbedinungen
Anfragenachbedingungen
TMX/Internationalisierung
Produktkonfiguration
Komoponentenmodell
Ecore Meta-Meta-Modell
Angepaßte Anfragevorbedingungen
Planer
Planer Optimierung
Variantenauswahl Wizard
History zu HTML-Release-Notes
Dokumentations-Meta-Modell
Generierte HTML-Dokumentation