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
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
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 ..."));
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