Institute for Software Integrated Systems Vanderbilt University Copyright © Vanderbilt University/ISIS 2007 GME Basics Janos Mathe Zoltán Molnár Help-desk:

Slides:



Advertisements
Similar presentations
Interaction Design: Visio
Advertisements

Master Pages, User Controls, Site Maps, Localization Svetlin Nakov Telerik Corporation
Objectives © Paradigm Publishing, Inc. 1 Objectives.
User Training. Step 1 Press Ctrl-I or choose File > Login, this will open the Login window. Figure 1-1 shows the Login window. Figure 1-1 Login Window.
Tutorial 8: Developing an Excel Application
Getting Started: Ansoft HFSS 8.0
© 2010 Delmar, Cengage Learning Chapter 1 Getting Started with Dreamweaver.
SRDC Ltd. 1. Problem  Solutions  Various standardization efforts ◦ Document models addressing a broad range of requirements vs Industry Specific Document.
Visual Basic 2010 How to Program. © by Pearson Education, Inc. All Rights Reserved.2.
Visual Basic 2010 How to Program Reference: Instructor: Maysoon Bin Duwais slides Visual Basic 2010 how to program by Deitel © by Pearson Education,
CGS 1060 Introduction to MicroComputer Usage Chapter 1 Windows 7
Java Integrated Development Environments: ECLIPSE Part1 Installation.
Create slices and hotspots Create links in Web pages Create rollovers from slices Create basic animation Add tweening symbol instances to create animation.
Institute For Software Integrated Systems Vanderbilt University Applications of Model Integrated Computing to The Synchronous Language Signal Ethan Jackson.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Hands-On Microsoft Windows Server 2003 Administration Chapter 5 Administering File Resources.
Using the Vanderbilt Generic Modeling Environment (GME) to Address SOA QoS Sumant Tambe Graduate Intern, Applied Research, Telcordia Technologies Inc.
The sequence of folders to a file or folder is called a(n) ________.
ModelBuilder at ArcGIS 9.2 Lyna Wiggins Rutgers University May 2008.
Rational Rose Tutorial
Mining Metamodels From Instance Models: The MARS System Faizan Javed Department of Computer & Information Sciences, University of Alabama at Birmingham.
Tutorial 3: Adding and Formatting Text. 2 Objectives Session 3.1 Type text into a page Copy text from a document and paste it into a page Check for spelling.
Laboratory Exercise # 3 – Basic File Management Office Productivity Tools 1 Laboratory Exercise # 3 Basic File Management Objectives: At the end of the.
2 Copyright © 2009, Oracle. All rights reserved. Getting Started with Warehouse Builder.
Getting Started with Expression Web 3
Tutorial 1 Getting Started with Adobe Dreamweaver CS3
1 Pertemuan 03 Using Layers and Symbols Matakuliah: U0344 / DESKTOP 1 Tahun: 2006.
IE 411/511: Visual Programming for Industrial Applications
XP Dreamweaver 8.0 Tutorial 3 1 Adding Text and Formatting Text with CSS Styles.
T U T O R I A L  2009 Pearson Education, Inc. All rights reserved. 1 2 Welcome Application Introducing the Visual Basic 2008 Express Edition IDE.
Prepared by: Sanaz Helmi Hoda Akbari Zahra Ahmadi Sharif University of Tech. Summer 2006 An Introduction to.
CIS 205—Web Design & Development Dreamweaver Chapter 1.
Building Tools by Model Transformations in Eclipse Oskars Vilitis, Audris Kalnins, Edgars Celms, Elina Kalnina, Agris Sostaks, Janis Barzdins Institute.
Chapter 8 iComponents and Parameters. After completing this chapter, you will be able to perform the following: –Create iMates –Change the display of.
Alice 2.0 Introductory Concepts and Techniques Project 1 Exploring Alice and Object-Oriented Programming.
Institute for Software Integrated Systems Vanderbilt University Copyright © Vanderbilt University/ISIS 2008 Model Interpreters Janos Mathe based on Peter.
Graphical User Interface Concepts - Part 2 Session 09 Mata kuliah: M0874 – Programming II Tahun: 2010.
Copyright © 2010 Wolters Kluwer Health | Lippincott Williams & Wilkins Introduction to Windows Chapter 2.
Jimmy C. Mathews Advisors: Dr. Joseph Picone Dr. David Gao Powertrain Design Tools Project The GENERIC MODELING ENVIRONMENT (GME) GME Seminar II ~ The.
IBM Software Group ® Overview of SA and RSA Integration John Jessup June 1, 2012 Slides from Kevin Cornell December 2008 Have been reused in this presentation.
Key Applications Module Lesson 21 — Access Essentials
1 NORMA Lab. 7 Generating Reports More Display Options File: NORMA_Lab6.ppt. Author: T. Halpin. Last updated: 2009 June 9.
Lesson 11: Looking at Files and Folders what a file or folder is on the computer how to recognize a file or folder on the desktop how to recognize the.
Shravana Kumar Musunuri, Jimmy Mathews Advisors: Dr. Joseph Picone Dr. David Gao Powertrain Design Tools Project The GENERIC MODELING ENVIRONMENT (GME)
Lesson No: 6 Introduction to Windows XP CHBT-01 Basic Micro process & Computer Operation.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
Chapter 9 Advanced Assembly Modeling Techniques. After completing this chapter, you will be able to perform the following: –Create sketch blocks –Create.
Tutorial 3 Adding and Formatting Text with CSS Styles.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
Overview of meta-modeling works for multi-clocked environments Christian Brunette IRISA/INRIA Rennes – ESPRESSO Synchron 2005.
® IBM Software Group © 2007 IBM Corporation Module 3: Creating UML Diagrams Essentials of Modeling with IBM Rational Software Architect, V7.5.
New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,
File and File Systems Compiled by IITG Team Need to be reorganized and reworded.
XP New Perspectives on Macromedia Dreamweaver MX 2004 Tutorial 5 1 Adding Shared Site Elements.
1 Lesson 9 Windows Management Computer Literacy BASICS: A Comprehensive Guide to IC 3, 3 rd Edition Morrison / Wells.
C Copyright © 2009, Oracle. All rights reserved. Using SQL Developer.
Getting Started with Dreamweaver
Dive Into® Visual Basic 2010 Express
Working in the Forms Developer Environment
Opening an Existing File
Chapter 2 Adding Web Pages, Links, and Images
NORMA Lab. 7 Generating Reports More Display Options
Multiple Aspect Modeling of the Synchronous Language Signal
Using JDeveloper.
DREAMWEAVER MX 2004 Chapter 3 Working with Tables
New Perspectives on Windows XP
Getting Started with Dreamweaver
Using Cascading Style Sheets (CSS)
Using Templates and Library Items
Microsoft Office Illustrated Fundamentals
Presentation transcript:

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

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 = Language component Sig n Explanation Concrete SyntaxCNotation for representing models Using the elements of MetaGME: UML extended with stereotypes and OCL Abstract SyntaxAOntology The (important) concepts of a domain and their relations ParsingMcMapping the concepts of A to the concepts of C Creating the concepts in A by using the concepts available in MetaGME Semantic DomainSSemantics describes meaning of the models There can be multiple valid semantics Semantic MappingMsMapping 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 = Language component Sig n Explanation Concrete SyntaxCNotation for representing models Using the elements of MetaGME: UML extended with stereotypes and OCL Abstract SyntaxAOntology The (important) concepts of a domain and their relations ParsingMcMapping the concepts of A to the concepts of C Creating the concepts in A by using the concepts available in MetaGME Semantic DomainSSemantics describes meaning of the models There can be multiple valid semantics Semantic MappingMsMapping 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

October 23, 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

October 23, 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 = Language component Sig n Explanation Concrete SyntaxCNotation for representing models Using the elements of MetaGME: UML extended with stereotypes and OCL Abstract SyntaxAOntology The (important) concepts of a domain and their relations ParsingMcMapping the concepts of A to the concepts of C Creating the concepts in A by using the concepts available in MetaGME Semantic DomainSSemantics describes meaning of the models There can be multiple valid semantics Semantic MappingMsMapping the concepts of A to S Usually means writing an interpreter using GME’s BON/MON interfaces to traverse the models

October 23,  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 Basic terms 2. <paradigm name="SF“ […]

October 23, MetaInterpretation MetaGME interpreter Metamodel (model in MetaGME paradigm) Rootfolder

October 23, MetaInterpretation Project/model created in MetaGME (aka. Metamodel) paradigm (SF.mga) SF <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.”

October 23, Registering paradigms 1.

October 23, Registering paradigms 2. Currently registered Systemwide = for all users Add new paradigm

October 23, 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 files might 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 files 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

October 23, Graphical User Interface

October 23, Starting from empty project Right click for Context menu Top-level elements that can be inserted

October 23, Exploring models Double clicked ‘MyCompound’ model opened

October 23, Exploring models Double click a Model to see its internals

October 23, 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

October 23, Add new parts by Drag&Drop from palette

October 23, Add new parts through Context menu

October 23, Result

October 23, Context aware UI elements Selected element Context sensitive pallette Attributes of selected element

October 23, Selected element Attributes of selected element Attributes of ‘Primitive’ defined in the metamodel

October 23, Legal Parts allowed in currently opened model (Compound) Currently opened model Properties of the currently opened model

October 23, 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

October 23, Selected and currently opened model Properties of selected element Currently opened model Properties of the currently opened model Kind Name Aspect

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

October 23, Connecting in Connection Mode  Select source while mouse pointer is black  Select destination while mouse pointer is white Step 1 Step 2Done Select Connection Mode

October 23, Connect through Context Menu Step 1: select Source

October 23, Connect through Context Menu Step 2: select Destination

October 23, Connect through Context Menu Done

October 23, 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

October 23, 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

October 23, 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)

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

October 23, Keyboard shortcuts  Ctrl : 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

October 23, Drag & Drop  Drag & drop for FCOs  within Treebrowser  from Treebrowser to models and vice versa  among models  Drag & drop modifiers:  Nonemove  Ctrlcopy  Ctrl + Shiftcreate a reference  Altinstance  Alt + Shiftsubtype  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

October 23, Automation interface IGMEOLEIt (defined in gme.idl)  HRESULT ShowFCO( [in] BSTR path, [in, defaultvalue(0)] VARIANT_BOOL inParent );  HRESULT ShowFCOPtr( [in] IMgaFCO* fco, [in, defaultvalue(0)] VARIANT_BOOL inParent );  HRESULT Child( [in] BSTR name, [out,retval] IMgaFCO** child_fco );  HRESULT Create( [in] BSTR part, [in] BSTR name, [out,retval] IMgaFCO** new_fco );  HRESULT CreateInChild( [in] BSTR child_as_parent, [in] BSTR part, [in] BSTR name, [out,retval] IMgaFCO** new_fco );  HRESULT CreateInChildFCO( [in] IMgaFCO* child_as_parent, [in] BSTR part, [in] BSTR name, [out,retval] IMgaFCO** new_fco );  HRESULT Duplicate([in] BSTR existing_fco_name, [in] BSTR new_fco_name, [out,retval] IMgaFCO** new_fco );  HRESULT DuplicateFCO([in] IMgaFCO* existing_fco, [in] BSTR new_fco_name, [out,retval] IMgaFCO** new_fco );  HRESULT Rename( [in] BSTR oldname, [in] BSTR newname);  HRESULT SetName( [in] IMgaFCO*, [in] BSTR name);  HRESULT Include( [in] BSTR setname, [in] BSTR name);  HRESULT Exclude( [in] BSTR setname, [in] BSTR membername);  HRESULT IncludeFCO( [in] IMgaSet* p_set, [in] IMgaFCO* fco);  HRESULT ExcludeFCO( [in] IMgaSet* p_set, [in] IMgaFCO* fco);

October 23, IGMEOLEIt 2.  HRESULT Connect( [in] BSTR src_part, [in] BSTR dst_part, [in] BSTR connection_role, [out, retval] IMgaConnection ** conn );  HRESULT Disconnect( [in] BSTR src_part, [in] BSTR dst_part, [in] BSTR connection_name);  HRESULT ConnectThruPort( [in] BSTR src_part_1, [in] BSTR src_part_2, [in] BSTR dst_part_1, [in] BSTR dst_part_2, [in] BSTR connection_role, [out, retval] IMgaConnection ** conn );  HRESULT ConnectThruPortFCO( [in] IMgaFCO* src_part_1, [in] IMgaFCO* src_part_2, [in] IMgaFCO* dst_part_1, [in] IMgaFCO* dst_part_2, [in] BSTR connection_role, [out, retval] IMgaConnection ** conn);  HRESULT DisconnectThruPort( [in] BSTR src_part_1, [in] BSTR src_part_2, [in] BSTR dst_part_1, [in] BSTR dst_part_2, [in] BSTR connection_name);  HRESULT ConnectFCOs( [in] IMgaFCO* src_part, [in] IMgaFCO* dst_part, [in] BSTR connection_role, [out, retval] IMgaConnection ** conn );  HRESULT DisconnectFCOs( [in] IMgaFCO* src_part, [in] IMgaFCO* dst_part, [in] BSTR connection_name);  HRESULT Refer( [in] BSTR reference, [in] BSTR referred);  HRESULT ClearRef( [in] BSTR reference);  HRESULT FollowRef( [in] BSTR reference);  HRESULT ReferFCO( [in] IMgaReference* reference, [in] IMgaFCO* referred);  HRESULT ClearRefFCO( [in] IMgaReference* reference);  HRESULT FollowRefFCO( [in] IMgaReference* reference);  HRESULT NullFCO( [out, retval] IMgaFCO** nullobj);

October 23, IGMEOLEIt 3.  HRESULT SetAttribute( [in] BSTR name, [in] BSTR attr_name, [in] VARIANT value);  HRESULT GetAttribute( [in] BSTR name, [in] BSTR attr_name, [out, retval] VARIANT* value);  HRESULT SetAttributeFCO( [in] IMgaFCO* fco, [in] BSTR attr_name, [in] VARIANT value);  HRESULT GetAttributeFCO( [in] IMgaFCO* fco, [in] BSTR attr_name, [out, retval] VARIANT* value);  HRESULT SubType( [in] BSTR base, [in] BSTR name_of_subtype, [out, retval] IMgaFCO** subtype);  HRESULT Instantiate( [in] BSTR base, [in] BSTR name_of_instance, [out, retval] IMgaFCO** instance);  HRESULT SubTypeFCO( [in] IMgaFCO* base, [in] BSTR name_of_subtype, [out, retval] IMgaFCO** subtype);  HRESULT InstantiateFCO( [in] IMgaFCO* base, [in] BSTR name_of_instance, [out, retval] IMgaFCO** instance);  HRESULT BeginTransaction();  HRESULT CommitTransaction();  HRESULT IsInTransaction( [out, retval] VARIANT_BOOL* intrans);  HRESULT PutInTerritory( [in] IMgaFCO* fco, [out, retval] IMgaFCO** newfco);  HRESULT SetSelected( [in] BSTR space_delimited_string );  HRESULT GetSelected( [out, retval] BSTR * space_delimited_string );  HRESULT SetSelectedFCOs([in] IMgaFCOs* fcos_to_select);  HRESULT GetSelectedFCOs([out, retval] IMgaFCOs** selected_fcos);  HRESULT NextAspect();  HRESULT PrevAspect();  HRESULT Next();  HRESULT Prev();  HRESULT Position( [in] BSTR child, [in] BSTR aspect, [in] long parX, [in] long parY);  HRESULT PositionFCO( [in] IMgaFCO* fco, [in] BSTR aspect, [in] long parX, [in] long parY);

October 23, Automation  ‘gme’ implements IGMEOLEApp: Open&CloseProject, …  ‘it’ variable implements IGMEOLEIt  Can be used as follows: for i in range( 1, 4): pp = it.create( 'PrimitiveParts', 'p' + str(i)) it.PositionFCO( pp, 'SignalFlowAspect', i*120, i*70)  Multiple instructions in one line must be separated by semicolon for i in range(1,4): pp=it.create(‘PrimitiveParts’, ‘p’+str(i));it.positionFCO( pp, ‘SignalFlowAspect’,i*120, i*70)  Prebuilt user scripts can be imported:  Import myscript  myscript.execute( it, gme)

Defining a DSML L = Language component Sig n Explanation Concrete SyntaxCNotation for representing models Using the elements of MetaGME: UML extended with stereotypes and OCL Abstract SyntaxAOntology The (important) concepts of a domain and their relations ParsingMcMapping the concepts of A to the concepts of C Creating the concepts in A by using the concepts available in MetaGME Semantic DomainSSemantics describes meaning of the models There can be multiple valid semantics Semantic MappingMsMapping 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

October 23, 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

October 23, Constraints 2.  Priority  Context  Detailed error reporting  Automatic syntax check

October 23, 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