Entwurf domänenspezifischer Modelle im Web mit Oryx Matthias Kunze Mathias Weske (Koautor) 1.10.2009 Methodische Entwicklung von Modellierungswerkzeugen
2 x x
DSML 3 Domänenspezifische Modellierung verlagert den Systementwurf in den Problemraum abhängig vom Verständnis des Begriffs Domäne Software Architektur Unternehmen Prozesslogik UML Class, FMC Block Diagram Organigramm, Wertschöpfungskette 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
Agenda 4 Domain Domain Specific Model Software Domain Expert Software Expert 1. Oryx Modellierungsplattform Anforderungen, Umsetzung DSML DSML Architect 2. DSML mit Oryx Notation, Syntax, Semantik 3. Demo 4. Ausblick
Oryx 5 Web-basierte Modellierungsplattform 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
Oryx Modelleditor 6
Oryx Modelleditor 7 graphisches Modellierungswerkzeug 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
Oryx Modellrepository 8
Oryx Modellrepository 9 zentrale Speicherung und Verwaltung von Modellen für Forschungszwecke Sharing Rating Tagging große, existierende Modellsammlung (>3000) für empirische Forschung Statistiken Suche von Modellen
Architektur und Erweiterbarkeit 10
Modellierungssprache [JS06, TR03, thp97] 11 = Notation 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
Stencil Set 12 Metamodel der domänenspezifischen Modelle Notation Elemente, Attribute (JSON) Repräsentation (SVG, PNG) Syntax Verknüpfungsregeln Kardinalitätsregeln Enthaltenseinregeln
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)
Notation Stencil Set (BPMN) 14 { "type": "node", "id": "Task", "title": "Task", "groups": ["Activities"], "description": "An atomic activity.", "icon": "node_task.png", graphische Repräsentation "view": "activity/node.task.svg", "properties": [ }... ], "roles": [... ] <?xml version="1.0" encoding="utf-8" standalone="no"?> <svg... width="102" height="82" version="1.0"> <oryx:magnets>... </oryx:magnets> <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>
Syntax Stencil Set (BPMN) 15 "rules": { "connectionrules": [ { "role":"sequenceflow", "connects": [ { "from":"sequence_start", "to":"sequence_end" },... ] }, "cardinalityrules":..., "containmentrules":... } Tasks werden (u.a.) durch SequenceFlow verbunden { "type": "node", "id": "Task",..., "roles": [ "sequence_start",! "sequence_end", } ]...
Syntax Stencil Set (BPMN) 16 "rules": { "connectionrules": [ { "role":"sequenceflow", "connects": [ { "from":"sequence_start", "to":"sequence_end" },... ] }, "cardinalityrules":..., "containmentrules":... } { "type": "node", "id":"startevent",... "roles" [ "sequence_start", "to_task_event", StartEvent hat kein sequence_end, d.h. keine eingehenden Sequenzflusskanten "from_task_event", "Startevents_all", } ],...
Plugins 17 funktionelle Erweiterung des Editors sprachunabhängige Funktionalität, sprachspezifische Erweiterungen Anbindung externer Systeme Semantik Abbildung eines Modells auf Bedeutung Transformationen, z.b. sprachspezifische Serialisierung Generatoren Ausführungsengines
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({ 'name': ORYX.I18N.StepThroughPlugin.stepThrough, 'functionality': this.load.bind(this),... }); Plugin registrieren }); showplayonshape: function(shape){... }, showoverlayonshape: function(shape, attributes, node){... }, hideoverlayonshape: function(shape){... },... Events auf Modellelemente registrieren
Demo 19
Effizientes Modellieren: Shape Menü 20 Morphen von Shapetypen kontextabhängiger Vorschlag von Folgeshapes
Syntax Enforcement im Stencil Set 21 korrekte Verbindung von Tasks mit Sequence Flow; Magnete werden angezeigt End Event darf keine ausgehenden Kanten haben
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.
Semantik: Step Through 23 zurück
Browser OpenId Connector Stencil Set Ausblick Editor (Core) Plugins Plugins R Stateless Stateless Plugins Plugins 24 Forschung mit Modellsammlungen Repository Analyse von Modellstrukturen R Wiederverwendung von Modellen beim Modellieren Plugins Plugins Unterstützung für Modellinstanzen, insb. Prozesse Model Repository Model Models R Dispatcher Oryx Backend Model Database Modellierungsmethodologie Wie werden Modelle erfasst und verstanden? HTTP Kooperation und Interaktion Signavio-Oryx Academic Initiative BPMN Community Entwicklung von Web-APIs und Mashup-Komponenten für Oryx
Signavio-Oryx Academic Initiative 25 Forschung und Lehre as a Service Modellierung in verschiedenen Sprachen Übungsaufgaben unter Creative Commons inhaltliche Pflege durch 6 Partneruniversitäten technische Betreuung durch Unternehmen http://www.signavio.com/academic
26 soziales Netzwerk für kooperative Prozessmodellierung Tutorials Best Practices Referenzprozesse Diskussionsforum http://bpmn-community.org/
Zusammenfassung 27 Oryx Modellierungsplattform modellieren verwalten keine Installation Domänenspezifische Modellierungssprachen Stencil Sets: Notation + Syntax Plugins: Semantik Verzicht auf MOF-konformes Metamodel
Fragen? Antworten! 28 http://oryx-project.org externe Partner/Beitragende Matthias Kunze Business Process Technology Group matthias.kunze@hpi.uni-potsdam.de
Referenzen 29 [JS06] Ethan K. Jackson und Janos Sztipanovits. Towards a formal foundation for domain specific modeling languages. In EMSOFT ʼ06: Proceedings of the 6th ACM & IEEE International conference on Embedded software, Seiten 53 62, New York, NY, USA, 2006. ACM. [TR03] " Juha-Pekka Tolvanen und Matti Rossi. MetaEdit+: defining and using domain- specific modeling languages and code generators. In OOPSLA ʼ03: Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, Seiten 92 93, New York, NY, USA, 2003. ACM. [thp97]" A. H.M. ter Hofstede und H.A. Proper. How to Formalize It? Formalization Princip- les for Information System Development Methods. Bericht, University of Queens- land, Australia, 1997. komplette Referenzliste, siehe Paper: Entwurf domänenspezifischer Modelle im Web mit Oryx