SlideShare uma empresa Scribd logo
1 de 28
UML-Modelle im Griff Metamodellbasierte Validierung und Werkzeuganpassung  bei der Deutschen Post Com GmbH Frank Egger Deutsche Post Com GmbH Ingo Feltes Itemis Gmbh und Co. KG
Überblick ,[object Object],[object Object],[object Object],[object Object]
Teil 1 Einführung in die Metamodellierung
Begriffsfindung ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Metamodell Elemente der Metamodells Modell Elemente des Modells Zu beschreibende Domäne Elemente der „ wirklichen Welt“ beschreibt beschreibt Modelle von Modellen sind Metamodelle?
Mehrstufige Klassifizierung ,[object Object],Straßennetz: Busliniennetz: Logistiknetz: Netz: ,[object Object]
Ontologische Metamodelle ,[object Object],Metamodell Modell Instanzen Klassifikation Nicht transistiv! ,[object Object],[object Object],[object Object]
Generalisierung vs. Metamodelle ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Modelle von Modellen vs. Metamodelle Verbindung Elektronen pro Energieniveau ,[object Object],[object Object],[object Object],[object Object],[object Object],O H O 1 2,6 2,6
Linguistische Metamodelle – Basis für die UML Problembereich Menge von Originalen Modellbereich Gleichartige Modelle Verschiedener Originale Metamodell Beschreibt die Art der  Im Modellbereich Verwendeten Modelle
Linguistische vs. Onthologische Metamodelle Welche Teilbereiche bestimmen ein linguistisches Metamodell? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Die drei Achsen der Metamodellierung Metamodell (konkrete Syntax) Metamodell (statische Semantik) Metamodell (Prozess)
Metamodellarchitekturen der OMG Prozess Semantik 0 0 1 2 1 2 Angewandtes Metaisierungsprinzip Metaisierungsbasis Relative Hierarchieposition M 0 Modell M  1 Metamodell M  2 Modell M  1 Metamodell M  2
Metamodellarchitekturen der OMG – Theorie … Prozess Semantik 0 0 1 2 1 2 Universe Of Discourse … … … … … … … … …
Metamodellarchitekturen der OMG – Praxis UML-Diagramme UML-Metamodell Entwicklungs- prozess … Prozess Semantik 0 0 1 2 1 2 Universe Of Discourse … … … … … … … … … System Prozess- management Unified Modeling Process Unified Profile- Modeling Process MOF CM3 Case-Tools
UML Metamodell-Architektur
Metamodelle und die Praxis ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Vorlage für Werkzeugimplementierungen, Toolanpassungen Modellvalidierungen
Teil 2 Modellvalidierung auf Basis von Metamodellen
Warum Validieren? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Validierung mit OCL (Object Constraint Language) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OCL auf M1 bei AndroMDA ,[object Object],Möglichkeit zur Übersetzung der Query für verschiedene Persistenzframeworks SELECT DISTINCT OBJECT (project)  FROM Project project  WHERE  project.type= ?1 EJB-QL from  org.andromda.sample.Project  as  project  where  project.type = ? Hybernate-QL
OCL auf M2 bei AndroMDA Bedeutung der OCL-Constraint: Bei einer Operation dürfen weder Ergebnistyp noch Name leer sein.
Beispiel für Business Process Modeling context  UseCase   inv: let  useCaseName   : String = name in  useCaseName ->  notEmpty()  and  model.allUseCases-> one (name = useCaseName) „ Each use-case must have a non-empty name that is unique among all use-cases.“ final  java.lang.Object contextElement =  this ; boolean  constraintValid = OCLResultEnsurer.ensure(OCLCollections .notEmpty(OCLIntrospector.invoke(contextElement, "name")) && OCLCollections.one(OCLIntrospector.invoke( contextElement, "model.allUseCases"), new  Predicate() { public boolean  evaluate(java.lang.Object object) { return  OCLExpressions.equal(OCLIntrospector .invoke(object, "name"), OCLIntrospector.invoke( contextElement, "name")); } })); if (!constraintValid) validationMessages. add(new  ModelValidationMessage( this .getClass(),  this .getName(), "Each use-case must have a non-empty name that is unique among ..."));
Teil 4 Aufwandsminimierung und Qualitätssteigerung durch CM3
Aufwandsgenerator „Einarbeitung“ ,[object Object],[object Object],[object Object],[object Object],[object Object],Architekten Entwickler Coaching Qualitätskriterien / Modellierungsrichtlinien Feedback Ergebnisse
Aufwandsgenerator „Lange Iterationen“ Architekt 1: Architekturrahmen  entwerfen Designer 2: PIM  Modellieren UML - Profil Entwickler 3: PIM  attributieren PIM - - Build 6: Anwendung  übersetzen und  verpacken Build Parameter Build Umgebung 7: Anwendung  deployen und testen Generator 4: Architekturrahmen  generieren XMI Generator - Schablonen 5: Businesslogik  einfügen Code Feedback und validieren und validieren mit  Metamodell - Constraints
Aufwände bei der Entwicklung Start Aufwand in EW-Tagen Zeit Ohne Validierung / Werkzeug-anpassung Initialer Aufbau der generativen Architektur Projektsetup, Einarbeitung Entwickler Fach-modellierung und Attributierung Generierung Implementierung und Build Kleines Team mit Architekten Manuelle Weitergabe / Verbreitung von Best Practices Lange Iterationen bei Modellierungs-fehlern und Modellrevision Test / Deployment Manuelle Einarbeitung und Wissensvermittlung, Überforderung der Architekten Formalisierung von Qualitäts-kriterien on top Intuitive Zugänglichkeit, Toolgestützte Einarbeitung, Konzentration auf das Wesentliche Minimalismus bei der Modellierung durch Einsatz von Pattern-Wizards Mit Validierung / Werkzeug-anpassung
Kosten / Nutzen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Danke für Eure Aufmerksamkeit! Noch Fragen?

Mais conteúdo relacionado

Destaque

neueweltdesarbeiten
neueweltdesarbeitenneueweltdesarbeiten
neueweltdesarbeiten
Dan Stanzel
 
Vorstellung cocktailberater.de
Vorstellung cocktailberater.deVorstellung cocktailberater.de
Vorstellung cocktailberater.de
Thomas Bachmann
 

Destaque (18)

YDS_LinkedIn
YDS_LinkedInYDS_LinkedIn
YDS_LinkedIn
 
eLearning2.0_03
eLearning2.0_03eLearning2.0_03
eLearning2.0_03
 
social-media-für-#print-marken.kowalewski
social-media-für-#print-marken.kowalewskisocial-media-für-#print-marken.kowalewski
social-media-für-#print-marken.kowalewski
 
UrbanSeedsKitchen_Doc
UrbanSeedsKitchen_DocUrbanSeedsKitchen_Doc
UrbanSeedsKitchen_Doc
 
neueweltdesarbeiten
neueweltdesarbeitenneueweltdesarbeiten
neueweltdesarbeiten
 
Zwitzerland
ZwitzerlandZwitzerland
Zwitzerland
 
Präsentation1
Präsentation1Präsentation1
Präsentation1
 
TechTalkThursday 27.10.2016: upd89.org - Orchestrierung von Security-Updates ...
TechTalkThursday 27.10.2016: upd89.org - Orchestrierung von Security-Updates ...TechTalkThursday 27.10.2016: upd89.org - Orchestrierung von Security-Updates ...
TechTalkThursday 27.10.2016: upd89.org - Orchestrierung von Security-Updates ...
 
Rechtliche Fragen bei der Revitalisierung von Handelsimmobilien
Rechtliche Fragen bei der Revitalisierung von HandelsimmobilienRechtliche Fragen bei der Revitalisierung von Handelsimmobilien
Rechtliche Fragen bei der Revitalisierung von Handelsimmobilien
 
MOOCs: Stand, Perspektiven und Potenziale
MOOCs: Stand, Perspektiven und PotenzialeMOOCs: Stand, Perspektiven und Potenziale
MOOCs: Stand, Perspektiven und Potenziale
 
Vorstellung cocktailberater.de
Vorstellung cocktailberater.deVorstellung cocktailberater.de
Vorstellung cocktailberater.de
 
MENSWEAR FLORALS
MENSWEAR FLORALSMENSWEAR FLORALS
MENSWEAR FLORALS
 
Lechuga
LechugaLechuga
Lechuga
 
Beispiele für die Evaluation von Lehr-/Lernsettings, in denen Social Softwar...
Beispiele für die Evaluation von Lehr-/Lernsettings, in denen Social Softwar...Beispiele für die Evaluation von Lehr-/Lernsettings, in denen Social Softwar...
Beispiele für die Evaluation von Lehr-/Lernsettings, in denen Social Softwar...
 
Investitionsstrategien für B-Städte und B-Lagen
Investitionsstrategien für B-Städte und B-LagenInvestitionsstrategien für B-Städte und B-Lagen
Investitionsstrategien für B-Städte und B-Lagen
 
Dino
DinoDino
Dino
 
Wmf
WmfWmf
Wmf
 
Medienbildung und Schule | Blinde Flecken und Spannungsfelder
Medienbildung und Schule | Blinde Flecken und SpannungsfelderMedienbildung und Schule | Blinde Flecken und Spannungsfelder
Medienbildung und Schule | Blinde Flecken und Spannungsfelder
 

Semelhante a Metamodellierung und Validierung

Bachelorarbeit - Scrup Templatesystem
Bachelorarbeit - Scrup TemplatesystemBachelorarbeit - Scrup Templatesystem
Bachelorarbeit - Scrup Templatesystem
Tobi NenTi
 
T4 S1 Objektorienierte Entwicklung
T4 S1 Objektorienierte EntwicklungT4 S1 Objektorienierte Entwicklung
T4 S1 Objektorienierte Entwicklung
dominion
 
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
Aberla
 
Einführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software Entwicklung
Christian Baranowski
 
Softwarequalität mit Visual Studio 2010
Softwarequalität mit Visual Studio 2010Softwarequalität mit Visual Studio 2010
Softwarequalität mit Visual Studio 2010
mspgermany
 
Sdv 0405 design-pattern_thc_jps_skript
Sdv 0405 design-pattern_thc_jps_skriptSdv 0405 design-pattern_thc_jps_skript
Sdv 0405 design-pattern_thc_jps_skript
Tomasz Waszczyk
 
Sdv 0405 design-pattern_thc_jps_skript
Sdv 0405 design-pattern_thc_jps_skriptSdv 0405 design-pattern_thc_jps_skript
Sdv 0405 design-pattern_thc_jps_skript
Tomasz Waszczyk
 
Software Architecture Design Patterns der COMLINE Cloud Service Platform - CSP
Software Architecture Design Patterns der COMLINE Cloud Service Platform - CSPSoftware Architecture Design Patterns der COMLINE Cloud Service Platform - CSP
Software Architecture Design Patterns der COMLINE Cloud Service Platform - CSP
Christian Guenther
 
Pruefung iu k-2009
Pruefung iu k-2009Pruefung iu k-2009
Pruefung iu k-2009
skoller15
 

Semelhante a Metamodellierung und Validierung (20)

Model Driven Development mit Eclipse
Model Driven Development mit EclipseModel Driven Development mit Eclipse
Model Driven Development mit Eclipse
 
DWX 2019 Session. Machine Learning in .NET
DWX 2019 Session. Machine Learning in .NETDWX 2019 Session. Machine Learning in .NET
DWX 2019 Session. Machine Learning in .NET
 
Objektorientierte Techniken und UML
Objektorientierte Techniken und UMLObjektorientierte Techniken und UML
Objektorientierte Techniken und UML
 
Model Driven Architecture
 Model Driven Architecture Model Driven Architecture
Model Driven Architecture
 
CodeFluent Entities and AppSofa
CodeFluent Entities and AppSofaCodeFluent Entities and AppSofa
CodeFluent Entities and AppSofa
 
Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Top 10 Internet Trends 2001
Top 10 Internet Trends 2001
 
AndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
AndroMDA - Einführung in eine Open Source Model Driven Architecture LösungAndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
AndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
 
MDSD Herausforderung: Entwicklungsmethodik und technisches Umfeld
MDSD Herausforderung: Entwicklungsmethodik und technisches UmfeldMDSD Herausforderung: Entwicklungsmethodik und technisches Umfeld
MDSD Herausforderung: Entwicklungsmethodik und technisches Umfeld
 
Bachelorarbeit - Scrup Templatesystem
Bachelorarbeit - Scrup TemplatesystemBachelorarbeit - Scrup Templatesystem
Bachelorarbeit - Scrup Templatesystem
 
T4 S1 Objektorienierte Entwicklung
T4 S1 Objektorienierte EntwicklungT4 S1 Objektorienierte Entwicklung
T4 S1 Objektorienierte Entwicklung
 
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
ESEconf2011 - Trost Joachim: "Tool supported technical Code and Design Qualit...
 
Schnelleinstieg in Angular
Schnelleinstieg in AngularSchnelleinstieg in Angular
Schnelleinstieg in Angular
 
Einführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software Entwicklung
 
MDA in der Praxis - Modelltransformation und Code-Generierung mit dem Enterpr...
MDA in der Praxis - Modelltransformation und Code-Generierung mit dem Enterpr...MDA in der Praxis - Modelltransformation und Code-Generierung mit dem Enterpr...
MDA in der Praxis - Modelltransformation und Code-Generierung mit dem Enterpr...
 
Softwarequalität mit Visual Studio 2010
Softwarequalität mit Visual Studio 2010Softwarequalität mit Visual Studio 2010
Softwarequalität mit Visual Studio 2010
 
JavaScript Architektur
JavaScript ArchitekturJavaScript Architektur
JavaScript Architektur
 
Sdv 0405 design-pattern_thc_jps_skript
Sdv 0405 design-pattern_thc_jps_skriptSdv 0405 design-pattern_thc_jps_skript
Sdv 0405 design-pattern_thc_jps_skript
 
Sdv 0405 design-pattern_thc_jps_skript
Sdv 0405 design-pattern_thc_jps_skriptSdv 0405 design-pattern_thc_jps_skript
Sdv 0405 design-pattern_thc_jps_skript
 
Software Architecture Design Patterns der COMLINE Cloud Service Platform - CSP
Software Architecture Design Patterns der COMLINE Cloud Service Platform - CSPSoftware Architecture Design Patterns der COMLINE Cloud Service Platform - CSP
Software Architecture Design Patterns der COMLINE Cloud Service Platform - CSP
 
Pruefung iu k-2009
Pruefung iu k-2009Pruefung iu k-2009
Pruefung iu k-2009
 

Metamodellierung und Validierung

  • 1. UML-Modelle im Griff Metamodellbasierte Validierung und Werkzeuganpassung bei der Deutschen Post Com GmbH Frank Egger Deutsche Post Com GmbH Ingo Feltes Itemis Gmbh und Co. KG
  • 2.
  • 3. Teil 1 Einführung in die Metamodellierung
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9. Linguistische Metamodelle – Basis für die UML Problembereich Menge von Originalen Modellbereich Gleichartige Modelle Verschiedener Originale Metamodell Beschreibt die Art der Im Modellbereich Verwendeten Modelle
  • 10.
  • 11. Die drei Achsen der Metamodellierung Metamodell (konkrete Syntax) Metamodell (statische Semantik) Metamodell (Prozess)
  • 12. Metamodellarchitekturen der OMG Prozess Semantik 0 0 1 2 1 2 Angewandtes Metaisierungsprinzip Metaisierungsbasis Relative Hierarchieposition M 0 Modell M 1 Metamodell M 2 Modell M 1 Metamodell M 2
  • 13. Metamodellarchitekturen der OMG – Theorie … Prozess Semantik 0 0 1 2 1 2 Universe Of Discourse … … … … … … … … …
  • 14. Metamodellarchitekturen der OMG – Praxis UML-Diagramme UML-Metamodell Entwicklungs- prozess … Prozess Semantik 0 0 1 2 1 2 Universe Of Discourse … … … … … … … … … System Prozess- management Unified Modeling Process Unified Profile- Modeling Process MOF CM3 Case-Tools
  • 16.
  • 17. Teil 2 Modellvalidierung auf Basis von Metamodellen
  • 18.
  • 19.
  • 20.
  • 21. OCL auf M2 bei AndroMDA Bedeutung der OCL-Constraint: Bei einer Operation dürfen weder Ergebnistyp noch Name leer sein.
  • 22. Beispiel für Business Process Modeling context UseCase inv: let useCaseName : String = name in useCaseName -> notEmpty() and model.allUseCases-> one (name = useCaseName) „ Each use-case must have a non-empty name that is unique among all use-cases.“ final java.lang.Object contextElement = this ; boolean constraintValid = OCLResultEnsurer.ensure(OCLCollections .notEmpty(OCLIntrospector.invoke(contextElement, "name")) && OCLCollections.one(OCLIntrospector.invoke( contextElement, "model.allUseCases"), new Predicate() { public boolean evaluate(java.lang.Object object) { return OCLExpressions.equal(OCLIntrospector .invoke(object, "name"), OCLIntrospector.invoke( contextElement, "name")); } })); if (!constraintValid) validationMessages. add(new ModelValidationMessage( this .getClass(), this .getName(), "Each use-case must have a non-empty name that is unique among ..."));
  • 23. Teil 4 Aufwandsminimierung und Qualitätssteigerung durch CM3
  • 24.
  • 25. Aufwandsgenerator „Lange Iterationen“ Architekt 1: Architekturrahmen entwerfen Designer 2: PIM Modellieren UML - Profil Entwickler 3: PIM attributieren PIM - - Build 6: Anwendung übersetzen und verpacken Build Parameter Build Umgebung 7: Anwendung deployen und testen Generator 4: Architekturrahmen generieren XMI Generator - Schablonen 5: Businesslogik einfügen Code Feedback und validieren und validieren mit Metamodell - Constraints
  • 26. Aufwände bei der Entwicklung Start Aufwand in EW-Tagen Zeit Ohne Validierung / Werkzeug-anpassung Initialer Aufbau der generativen Architektur Projektsetup, Einarbeitung Entwickler Fach-modellierung und Attributierung Generierung Implementierung und Build Kleines Team mit Architekten Manuelle Weitergabe / Verbreitung von Best Practices Lange Iterationen bei Modellierungs-fehlern und Modellrevision Test / Deployment Manuelle Einarbeitung und Wissensvermittlung, Überforderung der Architekten Formalisierung von Qualitäts-kriterien on top Intuitive Zugänglichkeit, Toolgestützte Einarbeitung, Konzentration auf das Wesentliche Minimalismus bei der Modellierung durch Einsatz von Pattern-Wizards Mit Validierung / Werkzeug-anpassung
  • 27.
  • 28. Danke für Eure Aufmerksamkeit! Noch Fragen?