Institute for Software Integrated Systems
Vanderbilt University
Copyright © Vanderbilt University/ISIS 2007
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
Aggregation/Composition
Generalization/Inheritance
Additional concepts
Constraints
Defining a DSML
L = < C, A, S, M
S
, M
C
>
Language component
Sign
Explanation
Concrete Syntax
C
Notation for representing models
Using the elements of
MetaGME
:
UML
extended with
stereotypes and OCL
Abstract Syntax
A
Ontology
The (important) concepts of a domain and their relations
Parsing
Mc
Mapping the concepts of A to the concepts of C
Creating the concepts in
A by using the concepts available in
MetaGME
Semantic Domain
S
Semantics describes meaning of the models
There can be multiple valid semantics
Semantic Mapping
Ms
Mapping the concepts of A to
S
Usually means writing an interpreter using GME’s BON/MON
interfaces to traverse the models
Defining a DSML
L = < C, A, S, M
S
, M
C
>
Language component
Sign
Explanation
Concrete Syntax
C
Notation for representing models
Using the elements of
MetaGME
:
UML
extended with
stereotypes and OCL
Abstract Syntax
A
Ontology
The (important) concepts of a domain and their relations
Parsing
Mc
Mapping the concepts of A to the concepts of C
Creating the concepts in
A by using the concepts available in
MetaGME
Semantic Domain
S
Semantics describes meaning of the models
There can be multiple valid semantics
Semantic Mapping
Ms
Mapping the concepts of A to
S
Usually means writing an interpreter using GME’s BON/MON
interfaces to traverse the models
Concrete Syntax for DSMLs in
GME
November 15, 2013
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
November 15, 2013
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
Defining a DSML
L = < C, A, S, M
S
, M
C
>
Language component
Sign
Explanation
Concrete Syntax
C
Notation for representing models
Using the elements of
MetaGME
:
UML
extended with
stereotypes and OCL
Abstract Syntax
A
Ontology
The (important) concepts of a domain and their relations
Parsing
Mc
Mapping the concepts of A to the concepts of C
Creating the concepts in
A by using the concepts available in
MetaGME
Semantic Domain
S
Semantics describes meaning of the models
There can be multiple valid semantics
Semantic Mapping
Ms
Mapping the concepts of A to
S
Usually means writing an interpreter using GME’s BON/MON
interfaces to traverse the models
November 15, 2013
10
Things to
Register
GME
Paradigms
GME
Components/Interpreters
in
to
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
Basic terms 2.
<?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“ […]
November 15, 2013
11
MetaInterpretation
MetaGME
interpreter
Metamodel
(model in MetaGME
paradigm)
Rootfolder
November 15, 2013
12
Meta
I
nterpretation
P
roject
/model
created
in MetaGME (aka. Metamodel)
paradigm (SF.mga)
<?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
“ […]
Paradigm (SF.xmp)
User initiated
translation
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.”
November 15, 2013
13
Registering paradigms 1.
November 15, 2013
14
Registering paradigms 2.
Currently registered
Systemwide = for all users
Add new paradigm
November 15, 2013
15
Upgrading
T
o 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
file
s
might
be accepted
Export XML and Import XML
might
work
ModelMigrate tool (XSLT based transformations)
GReAT recommended for complex model transformations
T
o a
new GME
version
Binary
model
file
s
might
be accepted (definitely not in case
of major modifications to the internal datamodel)
Export XML and Import XML
must
work
Total Recompilation
of
user
-
written
components
(interpreters)
needed
November 15, 2013
16
Graphical User
Interface
November 15, 2013
17
Starting from empty project
Right click
for Context
menu
Top
-
level
elements
that can be
inserted
November 15, 2013
18
Exploring models
Double clicked
‘MyCompound’
model opened
November 15, 2013
19
Exploring models
Double click a
Model to see its
internals
November 15, 2013
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
November 15, 2013
21
Add new parts
by Drag&Drop from palette
November 15, 2013
22
Add new parts
through Context menu
November 15, 2013
23
Result
November 15, 2013
24
Context aware UI elements
Selected
element
Context
sensitive
pallette
Attributes
of selected
element
November 15, 2013
25
Selected
element
Attributes of selected
element
Attributes of ‘Primitive’ defined in the
metamodel
November 15, 2013
26
Legal Parts allowed
in currently opened
model (Compound)
Currently opened model
Properties of the currently
opened model
November 15, 2013
27
Legal Parts allowed
in currently opened
model (Compound)
Currently opened model
Properties of the currently
opened model
Metamodel portion
where parts of
‘Compound’ are defined
November 15, 2013
28
Selected and currently
opened model
Properties of selected
element
Currently opened model
Properties of the currently
opened model
Kind
Name
Aspect
November 15, 2013
29
Operational modes
Edit (^1)
Connect (^2)
Disconnect (^3)
Set Mode (^4)
Zoom (^5)
Presentation (^6)
Non
-
sticky Connect (^7)
Non
-
sticky Disconnect (^8)
November 15, 2013
30
Connecting
in Connection Mode
Select source while mouse pointer is
black
Select destination while mouse pointer
is white
Step 1
Step 2
Done
Select Connection Mode
November 15, 2013
31
Connect through Context Menu
Step 1: select Source
November 15, 2013
32
Connect through Context Menu
Step 2: select Destination
November 15, 2013
33
Connect through Context Menu
Done
November 15, 2013
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
November 15, 2013
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
November 15, 2013
36
Engine
T
ABS
T
V6
I
Car
T
ABSX
ST
V6
I
Cool Car
ST
ABSXj
I
V6
I
My Car
I
ABSi
I
V6
I
A Car
I
T Type
ST SubType
I Instance
Aggregation
Dependency
Secondary Dep.
Type Inheritance (dependency chain)
November 15, 2013
37
InstanceOf
SubTypeOf
Car
T
Cool Car
ST
My Car
I
A Car
I
Engine
T
V6
I
V6
I
V6
I
V6
I
ABS
T
ABSX
ST
ABSXj
I
ABSi
I
Type Inheritance (dependency chain) 2.
November 15, 2013
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
November 15, 2013
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
Defining a DSML
L = < C, A, S, M
S
, M
C
>
Language component
Sign
Explanation
Concrete Syntax
C
Notation for representing models
Using the elements of
MetaGME
:
UML
extended with
stereotypes and OCL
Abstract Syntax
A
Ontology
The (important) concepts of a domain and their relations
Parsing
Mc
Mapping the concepts of A to the concepts of C
Creating the concepts in
A by using the concepts available in
MetaGME
Semantic Domain
S
Semantics describes meaning of the models
There can be multiple valid semantics
Semantic Mapping
Ms
Mapping the concepts of A to
S
Usually means writing an interpreter using GME’s BON/MON
interfaces to traverse the models
Recap
UML concepts
Classes
Associations
Aggregation/Composition
Generalization/Inheritance
Additional concepts
Constraints
Example
-
Binary Tree
November 15, 2013
47
Constraints
Paradigm
-
, 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
November 15, 2013
48
Constraints 2.
Priority
Context
Detailed error reporting
Automatic syntax check
November 15, 2013
49
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
Tricks
Connecting nodes time efficiently
Pasting
Icons
Quiz
What's GME?
What is it good for?
What does metamodeling mean?
What are models good for?
What is an interpreter good for?
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
Enter the password to open this PDF file:
File name:
-
File size:
-
Title:
-
Author:
-
Subject:
-
Keywords:
-
Creation Date:
-
Modification Date:
-
Creator:
-
PDF Producer:
-
PDF Version:
-
Page Count:
-
Preparing document for printing…
0%
Σχόλια 0
Συνδεθείτε για να κοινοποιήσετε σχόλιο