Essence Modeller
Essence D1.4
Datum: Versie: Auteurs: Consortium:
31 mei 2011 1.0 Maarten W.A. Steen (Novay) Forum Standaardisatie, Ordina, RuleManagement Group, Het Expertise Centrum, Novay, TNO
Postbus 589 7500 AN Enschede +31 (0)53 485 0485 Colosseum 27 7521 PV Enschede +31 (0)88 866 2450 http://www.essence‐project.nl
Dankbetuiging Dit werk is tot stand gekomen in het consortiumproject Essence Fase 1, waarin Belastingdienst, RuleManagement Group, Ordina, Het Expertise Cen‐ trum, Forum Standaardisatie, TNO en Novay samenwerken aan schaalbare oplossingen voor semantische interoperabiliteit. Het project is gefinancierd door bijdragen van Forum Standaardisatie, RuleManagement Group, Ordina en Het Expertise Centrum, aangevuld uit EZ‐cofinancieringsmiddelen van TNO. Onze dank gaat uit naar alle professionals die, in schrift en discussie, bijgedragen hebben aan dit werk. De Creative Commons Naamsvermelding‐Niet‐commercieel 3.0 Nederland Licentie is van toepassing op dit werk. Ga naar http://creativecommons.org/licenses/by‐nc/3.0/nl/ of stuur een brief naar Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, VS om deze licentie te bekijken.
Essence Modeller
iii
Inhoudsopgave 1 1.1 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3
Gebruikershandleiding ............................................................................................. 1 Installatie‐instructies ....................................................................................................... 1 Aan de slag ....................................................................................................................... 1 Een nieuw model maken ................................................................................................. 1 Modelleren ...................................................................................................................... 2 Kwalitatief versus kwantitatief ........................................................................................ 2 Automatische Layout ....................................................................................................... 2 Een model openen ........................................................................................................... 2 Exporteren en Printen ..................................................................................................... 2 Bekende issues ................................................................................................................. 3
2 2.1 2.2 2.3 2.4
Developer Documentation ....................................................................................... 5 Metamodel ...................................................................................................................... 5 Grafische syntax ............................................................................................................... 6 Editor ............................................................................................................................... 9 Model en Code Repository .............................................................................................. 9
Referenties ............................................................................................................................. 11
Samenvatting Dit document bevat documentatie voor de Essence Modeller versie 0.3 dd. Maart 2011. Dit document is een weerslag van de huidige stand van zaken, voor de laatste versie van de tool en de documentatie, zie Docushare: https://doc.novay.nl/dsweb/View/Collection‐30157. Hoofdstuk 1 bevat gebruikersin‐ structies. Hoofdstuk 2 is gericht op ontwikkelaars.
Essence Modeller
1
1
Gebruikershandleiding De Essence Modeller is een protype modelleertool voor het maken van Essence‐ modellen. De taal daarvan staat in een ander Essence‐rapport beschreven (Quartel at al. 2011). Op een wiki (https://doc.novay.nl/dsweb/View/Wiki‐175) hebben we een aantal tips en trucs verzameld om met de Essence Modeller te kunnen werken. Deze hebben be‐ trekking op versie 0.3.
1.1
Installatie‐instructies Als System Requirements noemen we: Intern geheugen (RAM) van ten minste 1500 MB Java Runtime Environment (JRE) versie 1.6+ Download de laatste versie van de Essence Modeller: EssenceModeller‐0.3.1.zip Dit archief uitpakken (unzip) naar harde schijf, bijv. C: of D:. Tip: creëer meteen een Shortcut op de Desktop naar EclipseModeller‐ 0.3/eclipse/EclipseModeller.exe door in de Windows Explorer op deze file, rechter muisknop > Send to > Desktop (create shortcut). Dan kun je voortaan de modeller direct vanaf de Desktop starten. Het kan zijn dat werkdirectories naar voor jullie vreemde plekken verwijzen.
1.2
Aan de slag De Essence Modeller is een grafische editor voor het maken van Essence modellen. Daarnaast kan deze tool de modellen ook opslaan, inlezen, printen, exporteren en opmaken. De Essence Modeller kan worden gestart door de file EclipseModeller‐ 0.3/eclipse/EclipseModeller.exe te executeren. Het is handig om even een Shortcut naar deze file op de Desktop te plaatsen (zie Tip hierboven).
1.2.1
Een nieuw model maken Je kunt een nieuw model maken via het menu File > New > Essence Model. In de dia‐ look die volgt kun je een naam en een locatie opgeven voor het te creeren model. De naam moet eindigen op ".esd". Tip: Denk bij het creëren van een nieuw model even goed na over de naam en de locatie, want dit is lastig aan te passen in een later stadium. Tip: Als je de filename of locatie van een model toch wilt veranderen dan kun je dat via de gewone windows explorer doen.
2
Essence Modeller
1.2.2
Modelleren Als je een Horizon of Concept creëert kun je die direct een naam geven. Als je de naam van een bestaand object wilt veranderen, selecteer dan het object en druk op toets F2. Conceptnamen kunnen over meerdere regels lopen. Je kunt regelovergangen invoeren terwijl je de naam typt met de toetscombinatie CTRL+ENTER. Als je in een keer een heleboel concepten of relaties wilt creëren, houdt dan de CTRL‐ toets ingedrukt terwijl je het desbetreffende element selecteert in het tool palette. In de Properties View (rechtsonder) kun je additionele eigenschappen van objecten inzien en wijzigen. Concepten hebben bijvoorbeeld een Definition en een Description. Hierin kun je een nadere definitie en beschrijving, toelichting of motivatie geven in tekst. Het model zelf en de horizon hebben ook een Description, waarin bronnen, aannames of nadere toelichting opgenomen kunnen worden. Er kunnen twee soorten relaties tussen concepten getekend worden: de contextrela‐ tie en de grondrelatie. Ieder concept mag maximaal 1 contextrelatie hebben. De edi‐ tor staat het tekenen van een tweede contextrelatie gewoon niet toe. Een concept mag meer dan 1 grondrelatie hebben, maar niet meer dan 1 naar hetzelfde concept. De editor geeft een foutmelding als dit toch geprobeerd wordt. Ook mag er geen con‐ textrelatie en grondrelatie tussen dezelfde twee concepten bestaan, dus dat wordt ook gesignaleerd door de editor. Er wordt een waarschuwing gegeven als een concept een grondrelatie heeft naar zichzelf.
1.2.3
Kwalitatief versus kwantitatief Je kunt switchen tussen een kwalitatief (standaard instelling) en kwantitatief perspec‐ tief op het model, door te schakelen tussen de knoppen All Connector Labels en No Connector Labels in de toolbalk.
1.2.4
Automatische opmaak Met het commando Arrange All in het Diagram menu, Rechter muisknop‐menu en op de toolbalk kun je de automatische opmaak activeren. Het is ook mogelijk om automa‐ tische opmaak alleen toe te passen een deel (een selectie) van het model. Gebruik daarvoor het commando Arrange > Selection.
1.2.5
Een model openen Het is mogelijk om een bestaand model te openen via het menu File > Open... In de dialoog die volgt Browse… en selecteer het Essence model dat je wilt openen. Dit moet een .esd file, oftewel een Essence Diagram file, zijn.
1.2.6
Exporteren en Printen Je kunt een model printen via het menu File > Print... Je kunt ook het model exporteren als plaatje. Selecteer hiervoor dat deel van het dia‐ gram dat je wilt exporteren, dan druk op rechter muisknop > File > Save As Image File ... In de dialoog die volgt kun je vervolgens aangeven naar welke Folder, onder welke File Name en in welk Image Format (GIF, PNG, BMP, JPG, SVG, PDF) het diagram geex‐ porteerd moet worden. Tenslotte is het mogelijk om (een selectie van) het diagram te copieren (Copy) en plak‐ ken (Paste) in een een andere applicatie, zoals Word of Powerpoint. Helaas is het op
Essence Modeller
3
dit moment (nog) niet mogelijk om modelelementen in een ander Essence model te plakken.
1.3
Bekende issues Op dit moment zijn de volgende issue bekend: 1. De Save As... menu‐optie werkt niet. Als je de filename of locatie van een mo‐ del wilt veranderen dan moet je dat via de gewone windows explorer doen. 2. Gebruikers van versie 0.2 zullen misschien de *.esm files missen. Op verzoek van sommige gebruikers maken we nu geen onderscheid meer tussen .esd en .esm files. Alle modelinformatie zit nu in de .esd file, dus het klopt dat je de .esm niet meer kunt vinden. 3. Soms ontstaat er een inconsistentie tussen het diagram en het onderliggende model, bijvoorbeeld als je eigenschappen hebt veranderd in de Properties View. Als dit gebeurd, probeer dan eerst het diagram te verversen met F5 of Rechter muisknop > Update Essence Diagram. Als dit het probleem niet op‐ lost, kun je de inhoud van het model inspecteren in de Outline View (rechts‐ boven). Daarin bevindt zich een Tree view op het model. Van hieruit kunnen inconsistente modelelementen, concepten en relaties, verwijderd worden door ze te selecteren, rechter muisknop > Delete. 4. Het is lastig om de afmetingen van de Horizon aan te passen. Als de Horizon te dun of te klein is geworden, kun je dit herstellen met rechter muisknop > Format > Auto Size. Als de Horizon te klein is, kun je deze verlengen door eerst flink in te zoomen op het model (bijv. tot 200%) en dan met de muis de rechter zijkant van de horizon op te pakken en naar rechts te trekken. 5. Het direct kopiëren van concepten en/of relaties in één model en deze vervol‐ gens plakken voor hergebruik in een ander model kan op dit moment niet. Voor versiebeheer is het het eenvoudigst om in Explorer een kopie van de .esd‐file te maken en deze te gebruiken voor het maken van een nieuwe ver‐ sie van het model.
5
Essence Modeller
2
Developer Documentation De Essence Modeller is een protype modelleertool voor het maken van Essence‐mo‐ dellen. De tool is grotendeels gegenereerd uit modellen voor de taal en de notatie met behulp van Eclipse, een open source raamwerk voor software‐ontwikkelomgevingen: EMF: het Eclipse Modeling Framework (Eclipse, 2011a) en GMF: het Graphical Modeling Framework (Eclipse, 2011b). De taaldefinitie is vastgelegd in een EMF‐metamodel, dat hieronder is beschreven. De notatie, de grafische syntax, is gespecificeerd in een GMF Graph model, dat via een GMF Mapping model is gerelateerd aan het metamodel.
2.1
Metamodel Een Essence‐model bestaat uit Concepten, hun Context en hun Gronden. De Context van een Concept wordt gespecificeerd door een Context Relatie – een lijn met een pijlpunt – tussen het Concept en een ander Concept dat zijn Context vertegenwoor‐ digd. De Gronden van een Concept worden gespecificeerd door Grond Relaties tussen het Concept en andere Concepten die de Gronden vertegenwoordigen. Binnen een model wordt de context afgesloten door een Horizon, d.w.z. dat Context Relaties, en eventueel ook Grond Relaties, ook naar de Horizon mogen lopen. Het basis (kwalitatieve) metamodel staat in Figuur 1.
Figuur 1. Het basis metamodel voor de Essence‐taal.
Een ContextModel bestaat uit een verzameling Concepten. Een Concept kan een Con‐ text en nul of meer Intexten (concepten waarvoor dit concept de context is) hebben. De Context is de ContextRelation, waarvan het Concept de Source is. De Intext is de verzameling van Context Relaties waarvan het Concept de Target is. Een Concept kan nul of meer Gronden hebben, gerepresenteerd door de Grond Relaties waarvan het Concept de Source is. Een Concept kan ook nul of meer Eigenschappen (Properties)
6
Essence Modeller
hebben, dat zijn die Grond Relaties waarvan het Concept de Target is. Context en Grond Relaties kunnen ook de Horizon als Target hebben. Daarom is de Horizon hier gedefinieerd als specialisatie van Concept. De modelelementen hebben daarnaast een aantal eigenschappen. Deze eigenschap‐ pen zijn in een verfijning van het metamodel weergegeven (Figuur 2).
Figuur 2. Het Essence‐metamodel met eigenschappen.
Een Concept heeft een Naam en een informele (tekstuele) Definitie. Een Context Rela‐ tie heeft een unieke Id(entifier). Ten behoeve van kwantitatieve modellering heeft een Grond Relatie daarnaast een Source en een Target Cardinaliteit. Tenslotte, is het mo‐ gelijk om Documentatie aan het Context Model en aan Concepten toe te voegen voor toelichting en/of verduidelijking.
2.2
Grafische syntax De grafische syntax voor Essence‐modellen, waarvan een voorbeeld in Figuur 3 staat, is gedefinieerd in een GMF Graph model (zie Figuur 4). Op basis hiervan wordt door GMF de code gegenereerd voor het weergeven en manipuleren van de grafische sym‐ bolen in de editor.
Figuur 3. Voorbeeld van een Essence‐modelletje.
7
Essence Modeller
De Horizon wordt weergegeven door een grijze afgeronde rechthoek van initieel 800 bij 7 pixels. Concepten worden weergegeven door afgeronde rechthoeken van initieel 100 bij 40 pixels, met achtergrondkleur {R:228,G:179,B:229} (RGB code voor licht paars) en met daarin een grijze rechthoek van 80 bij 2 pixels. Daarnaast bevatten zij een label. Context Relaties worden weergegeven door een polyline connection met een pijlpunt polyline decoration. Grond Relaties worden weergegeven door een polyline connecti‐ on zonder pijlpunt. Tenslotte zijn er nog een aantal labels gedefinieerd die op een Essence‐diagram kun‐ nen voorkomen: HorizonLabel, SourceCardinalityLabel en TargetCardinalityLabel.
Figuur 4. GMF Graph model voor de Essence‐notatie.
Het GMF Graph model wordt verbonden met het EMF‐metamodel via een GMF Map‐ ping model. Dit model is weergegeven in Figuur 5. Het mapping model bestaat uit een aantal mappings die ieder een element uit het me‐ tamodel verbinden met hun grafische representatie.
8
Essence Modeller
Zo wordt een Concept aan een ConceptNode gerelateerd en wordt er een bijbehoren‐ de label mapping aangebracht tussen het attribuut name en het Concept Label. De Horizon mapping is analoog. Verder is er een mapping die een ContextRelation relateerd aan een ContextRelation Connection met bijbehorende label mappings voor de cardinaliteiten. Tenslotte wordt het ContextModel zelf gerelateerd aan het Essence canvas – de ach‐ tergrond van het diagram. In de Canvas Mapping wordt bovendien een relatie gelegd met het Toolbar Palette en het Essence metamodel.
Figuur 5. GMF mapping model voor de Essence‐editor.
9
Essence Modeller
2.3
Editor Met enkele aanpassingen van de gegenereerde code komt de Essence Editor er dan uit te zien zoals het screenshot in Figuur 6. Hiermee kunnen interactief en grafisch Essen‐ ce modellen worden geconstrueerd. De tool kan de modellen ook opslaan, inlezen, printen, exporteren en opmaken.
Figuur 6. Screenshot van de Essence Modeller.
2.4
Model en Code Repository De hierboven beschreven modellen, alsmede de aangepaste code zijn te vinden in de Subversion repository van Novay. De URL van de repository is: https://svn.telin.nl/svn/essence/ Gebruik je favoriete SVN client (e.g. Subclipse, Tortoise) om de repository te benade‐ ren. Hiervoor is wel een account op de SVN server nodig, dat is aan te vragen bij de beheerder:
[email protected] .
10
Essence Modeller
In de Essence repository staan de volgende Eclipse‐projecten: nl.novay.essence/ In dit project zitten alle modellen: metamodel, graph model, mapping model, etc. nl.novay.essence.model/ Hierin staat de grotendeels genereerde modelmanagement code voor Essence modellen. nl.novay.essence.model.edit/ nl.novay.essence.model.editor/ nl.novay.essence.modeller/ Hierin staat de genereerde (in /src‐gen) en aangepaste (in /src) code voor de grafische editor. nl.novay.essence.modeller.properties/ Hierin staat handmatig toegevoegde code voor de property sheets. nl.novay.essence.modeller.ui.outline/ Hierin staat handmatig toegevoegde code voor de outline view.
Essence Modeller
11
Referenties Dick Quartel, Jack Verhoosel, Lianne Bodenstaff, Roel Stap, Maarten Steen en Paul Oude Luttighuis (2011), Essence taaldefinitie en denkwijze. Essence Fase 1, D1.1. Mei 2011. Eclipse (2011a), Eclipse Modeling Framework Project. http://www.eclipse.org/modeling/emf/ Eclipse (2011b), Graphical Modeling Project. http://www.eclipse.org/modeling/gmp/