Model Driven Engineering. Individual Project: Meta-Modeling for a Role-Playing Formalism in arkitect

Size: px
Start display at page:

Download "Model Driven Engineering. Individual Project: Meta-Modeling for a Role-Playing Formalism in arkitect"

Transcription

1 Model Driven Engineering Individual Project: Meta-Modeling for a Role-Playing Formalism in arkitect Bojan Arnaudovski University of Antwerpen, January 2014

2 Table of Contents Abstract 2 Introduction 2 Abstract syntax 3 Concrete Syntax 5 Operational Semantics and Constraints 7 Comparison and Conclusion 14 References 15

3 2 Abstract ArKItect is a domain-specific meta-modeling tool for designing and representing complex, hierarchical systems. Aside from the meta-modeling feature, arkitect also provides a graphical representation of the model representation and possibility of generating documents and reports such as XML, HTML, Excel and Word. Two user types are supported in arkitect, the Developer (can only modify the project data and its variants) and the Designer (can access meta-modeling, define rules, filters, types and attributes). In this project I will use the arkitect Designer for making some parts of the Role Playing Game. First, I will begin by defining the abstract and concrete syntax of RPG and then do the operational semantics as similar as possible with those done with AtoMPM. Also a detailed comparison between arkitect and AtoMPM will be provided. Introduction The main task of this project is to use the knowledge and experience that we ve acquired by working on the RPG in AtoMPM, to design the RPG in the tool arkitect. ArKItect is a DSM tool that was developed by Samuel Boutin, Joe Matta and Konstantin Smolin from the French software company Knowledge Inside in The first version of arkitect was release in 2007 and Renault and Cheuvreux were its first costumers. Since 2008, the number of costumers grew from year to year which made arkitect a crucial software tool for every system engineer/architect. In the first section of this report, I will discuss the abstract syntax of the RPG. As we remember from defining the abstract syntax in AtoMPM where we use the Class Diagrams as a main entity representation, in arkitect it is a bit different. ArKItect doesn t support Class Diagram representation so in this case, I define arkitect objects and make them appear (visual and operational representation) as close as they can with the Class Diagrams in AtoMPM. Also instead of the Associations in AtoMPM, arkitect uses Flows to represent the connection between the objects. In the second section, I will give an overview of the concrete syntax of the RPG. Also for this part, arkitect differs from the features provided for designing concrete syntax in AtoMPM. Because arkitect doesn t support this option, for this part of the project, I give a graphical representation of each object with its corresponding image. The third section of this report represents the operational semantics for the RPG. Like I mentioned for the previous parts and also for this section, arkitect doesn t support operation semantics and transformations. For this part of the project, I used Python scripting which is an additional feature of arkitect. With the use of these Python scripts, I managed to make the operational semantics for Required parts (as mentioned in the MDE assignments) similar with operations in metadepth where no visual representation is available.

4 3 The fourth section will be reserved for my conclusion on this project, where I will also provide some of the key advantages and disadvantages of arkitect in comparison with AtoMPM. Abstract syntax In this section I am going to discuss the abstract syntax of the RPG. Because arkitect lacks Class Diagram models, I used the arkitect objects, attributes and flows to represent the abstract syntax. First I begin by creating the objects with its attributes similar to the Classes from the abstract syntax done in AtoMPM. The objects in arkitect consist of attributes of different types such as Integer, Boolean, Enum, String and etc. There is also a special type of attribute called Program that is used for writing Python Scripts that I will explain later in this report. In comparison with the abstract syntax done in AtoMPM, arkitect doesn t have constraint (for this part, I wrote Python scripts that act like constraints similar to the constraints written in AtoMPM) and cardinality fields. Figure 1 Abstract syntax of the RPG in arkitect

5 4 To represent the associations (holds, part of, belongsto, inheritance and etc.) and the inheritance, I use the arkitect flows which are displayed in different colors. Worth mentioning is that in comparison with AtoMPM, where we could define a class as abstract, this is not possible in arkitect. Also instead of the actions field from the Class Diagram in AtoMPM, in arkitect there is the option of triggering event (Python scripts) which I will explain later in this report. Figure 2 Overview of the rule CharacterClass for the RPG in arkitect From the picture above, we can see the rule (object) CharacterClass with its attributes and flows/associations that he can have. Later we deploy these objects in the Internal Block Diagram and we create the connections between the objects. Interesting about arkitect is that we can connect two objects only if they both have the same data flows/associations defined in the metamodel (like in Figure2). Figure 3 Selecting type of a flow between objects

6 5 When we want to add an attribute to an object, we can either select from the list of available attributes that we made or we can define a new one, together with the type and the default value. Figure 4 Adding an attribute to an object in arkitect If we want to modify the objects attributes, we can check the properties panel and set the values of the given attributes. Figure 5 Properties of the selected object The RPG made in arkitect (in accordance with the Class Diagram representation shown in Figure1.) consists of one Scene Azar s Foreset, one Character: Hero Sepiroth and one Item: Weapon, which is the goal of the game. When the hero picks up the item the game finishes. The Scenes (size: 3x2) is made of 5 Standard Tiles and 1 Obstacle Tile. Concrete Syntax Making the concrete syntax in arkitect is different from making it in AtoMPM. Because arkitect doesn t have a predefined model toolbar for creating the concrete syntax (like the icon instance in AtoMPM), I created new rules/objects (different from the ones used in the Class Diagram representation) and along with it a new hierarchical model. Inside the Scene rule, I defined the other rules: Tile (Standard Tile), Obstacle Tile, Item (Key, Weapon and Potion) and Character (Hero or Villain). This scenario also adds restrictions of creation objects that are not in that level of hierarchy. For example, we cannot add another Scene object in the current Scene. Also if we want to add a Hero or A Villain object, it will allow us to add it inside the Character object. So

7 6 for giving a visual representation of the objects, I uploaded their corresponding picture as a foreground image. Later when we create the RPG model, we select the object with its visual representation from the palette panel in arkitect, similar to the default Icons toolbar in AtoMPM. Figure 6 Palette of the objects in arkitect Important to mention is that, arkitect in comparison with AtoMPM, doesn t have mapper and parser fields so like in the case with choosing the category of the Standard Tile (where in AtoMPM we could write code in the mapper to select the required picture with the selected category), in arkitect that can only be done with Python script in a Program attribute. Figure 7 RPG concrete syntax in arkitect

8 7 Operational Semantics and Constraints As I mentioned in the Introduction section, operational semantics and transformation and not supported in arkitect. However I managed to do required parts (as mentioned in the assignment for the operational semantics) of the RPG through Python scripts. From what I ve specified in the above sections, arkitect has the option of adding an attribute of type Program, where we write the Python script which can be executed either by only clicking on the selected attribute or as an event triggered by some actions that we perform on the object. Because arkitect limits the selection of a triggering event to only one, some of the scripts have to be run manually (by clicking on the selected attribute). Figure 8 Example of a triggered events panel in the object Scene Important to mention is that the output of the operational semantics cannot be shown visually in arkitect. The final output is represented in textual form containing of steps similar with the output from the tool metadepth, which I will discuss further in this part. When it comes to the constraints because arkitect lacks this option, all of the constraints are written with Python scripts and executed either manually or triggered by event. Also I like to point out that unlike in AtoMPM, where the abstract and concrete syntax are connected with the final model and the operational semantics, in arkitect they are not connected. That s why I had to make some changes in the RPG model (adding some additional attributes, so that I can make the model operational) in comparison with the abstract and concrete syntax that I ve discussed earlier in this report. First, I am going to begin by explaining each of the constraints for the RGP, made in arkitect, and then I am going to jump to the operational part of this project. The constraint hero count (executed manually) appears in the Scene object, which goes into all of the Characters objects and checks if their child (inside the Character object we add a child, either a Hero or a Villain) is Hero and counts its appearance. If the counter for the Hero is bigger the one, it gives a warning message that we should have only one Hero in the entire game. The option of deleting the other Hero or types of objects or not allowing the user to add a Hero character cannot be done as arkitect doesn t have methods for such operations.

9 8 Figure 9 Constraint "hero count" and the output from its execution The constraint item_tile_check is part of the Scene object (executed manually), which checks is the item placed on a normal tile or on an Obstacle tile. It checks the position attribute of the Items when performing the check. If there are no violations of the constraint no output message is printed. Figure 10 Constraint "item_tile_check" and its output Next we have the positivex and positivey constraints (manually executed), which are part of the Scene object and check if the values for the attributes x and y are positive values. The object Scene has this two attributes x and y that we set when we set the size of the Scene. Figure 11 Constraint "PositiveX"

10 9 The constraint right_num_tiles (executed manually), which is part of the Scene object, once executed will count all the tiles (standard and obstacle tile) and check that number with the size of the current Scene (x and y attributes). Depending on the result number it will output either the number with the size is satisfied or add more tiles or not synchronized with the size of the Scene. Figure 12 Constraint "right_num_tiles" The program attribute size (executed on event change attribute ), which is part of the Scene object redraws the Scene object in the Internal Block Diagram depending on the attributes x and y so it can fit all the tiles (similar with resizing the Scene in AtoMPM). Figure 13 Program attribute "size" The constraint one item (executed on event add child ), which is part of the Item object, checks if the Item object has more than one child (Weapon, Key or Potion). When adding a child item object it immediately displays a warring message that only one child per Item Object is allowed. The option of removing the newly added child Item object cannot be done in arkitect so instead the user is warned in advance. The get all Tiles program attribute (executed manually), which is part of Character, Standard Tile, Obstacle Tile and Item object, returns the instances of all the Tile (Standard and Obstacle)

11 10 objects so later we can set the update the position attribute when either we connect tiles, place characters or items on tiles. Figure 14 Program attribute "get all Tiles" The program attribute update connections (executed manually), which can be found in Tile Objects, connects a give tile with its neighboring tiles. The script begins by collecting the values for the attributes (top_, bottom_, left_ and right_, where we write the name of the tile that we want the current tile to connect to) then finds the stated tiles and it sets the name of the current tile as its neighbor depending on the given side. For example, StandardTile 1 has StandardTile 2 as right neighbor and when we execute the script, the attribute left_ in StandardTile 2 will be set to StandardTile 1. Figure 15 Program attribute "update connections" The constraint same type (executed on event add new object), which is part of the Tile object, checks if we add another object of type Tile. This constraint was made so that only one type of the Tile object will exist per Scene. As we know till now, the Tile object has Standard tile as child which can be Road, Grass and Concrete that we choose when we design the Scene. The constraint hero or villain (executed on event add child) is part of the Character object, and give us a warning message that the Character object can only have one child object, a Hero or a Villain. The newly added object cannot be deleted so the user has to perform that action.

12 11 Figure 16 Constraint "hero or villain" The Program attribute set position (executed manually) is part of the Character object and I used it for setting the position of the character. Before we execute this script we decide on which tile we are going to place the character (only on standard and not occupied tile) by running the script get tiles and then we set that tile as the attribute position of the character. After this we run the set position attribute and it sets the tile where the hero is placed to is occupied (Boolean type). Figure 17 Program attribute "set position" The move program attribute (executed manually) is part of the Character object and represents the move and collect items operation for the character. Depending on the tile where the Character is positioned, he can only move to its neighboring tile that are not occupied by other Character or are not Obstacle tiles. This condition limit the choice of the character and by random selection a tile is selected. After performing the move to the other tile, the value of the attribute IsOccupied in the new tile is set to True and in the previous tile to False. Also when moving to a new tile, an item check is performed so if the Character picks up an Item (the attribute has item is set to the name of the item) and If the Item is a goal, the collected goal is set to True. Figure 18 Output from the move attribute

13 12 Figure 19 Program attribute "move" part 1 Figure 20 Program attribute "move" part 2

14 13 Figure 21 Program attribute "move" part 3 Finally the program attribute simulate (executed manually), part of the Scene object is used form running the simulation. This script executes the move operation for every character and checks in each step weather some of the Character has collected the goal (collected goal = True). If so it finishes the game. Figure 22 Output from running the simulate attribute part 1

15 14 Figure 23 Output from running the simulate attribute part 2 Figure 24 Program attribute "simulate" Comparison and Conclusion The last part of this report is reserved for comparison between AtoMPM and arkitect and summarization of the entire project. In the previous sections I also stated and discussed some of the differences (encountered while working on this project) so in this part I am also going to add e few more. First thing that I noticed in arkitect is that its performance is very slow. It takes couple of seconds or sometimes even more to load the entire project or while doing some modifications when working on the project. This can be clearly seen when executing the simulate Program attribute, where arkitect takes too much time to compute the output of the script (displaying Not Responding on the icon).this is probably because every change made in project is immediately uploaded to the server. Another thing that arkitect lacks is the support for.png files unlike

16 15 AtoMPM where this is possible. If we want to attach image to an object, first we have to upload the image to the server and that set it either as foreground or as a background image. As I mentioned previously in this report, arkitect doesn t have support for constraints, operational semantics and transformation and even the documentation [2] for the Python API doesn t have support methods. Other thing that needs to be mentioned is that when we open arkitect, we can see all of our current projects and if a collaboration with another user was made, it will display if the user is currently working on it and what changes were made in the project. This feature is not available in AtoMPM. Finally, I also want to add that I ve used the export to Word feature of arkitect were a detailed representation of the objects was created. It can be concluded from reading this project report and modeling the RPG that arkitect lacks important characteristics that are necessary in the field of Model Driven Engineering where AtoMPM is a very powerful tool in this field. Despite the disadvantages of arkitect, at the end, the project achieved its goal. ArKItect remains an important software tool for designing large scale complex systems that interact with the physical world. The power of arkitect comes from its graphical and visual representation of hierarchical complex systems and also from the feature of exporting complex system architecture into readable textual document. References 1. arkitect home page 2. arkitect documentation

DSM model-to-text generation: from MetaDepth to Android with EGL

DSM model-to-text generation: from MetaDepth to Android with EGL DSM model-to-text generation: from MetaDepth to Android with EGL Rafael Ugaz Antwerp University (Belgium), rafaelugaz@gmail.com Abstract This article describes the process of a specific model-to-text transformation

More information

From Role-Playing Game to Petrinet, the ATL way. By Daan Janssens Course: Model-driven Engineering Supervisor: Prof.

From Role-Playing Game to Petrinet, the ATL way. By Daan Janssens Course: Model-driven Engineering Supervisor: Prof. From Role-Playing Game to Petrinet, the ATL way. By Daan Janssens Course: Model-driven Engineering 2013-2014 Supervisor: Prof. Vangheluwe What was ATL again? Read-only Write-only Transformation pattern

More information

Combination of Domain-Specific Languages

Combination of Domain-Specific Languages UNIVERSITEIT ANTWERPEN Combination of Domain-Specific Languages by Rafael Ugaz A thesis submitted in partial fulfillment for the degree of Master of Science: Computer Science in the Mathematics and Computer

More information

Dynamic structure modelling for Causal Block Diagrams. Master Thesis by Yves Maris Promotors: Fernando Barros, Hans Vangheluwe

Dynamic structure modelling for Causal Block Diagrams. Master Thesis by Yves Maris Promotors: Fernando Barros, Hans Vangheluwe Dynamic structure modelling for Causal Block Diagrams Master Thesis by Yves Maris Promotors: Fernando Barros, Hans Vangheluwe 1 Overview Background: Causal Block Diagrams Syntax Semantics Problem statement

More information

Instance generation from meta-models (for model transformation testing)

Instance generation from meta-models (for model transformation testing) Instance generation from meta-models (for model transformation testing) Robbe De Jongh University of Antwerp Abstract Testing model transformations is a tedious job. One needs to make a representative

More information

Bonita Workflow. Development Guide BONITA WORKFLOW

Bonita Workflow. Development Guide BONITA WORKFLOW Bonita Workflow Development Guide BONITA WORKFLOW Bonita Workflow Development Guide BSOA Workflow v3.0 Software January 2007 Copyright Bull SAS Table of Contents Chapter 1. Overview... 11 1.1 Role of

More information

( )

( ) testidea 9.12.x This document describes what s new and noteworthy in testidea. Headings indicate version and release date. 9.12.269 (2016-01-08) Grouping of test cases Grouping of test cases enables better

More information

Model-checking with the TimeLine formalism

Model-checking with the TimeLine formalism Model-checking with the TimeLine formalism Andrea Zaccara University of Antwerp Andrea.Zaccara@student.uantwerpen.be Abstract A logical model checker can be an effective tool for verification of software

More information

Anjuli Kannan. Google Earth Driving Simulators (3:00-7:00)

Anjuli Kannan. Google Earth Driving Simulators (3:00-7:00) Google Earth Driving Simulators (3:00-7:00) An example of what you can do by learning the GoogleEarth API, once you know how to write code Google has published such an API so that people can make programs

More information

( )

( ) testidea 9.12.x This document describes what s new and noteworthy in testidea. Headings indicate version and release date. 9.12.269 (2016-01-08) Grouping of test cases Grouping of test cases enables better

More information

Using the VMware vrealize Orchestrator Client

Using the VMware vrealize Orchestrator Client Using the VMware vrealize Orchestrator Client vrealize Orchestrator 7.0 This document supports the version of each product listed and supports all subsequent versions until the document is replaced by

More information

Chapter 3. Iteration

Chapter 3. Iteration Chapter 3 Iteration Iteration Iteration is the form of program control that allows us to repeat a section of code. For this reason this form of control is often also referred to as repetition. The programming

More information

Developing with VMware vcenter Orchestrator. vrealize Orchestrator 5.5.1

Developing with VMware vcenter Orchestrator. vrealize Orchestrator 5.5.1 Developing with VMware vcenter Orchestrator vrealize Orchestrator 5.5.1 You can find the most up-to-date technical documentation on the VMware website at: https://docs.vmware.com/ If you have comments

More information

Software Testing Prof. Meenakshi D Souza Department of Computer Science and Engineering International Institute of Information Technology, Bangalore

Software Testing Prof. Meenakshi D Souza Department of Computer Science and Engineering International Institute of Information Technology, Bangalore Software Testing Prof. Meenakshi D Souza Department of Computer Science and Engineering International Institute of Information Technology, Bangalore Lecture 04 Software Test Automation: JUnit as an example

More information

USING PAPYRUS IN A DESIGN SPACE EXPLORATION TOOLCHAIN CURRENT DEVELOPMENTS AT FLANDERS MAKE

USING PAPYRUS IN A DESIGN SPACE EXPLORATION TOOLCHAIN CURRENT DEVELOPMENTS AT FLANDERS MAKE USING PAPYRUS IN A DESIGN SPACE EXPLORATION TOOLCHAIN CURRENT DEVELOPMENTS AT FLANDERS MAKE Who is Flanders Make? A Flemish research institute whose mission is to strengthen the long-term international

More information

MDA V8.3.0 What s New. Functional Enhancements & Usability Improvements

MDA V8.3.0 What s New. Functional Enhancements & Usability Improvements MDA V8.3.0 What s New Functional Enhancements & Usability Improvements Functional Enhancements & Usability Improvements (MDA V8.3.0) Functional Enhancements Files, Formats and Data Types Usability Improvements

More information

A transformation of YAWL to AToMPM Modeling Language

A transformation of YAWL to AToMPM Modeling Language A transformation of YAWL to AToMPM Modeling Language Srinivasan Balakrishnan (Srinivasan.Balakrishnan@student.uantwerpen.be) Master of Computer Science, University of Antwerpen September 2, 2015 Abstract

More information

Managing Your Website with Convert Community. My MU Health and My MU Health Nursing

Managing Your Website with Convert Community. My MU Health and My MU Health Nursing Managing Your Website with Convert Community My MU Health and My MU Health Nursing Managing Your Website with Convert Community LOGGING IN... 4 LOG IN TO CONVERT COMMUNITY... 4 LOG OFF CORRECTLY... 4 GETTING

More information

Part 1. Summary of For Loops and While Loops

Part 1. Summary of For Loops and While Loops NAME EET 2259 Lab 5 Loops OBJECTIVES -Understand when to use a For Loop and when to use a While Loop. -Write LabVIEW programs using each kind of loop. -Write LabVIEW programs with one loop inside another.

More information

EVALUATION COPY. Unauthorized Reproduction or Distribution Prohibited SHAREPOINT 2013 END USER

EVALUATION COPY. Unauthorized Reproduction or Distribution Prohibited SHAREPOINT 2013 END USER SHAREPOINT 2013 END USER SharePoint 2013 End User (SHP2013.1 version 1.2.1) Copyright Information Copyright 2014 Webucator. All rights reserved. The Authors Bruce Gordon Bruce Gordon has been a Microsoft

More information

Using the VMware vcenter Orchestrator Client. vrealize Orchestrator 5.5.1

Using the VMware vcenter Orchestrator Client. vrealize Orchestrator 5.5.1 Using the VMware vcenter Orchestrator Client vrealize Orchestrator 5.5.1 You can find the most up-to-date technical documentation on the VMware website at: https://docs.vmware.com/ If you have comments

More information

Sharing Schedules and Planning Meetings

Sharing Schedules and Planning Meetings CHAPTER Sharing Schedules and Planning Meetings In this chapter Sharing Group Schedules 378 Planning a Meeting with Outlook 383 Rescheduling or Canceling a Meeting 388 Responding to Meeting Requests 388

More information

APPLICATION ADMINISTRATOR GUIDE

APPLICATION ADMINISTRATOR GUIDE APPLICATION ADMINISTRATOR GUIDE BrightSign Network Enterprise Edition Version 4.2 BrightSign, LLC. 16780 Lark Ave., Suite B Los Gatos, CA 95032 408-852-9263 www.brightsign.biz TABLE OF CONTENTS Introduction

More information

challenges in domain-specific modeling raphaël mannadiar august 27, 2009

challenges in domain-specific modeling raphaël mannadiar august 27, 2009 challenges in domain-specific modeling raphaël mannadiar august 27, 2009 raphaël mannadiar challenges in domain-specific modeling 1/59 outline 1 introduction 2 approaches 3 debugging and simulation 4 differencing

More information

Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur

Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur Lecture 06 Object-Oriented Analysis and Design Welcome

More information

AADL Graphical Editor Design

AADL Graphical Editor Design AADL Graphical Editor Design Peter Feiler Software Engineering Institute phf@sei.cmu.edu Introduction An AADL specification is a set of component type and implementation declarations. They are organized

More information

Introduction to IRQA 4

Introduction to IRQA 4 Introduction to IRQA 4 Main functionality and use Marcel Overeem 1/7/2011 Marcel Overeem is consultant at SpeedSoft BV and has written this document to provide a short overview of the main functionality

More information

Coveo Platform 7.0. Atlassian Confluence V2 Connector Guide

Coveo Platform 7.0. Atlassian Confluence V2 Connector Guide Coveo Platform 7.0 Atlassian Confluence V2 Connector Guide Notice The content in this document represents the current view of Coveo as of the date of publication. Because Coveo continually responds to

More information

USER GUIDE. PowerSurvey CRM 2013/2015

USER GUIDE. PowerSurvey CRM 2013/2015 USER GUIDE PowerSurvey CRM 2013/2015 Contents Overview Creating PowerSurveys Survey Fields Add an Image to the Banner Area Preview Adding Questions to a Survey Question Types Add a Survey Question through

More information

Working with the Soft Properties Manager

Working with the Soft Properties Manager CHAPTER 3 These topics describe the Soft Properties Manager working environment and how to access Soft Properties Manager tools. In addition, it describes the process from creating to publishing a soft

More information

MDA V8.3.1 What s New. Functional Enhancements & Usability Improvements

MDA V8.3.1 What s New. Functional Enhancements & Usability Improvements MDA V8.3.1 What s New Functional Enhancements & Usability Improvements Functional Enhancements & Usability Improvements Functional Enhancements Files, Formats and Data Types Usability Improvements Version

More information

MDA V8.2.x What s New Functional Enhancements & Usability Improvements (V8.2.0 V8.2.2)

MDA V8.2.x What s New Functional Enhancements & Usability Improvements (V8.2.0 V8.2.2) Functional Enhancements & Usability Improvements (V8.2.0 V8.2.2) 1 Functional Enhancements & Usability Improvements (V8.2.0 V8.2.2) Overview Functional Enhancements Files, Formats and Data Types Usability

More information

Multi-Level Modelling in the Modelverse

Multi-Level Modelling in the Modelverse Multi-Level Modelling in the Modelverse Simon Van Mierlo 1, Bruno Barroca 2, Hans Vangheluwe 1,2, Eugene Syriani 3, Thomas Kühne 4 1 University of Antwerp, Belgium {simon.vanmierlo,hans.vangheluwe}@uantwerpen.be

More information

Language engineering and Domain Specific Languages

Language engineering and Domain Specific Languages Language engineering and Domain Specific Languages Perdita Stevens School of Informatics University of Edinburgh Plan 1. Defining languages 2. General purpose languages vs domain specific languages 3.

More information

Universal Format Plug-in User s Guide. Version 10g Release 3 (10.3)

Universal Format Plug-in User s Guide. Version 10g Release 3 (10.3) Universal Format Plug-in User s Guide Version 10g Release 3 (10.3) UNIVERSAL... 3 TERMINOLOGY... 3 CREATING A UNIVERSAL FORMAT... 5 CREATING A UNIVERSAL FORMAT BASED ON AN EXISTING UNIVERSAL FORMAT...

More information

Teiid Designer User Guide 7.5.0

Teiid Designer User Guide 7.5.0 Teiid Designer User Guide 1 7.5.0 1. Introduction... 1 1.1. What is Teiid Designer?... 1 1.2. Why Use Teiid Designer?... 2 1.3. Metadata Overview... 2 1.3.1. What is Metadata... 2 1.3.2. Editing Metadata

More information

for Q-CHECKER Text version 15-Feb-16 4:49 PM

for Q-CHECKER Text version 15-Feb-16 4:49 PM Q-MONITOR 5.4.X FOR V5 for Q-CHECKER USERS GUIDE Text version 15-Feb-16 4:49 PM Orientation Symbols used in the manual For better orientation in the manual the following symbols are used: Warning symbol

More information

Second OMG Workshop on Web Services Modeling. Easy Development of Scalable Web Services Based on Model-Driven Process Management

Second OMG Workshop on Web Services Modeling. Easy Development of Scalable Web Services Based on Model-Driven Process Management Second OMG Workshop on Web Services Modeling Easy Development of Scalable Web Services Based on Model-Driven Process Management 88 solutions Chief Technology Officer 2003 Outline! Introduction to Web Services!

More information

ATL Demystified and an Introduction to the RPG2Petrinet Experiment

ATL Demystified and an Introduction to the RPG2Petrinet Experiment ATL Demystified and an Introduction to the RPG2Petrinet Experiment Daan Janssens daan.janssens@student.uantwerpen.be University of Antwerp Abstract ATL is a fairly well known M2M model transformation language.

More information

Developing with VMware vcenter Orchestrator

Developing with VMware vcenter Orchestrator Developing with VMware vcenter Orchestrator vcenter Orchestrator 4.2.1 This document supports the version of each product listed and supports all subsequent versions until the document is replaced by a

More information

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language Plan Language engineering and Domain Specific Languages Perdita Stevens School of Informatics University of Edinburgh 1. Defining languages 2. General purpose languages vs domain specific languages 3.

More information

(Refer Slide Time: 02.06)

(Refer Slide Time: 02.06) Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 27 Depth First Search (DFS) Today we are going to be talking

More information

Symbio Manual. Administrator Role

Symbio Manual. Administrator Role Symbio Manual Administrator Role Version date: November 18 2018 Ploetz + Zeller GmbH Symbio Manual - Administrator Role 2 Content 1 Introduction 9 1.1 About this document 9 1.2 Before you start 9 1.3 Support

More information

COMMUNITIES USER MANUAL. Satori Team

COMMUNITIES USER MANUAL. Satori Team COMMUNITIES USER MANUAL Satori Team Table of Contents Communities... 2 1. Introduction... 4 2. Roles and privileges.... 5 3. Process flow.... 6 4. Description... 8 a) Community page.... 9 b) Creating community

More information

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University Metamodeling Janos ISIS, Vanderbilt University janos.sztipanovits@vanderbilt.edusztipanovits@vanderbilt edu Content Overview of Metamodeling Abstract Syntax Metamodeling Concepts Metamodeling languages

More information

Small is Beautiful Building a flexible software factory using small DSLs and Small Models

Small is Beautiful Building a flexible software factory using small DSLs and Small Models Small is Beautiful Building a flexible software factory using small DSLs and Small Models Jos Warmer Partner, Ordina jos.warmer@ordina.nl 1 Modeling Maturity Levels MML 0: No specification MML 1: Textual

More information

Mobile Computing Professor Pushpendra Singh Indraprastha Institute of Information Technology Delhi Java Basics Lecture 02

Mobile Computing Professor Pushpendra Singh Indraprastha Institute of Information Technology Delhi Java Basics Lecture 02 Mobile Computing Professor Pushpendra Singh Indraprastha Institute of Information Technology Delhi Java Basics Lecture 02 Hello, in this lecture we will learn about some fundamentals concepts of java.

More information

17 - VARIABLES... 1 DOCUMENT AND CODE VARIABLES IN MAXQDA Document Variables Code Variables... 1

17 - VARIABLES... 1 DOCUMENT AND CODE VARIABLES IN MAXQDA Document Variables Code Variables... 1 17 - Variables Contents 17 - VARIABLES... 1 DOCUMENT AND CODE VARIABLES IN MAXQDA... 1 Document Variables... 1 Code Variables... 1 The List of document variables and the List of code variables... 1 Managing

More information

1 Resolving Schematic Conflicts

1 Resolving Schematic Conflicts last updated: November 19, 2002 9:13 am Information conflicts occur when two or more parties: Use different syntax to represent the same information Use different structures to represent the same information

More information

Semantic-Based Web Mining Under the Framework of Agent

Semantic-Based Web Mining Under the Framework of Agent Semantic-Based Web Mining Under the Framework of Agent Usha Venna K Syama Sundara Rao Abstract To make automatic service discovery possible, we need to add semantics to the Web service. A semantic-based

More information

UML big picture. Perdita Stevens. School of Informatics University of Edinburgh

UML big picture. Perdita Stevens. School of Informatics University of Edinburgh UML big picture Perdita Stevens School of Informatics University of Edinburgh Plan Whence UML? Parts of UML How it all fits together UML as a language Consistency: what does it mean, do we need it? Defining

More information

Symbio Manual. Administrator Role

Symbio Manual. Administrator Role Symbio Manual Administrator Role Version date: November 18 2018 Ploetz + Zeller GmbH Symbio Manual - Administrator Role 2 Content 1 Introduction 9 1.1 About this document 9 1.2 Before you start 9 1.3 Support

More information

Coveo Platform 7.0. Microsoft Dynamics CRM Connector Guide

Coveo Platform 7.0. Microsoft Dynamics CRM Connector Guide Coveo Platform 7.0 Microsoft Dynamics CRM Connector Guide Notice The content in this document represents the current view of Coveo as of the date of publication. Because Coveo continually responds to changing

More information

Meet the Cast. The Cosmic Defenders: Gobo, Fabu, and Pele The Cosmic Defenders are transdimensional

Meet the Cast. The Cosmic Defenders: Gobo, Fabu, and Pele The Cosmic Defenders are transdimensional Meet the Cast Mitch A computer science student who loves to make cool programs, he s passionate about movies and art, too! Mitch is an all-around good guy. The Cosmic Defenders: Gobo, Fabu, and Pele The

More information

Reading part: Design-Space Exploration with Alloy

Reading part: Design-Space Exploration with Alloy Reading part: Design-Space Exploration with Alloy Ing. Ken Vanherpen Abstract In the growing world of MDE many tools are offered to describe a (part of a) system, constrain it, and check some properties

More information

Review on UML CASE Tools

Review on UML CASE Tools Proceedings of the 3rd WSEAS/IASME International Conference on Educational Technologies, Arcachon, France, October 13-15, 2007 347 Review on UML CASE Tools WAN HASNIRA WAN HUSIN, SITI HAFIZAH AB HAMID,

More information

Meta-Modeling and Modeling Languages

Meta-Modeling and Modeling Languages member of Meta-Modeling and Modeling Languages Models and Modelling Model A reproduction of the part of reality which contains the essential aspects to be investigated. Modelling Describing and Representing

More information

IDERA ER/Studio Software Architect Evaluation Guide. Version 16.5/2016+ Published February 2017

IDERA ER/Studio Software Architect Evaluation Guide. Version 16.5/2016+ Published February 2017 IDERA ER/Studio Software Architect Evaluation Guide Version 16.5/2016+ Published February 2017 2017 IDERA, Inc. All rights reserved. IDERA and the IDERA logo are trademarks or registered trademarks of

More information

Toad Data Modeler Limitation Matrix

Toad Data Modeler Limitation Matrix 9/30/2014 Functionality Commercial Trial Freeware Notes General Features Physical Model (database specific) Universal Model (generic physical model) Logical Model (support for inheritance) Saving model

More information

Embracing HTML5 CSS </> JS javascript AJAX. A Piece of the Document Viewing Puzzle

Embracing HTML5 CSS </> JS javascript AJAX. A Piece of the Document Viewing Puzzle Embracing HTML5 AJAX CSS JS javascript A Piece of the Document Viewing Puzzle Embracing HTML5: A Piece of the Document Viewing Puzzle For businesses and organizations across the globe, being able to

More information

Text Input and Conditionals

Text Input and Conditionals Text Input and Conditionals Text Input Many programs allow the user to enter information, like a username and password. Python makes taking input from the user seamless with a single line of code: input()

More information

Problem Solving for Intro to Computer Science

Problem Solving for Intro to Computer Science Problem Solving for Intro to Computer Science The purpose of this document is to review some principles for problem solving that are relevant to Intro to Computer Science course. Introduction: A Sample

More information

Java How to Program, 10/e. Copyright by Pearson Education, Inc. All Rights Reserved.

Java How to Program, 10/e. Copyright by Pearson Education, Inc. All Rights Reserved. Java How to Program, 10/e Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved. Data structures Collections of related data items. Discussed in depth in Chapters 16 21. Array objects Data

More information

WACC Report. Zeshan Amjad, Rohan Padmanabhan, Rohan Pritchard, & Edward Stow

WACC Report. Zeshan Amjad, Rohan Padmanabhan, Rohan Pritchard, & Edward Stow WACC Report Zeshan Amjad, Rohan Padmanabhan, Rohan Pritchard, & Edward Stow 1 The Product Our compiler passes all of the supplied test cases, and over 60 additional test cases we wrote to cover areas (mostly

More information

Metaprogrammable Toolkit for Model-Integrated Computing

Metaprogrammable Toolkit for Model-Integrated Computing Metaprogrammable Toolkit for Model-Integrated Computing Akos Ledeczi, Miklos Maroti, Gabor Karsai and Greg Nordstrom Institute for Software Integrated Systems Vanderbilt University Abstract Model-Integrated

More information

SUMMARY: MODEL DRIVEN SECURITY

SUMMARY: MODEL DRIVEN SECURITY SUMMARY: MODEL DRIVEN SECURITY JAN-FILIP ZAGALAK, JZAGALAK@STUDENT.ETHZ.CH Model Driven Security: From UML Models to Access Control Infrastructres David Basin, Juergen Doser, ETH Zuerich Torsten lodderstedt,

More information

My name is Brian Pottle. I will be your guide for the next 45 minutes of interactive lectures and review on this lesson.

My name is Brian Pottle. I will be your guide for the next 45 minutes of interactive lectures and review on this lesson. Hello, and welcome to this online, self-paced lesson entitled ORE Embedded R Scripts: SQL Interface. This session is part of an eight-lesson tutorial series on Oracle R Enterprise. My name is Brian Pottle.

More information

Sample A2J Guided Interview & HotDocs Template Exercise

Sample A2J Guided Interview & HotDocs Template Exercise Sample A2J Guided Interview & HotDocs Template Exercise HotDocs Template We are going to create this template in HotDocs. You can find the Word document to start with here. Figure 1: Form to automate Converting

More information

Causal Block Diagrams: Compiler to LaTeX and DEVS

Causal Block Diagrams: Compiler to LaTeX and DEVS Causal Block Diagrams: Compiler to LaTeX and DEVS Nicolas Demarbaix University of Antwerp Antwerp, Belgium nicolas.demarbaix@student.uantwerpen.be Abstract In this report I present the results of my project

More information

Designing Robust Classes

Designing Robust Classes Designing Robust Classes Learning Goals You must be able to:! specify a robust data abstraction! implement a robust class! design robust software! use Java exceptions Specifications and Implementations

More information

Game keystrokes or Calculates how fast and moves a cartoon Joystick movements how far to move a cartoon figure on screen figure on screen

Game keystrokes or Calculates how fast and moves a cartoon Joystick movements how far to move a cartoon figure on screen figure on screen Computer Programming Computers can t do anything without being told what to do. To make the computer do something useful, you must give it instructions. You can give a computer instructions in two ways:

More information

Monitoring Tool Made to Measure for SharePoint Admins. By Stacy Simpkins

Monitoring Tool Made to Measure for SharePoint Admins. By Stacy Simpkins Monitoring Tool Made to Measure for SharePoint Admins By Stacy Simpkins Contents About the Author... 3 Introduction... 4 Who s it for and what all can it do?... 4 SysKit Insights Features... 6 Drillable

More information

Lecture 22: Garbage Collection 10:00 AM, Mar 16, 2018

Lecture 22: Garbage Collection 10:00 AM, Mar 16, 2018 CS18 Integrated Introduction to Computer Science Fisler, Nelson Lecture 22: Garbage Collection 10:00 AM, Mar 16, 2018 Contents 1 What is Garbage Collection? 1 1.1 A Concrete Example....................................

More information

IBM Rational Rhapsody Gateway Add On. Customization Guide

IBM Rational Rhapsody Gateway Add On. Customization Guide Customization Guide Rhapsody IBM Rational Rhapsody Gateway Add On Customization Guide License Agreement No part of this publication may be reproduced, transmitted, stored in a retrieval system, nor translated

More information

Introducing interactivity - handling commands

Introducing interactivity - handling commands 11. COMPLETING THE PROGRAM Increment 4: Completing the game...1 Introducing interactivity - handling commands...1 The Command class...2 The Parser class...4 Processing a Command...6 The switch statement...7

More information

User Guide for ACTS. 1 Core Features. 1.1 T-Way Test Set Generation

User Guide for ACTS. 1 Core Features. 1.1 T-Way Test Set Generation User Guide for ACTS ACTS is a test generation tool for constructing t-way combinatorial test sets. Currently, it supports t-way test set generation with t ranging from 1 to 6. Combinatorial testing has

More information

Eclipse JWT Java Workflow Tooling. Workflow Editor (WE): Installation and Usage Tutorial

Eclipse JWT Java Workflow Tooling. Workflow Editor (WE): Installation and Usage Tutorial Eclipse JWT Java Workflow Tooling Title of this document Workflow Editor (WE): Installation and Usage Tutorial Document information last changes component version 13.02.2008 0.4.0 Document created by Florian

More information

Introduction. C provides two styles of flow control:

Introduction. C provides two styles of flow control: Introduction C provides two styles of flow control: Branching Looping Branching is deciding what actions to take and looping is deciding how many times to take a certain action. Branching constructs: if

More information

UML PROFILING AND DSL

UML PROFILING AND DSL UML PROFILING AND DSL version 17.0.1 user guide No Magic, Inc. 2011 All material contained herein is considered proprietary information owned by No Magic, Inc. and is not to be shared, copied, or reproduced

More information

Chapter 11 Programs and the Visual Programmer

Chapter 11 Programs and the Visual Programmer Chapter 11 Programs and the Visual Programmer Once you have created your HCA design with devices and groups, schedules, and schedule entries, you may want to take the next step and create programs to help

More information

WPS Workbench. user guide. "To help guide you through using the WPS user interface (Workbench) to create, edit and run programs"

WPS Workbench. user guide. To help guide you through using the WPS user interface (Workbench) to create, edit and run programs WPS Workbench user guide "To help guide you through using the WPS user interface (Workbench) to create, edit and run programs" Version: 3.1.7 Copyright 2002-2018 World Programming Limited www.worldprogramming.com

More information

Adobe Authorware 7 as Programming Tool

Adobe Authorware 7 as Programming Tool Adobe Authorware 7 as Programming Tool Vedran Kosovac and Bozidar Kovacic Faculty of Arts and Sciences University of Rijeka Omladinska 14, Rijeka, 51000, Croatia Phone: (385) 51345046 Fax: (385) 51 345207

More information

Mach4 CNC Controller Screen Editing Guide Version 1.0

Mach4 CNC Controller Screen Editing Guide Version 1.0 Mach4 CNC Controller Screen Editing Guide Version 1.0 1 Copyright 2014 Newfangled Solutions, Artsoft USA, All Rights Reserved The following are registered trademarks of Microsoft Corporation: Microsoft,

More information

Call Doctor Search Service with GET Method

Call Doctor Search Service with GET Method Call Doctor Search Service with GET Method SCENARIO: Invoking a Web Service with GET Method to Retrieve Information 1 Scenario Description Case: Invoking a web service with GET method in order to search

More information

Maximo Educational Web Series Maximo Ad hoc Reporting March 23, 2012

Maximo Educational Web Series Maximo Ad hoc Reporting March 23, 2012 Maximo Educational Web Series Maximo Ad hoc Reporting March 23, 2012 Presenting Today Ravi Salver Sr. Maximo Consultant rsalver@cohesivesolutions.com Matt Logsdon EVP mlogsdon@cohesivesolutions.com Maximo

More information

5. Application Layer. Introduction

5. Application Layer. Introduction Book Preview This is a sample chapter of Professional PHP - Building maintainable and secure applications. The book starts with a few theory chapters and after that it is structured as a tutorial. The

More information

ModelicaML: Getting Started Issue April 2012

ModelicaML: Getting Started Issue April 2012 ModelicaML: Getting Started Issue 1.6.5 13. April 2012 Wladimir Schamai EADS Innovation Works (Hamburg, Germany) Linkoping University (Linkoping, Sweden) Abstract: This document provides a short introduction

More information

Introduction to Programming in C Department of Computer Science and Engineering. Lecture No. #13. Loops: Do - While

Introduction to Programming in C Department of Computer Science and Engineering. Lecture No. #13. Loops: Do - While Introduction to Programming in C Department of Computer Science and Engineering Lecture No. #13 Loops: Do - While So far we have been using while loops in C, now C programming language also provides you

More information

From Role-Playing Game to Petrinet, the ATL way.

From Role-Playing Game to Petrinet, the ATL way. From Role-Playing Game to Petrinet, the ATL way. Daan Janssens daan.janssens@student.uantwerpen.be University of Antwerp Abstract Model driven engineering helps increasing productivity by maximizing compatibility,

More information

DATA STRUCTURE AND ALGORITHM USING PYTHON

DATA STRUCTURE AND ALGORITHM USING PYTHON DATA STRUCTURE AND ALGORITHM USING PYTHON Advanced Data Structure and File Manipulation Peter Lo Linear Structure Queue, Stack, Linked List and Tree 2 Queue A queue is a line of people or things waiting

More information

Process Characteristics

Process Characteristics Threads 1 Chapter 4 2 Process Characteristics We ve mentioned a process as having two characteristics Unit of resource ownership: processes have their own dedicated memory address space processes temporarily

More information

Developing Web-Based Applications Using Model Driven Architecture and Domain Specific Languages

Developing Web-Based Applications Using Model Driven Architecture and Domain Specific Languages Proceedings of the 8 th International Conference on Applied Informatics Eger, Hungary, January 27 30, 2010. Vol. 2. pp. 287 293. Developing Web-Based Applications Using Model Driven Architecture and Domain

More information

(Refer Slide Time: 00:26)

(Refer Slide Time: 00:26) Programming, Data Structures and Algorithms Prof. Shankar Balachandran Department of Computer Science and Engineering Indian Institute Technology, Madras Module 07 Lecture 07 Contents Repetitive statements

More information

Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1

Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1 Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1 Dhirubhai Ambani Institute for Information and Communication Technology, Gandhinagar, Gujarat, India Email:

More information

HTML REPORT VIEWER. Intellicus Enterprise Reporting and BI Platform. Intellicus Technologies

HTML REPORT VIEWER. Intellicus Enterprise Reporting and BI Platform. Intellicus Technologies HTML REPORT VIEWER Intellicus Enterprise Reporting and BI Platform Intellicus Technologies info@intellicus.com www.intellicus.com HTML Viewer i Copyright 2012 Intellicus Technologies This document and

More information

Report on How to Use ALF Action Language and fuml execution/debugging with Moka

Report on How to Use ALF Action Language and fuml execution/debugging with Moka Report on How to Use ALF Action Language and fuml execution/debugging with Moka Coen 6312-Model Driven Software Engineering SAEED SHOARAYE NEJATI (40044525) Matin Maleki (40043676) Concordia University

More information

Flash offers a way to simplify your work, using symbols. A symbol can be

Flash offers a way to simplify your work, using symbols. A symbol can be Chapter 7 Heavy Symbolism In This Chapter Exploring types of symbols Making symbols Creating instances Flash offers a way to simplify your work, using symbols. A symbol can be any object or combination

More information

Decisions, Decisions. Testing, testing C H A P T E R 7

Decisions, Decisions. Testing, testing C H A P T E R 7 C H A P T E R 7 In the first few chapters, we saw some of the basic building blocks of a program. We can now make a program with input, processing, and output. We can even make our input and output a little

More information

This Tutorial is for Word 2007 but 2003 instructions are included in [brackets] after of each step.

This Tutorial is for Word 2007 but 2003 instructions are included in [brackets] after of each step. This Tutorial is for Word 2007 but 2003 instructions are included in [brackets] after of each step. Table of Contents Just so you know: Things You Can t Do with Word... 1 Get Organized... 1 Create the

More information

Unified Modeling Language 2

Unified Modeling Language 2 Unified Modeling Language 2 Profiles 166 Usage scenarios Metamodel customization for adapting terminology to a specific platform or domain adding (visual) notation adding and specializing semantics adding

More information