VITRUVIUS Architektur, Modelle und Code GI-Jahrestagung Architekturen 2015 Erik Burger 9. Juli 2015 CHAIR FOR SOFTWARE DESIGN AND QUALITY KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
Vorstellung Dr.-Ing. Erik Burger Studium an der Universität Karlsruhe/KIT (2002-2008) Promotion am KIT (Prof. Ralf Reussner) (2009-2014) Postdoc am Lehrstuhl für Software-Entwurf und -Qualität (SDQ) Forschungsinteressen Modellgetriebene Software-Entwicklung Sichtbasierte Entwicklung Metamodell-Evolution Motivation Erik Burger VITRUVIUS Vitruvius Ausblick 9. Juli 2015 2/20
Motivation Vielzahl von Sprachen und Standards in der Software- und Systementwicklung Erik Burger VITRUVIUS 9. Juli 2015 3/20
Motivation Vielzahl von Sprachen und Standards in der Software- und Systementwicklung unterschiedliche Rollen in der Entwicklung Erik Burger VITRUVIUS 9. Juli 2015 3/20
Motivation Vielzahl von Sprachen und Standards in der Software- und Systementwicklung unterschiedliche Rollen in der Entwicklung verschiedene Sichten auf das System Erik Burger VITRUVIUS 9. Juli 2015 3/20
Szenario: Software-Entwicklung /*@ requires amount >= 0; requires src.balance amount; ensures src.balance == \old(src.balance) - amount; @*/ public void withdraw(int amount, Account src); JML-Vertrag «schränkt ein» public class ATM { public void withdraw(int amount, Account src) {... Java-Quelltext «beschreibt» ATM AccountManager «provides» «interface» IWithdraw void withdraw(int amount, Account account) Architektur-Modell Erik Burger VITRUVIUS 9. Juli 2015 4/20
Szenario: Automotive Erik Burger VITRUVIUS 9. Juli 2015 5/20
Szenario: Automotive ASCET Erik Burger VITRUVIUS 9. Juli 2015 5/20
Szenario: Automotive ASCET Erik Burger VITRUVIUS 9. Juli 2015 5/20
Szenario: Automotive MLSYS ASCET Erik Burger VITRUVIUS 9. Juli 2015 5/20
Szenario: Automotive MLSYS ASCET Erik Burger VITRUVIUS 9. Juli 2015 5/20
Szenario: Automotive MLSYS ASCET /* ASCET Component "Democar" */ #include "democar.h" void simpleproduct(const real32_t a[5], const real32_t b[10], real32_t c[2]) { int32_t i0; int32_t i1; for (i0 = 0; i0 < 2; i0++) { c[i0] = 0.0F; for (i1 = 0; i1 < 5; i1++) { c[i0] += a[i1] * b[i1 + 5 * i0]; } } } Erik Burger VITRUVIUS 9. Juli 2015 5/20
Szenario: Automotive MLSYS ASCET /* ASCET Component "Democar" */ #include "democar.h" void simpleproduct(const real32_t a[5], const real32_t b[10], real32_t c[2]) { int32_t i0; int32_t i1; for (i0 = 0; i0 < 2; i0++) { c[i0] = 0.0F; for (i1 = 0; i1 < 5; i1++) { c[i0] += a[i1] * b[i1 + 5 * i0]; } } } Erik Burger VITRUVIUS 9. Juli 2015 5/20
Szenario: Energie Erik Burger VITRUVIUS 9. Juli 2015 6/20
Szenario: Energie IEC 61970 (CIM) Erik Burger VITRUVIUS 9. Juli 2015 6/20
Szenario: Energie IEC 60870 IEC 61970 (CIM) Erik Burger VITRUVIUS 9. Juli 2015 6/20
Szenario: Energie IEC 60870 IEC 61970 (CIM) IEC 61850 Erik Burger VITRUVIUS 9. Juli 2015 6/20
Szenario: Energie IEC 60870 IEC 61970 (CIM) IEC 61850 IEC 61968 Erik Burger VITRUVIUS 9. Juli 2015 6/20
Szenario: Energie Fernsteuerung IEC 60870 IEC 61970 (CIM) Energie- Management IEC 61850 Kommunikation IEC 61968 Verteilnetzwerke Erik Burger VITRUVIUS 9. Juli 2015 6/20
Szenario: Energie Fernsteuerung IEC 60870 IEC 61970 (CIM) Energie- Management IEC 61850 Kommunikation IEC 61968 Verteilnetzwerke Erik Burger VITRUVIUS 9. Juli 2015 6/20
Probleme Erik Burger VITRUVIUS 9. Juli 2015 7/20
Probleme Fragmentierung Informationen sind über heterogene Modelle verteilt Beziehungen zwischen Modellen sind nicht explizit modelliert Erik Burger VITRUVIUS 9. Juli 2015 7/20
Probleme Fragmentierung Informationen sind über heterogene Modelle verteilt Beziehungen zwischen Modellen sind nicht explizit modelliert Redundanz Informationen werden mehrfach modelliert Erik Burger VITRUVIUS 9. Juli 2015 7/20
Probleme Fragmentierung Informationen sind über heterogene Modelle verteilt Beziehungen zwischen Modellen sind nicht explizit modelliert Redundanz Informationen werden mehrfach modelliert Inkonsistenzen Folge aus Redundanz und Fragmentierung Verletzung von Konsistenzbedingungen Erik Burger VITRUVIUS 9. Juli 2015 7/20
Probleme Fragmentierung Informationen sind über heterogene Modelle verteilt Beziehungen zwischen Modellen sind nicht explizit modelliert Redundanz Informationen werden mehrfach modelliert Inkonsistenzen Folge aus Redundanz und Fragmentierung Verletzung von Konsistenzbedingungen Komplexität Modell kann nicht von einzelnem Entwickler verstanden werden Navigation durch die Modelle schwierig Erik Burger VITRUVIUS 9. Juli 2015 7/20
Vitruvius Erik Burger VITRUVIUS 9. Juli 2015 8/20
Vitruvius View-cenTRic engineering Using a VIrtual Underlying Single model Erik Burger VITRUVIUS 9. Juli 2015 8/20
Vitruvius View-cenTRic engineering Using a VIrtual Underlying Single model modellbasierter und sichtzentrischer Ansatz Marcus Vitruvius Pollio (80 70 v. Chr. 15 v. Chr.) Erik Burger VITRUVIUS 9. Juli 2015 8/20
Vitruvius View-cenTRic engineering Using a VIrtual Underlying Single model modellbasierter und sichtzentrischer Ansatz Integration von Metamodellen und Standards unter Wahrung von Kompatibilität zu bestehenden Instanzen Marcus Vitruvius Pollio (80 70 v. Chr. 15 v. Chr.) Erik Burger VITRUVIUS 9. Juli 2015 8/20
Vitruvius View-cenTRic engineering Using a VIrtual Underlying Single model modellbasierter und sichtzentrischer Ansatz Integration von Metamodellen und Standards unter Wahrung von Kompatibilität zu bestehenden Instanzen Synchronisation von Teilmodellen durch deklarative Definitionen Marcus Vitruvius Pollio (80 70 v. Chr. 15 v. Chr.) Erik Burger VITRUVIUS 9. Juli 2015 8/20
Vitruvius View-cenTRic engineering Using a VIrtual Underlying Single model modellbasierter und sichtzentrischer Ansatz Integration von Metamodellen und Standards unter Wahrung von Kompatibilität zu bestehenden Instanzen Synchronisation von Teilmodellen durch deklarative Definitionen Definition von Sichten über mehrere Teilmodelle Marcus Vitruvius Pollio (80 70 v. Chr. 15 v. Chr.) Erik Burger VITRUVIUS 9. Juli 2015 8/20
Modellbasierter Ansatz Definition der beteiligten Sprachen und Standards als Metamodelle Erik Burger VITRUVIUS 9. Juli 2015 9/20
Modellbasierter Ansatz Definition der beteiligten Sprachen und Standards als Metamodelle oft bereits vorhanden Erik Burger VITRUVIUS 9. Juli 2015 9/20
Modellbasierter Ansatz Definition der beteiligten Sprachen und Standards als Metamodelle oft bereits vorhanden für textuelle Sprachen: Modellbasierte Grammatik-Definition (Xtext/EMFText, z.b. JaMoPP) Erik Burger VITRUVIUS 9. Juli 2015 9/20
Modellbasierter Ansatz Definition der beteiligten Sprachen und Standards als Metamodelle oft bereits vorhanden für textuelle Sprachen: Modellbasierte Grammatik-Definition (Xtext/EMFText, z.b. JaMoPP) Benutzung der Werkzeugkette für modellgetriebene Entwicklung (Repositories, Transformationssprachen,... ) Erik Burger VITRUVIUS 9. Juli 2015 9/20
Modellbasierter Ansatz Definition der beteiligten Sprachen und Standards als Metamodelle oft bereits vorhanden für textuelle Sprachen: Modellbasierte Grammatik-Definition (Xtext/EMFText, z.b. JaMoPP) Benutzung der Werkzeugkette für modellgetriebene Entwicklung (Repositories, Transformationssprachen,... ) Eclipse Modeling Framework Erik Burger VITRUVIUS 9. Juli 2015 9/20
Single Underlying Model (SUM) Erik Burger VITRUVIUS 9. Juli 2015 10/20
Single Underlying Model (SUM) Sicht 2 Sicht 1 Sicht 3 Sicht 7 Sicht 4 Sicht 5 Sicht 6 Erik Burger VITRUVIUS 9. Juli 2015 10/20
Single Underlying Model (SUM) Sicht 2 Sicht 1 Sicht 2 Sicht 1 Sicht 3 Sicht 3 Sicht 7 Modell Sicht 7 Sicht 4 Sicht 4 Sicht 5 Sicht 6 Sicht 5 Sicht 6 Erik Burger VITRUVIUS 9. Juli 2015 10/20
Single Underlying Model (SUM) Sicht 2 Sicht 1 Sicht 2 Sicht 1 Sicht 3 Sicht 3 Sicht 7 Modell Sicht 7 Sicht 4 Sicht 4 Sicht 5 Sicht 6 Sicht 5 Sicht 6 Idee: Alle Informationen in einem zentralen Modell repräsentieren Erik Burger VITRUVIUS 9. Juli 2015 10/20
Single Underlying Model (SUM) Sicht 2 Sicht 1 Sicht 2 Sicht 1 Sicht 3 Sicht 3 Sicht 7 Modell Sicht 7 Sicht 4 Sicht 4 Sicht 5 Sicht 6 Sicht 5 Sicht 6 Idee: Alle Informationen in einem zentralen Modell repräsentieren Probleme: Erik Burger VITRUVIUS 9. Juli 2015 10/20
Single Underlying Model (SUM) Sicht 2 Sicht 1 Sicht 2 Sicht 1 Sicht 3 Sicht 3 Sicht 7 Modell Sicht 7 Sicht 4 Sicht 4 Sicht 5 Sicht 6 Sicht 5 Sicht 6 Idee: Alle Informationen in einem zentralen Modell repräsentieren Probleme: Ausdrucksmächtigkeit des Modells Erik Burger VITRUVIUS 9. Juli 2015 10/20
Single Underlying Model (SUM) Sicht 2 Sicht 1 Sicht 2 Sicht 1 Sicht 3 Sicht 3 Sicht 7 Modell Sicht 7 Sicht 4 Sicht 4 Sicht 5 Sicht 6 Sicht 5 Sicht 6 Idee: Alle Informationen in einem zentralen Modell repräsentieren Probleme: Ausdrucksmächtigkeit des Modells Abdeckung aller relevanten Domänen Erik Burger VITRUVIUS 9. Juli 2015 10/20
Single Underlying Model (SUM) Sicht 2 Sicht 1 Sicht 2 Sicht 1 Sicht 3 Sicht 3 Sicht 7 Modell Sicht 7 Sicht 4 Sicht 4 Sicht 5 Sicht 6 Sicht 5 Sicht 6 Idee: Alle Informationen in einem zentralen Modell repräsentieren Probleme: Ausdrucksmächtigkeit des Modells Abdeckung aller relevanten Domänen Evolution von Teil-Modellen Erik Burger VITRUVIUS 9. Juli 2015 10/20
Single Underlying Model (SUM) Sicht 2 Sicht 1 Sicht 2 Sicht 1 Sicht 3 Sicht 3 Sicht 7 Modell Sicht 7 Sicht 4 Sicht 4 Sicht 5 Sicht 6 Sicht 5 Sicht 6 Idee: Alle Informationen in einem zentralen Modell repräsentieren Probleme: Ausdrucksmächtigkeit des Modells Abdeckung aller relevanten Domänen Evolution von Teil-Modellen Kompatibilität zu bestehenden Modellen Erik Burger VITRUVIUS 9. Juli 2015 10/20
Single Underlying Model (SUM) Sicht 2 Sicht 1 Sicht 2 Sicht 1 Sicht 3 Sicht 3 Sicht 7 Modell Sicht 7 Sicht 4 Sicht 4 Sicht 5 Sicht 6 Sicht 5 Sicht 6 Idee: Alle Informationen in einem zentralen Modell repräsentieren Probleme: Ausdrucksmächtigkeit des Modells Abdeckung aller relevanten Domänen Evolution von Teil-Modellen Kompatibilität zu bestehenden Modellen Ansatz: Virtuelles Single Underlying Model (SUM) Erik Burger VITRUVIUS 9. Juli 2015 10/20
Sichtzentrischer Ansatz Amalthea ASCET SysML C MIR Instanz eines Sichttyps Sicht-Transformation Mapping/Invariant/Response Erik Burger VITRUVIUS 9. Juli 2015 11/20
Sichtzentrischer Ansatz Amalthea ASCET SysML C SUM-Metamodell MIR Instanz eines Sichttyps Sicht-Transformation Mapping/Invariant/Response Erik Burger VITRUVIUS 9. Juli 2015 11/20
Sichtzentrischer Ansatz VT 3 Amalthea VT 4 ASCET SysML C SUM-Metamodell VT 6 VT 1 MIR Instanz eines Sichttyps Sicht-Transformation Mapping/Invariant/Response Erik Burger VITRUVIUS 9. Juli 2015 11/20
Sichtzentrischer Ansatz VT 3 Amalthea-Sicht Amalthea VT 4 ASCET SysML VT 1 Blockdiagramm-Sicht C SUM-Metamodell VT 6 :C 1 :C 2 Sequenzdiagramm MIR Instanz eines Sichttyps Sicht-Transformation Mapping/Invariant/Response Erik Burger VITRUVIUS 9. Juli 2015 11/20
Sichtzentrischer Ansatz VT 3 VT 2 Amalthea-Sicht Amalthea VT 4 ASCET SysML VT 1 Blockdiagramm-Sicht VT 5 C VT 6 SUM-Metamodell :C 1 :C 2 Sequenzdiagramm MIR Instanz eines Sichttyps Sicht-Transformation Mapping/Invariant/Response Erik Burger VITRUVIUS 9. Juli 2015 11/20
Sichtzentrischer Ansatz Amalthea-Sicht VT 3 Amalthea VT 2 comp comp11 comp1 comp1 Parallelisierungs-Sicht VT 4 ASCET SysML VT 1 Blockdiagramm-Sicht VT 5 C SUM-Metamodell VT 6 :C 1 :C 2 /* ASCET Component "Democar" */ #include "democar.h" void simpleproduct(const real32_t a[5], const real32_t b[10], real32_t c[2]) { int32_t i0; annotierte C-Quelltext-Sicht MIR Sequenzdiagramm Instanz eines Sichttyps Sicht-Transformation Mapping/Invariant/Response Erik Burger VITRUVIUS 9. Juli 2015 11/20
Sichtzentrischer Ansatz VT 3 VT 2 Amalthea Amalthea-Sicht VT 4 ASCET SysML VT 1 Blockdiagramm-Sicht VT 5 C VT 6 SUM-Metamodell MIR MIR comp comp11 comp1 comp1 Parallelisierungs-Sicht :C 1 :C 2 /* ASCET Component "Democar" */ #include "democar.h" void simpleproduct(const real32_t a[5], const real32_t b[10], real32_t c[2]) { int32_t i0; annotierte C-Quelltext-Sicht MIR Sequenzdiagramm Instanz eines Sichttyps Sicht-Transformation Mapping/Invariant/Response Erik Burger VITRUVIUS 9. Juli 2015 11/20
Vorteile Explizite Definition der Abhängigkeiten und Abbildungen zwischen den Teilmodellen Erik Burger VITRUVIUS 9. Juli 2015 12/20
Vorteile Explizite Definition der Abhängigkeiten und Abbildungen zwischen den Teilmodellen Definition von Sichten, die Informationen aus mehreren Teilmodellen enthalten Erik Burger VITRUVIUS 9. Juli 2015 12/20
Vorteile Explizite Definition der Abhängigkeiten und Abbildungen zwischen den Teilmodellen Definition von Sichten, die Informationen aus mehreren Teilmodellen enthalten maßgeschneiderte Kombination von Modellen durch die zusätzlicher Entwicklerrolle Methodiker Erik Burger VITRUVIUS 9. Juli 2015 12/20
Entwicklungsprozess Methodiker Entwickler Erik Burger VITRUVIUS 9. Juli 2015 13/20
Entwicklungsprozess SUM-Metamodell erstellen Methodiker Entwickler Erik Burger VITRUVIUS 9. Juli 2015 13/20
Entwicklungsprozess SUM-Metamodell erstellen «include» Sichttyp definieren Methodiker Entwickler Erik Burger VITRUVIUS 9. Juli 2015 13/20
Entwicklungsprozess SUM-Metamodell erstellen «include» Sichttyp definieren SUM-Metamodell modifizieren Methodiker Entwickler Erik Burger VITRUVIUS 9. Juli 2015 13/20
Entwicklungsprozess SUM-Metamodell erstellen «include» Sichttyp definieren SUM-Metamodell modifizieren Methodiker SUM instanziieren Entwickler Erik Burger VITRUVIUS 9. Juli 2015 13/20
Entwicklungsprozess SUM-Metamodell erstellen «include» Sichttyp definieren SUM-Metamodell modifizieren Methodiker SUM instanziieren «include» Sicht instanziieren Entwickler Erik Burger VITRUVIUS 9. Juli 2015 13/20
Entwicklungsprozess SUM-Metamodell erstellen «include» Sichttyp definieren SUM-Metamodell modifizieren Methodiker SUM instanziieren «include» Sicht instanziieren Entwickler Erik Burger VITRUVIUS 9. Juli 2015 13/20
Deklarative Mapping-Definition generates package mir.ascet2amalthea generates type ASCET2AMALTHEA import package "http://www.amalthea.itea2.org/model/1.1.0/sw" as sw import package "http://amalthea.itea2.org/model/1.1.0/components" as components Erik Burger VITRUVIUS 9. Juli 2015 14/20
Deklarative Mapping-Definition generates package mir.ascet2amalthea generates type ASCET2AMALTHEA import package "http://www.amalthea.itea2.org/model/1.1.0/sw" as sw import package "http://amalthea.itea2.org/model/1.1.0/components" as components map ascet.task as at and sw.task as st { with map at.(name) and st.(name) with map at.(priority) and st.(priority) with map at.(processes as pr) and st.(callgraph)...(graphentries[sw.callsequence]).(calls[sw. TaskRunnableCall]).(runnable as runn) { when-where {pr.(arguments).(size)=0 pr.(ret)=null} with map pr.(name) and runn.(name) } } Erik Burger VITRUVIUS 9. Juli 2015 14/20
Implementierung Vitruvius Workbench Open-Source-Entwicklung Basiert auf dem Eclipse Modelling Framework Erkennung von Editieroperationen in Modell- und Code-Editoren Erik Burger VITRUVIUS 9. Juli 2015 15/20
Implementierung Vitruvius Workbench Open-Source-Entwicklung Basiert auf dem Eclipse Modelling Framework Erkennung von Editieroperationen in Modell- und Code-Editoren Erik Burger VITRUVIUS 9. Juli 2015 15/20
Webseite https://sdqweb.ipd.kit.edu/wiki/vitruvius Erik Burger VITRUVIUS 9. Juli 2015 16/20
Herausforderungen Konsistenz zwischen Teilmodellen Propagation von Änderungsschritten (Zyklen) partielle Konsistenzdefinitionen Erik Burger VITRUVIUS 9. Juli 2015 17/20
Herausforderungen Konsistenz zwischen Teilmodellen Propagation von Änderungsschritten (Zyklen) partielle Konsistenzdefinitionen Sicht-Definition Editierbarkeit von Sichten (View-Update-Problem) Kopplung von Sichten- und Konsistenzdefinitionen Erik Burger VITRUVIUS 9. Juli 2015 17/20
Herausforderungen Konsistenz zwischen Teilmodellen Propagation von Änderungsschritten (Zyklen) partielle Konsistenzdefinitionen Sicht-Definition Editierbarkeit von Sichten (View-Update-Problem) Kopplung von Sichten- und Konsistenzdefinitionen Kopplung mit externen Werkzeugen Erfassung der Änderungsschritte nebenläufige Änderungen Erik Burger VITRUVIUS 9. Juli 2015 17/20
Annahmen und Einschränkungen Metamodellierbarkeit Alle Formalismen müssen durch Metamodell ausdrückbar sein auch für textuelle Sprachen möglich (EMFText, Xtext) [Langhammer 2013] Erik Burger VITRUVIUS 9. Juli 2015 18/20
Annahmen und Einschränkungen Metamodellierbarkeit Alle Formalismen müssen durch Metamodell ausdrückbar sein auch für textuelle Sprachen möglich (EMFText, Xtext) [Langhammer 2013] Geeignete Szenarien für den Vitruvius-Ansatz Verwendung mehrerer Formalismen mehr Sichttypen als Metamodelle Erik Burger VITRUVIUS 9. Juli 2015 18/20
Zusammenfassung Sichtzentrischer, modellgetriebener Ansatz Konsistenz zwischen Modellen und Code Eclipse-Prototyp Erik Burger VITRUVIUS 9. Juli 2015 19/20
Werbung 2.-4. März 2016, Karlsruher Institut für Technologie http://www.modellierung2016.org Erik Burger VITRUVIUS 9. Juli 2015 20/20
Literatur I Erik Burger. Flexible Views for View-Based Model-Driven Development. In: Proceedings of the 18th international doctoral symposium on Components and architecture. WCOP 13. Vancouver, British Columbia, Canada: ACM, 2013, S. 25 30. URL: http://doi.acm.org/10.1145/2465498.2465501. Erik Burger u. a. View-Based Model-Driven Software Development with ModelJoin. In: Software and Systems Modeling 14 (2014). Hrsg. von Robert France und Bernhard Rumpe, S. 1 24. Max E. Kramer u. a. Change-Driven Consistency for Component Code, Architectural Models, and Contracts. In: Proceedings of the 18th International ACM SIGSOFT Symposium on Component-Based Software Engineering. CBSE 15. Montréal, QC, Canada: ACM, 2015, S. 21 26. URL: http://doi.acm.org/10.1145/2737166.2737177. Literatur Erik Burger VITRUVIUS 9. Juli 2015 21/20
Literatur II Michael Langhammer. Co-evolution of component-based architecture-model and object-oriented source code. In: Proceedings of the 18th international doctoral symposium on Components and architecture. ACM. 2013, S. 37 42. Literatur Erik Burger VITRUVIUS 9. Juli 2015 22/20
SVN Info Last change by burger Revision 8188 Last changed on 2015-07-08 13:40:45 +0200 (Wed, 08 Jul 2015) URL https://svnserver.informatik.kit.edu/ i43/svn/palladio/erik/workshops/2015/ Architekturen/eb-fg-arc2015.tex Literatur Erik Burger VITRUVIUS 9. Juli 2015 23/20