Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

Metamodellierung und Validierung

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Cargando en…3
×

Eche un vistazo a continuación

1 de 28 Anuncio

Más Contenido Relacionado

A los espectadores también les gustó (18)

Similares a Metamodellierung und Validierung (20)

Anuncio

Más reciente (20)

Metamodellierung und Validierung

  1. 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. 2. Überblick <ul><li>Einführung in die Metamodellierung </li></ul><ul><li>Modellvalidierung auf Basis von Metamodellen </li></ul><ul><li>Aufwandsminimierung und Qualitätssteigerung durch CM3 </li></ul><ul><li>Case-Tool Konfektionierung zur frühzeitigen Validierung </li></ul>
  3. 3. Teil 1 Einführung in die Metamodellierung
  4. 4. Begriffsfindung <ul><li>… kommt aus dem Griechischen und bedeutet „zwischen“, „inmitten“, „nach“, „nachher“ </li></ul><ul><li>… drückt aus, dass sich etwas auf einer höheren Stufe oder Ebene befindet </li></ul><ul><li>Meta… </li></ul><ul><li>… sind Abbilder der Wirklichkeit </li></ul><ul><li>… betonen bestimmte Eigenschaften </li></ul><ul><li>… lassen nebensächliche Aspekte außer acht </li></ul><ul><li>Modelle… </li></ul>Metamodell Elemente der Metamodells Modell Elemente des Modells Zu beschreibende Domäne Elemente der „ wirklichen Welt“ beschreibt beschreibt Modelle von Modellen sind Metamodelle?
  5. 5. Mehrstufige Klassifizierung <ul><li>Modelle erstellen durch Anwendung einer Klassifikationsabstraktion </li></ul>Straßennetz: Busliniennetz: Logistiknetz: Netz: <ul><li>Durch erneute Klassifikation entsteht ein Modell der Modelle </li></ul>
  6. 6. Ontologische Metamodelle <ul><li>Ein durch mehrstufige Klassifizierung entstandenes Modell heißt Ontologisches Metamodell </li></ul>Metamodell Modell Instanzen Klassifikation Nicht transistiv! <ul><li>„ Berlin“ ist eine Instanz der Klasse „Stadt“ </li></ul><ul><li>Die Klasse „Stadt“ ist eine Instanz der Klasse „Knoten“ </li></ul><ul><li>„ Berlin“ ist keine Instanz der Klasse „Knoten“ </li></ul>
  7. 7. Generalisierung vs. Metamodelle <ul><li>Für ein ontologisches Metamodell gilt… </li></ul><ul><li>Die Instanzen der Klasse „Knoten“ sind die Klassen „Stadt“, „Haltestelle“, „Briefkasten“ </li></ul><ul><li>Eine Instanz der Klasse „Stadt“ (z. B. Berlin) ist keine Instanz der Klasse „Knoten“ </li></ul><ul><li>Für die Generalisierung gilt… </li></ul><ul><li>„ Stadt“, „Haltestelle“, „Briefkasten“ sind keine Instanzen von der Klasse „Örtlichkeit“ </li></ul><ul><li>Jede Instanz der Klasse „Stadt“ ist auch gleichzeitig eine Instanz der Klasse „Örtlichkeit“ </li></ul>
  8. 8. Modelle von Modellen vs. Metamodelle Verbindung Elektronen pro Energieniveau <ul><li>Das Atommodell ist ein Beispiel aus der klassischen Modellierung </li></ul><ul><li>Reduziert man das Atommodell auf die im jeweiligen Atom vorhandenen Elektronen pro Energieniveau, kann man ein Modell des Atommodells erstellen </li></ul><ul><li>Dieses Modell des Atommodells ist allerdings kein onthologisches Metamodell, da es nicht durch mehrstufige Klassifizierung, sondern nur durch Abstraktion entstanden ist </li></ul><ul><li>Modell eines Modells ≠ Metamodell </li></ul><ul><li>Der Schein trügt </li></ul>O H O 1 2,6 2,6
  9. 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. 10. Linguistische vs. Onthologische Metamodelle Welche Teilbereiche bestimmen ein linguistisches Metamodell? <ul><li>… entstehen durch mehrstufige Klassifikation innerhalb des Modellbereichs </li></ul><ul><li>Onthologische Metamodelle… </li></ul><ul><li>… modellieren die verwendbaren Modellierungskonstrukte und verlassen damit den Modellbereich </li></ul><ul><li>… sind keine Modelle von Modellen sondern Modelle von Modellbereichen , d.h. Mengen von gleichartiger und nach gleicher Technik erstellter Modelle </li></ul><ul><li>… werden in der Praxis häufig auf den Begriff „Metamodell“ reduziert </li></ul><ul><li>Linguistische Metamodelle… </li></ul>
  11. 11. Die drei Achsen der Metamodellierung Metamodell (konkrete Syntax) Metamodell (statische Semantik) Metamodell (Prozess)
  12. 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. 13. Metamodellarchitekturen der OMG – Theorie … Prozess Semantik 0 0 1 2 1 2 Universe Of Discourse … … … … … … … … …
  14. 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
  15. 15. UML Metamodell-Architektur
  16. 16. Metamodelle und die Praxis <ul><li>Sprach- u. Methodenformalisierung (MOF, UML, OML) </li></ul><ul><li>Domänenspezifische und architekturzentrierte Modellierung </li></ul><ul><li>Formalisierung von Entwicklungsprozessen </li></ul><ul><li>Vorlage für Werkzeugimplementierungen, Toolanpassungen </li></ul><ul><li>Basis für Meta-CASE-Werkzeuge </li></ul><ul><li>Modellvalidierungen </li></ul><ul><li>generische Transferformate (CDIF, XMI) </li></ul><ul><li>Sprach- und Methodenvergleich </li></ul><ul><li>Systemintegration </li></ul><ul><li>Modelltransformation / Code-Generierung </li></ul><ul><li>Einsatz und Nutzen </li></ul>Vorlage für Werkzeugimplementierungen, Toolanpassungen Modellvalidierungen
  17. 17. Teil 2 Modellvalidierung auf Basis von Metamodellen
  18. 18. Warum Validieren? <ul><li>Semantische Korrektheit zum Metamodell </li></ul><ul><ul><li>Korrekte Verwendung von Modellelementen, Stereotypen und Tagged Values </li></ul></ul><ul><ul><li>Vollständigkeit aller methodischen Konstrukte </li></ul></ul><ul><li>Integrität zu referenzierten oder inkludierten Modellen </li></ul><ul><li>Definition von Qualitätskriterien auf Fachmodellebene </li></ul><ul><li>Frühzeitige Behebung von Fehlern </li></ul><ul><li>Lange Iterationen zur Fehlerbehebung werden vermieden </li></ul><ul><li>Fehlerbehebung während der Erfassung von Modellen ist günstiger als in der Implementierung oder sogar im Betrieb </li></ul><ul><li>Automatisierung von Modellrevision und –abnahmen </li></ul>
  19. 19. Validierung mit OCL (Object Constraint Language) <ul><li>Sprache zur Formulierung von Prüfregeln für objektorientierte Modelle </li></ul><ul><li>Standardisiert von der OMG als Teil der UML 2.0 </li></ul><ul><li>Möglichkeit zur Anreicherung eines Metamodells mit zusätzlicher Semantik </li></ul><ul><li>Prinzipiell auf jeder Modell-Hierarchieebene einsetzbar (z.B. M1, M2) </li></ul><ul><li>Grundlagen </li></ul><ul><li>Elemente der Sprache </li></ul><ul><li>Constraints für Vorbedingungen, Nachbedingungen und Invarianten </li></ul><ul><li>Expressions für z. B. Wert- und Initialwertprüfungen für Attribute </li></ul><ul><li>Queries zur Selektion von Modellelementen </li></ul>
  20. 20. OCL auf M1 bei AndroMDA <ul><li>OCL Query an einer M1-Operation </li></ul>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
  21. 21. OCL auf M2 bei AndroMDA Bedeutung der OCL-Constraint: Bei einer Operation dürfen weder Ergebnistyp noch Name leer sein.
  22. 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, &quot;name&quot;)) && OCLCollections.one(OCLIntrospector.invoke( contextElement, &quot;model.allUseCases&quot;), new Predicate() { public boolean evaluate(java.lang.Object object) { return OCLExpressions.equal(OCLIntrospector .invoke(object, &quot;name&quot;), OCLIntrospector.invoke( contextElement, &quot;name&quot;)); } })); if (!constraintValid) validationMessages. add(new ModelValidationMessage( this .getClass(), this .getName(), &quot;Each use-case must have a non-empty name that is unique among ...&quot;));
  23. 23. Teil 4 Aufwandsminimierung und Qualitätssteigerung durch CM3
  24. 24. Aufwandsgenerator „Einarbeitung“ <ul><li>Architekten sind besonders zum Projektstart mit Coaching überfordert </li></ul><ul><li>Entwickler sind mit dem breiten Spektrum an Modellierungsalternativen überfordert </li></ul><ul><li>Hohem „Wissensdurst“ in Entwicklerteams kann nicht ausreichend begegnet werden </li></ul><ul><li>Nicht alle Entwickler können aufgrund des Zahlenverhältnisses ausreichend Coaching bekommen </li></ul><ul><li>Wiederholung von Modellierungsfehlern in Entwickler-Teams aufgrund zu geringem Coachings frustriert beide Seiten </li></ul>Architekten Entwickler Coaching Qualitätskriterien / Modellierungsrichtlinien Feedback Ergebnisse
  25. 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. 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. 27. Kosten / Nutzen <ul><li>Case-Tool unterstützt Erweiterungen z. B. in Form von Plugins </li></ul><ul><li>Erstellung von Transformationsvorlagen für die Werkzeuganpassung </li></ul><ul><li>Versionierung mit Metamodell in der Architektur </li></ul><ul><li>Voraussetzungen für Werkzeuganpassung und Validierung </li></ul><ul><li>Weitere Vorteile </li></ul><ul><li>Integration in eine Validierungsverkettung (1. Case-Tool, 2. Generator) </li></ul><ul><li>Erweiterung eines Nightly-Builds </li></ul><ul><li>Standardisierung / Strukturierung von Prozessen und Vorgehensmodellen </li></ul><ul><li>Erhöhung der Vergleichbarkeit von Fachmodellen </li></ul><ul><li>Frühzeitige Risikominimierung </li></ul>
  28. 28. Danke für Eure Aufmerksamkeit! Noch Fragen?

×