1 / 48

GME Basics

GME Basics. Janos Mathe Zolt án Molnár Help-desk: gme-users list at http://list.isis.vanderbilt.edu. Recap. UML concepts Classes Associations Aggregation/Composition Generalization/Inheritance Additional concepts Constraints. Recap. UML concepts Classes Associations

trista
Download Presentation

GME Basics

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. GME Basics Janos Mathe Zoltán Molnár Help-desk: gme-users list at http://list.isis.vanderbilt.edu

  2. Recap • UML concepts • Classes • Associations • Aggregation/Composition • Generalization/Inheritance • Additional concepts • Constraints

  3. Recap • UML concepts • Classes • Associations • Aggregation/Composition • Generalization/Inheritance • Additional concepts • Constraints

  4. Defining a DSML L = < C, A, S, MS, MC>

  5. Defining a DSML L = < C, A, S, MS, MC>

  6. Concrete Syntax for DSMLs in GME

  7. Directory structure • GME.exe • Main application • ModelMigrate.exe • XSLT (XML) based external model upgrader & transformer • Interfaces folder • Mga.idl useful when writing COM Interpreters (low-level) • Gme.idl useful when creating scripts • SDK folder • BON folder • BonImpl.h useful when writing BON Interpreters (high-level) • CreateNewComponent.exe • creates new interpreter skeletons • Paradigms folder • MetaGME folder (metamodel and paradigm for metamodeling) • SF folder (sample Signalflow metamodel/paradigm) • Doc folder • Tutorials folder

  8. Basic terms 1. • Folders (container) • First Class Objects (FCO): • Atom (atomic object) • Model (container) • Set (aggregation) • Connection (association) • Reference (pointer, proxy) • Attributes • User-defined properties of FCOs • Aspects • User-defined views of models • Annotations • Textboxes inside models, provide visual aid

  9. Defining a DSML L = < C, A, S, MS, MC>

  10. Basic terms 2. • Things to Register • GME Paradigms • GME Components/Interpreters • into Windows registry (system or user) • Object Registry in GME • Information stored inside GME objects (FCOs) • Object preferences • Object position • File types (extensions) • Binary project/model file: .mga • XML project/model file: .xme • Binary paradigm file: .mta • XML paradigm file: .xmp <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE project SYSTEM "mga.dtd"> <project […] metaname=“SF“> <?xml version="1.0"?> <!DOCTYPE paradigm SYSTEM "edf.dtd"> <paradigm name="SF“ […]

  11. MetaInterpretation MetaGME interpreter Rootfolder Metamodel (model in MetaGME paradigm)

  12. MetaInterpretation Project/modelcreated in MetaGME (aka. Metamodel) paradigm (SF.mga) User initiated translation Paradigm (SF.xmp) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE project SYSTEM "mga.dtd"> <project […] metaname=“MetaGME“> <name>SF</name> <?xml version="1.0"?> <!DOCTYPE paradigm SYSTEM "edf.dtd"> <paradigm name="SF“ […] Sample sentence with the words metamodel and paradigm: Q: “I interpreted my metamodel with MetaGME interpreter and I got the error message that my paradigm can’t be registered.” A: “Please check the Console Window for details about errors during interpretation.”

  13. Registering paradigms 1.

  14. Registering paradigms 2. Currently registered Add new paradigm Systemwide = for all users

  15. Upgrading • To a new metamodel/paradigm version • Reason: Users can change their language definition as they wish, GME has no chance of being able to sort out obsolete elements, doing replacements, … • Binary model filesmight be accepted • Export XML and Import XML might work • ModelMigrate tool (XSLT based transformations) • GReAT recommended for complex model transformations • To a new GME version • Binary model filesmight be accepted (definitely not in case of major modifications to the internal datamodel) • Export XML and Import XMLmust work • Total Recompilation of user-written components (interpreters) needed

  16. Graphical User Interface

  17. Starting from empty project Right click for Context menu Top-level elements that can be inserted

  18. Exploring models Double clicked ‘MyCompound’ model opened

  19. Exploring models Double click a Model to see its internals

  20. Navigation Back Forward Home (model opened first) Cycle Aspects for current/all model(s) Close model(s): current/all/all but current Show next window

  21. Add new parts by Drag&Drop from palette

  22. Add new partsthrough Context menu

  23. Result

  24. Context aware UI elements Selected element Context sensitive pallette Attributes of selected element

  25. Selected element Attributes of ‘Primitive’ defined in the metamodel Attributes of selected element

  26. Properties of the currently opened model Currently opened model Legal Parts allowed in currently opened model (Compound)

  27. Properties of the currently opened model Currently opened model Legal Parts allowed in currently opened model (Compound) Metamodel portion where parts of ‘Compound’ are defined

  28. Currently opened model Name Kind Aspect Selected and currently opened model Properties of the currently opened model Properties of selected element

  29. Operational modes Edit (^1) Non-sticky Disconnect (^8) Connect (^2) Non-sticky Connect (^7) Disconnect (^3) Set Mode (^4) Zoom (^5) Presentation (^6)

  30. Connectingin Connection Mode Select Connection Mode • Select source while mouse pointer is black • Select destination while mouse pointer is white Step 1 Step 2 Done

  31. Connect through Context MenuStep 1: select Source

  32. Connect through Context Menu Step 2: select Destination

  33. Connect through Context Menu Done

  34. Connection removal • In Disconnect mode • Point & click on a connection • In Edit mode • Select ‘Delete’ from a connection’s context menu • Select ‘Disconnect all’ in a source/destination object’s context menu (deletes all connections!) • In TreeBrowser • Select connection and delete it • Note: Connections are shown in TreeBrowser only if the ‘Display Connections’ option is turned on in ‘Tree Browser Options’ dialog, accessible from the TreeBrowser’s context menu

  35. Type inheritance • Type, Subtype, Instance • A model created from scratch is a type • Explicit and implicit derivation/instantiation • A deep copy preserving the linkage • In subtypes: • New objects can be added • Attributes can be modified • Objects cannot be deleted • In instances: • Attributes can be modified • Only root models can be explicitly derived or instantiated to avoid multiple dependency chains • Similar to prototype/clone technique • Enables model reuse, maintainability • Utilized in libraries

  36. Engine V6 Car ABS V6 ABSX A Car My Car V6 ABSi Cool Car ABSXj V6 T I T T I ST I I ST I I I I Type Inheritance (dependency chain) T Type ST SubType I Instance Aggregation Dependency Secondary Dep.

  37. V6 My Car Cool Car Car ABSi Engine A Car V6 V6 ABS ABSX ABSXj V6 I I I T I I ST I ST I T T I Type Inheritance (dependency chain) 2. InstanceOf SubTypeOf

  38. Keyboard shortcuts • Ctrl + 1..8 : switch between modes • Ctrl + Z, Ctrl + U : Undo/Redo • Ctrl + F : Search • TreeBrowser • Enter : show fco • for Models it shows a model’s internals • Shift + Enter: show fco in parent • shows every fco (models too) in its parent • TAB: jump to search combo box • Ctrl + TAB: cycling • cycle through Aggregate, Inheritance, Meta Pages • F2: rename active element • View • Enter: show model (down in hier.) or follow reference • Backspace: show parent model (up in hier.) • A: cycle through Attribute/Preferences/Property pages for selected element • Numpad +/-: zoom in / out by 5% • TAB: cycle through aspects for active model • Z/X: back / forward • Ctrl + B : jump to browser (as Locate command does) • Ctrl + I : jump to Object Inspector (attribute panel) • Object Inspector (Attribute Panel) • CTRL + D: restore default value of an attribute

  39. Drag & Drop • Drag & drop for FCOs • within Treebrowser • from Treebrowser to models and vice versa • among models • Drag & drop modifiers: • None move • Ctrl copy • Ctrl + Shift create a reference • Alt instance • Alt + Shift subtype • Drag & Drop for Files • Paradigm file (.mta, .xmp) gets registered (only if no project is open) • .mga project file is opened • .xme project file is imported

  40. Defining a DSML L = < C, A, S, MS, MC>

  41. Recap • UML concepts • Classes • Associations • Aggregation/Composition • Generalization/Inheritance • Additional concepts • Constraints

  42. Example - Binary Tree

  43. ConstraintsParadigm-, project- and model-specific constraints • Expressed in Object Constraint Language (OCL) v1.4 part of UML • Evaluate Constraints • On events • OnCloseModel • OnConnected etc. • On user request • On the current model • On the whole project • Only selected constraints • Only on selected objects

  44. Constraints 2. • Priority • Context • Detailed error reporting • Automatic syntax check

  45. Miscellaneous features • Search Tool • Regular expression based • Useful to find all references to an object also • Aspect Synchronization • Object position synchronization • External Editor • attribute editing • Table Editor • Model Libraries • Console window scripting • Python/Perl/JavaScript/VBScript • 3 predefined variables: • gme implements IGMEOLEApp (gme.idl) • it implements IGMEOLEIt (gme.idl) • project implements IMgaProject (mga.idl) • SDK/CreateNewComponent.exe • Creates empty interpreter/add-on skeletons

  46. Tricks • Connecting nodes time efficiently • Pasting • Icons

  47. Quiz • What's GME? • What is it good for? • What does metamodeling mean? • What are models good for? • What is an interpreter good for?

  48. Quiz - Answers • What does metamodeling mean? • Capturing the core concepts and the rules of a domain on the right level of abstractions in metamodels • Using these metamodels to enforce the creation of valid domain models • What's GME? • Metaprogrammable graphical model builder • What is it good for? • Create visual Domain-Specific Modeling Languages (DSMLs) • Create a customized modeling environment that allows domain experts to build models of the domain • What are models good for? • They provide a centralized view • What is an interpreter good for? • They allow the information to be extracted from models so that code, documentation, etc. can be generated

More Related