1.10.2009 | Methodische Entwicklung von Modellierungswerkzeugen
Entwurf domnenspezifischer Modelle im Web mit Oryx Matthias Kunze - - PowerPoint PPT Presentation
Entwurf domnenspezifischer Modelle im Web mit Oryx Matthias Kunze - - PowerPoint PPT Presentation
Entwurf domnenspezifischer 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 |
1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
2
✔ ✔ ✔ ✔ ✔ x ✔ x
1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
DSML
Domänenspezifische Modellierung
- verlagert den Systementwurf in den Problemraum
- abhängig vom Verständnis des Begriffs Domäne
Hier: Methodische Entwicklung von Werkzeugen, die von dieser Unterscheidung abstrahieren können, z.B. Oryx
3
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>, ...
2. DSML mit Oryx Notation, Syntax, Semantik 1. Oryx Modellierungsplattform Anforderungen, Umsetzung
1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Agenda
4
3. Demo
- 4. Ausblick
Domain ¡Expert Software ¡Expert Domain ¡ Domain Specific ¡Model Software DSML DSML ¡Architect
¡
1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
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
5
Oryx
1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Oryx – Modelleditor
6
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
1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Oryx – Modelleditor
7
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 von Modellen für Forschungszwecke
- Sharing
- Rating
- Tagging
große, existierende Modellsammlung (>3000) für empirische Forschung
- Statistiken
- Suche von Modellen
9
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
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
11
Metamodel der domänenspezifischen 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
12
1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Stencil Set
komplett zum Modellieren in der gegebenen Sprache
- Container für Modellelemente (Shape Repository/Shape Menü)
- syntaktische Modellierungshilfe
- Konfiguration von Modellelementen (Property Editor)
13
+ +
{ "type": "node", "id": "Task", "title": "Task", "groups": ["Activities"], "description": "An atomic activity.", "icon": "node_task.png", "view": "activity/node.task.svg", "properties": [ ... ], "roles": [ ... ] }
1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Notation – Stencil Set (BPMN)
14
<?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>
graphische Repräsentation
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" }, ... ] }, "cardinalityRules": ..., "containmentRules": ... }
Tasks werden (u.A.) durch SequenceFlow verbunden
{ "type": "node", "id": "Task", ..., "roles": [ "sequence_start",
- "sequence_end",
... ] }
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" }, ... ] }, "cardinalityRules": ..., "containmentRules": ... }
StartEvent hat kein sequence_end, d.h. keine eingehenden Sequenzflusskanten
{ "type": "node", "id":"StartEvent", ... "roles" [ "sequence_start", "to_task_event", "from_task_event", "Startevents_all", ], ... }
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
1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Plugins
17
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({ 'name': ORYX.I18N.StepThroughPlugin.stepThrough, 'functionality': this.load.bind(this), ... }); }, showPlayOnShape: function(shape){ ... }, showOverlayOnShape: function(shape, attributes, node){ ... }, hideOverlayOnShape: function(shape){ ... }, ... });
Plugin registrieren 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
kontextabhängiger Vorschlag von Folgeshapes „Morphen“ von Shapetypen
1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Syntax Enforcement im Stencil Set
21
End Event darf keine ausgehenden Kanten haben korrekte Verbindung von Tasks mit Sequence Flow; Magnete werden angezeigt
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
Disp
R R
Oryx ¡Backend Model Database
Forschung mit Modellsammlungen – Repository
- Analyse von Modellstrukturen
- Wiederverwendung von Modellen beim Modellieren
- Unterstützung für Modellinstanzen, insb. Prozesse
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
Ausblick
24
Forschung und Lehre „as a Service“
- Modellierung in verschiedenen Sprachen
- Übungsaufgaben unter Creative Commons
- inhaltliche Pflege durch 6 Partneruniversitäten
- technische Betreuung durch Unternehmen
1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
25
Signavio-Oryx Academic Initiative
http://www.signavio.com/academic
soziales Netzwerk für kooperative Prozessmodellierung
- Tutorials
- Best Practices
- Referenzprozesse
- Diskussionsforum
1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
26
http://bpmn-community.org/
1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Zusammenfassung
Oryx – Modellierungsplattform
- modellieren
- verwalten
- keine Installation
Domänenspezifische Modellierungssprachen
- Stencil Sets: Notation + Syntax
- Plugins: Semantik
Verzicht auf MOF-konformes Metamodel
27
1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Fragen? Antworten!
Matthias Kunze Business Process Technology Group matthias.kunze@hpi.uni-potsdam.de
28
http://oryx-project.org
externe Partner/Beitragende
1.10.2009 | Matthias Kunze, Mathias Weske | Methodische Entwicklung von Modellierungswerkzeugen
Referenzen
[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“