Entwurf domänenspezifischer Modelle im Web mit Oryx Matthias Kunze Mathias Weske (Koautor) 1.10.2009 | Methodische Entwicklung von Modellierungswerkzeugen
2 ✔ x ✔ ✔ ✔ ✔ ✔ x 1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
DSML Domänenspezifische Modellierung 3 • verlagert den Systementwurf in den Problemraum • abhängig vom Verständnis des Begriffs Domäne Software Architektur UML Class, FMC Block Diagram Unternehmen Organigramm, Wertschöpfungskette Prozesslogik EPC, BPMN Versicherungsunternehmen <Kundenkonto anlegen>, <Bonität prüfen>, ... Fallbearbeitung <Attest begutachten>, <Zeugen befragen>, ... Hier : Methodische Entwicklung von Werkzeugen, die von dieser Unterscheidung abstrahieren können, z.B. Oryx 1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Agenda 4 Domain Domain ¡ Software Specific ¡Model Domain ¡Expert Software ¡Expert 1. Oryx Modellierungsplattform ¡ Anforderungen, Umsetzung DSML DSML ¡Architect 2. DSML mit Oryx Notation, Syntax, Semantik 3. Demo 4. Ausblick 1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Oryx Web-basierte Modellierungsplattform 5 • Daten und Anwendung im Web • keine Installation/Deployment • jedes Modell hat eine URL (Bookmarks) Forschungsplattform als Open Source Projekt • aktive Entwicklergemeinschaft • frei nutz- und verfügbar • einfach erweiterbar um neue Funktionen und Sprachen 1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Oryx – Modelleditor 6 1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Oryx – Modelleditor graphisches Modellierungswerkzeug 7 • browserbasiert (JavaScript + SVG) • intuitiv bedienbar einfache Erweiterung und schnelle Umsetzung neuer Modellierungssprachen • viele Editorfunktionen unabhängig von der Modellierungssprache • kanonisches Datenformat: JSON/RDF • Plugin-Konzept für wiederverwendbare und spezifische Funktionalität 1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Oryx – Modellrepository 8 1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Oryx – Modellrepository zentrale Speicherung und Verwaltung 9 von Modellen für Forschungszwecke • Sharing • Rating • Tagging große, existierende Modellsammlung (>3000) für empirische Forschung • Statistiken • Suche von Modellen 1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Architektur und Erweiterbarkeit 10 1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Modellierungssprache [JS06, TR03, tHP97 ] = Notation 11 Konzepte aus der Domäne, deren Eigenschaften und Repräsentation + Syntax Korrektheit von Modellen , d.h. Regeln bezüglich der richtigen Komposition der Konzepte + Semantik Bedeutung der Modelle , d.h. Regeln um korrekte Modelle richtig zu interpretieren 1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Stencil Set Metamodel der domänenspezifischen 12 Modelle Notation • Elemente, Attribute (JSON) • Repräsentation (SVG, PNG) Syntax • Verknüpfungsregeln • Kardinalitätsregeln • Enthaltenseinregeln 1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Stencil Set 13 + + komplett zum Modellieren in der gegebenen Sprache • Container für Modellelemente (Shape Repository/Shape Menü) • syntaktische Modellierungshilfe • Konfiguration von Modellelementen (Property Editor) 1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Notation – Stencil Set (BPMN) 14 { "type": "node", "id": "Task", "title": "Task", "groups": ["Activities"], graphische Repräsentation "description": "An atomic activity.", "icon": " node_task.png ", "view": "activity/node.task.svg" , "properties": [ ... <? xml version="1.0" encoding="UTF-8" standalone="no"?> < svg ... width="102" height="82" version="1.0"> < oryx:magnets > ], ... </ oryx:magnets > "roles": [ < g pointer-events="fill" oryx:minimumSize="50 40" oryx:maximumSize="200 160" > < rect id="taskrect" oryx:resize="vertical horizontal" x="0" y="0" ... width="100" height="80" rx="10" ry="10" stroke="black" stroke-width="1" fill="white" /> ... ] </ g > </ svg > } 1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Syntax – Stencil Set (BPMN) 15 "rules": { "connectionRules": [ { "role":"SequenceFlow", "connects": [ { { "from":" sequence_start ", "to":" sequence_end " "type": "node", }, "id": " Task ", ... ] ..., }, "roles": [ "cardinalityRules": ..., "containmentRules": ... " sequence_start ", } � " sequence_end ", ... Tasks werden (u.A.) ] durch SequenceFlow } verbunden 1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Syntax – Stencil Set (BPMN) 16 "rules": { "connectionRules": [ { "role":"SequenceFlow", "connects": [ { { "from":" sequence_start ", "to":" sequence_end " "type": "node", }, "id":" StartEvent ", ... ] ... }, "roles" [ "cardinalityRules": ..., "containmentRules": ... "sequence_start", } "to_task_event", "from_task_event", StartEvent hat kein sequence_end, d.h. "Startevents_all", keine eingehenden ], Sequenzflusskanten ... } 1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Plugins funktionelle Erweiterung des Editors 17 • sprachunabhängige Funktionalität, • sprachspezifische Erweiterungen • Anbindung externer Systeme Semantik – Abbildung eines Modells auf Bedeutung • Transformationen, z.B. sprachspezifische Serialisierung • Generatoren • Ausführungsengines 1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Ausführungssemantik : Step Through 18 ORYX.Plugins.StepThroughPlugin = ORYX.Plugins.AbstractPlugin.extend({ construct : function() { // Call super class constructor arguments.callee.$.construct.apply(this, arguments); this.facade.offer({ Plugin 'name': ORYX.I18N.StepThroughPlugin.stepThrough, 'functionality': this.load.bind(this), registrieren ... }); }, showPlayOnShape : function(shape){ ... }, showOverlayOnShape : function(shape, attributes, node){ ... }, hideOverlayOnShape : function(shape){ Events auf ... Modellelemente }, ... registrieren }); 1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Demo 19 1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Effizientes Modellieren: Shape Menü 20 „ Morphen “ von Shapetypen kontextabhängiger Vorschlag von Folgeshapes 1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Syntax Enforcement im Stencil Set 21 korrekte Verbindung von Tasks mit Sequence Flow; Magnete werden angezeigt End Event darf keine ausgehenden Kanten haben 1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
BPMN Syntax Check als Plugin 22 BPMN erlaubt MessageFlows nur zwischen Aktivitäten, die in unterschiedlichen Pools liegen. Das Model ohne Pools wird als in einem Pool liegend betrachtet. 1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Semantik: Step Through 23 zurück 1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Ausblick Forschung mit Modellsammlungen – Repository 24 Disp • Analyse von Modellstrukturen R • Wiederverwendung von Modellen beim Modellieren Oryx ¡Backend R • Unterstützung für Modellinstanzen, insb. Prozesse Model Database Modellierungsmethodologie • Wie werden Modelle erfasst und verstanden? Kooperation und Interaktion • Signavio-Oryx Academic Initiative • BPMN Community • Entwicklung von Web-APIs und Mashup-Komponenten für Oryx 1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Recommend
More recommend