600 likes | 760 Views
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
E N D
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 • 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
Ziele • Größtmögliche Automatisierung/Computeruntstützung • Erstellung Referenzarchitektur • Realisierung von durchgehender Werkzeugunterstützung Erstellung von Software-Produktlinien Ohne Altsystem Mit Altsystem Gemeinsamkeiten?
Meta-Grammatik (Bsp: ANTLR [Par09]) Meta-Meta-Modell (MOF) Meta-Meta-Modell (Bsp: Ecore [EMF08]) M3 Grammatik Meta-Modell (UML Meta-Modell) Meta-Modell M2 Satz der Grammatik Modell (UML Klassendiagramm) Modell (Instanz) M1 Grundlagen • Modellgetriebene SW-Entwicklung + Domänenspezifische Sprachen • Software Product Line Engineering (Domain- vs. Application-Engineering) • SW-Kompositionssysteme (Kompositionstechniken, Komponentenbeschreibungssprachen, Kompositionsbeschreibungssprachen)
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
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 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 • 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/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 • 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
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
Datentypen Definierte Datentypen (UML-Instanzdiagramm)