integrierte und hybride konstruktion von software- produktlinien vortrag zur verteidigung der...
TRANSCRIPT
Integrierte und hybride Konstruktion von Software-
Produktlinien
Vortrag zur Verteidigung der DissertationDipl. Inf. Ulrich Dinger12.06.2009
Dipl. Inf. Ulrich Dinger /30
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
Dipl. Inf. Ulrich Dinger /303
Inhalt
- Motivation und Ziele
- Grundlagen
- Stand der Technik
- Konzepte
- Realisierung
- Evaluierung
- Zusammenfassung und Ausblick
Dipl. Inf. Ulrich Dinger /304
Motivation und Ziele
Dipl. Inf. Ulrich Dinger /305
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
Dipl. Inf. Ulrich Dinger /306
Ziele
Erstellung von Software-Produktlinien
Ohne Altsystem Mit Altsystem Gemeinsamkeiten?
Größtmögliche Automatisierung/Computeruntstützung
Erstellung Referenzarchitektur
Realisierung von durchgehender Werkzeugunterstützung
Dipl. Inf. Ulrich Dinger /307
Grundlagen
Dipl. Inf. Ulrich Dinger /308
Grundlagen
Modellgetriebene SW-Entwicklung + Domänenspezifische Sprachen
Software Product Line Engineering (Domain- vs. Application-Engineering)
SW-Kompositionssysteme (Kompositionstechniken, Komponentenbeschreibungssprachen, Kompositionsbeschreibungssprachen)
Meta-Meta-Modell(MOF)
Meta-Meta-Modell(Bsp: Ecore [EMF08])
Meta-Grammatik (Bsp: ANTLR [Par09])
Meta-Modell(UML Meta-Modell) Meta-Modell Grammatik
Modell(UML Klassendiagramm)
Modell(Instanz)
Satz der Grammatik
M3
M2
M1
Dipl. Inf. Ulrich Dinger /309
Stand der Technik
Dipl. Inf. Ulrich Dinger /3010
Stand der Technik
Software Product Line Engineering
feature-basiert, entscheidungsbasiert konzeptioneller Aufbau = SW-Kompositionssystem
Domain Knowledge
Feature Models/Domain Meta
Models
Compositionprogram
Assets/Components
Asset/Component
Models
Feature Model Constraints/
Decision Models
Sales/Marketing
Plans
Technical Constraintsknowledge
models
Variant selection
Product/variant
(Feature Mappings)
Application Engineering Customized
product/variant
ProblemeKompositionsprogramm
• von Hand erstellt• Wartung/Erweiterung
• Fragmentierung• Beschränkungen
• Technische Beschränkungen &
Variantenauswahl • Anpassung/Rekonfiguration
•Modellierung von Variabilitäten
•Komponenten-beschreibungssprachen
Dipl. Inf. Ulrich Dinger /3011
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
Dipl. Inf. Ulrich Dinger /3012
Konzepte/Thesen
Dipl. Inf. Ulrich Dinger /3013
Konzepte/Thesen
Forward-Engineering Reverse-Engineering Hybrider Ansatz
T1:Einsatz einer auto-
matischen Planungskomponente
löst Probleme
T2:Minimales, erweiterbares
Komponenten-Meta-Modellhilft, Beschränkungen
existierender Ansätze zu überwinden
T3:Es lassen sich beide
Ansätze zusammenführen und Vorteile nutzbar
machen
Erstellung von Software-Produkt-Linien
Ohne Altsystem Mit Altsystem Gemeinsamkeiten?
Dipl. Inf. Ulrich Dinger /3014
Konzepte/Forward-Engineering
Feature Meta Model
Domain Knowledge
Feature Models
Compositionprogram
Assets/Components
Component Models
Feature Model Constraints
Sales/Marketing
Plans
Technical Constraintsknowledge
models
Variant selection
Product/variant
Application Engineering
Composition
steps
Planner
Domain Knowledge
Feature Models/Domain Meta
Models
Compositionprogram
Assets/Components
Asset/Component
Models
Feature Model Constraints/
Decision Models
Sales/Marketing
Plans
Technical Constraintsknowledge
models
Variant selection
Product/variant
(Feature Mappings)
Application Engineering Customized
product/variant
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
Δ
Dipl. Inf. Ulrich Dinger /3015
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
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 ... }}
- name : String
Dipl. Inf. Ulrich Dinger /3016
Konzepte/Reverse-Engineering
Domain Knowledge
Feature Models/Domain Meta
Models
Compositionprogram
Assets/Components
Asset/Component
Models
Feature Model Constraints/
Decision Models
Sales/Marketing
Plans
Technical Constraintsknowledge
models
Variant selection
Product/variant
(Feature Mappings)
Application Engineering Customized
product/variant
Aktuelles Vorgehen
Änderungen•Minimal invasives Vorgehen,
Nutzung des existierenden Build/Kompositionsprogramme
s•Erstellung von „virtuellen
Komponenten“ + Beschreibung derer
Variabilitäten + Wrapper in Altsystem
•Variantenauswahl = Konfiguration
einfaches, erweiterbares Komponenten-Meta-Modell (Komponenten-
Beschreibungssprache)
Dipl. Inf. Ulrich Dinger /3017
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
Dipl. Inf. Ulrich Dinger /3018
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)
Dipl. Inf. Ulrich Dinger /3019
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
Feature Meta Model
Domain Knowledge
Feature Models
Compositionprogram
Assets/Components
Component Models
Feature Model Constraints
Sales/Marketing
Plans
Technical Constraintsknowledge
models
Variant selection
Product/variant
Application Engineering
Composition steps
Planner
Feature Meta Model
Domain Knowledge
Feature Models
Compositionprogram
Assets/Components
Component Models
Feature Model Constraints
Sales/Marketing
Plans
Technical Constraintsknowledge
models
Variant selection
Product/variant
Application Engineering
Composition steps
Planner
Ecore-Meta-Meta-Modell
Dipl. Inf. Ulrich Dinger /3020
Realisierung
Dipl. Inf. Ulrich Dinger /3021
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)
FXL Editor Gen
FXL Generator
Feature Model Tooling (Eclipse Plug in)
feature.ecore
Feature Model
API
Feature Model Edit
Feature Model
Container
Custom.:- icons- i18n
Feature Model
Browser
Java SE
Eclipse RCPEcore
Meta-Meta-Modell
FXL Framework
Component Descriptor (CDF)
Feature Modeling, Variant, Composer
SLL & OpenXL
FXL Editor
FXL Generator
Dipl. Inf. Ulrich Dinger /3022
Realisierung
Varianten-Editor
Komponenten-Editor
FXL Editor Gen
FXL Generator
Variant Selection Tooling (Eclipse Plug in)
featureModel.ecore(1..n)
Feature Model API
(1..n)
Feature Model Edit
(1..n)
Custom.:- icons- i18n
featureModel.fm
(1..n)
FXL Editor Gen
FXL Generator
Component Description Tooling (Eclipse Plug in)
component description
.ecore
CDFAPI
Component Container
ecore.ecore
FXL Editor Gen
FXL Generator EcoreAPI
EcoreEdit
Ecore Container
Custom.:- icons- i18n
Custom.:- icons- i18n
CDFEdit
Interation
*.ecore
FXL Editor Gen
FXL Generator
*API
*Edit
- icons- i18n
Integration
Dipl. Inf. Ulrich Dinger /3023
Evaluierung
Dipl. Inf. Ulrich Dinger /3024
Evaluierung/Forward Engineering
eFA-Feature-Modelle
Feature Meta Model
Domain Knowledge
Feature Models
Compositionprogram
Assets/Components
Component Models
Feature Model Constraints
Sales/Marketing
Plans
Technical Constraintsknowledge
models
Variant selection
Product/variant
Application Engineering
Composition steps
Planner
EFA
Problem Space
Technical Infrastructure
Patient Search
Advanced Patient Search
Record Search
Document Search
Security DatabaseApplication
Server
Document Registry Service
Document Repository
Service
IC Authentication Service
IC Coded Data Service
IC ECR Record Registry Service
IC Record Registry Service
Locator ServicePatient Search
Service
Record Registry Service
MySQLOracle JBoss WebSphere
Dipl. Inf. Ulrich Dinger /3025
Evaluierung/Forward Engineering
Kompositionsschrittbeschreibung
•Als Teil des SLL-Editors Feature Meta Model
Domain Knowledge
Feature Models
Compositionprogram
Assets/Components
Component Models
Feature Model Constraints
Sales/Marketing
Plans
Technical Constraintsknowledge
models
Variant selection
Product/variant
Application Engineering
Composition steps
Planner
Dipl. Inf. Ulrich Dinger /3026
Evaluierung/Forward Engineering
Variantenauswahl, Planer und Bauen der Variante
Feature Meta Model
Domain Knowledge
Feature Models
Compositionprogram
Assets/Components
Component Models
Feature Model Constraints
Sales/Marketing
Plans
Technical Constraintsknowledge
models
Variant selection
Product/variant
Application Engineering
Composition steps
Planner
Variantenauswahl (Rolle = Vertrieb) Variantenauswahl (Rolle = SW-
Entwickler)
Ausführen des synthetisierten Kompositionsprogrammes = Bauen der Variante
=> Konzepte + Werkzeuge funktionieren vom Beschreiben der Komponenten bis zum Bauen der Variante basierend auf einer Variantenauswahl
Dipl. Inf. Ulrich Dinger /3027
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
Dipl. Inf. Ulrich Dinger /3028
Zusammenfassung und Ausblick
Dipl. Inf. Ulrich Dinger /3029
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
Dipl. Inf. Ulrich Dinger /3030
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
o Semantic Web Services (OWL-S)
o Künstliche Intelligenz
Bereitstellung anderer Sichten auf Modelle
• Nutzung DSL-Frameworks
Dipl. Inf. Ulrich Dinger /3031
Vielen Dank für die Aufmerksamkeit
Dipl. Inf. Ulrich Dinger /30
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/
Dipl. Inf. Ulrich Dinger /30
Dipl. Inf. Ulrich Dinger /3034
Stand der Technik
Kompositionsbeschreibungssprachen/Workflow-Beschreibungssprachen
Dipl. Inf. Ulrich Dinger /3035
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)
Service 1WSDL
Semantic
Service 2WSDL
Semantic
Internet/Intranet
Service nWSDL
Semantic
ServiceRegistry
PlanerWorkflow-
Engine
User/Client
User Interface
result
WSDL
WSDL
WSDL
Feature Meta Model
Domain Knowledge
Feature Models
Compositionprogram
Assets/Components
Component Models
Feature Model Constraints
Sales/Marketing
Plans
Technical Constraintsknowledge
models
Variant selection
Product/variant
Application Engineering
Composition steps
Planner
Dipl. Inf. Ulrich Dinger /3036
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
Dipl. Inf. Ulrich Dinger /3037
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
Dipl. Inf. Ulrich Dinger /3038
Feature-Meta-Modell
Dipl. Inf. Ulrich Dinger /3039
Datentypen
Definierte Datentypen (UML-Instanzdiagramm)
Dipl. Inf. Ulrich Dinger /3040
Beschränkungen
Dipl. Inf. Ulrich Dinger /3041
Semantische Beschreibung (1)
Dipl. Inf. Ulrich Dinger /3042
Semantik (2/Vorbedingungen)
Dipl. Inf. Ulrich Dinger /3043
Semantik (3/Effekte)
Dipl. Inf. Ulrich Dinger /3044
Semantik (4/Beschränkungen/Berechnungen)
Dipl. Inf. Ulrich Dinger /3045
Anfragen an Planer
Dipl. Inf. Ulrich Dinger /3046
Anfragevorbedinungen
Dipl. Inf. Ulrich Dinger /3047
Anfragenachbedingungen
Dipl. Inf. Ulrich Dinger /3048
TMX/Internationalisierung
Dipl. Inf. Ulrich Dinger /3049
Produktkonfiguration
Dipl. Inf. Ulrich Dinger /3050
Komoponentenmodell
Dipl. Inf. Ulrich Dinger /3051
Ecore Meta-Meta-Modell
Dipl. Inf. Ulrich Dinger /3052
Angepaßte Anfragevorbedingungen
Dipl. Inf. Ulrich Dinger /3053
Planer
Dipl. Inf. Ulrich Dinger /3054
Planer Optimierung
Dipl. Inf. Ulrich Dinger /3055
Variantenauswahl Wizard
Dipl. Inf. Ulrich Dinger /3056
History zu HTML-Release-Notes
Dipl. Inf. Ulrich Dinger /3057
Dokumentations-Meta-Modell
Dipl. Inf. Ulrich Dinger /3058
Generierte HTML-Dokumentation