VMTS Solution of Case Study: Reverse Engineering

Size: px
Start display at page:

Download "VMTS Solution of Case Study: Reverse Engineering"

Transcription

1 VMTS Solution of Case Study: Reverse Engineering László Angyal, Tamás Vajk, and Gergely Mezei Budapest University of Technology and Economics, Budapest 1111, Hungary, WWW home page: Abstract. Model-driven software development makes models and model transformations first-class citizens in software development. Program code and corresponding models evolve parallelly, thus round-trip engineering is highly required. Program code to model transformation plays a key role in program comprehension and examination as examining models is simpler than processing program code. In this paper, we introduce our solution to the reverse engineering case at GraBaTs 09 tool contest, in which filtering and transformation tasks have been proposed. The given solution utilizes model transformation described by graph transformation rules and a control flow language. 1 Introduction Model-driven software development approaches (for example Model-Integrated Computing and OMG s Model-Driven Architecture) emphasize the use of models at all stages of system development. They have placed model-based approaches to software development into focus. Model transformations appear in many, different situations in a model-based development process. Model-based development and model-based environments are driven by model transformations. Our environment, Visual Modeling and Transformation System (VMTS) [1] supports editing models according to their metamodels, and allows specifying constraints written in textual languages, such as OCL and C#. Models are formalized as directed, labeled graphs. VMTS uses a simplified class diagram for its root metamodel ( visual vocabulary ). VMTS not only facilitates rapid modeling language development and modeling, but also efficient model processing techniques. There are two main means to access the models: (i) traversing model processors and (ii) visual model processors. Traversing processors access the models via an automatically generated, object-oriented programming interface. It usually traverses the model graph, and the processing code is described in a general purpose language. In VMTS, the graph rewriting based transformations are defined with the use of two modeling languages: the Visual Control Flow Language (VCFL) and the Visual Transformation Definition Language (VTDL). The activity diagram-like VCFL models control the execution order of the rewriting rules, while the rewriting rules are

2 expressed with VTDL models. These VTDL models define the searched (left hand side, LHS) pattern and the replacement (right hand side, RHS) pattern of a rewriting rule. Actually in VMTS the LHS and the RHS patterns are merged into a single model. Our transformation engine applies an instance-based matcher with both OCL and C# script support for constraint definition. In case of this engine, both the control flow models and the rewriting rules are processed with traversing processors and converted into executable code. With this technique VMTS model transformation engine represents a performance efficient model processing environment. 2 Problem Interpretation This paper is based on a case study for the GraBaTs 09 contest. In the case description [2], three main tasks have been given to perform different analysis on models of Java source code. The first task is to find all the type definitions that contains factory methods, meaning public, static methods that return instances of the given type. The second task is to provide a transformation that translates a sample Java method body into a control-flow model. Finally, the third task is to convert the previously created control-flow model into a program dependency graph (PDG). The aim of these tasks is to facilitate program comprehension with generating the necessary models. The given tasks test the scalability of the utilized tool and that whether it is capable of working on several models corresponding to different metamodels. In this paper, we provide solutions for the first two problems cases. 3 Solution In this section, the solutions to the filtering and the program code to control-flow transformation are given. 3.1 Filtering Query In our tool, filtering the given input model is performed with the transformation rule depicted in Fig. 1. The illustrated rule matches a TypeDeclaration containing a SimpleName and a MethodDeclaration. VMTS matches only those method declaration elements that contains two Modifier elements: a public and a static one. These constraints are given in C# illustrated in Fig. 2. Furthermore, the method declaration matched needs to have a SimpleType as return type with a SimpleName element. A constraint has been given to check that the name of the return type equals the name of the type declaration (see Fig. 2). Finally, the rule copies the type declaration and its name to the output model. (Actually, the output model is not saved in the transformation, only the fullyqualifiedname attribute value is written to the console.)

3 Fig. 1. Filter rule in VMTS PublicModifier.Attributes.Ecpublic == true PublicModifier.Attributes.Ecstatic == true TypeName.Attributes.EcfullyQualifiedName == SimpleName.Attributes.EcfullyQualifiedName Fig. 2. Constraints in the filter transformation rule 3.2 Control-Flow Transformation In order to perform the Control-Flow transformation, we have created a sample instance model, a small piece of code taken from [2], that corresponds to the Java AST metamodel. The input model represented in textual form is as follows: prod = 1; k= 1; while(k<=10) { prod = prod *k; k++; } System.out.print(k); System.out.print(prod); In our tool, the computation of the CFG for the example was solved by 10 transformation rules depicted in Fig. 3. The algorithm implemented by the graph transformation rules is elaborated in Fig. 4. We have used four global transformation variables (called storages in VMTS) to store states of the processing and in order to implement a Breath-First Search traversal of the AST model. The idea behind the CFG building is the repetitive insertion of nodes between the previously inserted node PrevNode (AbstractNode) and the last node NextNode (AbstractNode) of the statement block BlockToProcess (Block). When inserting an IterationNode (e.g. While cycle) into the CFG, it will be added to the list

4 of special nodes: ComplexNodes. The inner blocks of nodes contained by ComplexNodes are also processed by setting the BlockToProcess and starting again while there are unprocessed statements. The presented algorithm can be easily completed to support all kinds of special nodes: conditional and iteration and jump statements as well. Fig. 3. The control flow of the graph transformation rules The rule illustrated in Fig. 5 is the transformation step InsertRule that is responsible for inserting a new Node into the CFG container between the two connected nodes, the Previous and the Next. The existing outgoing edge (a) is reconnected (b) to the newly inserted node and a new CFG flow edge (c) is also created. The inserted Node will store the statement from which it was created (using a custom property Tag provided for each node and edge in VMTS). 4 Conclusions and Results This paper has presented the VMTS-based solution for the querying transformations executed on the Java input models. The given filtering solution returns the name of the types that contains factory methods. (Apt6Plugin for the first input and Apt6Plugin and AptUIPlugin for the second input) Performance measurements have been executed on an Intel Core 2 Duo E8400 3GHz machine with 4 GB of memory and Windows Vista Business operating system. The measured results are illustrated in Table 1.

5 1 Create Enter, Exit and CFGraph container nodes 2 Set PrevNode = Enter, NextNode = Exit 3 Set BlockToProcess = the body block of the method 4 Set ComplexNodes = Empty List 5 6 While there is unprocessed statement in BlockToProcess 7 ForEach statement in BlockToProcess 8 9 If (statement == "WhileStatement") 10 Create IterationNode between PrevNode and NextNode 11 Add IterationNode into ComplexNodes 12 Set PrevNode = IterationNode Else if (PrevNode == NextNode) 15 Insert new Node into the SelfLoop edge of PrevNode Else if (PrevNode!= NextNode) 18 Create Node between PrevNode and NextNode ForEach expression in statement 21 Create Expression into Node 22 Set Expression.isIdentifier = (expression == "FieldAccess") ForEach innerexpression that can be reached from expression 25 Create Expression into its parentexpression 26 Set Expression.isIdentifier = (innerexpression == "FieldAccess") If (ComplexNodes!= Empty List) 29 Set ComplexNode = ComplexNodes.First() If (ComplexNode == WhileStatement) 32 Create a SelfLoop edge to ComplexNode 33 Set BlockToProcess = body block of ComplexNode 34 Set NextNode = PrevNode = ComplexNode Restore all modified Statements and Expressions in the Java model Fig. 4. The Java to CFG algorithm we have implemented by graph rewriting Fig. 5. Insert new Node rule

6 Table 1. Measured performance Load time (s) Execution time (s) Used memory (MB) Input Input Input 3 out of memory after Solving Task 2 demonstrates that our tool can work with different source and target metamodels: from a Java code model its Control-Flow Graph (CFG) can be computed. However, without a specific visualization engine (a plugin) for this CFG metamodel, the output models can only be viewed through the Abstract Syntax Visualization Plugin of VMTS. Fig. 6 depicts the computed output CFG with a manually created layout. This CFG model is suitable to be an input model for a Program Dependency Graph computation. Acknowledgment Fig. 6. Output CFG computed from the sample Java code The fund of Mobile Innovation Centre has partly supported the activities described in this paper. VMTS environment utilizes the user interface controls developed by Infragistics. References 1. VMTS Team, Visual Modeling and Transformation System website Jean-Sbastien Sottet and Frdric Jouault, Program Comprehension. grabats2009reverseengineering.pdf.

Generating Executable BPEL Code from BPMN Models

Generating Executable BPEL Code from BPMN Models Generating Executable BPEL Code from BPMN Models Márk Asztalos, Tamás Mészáros, László Lengyel Budapest University of Technology and Economics Department of Automation and Applied Informatics {asztalos,

More information

Visual Specification of a DSL Processor Debugger

Visual Specification of a DSL Processor Debugger Visual Specification of a DSL Processor Debugger Tamás Mészáros Budapest University of Technology and Economics Department of Automation and Applied Informatics mesztam@aut.bme.hu Tihamér Levendovszky

More information

CREATING SORTED LIST FOR SIMULINK MODELS WITH GRAPH TRANSFORMATION

CREATING SORTED LIST FOR SIMULINK MODELS WITH GRAPH TRANSFORMATION CREATING SORTED LIST FOR SIMULINK MODELS WITH GRAPH TRANSFORMATION Péter Fehér (a), Tamás Mészáros (a), Pieter J. Mosterman (b) and László Lengyel (a) (a) Department of Automation and Applied Informatics

More information

Termination Analysis of the Transformation UML to CSP

Termination Analysis of the Transformation UML to CSP Magyar Kutatók 8. Nemzetközi Szimpóziuma 8 th International Symposium of Hungarian Researchers on Computational Intelligence and Informatics Termination Analysis of the Transformation UML to CSP Márk Asztalos,

More information

An AmmA/ATL Solution for the GraBaTs 2009 Reverse Engineering Case Study

An AmmA/ATL Solution for the GraBaTs 2009 Reverse Engineering Case Study n mm/tl Solution for the GraaTs 2009 Reverse Engineering Case Study Frédéric Jouault and Jean-Sébastien Sottet INRI Centre Rennes retagne tlantique, Ecole des Mines de Nantes 4, rue lfred Kastler, 44307,

More information

Proceedings of the Second International Workshop on Graph and Model Transformation (GraMoT 2006)

Proceedings of the Second International Workshop on Graph and Model Transformation (GraMoT 2006) Electronic Communications of the EASST Volume 4 (2006) Proceedings of the Second International Workshop on Graph and Model Transformation (GraMoT 2006) A Model Transformation for Automated Concrete Syntax

More information

On Open Source Tools for Behavioral Modeling and Analysis with fuml and Alf

On Open Source Tools for Behavioral Modeling and Analysis with fuml and Alf Open Source Software for Model Driven Engineering 2014 On Open Source Tools for Behavioral Modeling and Analysis with fuml and Alf Zoltán Micskei, Raimund-Andreas Konnerth, Benedek Horváth, Oszkár Semeráth,

More information

The TTC 2011 Reengineering Challenge Using MOLA and Higher-Order Transformations

The TTC 2011 Reengineering Challenge Using MOLA and Higher-Order Transformations The TTC 2011 Reengineering Challenge Using MOLA and Higher-Order Transformations Agris Sostaks, Elina Kalnina, Audris Kalnins, Edgars Celms, and Janis Iraids Institute of Computer Science and Mathematics,

More information

Flattening Virtual Simulink Subsystems with Graph Transformation

Flattening Virtual Simulink Subsystems with Graph Transformation Flattening Virtual Simulink Subsystems with Graph Transformation Péter Fehér 1, Tamás Mészáros 1, Pieter J. Mosterman 2, and László Lengyel 1 1 Department of Automation and Applied Informatics Budapest

More information

Towards Generating Domain-Specific Model Editors with Complex Editing Commands

Towards Generating Domain-Specific Model Editors with Complex Editing Commands Towards Generating Domain-Specific Model Editors with Complex Editing Commands Gabriele Taentzer Technical University of Berlin Germany gabi@cs.tu-berlin.de May 10, 2006 Abstract Domain specific modeling

More information

Attribute Algebra for N-layer Metamodeling

Attribute Algebra for N-layer Metamodeling Proceedings of the 7th WSEAS International Conference on Applied Informatics and Communications, Athens, Greece, August 24-26, 2007 142 Attribute Algebra for N-layer Metamodeling GERGELY MEZEI, TIHAMÉR

More information

Introduction to MDE and Model Transformation

Introduction to MDE and Model Transformation Vlad Acretoaie Department of Applied Mathematics and Computer Science Technical University of Denmark rvac@dtu.dk DTU Course 02291 System Integration Vlad Acretoaie Department of Applied Mathematics and

More information

Introduction to EGF. Benoît Langlois / Thales Global Services.

Introduction to EGF. Benoît Langlois / Thales Global Services. www.thalesgroup.com Introduction to EGF Benoît Langlois / Thales Global Services 2 / Agenda Introduction EGF Architecture Concepts & Practice EGF Portfolios 3 / Agenda Introduction EGF Architecture Concepts

More information

A GrGen.NET solution of the Model Migration Case for the Transformation Tool Contest 2010

A GrGen.NET solution of the Model Migration Case for the Transformation Tool Contest 2010 A GrGen.NET solution of the Model Migration Case for the Transformation Tool Contest 2010 Sebastian Buchwald Edgar Jakumeit June 3, 2010 1 Introduction The challenge of the Model Migration Case [1] is

More information

BPMN to BPEL case study solution in VIATRA2

BPMN to BPEL case study solution in VIATRA2 BPMN to BPEL case study solution in VIATRA2 Gábor Bergmann and Ákos Horváth Budapest University of Technology and Economics, Department of Measurement and Information Systems, H-1117 Magyar tudósok krt.

More information

Start Up Benoît Langlois / Thales Global Services Eclipse (EMFT) EGF 2011 by Thales; made available under the EPL v1.

Start Up Benoît Langlois / Thales Global Services Eclipse (EMFT) EGF 2011 by Thales; made available under the EPL v1. www.thalesgroup.com Start Up Benoît Langlois / Thales Global Services 2 / Introduction EGF Architecture Concepts & Practice EGF Portfolios 3 / Introduction EGF Architecture Concepts & Practice EGF Portfolios

More information

Data Type Propagation in Simulink Models with Graph Transformation

Data Type Propagation in Simulink Models with Graph Transformation Data Type Propagation in Simulink Models with Graph Transformation Péter Fehér, Tamás Mészáros and László Lengyel Department of Automation and Applied Informatics Budapest University of Technology and

More information

CSE 12 Abstract Syntax Trees

CSE 12 Abstract Syntax Trees CSE 12 Abstract Syntax Trees Compilers and Interpreters Parse Trees and Abstract Syntax Trees (AST's) Creating and Evaluating AST's The Table ADT and Symbol Tables 16 Using Algorithms and Data Structures

More information

Introduction to PHP. Handling Html Form With Php. Decisions and loop. Function. String. Array

Introduction to PHP. Handling Html Form With Php. Decisions and loop. Function. String. Array Introduction to PHP Evaluation of Php Basic Syntax Defining variable and constant Php Data type Operator and Expression Handling Html Form With Php Capturing Form Data Dealing with Multi-value filed Generating

More information

ADT: Eclipse development tools for ATL

ADT: Eclipse development tools for ATL ADT: Eclipse development tools for ATL Freddy Allilaire (freddy.allilaire@laposte.net) Tarik Idrissi (tarik.idrissi@laposte.net) Université de Nantes Faculté de Sciences et Techniques LINA (Laboratoire

More information

Tiger EMF Model Transformation Framework (EMT)

Tiger EMF Model Transformation Framework (EMT) Tiger EMF Model Transformation Framework (EMT) Version 1.2.0 User Manual TU Berlin EMT Project Team: Enrico Biermann, Karsten Ehrig, Claudia Ermel, Christian Köhler, Günter Kuhns, Gabi Taentzer Email:

More information

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM): viii Preface The software industry has evolved to tackle new approaches aligned with the Internet, object-orientation, distributed components and new platforms. However, the majority of the large information

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

S/W Programming & Languages

S/W Programming & Languages S/W Programming & Languages Overview Programming five steps Five generations High-level programming Object-oriented programming Internet programming 2 Programming What are the five steps of the programdevelopment

More information

Beginning To Define ebxml Initial Draft

Beginning To Define ebxml Initial Draft Beginning To Define ebxml Initial Draft File Name Version BeginningToDefineebXML 1 Abstract This document provides a visual representation of how the ebxml Architecture could work. As ebxml evolves, this

More information

UNIT II. Syllabus. a. An Overview of the UML: Visualizing, Specifying, Constructing, Documenting

UNIT II. Syllabus. a. An Overview of the UML: Visualizing, Specifying, Constructing, Documenting UNIT II Syllabus Introduction to UML (08 Hrs, 16 Marks) a. An Overview of the UML: Visualizing, Specifying, Constructing, Documenting b. Background, UML Basics c. Introducing UML 2.0 A Conceptual Model

More information

Object-Oriented Identifier Renaming Correction in Three-Way Merge

Object-Oriented Identifier Renaming Correction in Three-Way Merge Object-Oriented Identifier Renaming Correction in Three-Way Merge László Angyal, László Lengyel, Hassan Charaf Department of Automation and Applied Informatics Budapest University of Technology and Economics

More information

Java Refactoring Case: a VIATRA Solution

Java Refactoring Case: a VIATRA Solution Java Refactoring Case: a VIATRA Solution Dániel Stein Gábor Szárnyas István Ráth Budapest University of Technology and Economics Department of Measurement and Information Systems H-1117 Magyar tudósok

More information

3rd Lecture Languages for information modeling

3rd Lecture Languages for information modeling 3rd Lecture Languages for information modeling Agenda Languages for information modeling UML UML basic concepts Modeling by UML diagrams CASE tools: concepts, features and objectives CASE toolset architecture

More information

Software Language Engineering of Architectural Viewpoints

Software Language Engineering of Architectural Viewpoints Software Language Engineering of Architectural Viewpoints Elif Demirli and Bedir Tekinerdogan Department of Computer Engineering, Bilkent University, Ankara 06800, Turkey {demirli,bedir}@cs.bilkent.edu.tr

More information

BPMN2BPEL transformation with Fujaba - a Case Study

BPMN2BPEL transformation with Fujaba - a Case Study BPMN2BPEL transformation with Fujaba - a Case Study Ruben Jubeh SE, Kassel University Wilhelmshöher Allee 73 34121 Kassel ruben.jubeh@uni-kassel.de ABSTRACT We have modeled a BPMN to BPEL synthesis transformation

More information

Local search-based pattern matching features in EMF-IncQuery

Local search-based pattern matching features in EMF-IncQuery Local search-based pattern matching features in EMF-IncQuery Márton Búr 1,2, Zoltán Ujhelyi 2,1, Ákos Horváth 2,1, Dániel Varró 1 1 Budapest University of Technology and Economics, Department of Measurement

More information

Model Transformation by Graph Transformation: A Comparative Study

Model Transformation by Graph Transformation: A Comparative Study Model Transformation by Graph Transformation: A Comparative Study Karsten Ehrig 1, Esther Guerra 2, Juan de Lara 3, Laszlo Lengyel 4, Tihamer Levendovszky 4, Ulrike Prange 1, Gabriele Taentzer 1, Daniel

More information

A Formalism for Automated Verification of Model Transformations

A Formalism for Automated Verification of Model Transformations Magyar Kutatók 10. Nemzetközi Szimpóziuma 10 th International Symposium of Hungarian Researchers on Computational Intelligence and Informatics A Formalism for Automated Verification of Model Transformations

More information

Lab 09: Advanced SQL

Lab 09: Advanced SQL CIS395 - BMCC - Spring 2018 04/25/2018 Lab 09: Advanced SQL A - Use Simple Loops with EXIT Conditions In this exercise, you use the EXIT condition to terminate a simple loop, and a special variable, v_counter,

More information

Detecting and Preventing Power Outages in a Smart Grid using emoflon

Detecting and Preventing Power Outages in a Smart Grid using emoflon Detecting and Preventing Power Outages in a Smart Grid using emoflon Sven Peldszus, Jens Bürger, Daniel Strüber {speldszus,buerger,strueber}@uni-koblenz.de University of Koblenz and Landau Abstract We

More information

Integration With the Business Modeler

Integration With the Business Modeler Decision Framework, J. Duggan Research Note 11 September 2003 Evaluating OOA&D Functionality Criteria Looking at nine criteria will help you evaluate the functionality of object-oriented analysis and design

More information

Science of Computer Programming. Aspect-oriented model-driven skeleton code generation: A graph-based transformation approach

Science of Computer Programming. Aspect-oriented model-driven skeleton code generation: A graph-based transformation approach Science of Computer Programming 75 (2010) 689 725 Contents lists available at ScienceDirect Science of Computer Programming journal homepage: www.elsevier.com/locate/scico Aspect-oriented model-driven

More information

Pattern composition in graph transformation rules

Pattern composition in graph transformation rules Pattern composition in graph transformation rules András Balogh and Dániel Varró Department of Measurement and Information Systems Budapest University of Technology and Economics H-1117 Magyar tudosok

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

Model Abstraction versus Model to Text Transformation

Model Abstraction versus Model to Text Transformation Model Abstraction versus Model to Text Transformation Jon Oldevik, Tor Neple, Jan Øyvind Aagedal SINTEF Information and Communication Technology, Forskningsvn 1, N-0314 Oslo, Norway {jon.oldevik tor.neple

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

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

CMSC 330: Organization of Programming Languages. Context Free Grammars

CMSC 330: Organization of Programming Languages. Context Free Grammars CMSC 330: Organization of Programming Languages Context Free Grammars 1 Architecture of Compilers, Interpreters Source Analyzer Optimizer Code Generator Abstract Syntax Tree Front End Back End Compiler

More information

While Loops A while loop executes a statement as long as a condition is true while condition: statement(s) Statement may be simple or compound Typical

While Loops A while loop executes a statement as long as a condition is true while condition: statement(s) Statement may be simple or compound Typical Recommended Readings Chapter 5 Topic 5: Repetition Are you saying that I am redundant? That I repeat myself? That I say the same thing over and over again? 1 2 Repetition So far, we have learned How to

More information

LL(k) Parsing. Predictive Parsers. LL(k) Parser Structure. Sample Parse Table. LL(1) Parsing Algorithm. Push RHS in Reverse Order 10/17/2012

LL(k) Parsing. Predictive Parsers. LL(k) Parser Structure. Sample Parse Table. LL(1) Parsing Algorithm. Push RHS in Reverse Order 10/17/2012 Predictive Parsers LL(k) Parsing Can we avoid backtracking? es, if for a given input symbol and given nonterminal, we can choose the alternative appropriately. his is possible if the first terminal of

More information

Computer Science at Kent

Computer Science at Kent Computer Science at Kent YATL: Yet Another Transformation Language - Reference Manual Version 1.0 Octavian Patrascoiu Technical Report No. 2-04 March 2004 Copyright 2004 University of Kent at Canterbury

More information

Betweenness Metric Dmitry Vyukov November 1, 2010

Betweenness Metric Dmitry Vyukov November 1, 2010 Problem Statement Betweenness Metric Dmitry Vyukov mailto:dvyukov@gmail.com November 1, 2010 Betweenness is a metric applied to a vertex within a weighted graph. For the purposes of this problem we will

More information

Intermediate Code Generation

Intermediate Code Generation Intermediate Code Generation In the analysis-synthesis model of a compiler, the front end analyzes a source program and creates an intermediate representation, from which the back end generates target

More information

NooJ Graphical User Interfaces Modernization

NooJ Graphical User Interfaces Modernization NooJ Graphical User Interfaces Modernization Z. Gotti, S. Mbarki, S. Gotti and N. Laaz MISC Laboratory, Faculty of Science, Ibn Tofail University Kenitra, MOROCCO Plan Introduction Context Contribution

More information

Challenges for advanced domain-specific modeling. István Ráth. Budapest University of Technology and Economics

Challenges for advanced domain-specific modeling. István Ráth. Budapest University of Technology and Economics Challenges for advanced domain-specific modeling frameworks István Ráth Dániel Varró Department of Measurement and Information Systems Department of Measurement and Information Systems Budapest University

More information

Executive Summary. Round Trip Engineering of Space Systems. Change Log. Executive Summary. Visas

Executive Summary. Round Trip Engineering of Space Systems. Change Log. Executive Summary. Visas Reference: egos-stu-rts-rp-1002 Page 1/7 Authors: Andrey Sadovykh (SOFTEAM) Contributors: Tom Ritter, Andreas Hoffmann, Jürgen Großmann (FHG), Alexander Vankov, Oleg Estekhin (GTI6) Visas Surname - Name

More information

Introduction to Dependable Systems: Meta-modeling and modeldriven

Introduction to Dependable Systems: Meta-modeling and modeldriven Introduction to Dependable Systems: Meta-modeling and modeldriven development http://d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics 3 Software development Automated software

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

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

Textbook. Topic 5: Repetition. Types of Loops. Repetition

Textbook. Topic 5: Repetition. Types of Loops. Repetition Textbook Topic 5: Repetition Are you saying that I am redundant? That I repeat myself? That I say the same thing over and over again? Strongly Recommended Exercises The Python Workbook: 64, 69, 74, and

More information

Advanced Analytics Healthcare

Advanced Analytics Healthcare Healthcare Process Overview The Timeline Overview gives you important information on how healthcare processes are being executed end to end. The top bar also displays the average days, number of unique

More information

Recursive Graph Pattern Matching

Recursive Graph Pattern Matching Recursive Graph Pattern Matching With Magic Sets and Global Search Plans Gergely Varró 1, Ákos Horváth 2, and Dániel Varró 2 1 Department of Computer Science and Information Theory Budapest University

More information

Data Structure. Recitation III

Data Structure. Recitation III Data Structure Recitation III Topic Binary Search Abstract Data types Java Interface Linked List Binary search Searching a sorted collection is a common task. A dictionary is a sorted list of word definitions.

More information

What s New In Portal Release 2? Presented By: Craig Warman - Computer Resource Team, Inc. (USA)

What s New In Portal Release 2? Presented By: Craig Warman - Computer Resource Team, Inc. (USA) What s New In Portal Release 2? Presented By: Craig Warman - Computer Resource Team, Inc. (USA) Paper Section: 2 Craig s Oracle Portal R2 Frequently Asked Questions What Happened to Content Areas? Do They

More information

Formal specification of semantics of UML 2.0 activity diagrams by using Graph Transformation Systems

Formal specification of semantics of UML 2.0 activity diagrams by using Graph Transformation Systems Formal specification of semantics of UML 2.0 activity diagrams by using Graph Transformation Systems Somayeh Azizi 1, Vahid Panahi 2 Computer science department, Sama Technical and vocational, Training

More information

The Send keystrokes plugin PRINTED MANUAL

The Send keystrokes plugin PRINTED MANUAL The Send keystrokes plugin PRINTED MANUAL Send keystrokes plugin All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic, or mechanical, including

More information

More On Syntax Directed Translation

More On Syntax Directed Translation More On Syntax Directed Translation 1 Types of Attributes We have productions of the form: A X 1 X 2 X 3... X n with semantic rules of the form: b:= f(c 1, c 2, c 3,..., c n ) where b and the c s are attributes

More information

The Semantic Web Explained

The Semantic Web Explained The Semantic Web Explained The Semantic Web is a new area of research and development in the field of computer science, aimed at making it easier for computers to process the huge amount of information

More information

Detecting Code Similarity Using Patterns. K. Kontogiannis M. Galler R. DeMori. McGill University

Detecting Code Similarity Using Patterns. K. Kontogiannis M. Galler R. DeMori. McGill University 1 Detecting Code Similarity Using atterns K. Kontogiannis M. Galler R. DeMori McGill University 3480 University St., Room 318, Montreal, Canada H3A 2A7 Abstract Akey issue in design recovery is to localize

More information

History of object-oriented approaches

History of object-oriented approaches Prof. Dr. Nizamettin AYDIN naydin@yildiz.edu.tr http://www.yildiz.edu.tr/~naydin Object-Oriented Oriented Systems Analysis and Design with the UML Objectives: Understand the basic characteristics of object-oriented

More information

The UML Extension Mechanisms

The UML Extension Mechanisms Jasmine Farhad Dept of Computer Science University College London 13-Dec-02 The UML Extension Mechanisms Introduction There is an important need for organisations to evolve in today s market. This has

More information

Advanced Layouts in a Content-Driven Template-Based Layout System

Advanced Layouts in a Content-Driven Template-Based Layout System Advanced Layouts in a Content-Driven Template-Based Layout System ISTVÁN ALBERT, HASSAN CHARAF, LÁSZLÓ LENGYEL Department of Automation and Applied Informatics Budapest University of Technology and Economics

More information

An Overview of GCC Architecture (source: wikipedia) Control-Flow Analysis and Loop Detection

An Overview of GCC Architecture (source: wikipedia) Control-Flow Analysis and Loop Detection An Overview of GCC Architecture (source: wikipedia) CS553 Lecture Control-Flow, Dominators, Loop Detection, and SSA Control-Flow Analysis and Loop Detection Last time Lattice-theoretic framework for data-flow

More information

A UML 2 Profile for Variability Models and their Dependency to Business Processes

A UML 2 Profile for Variability Models and their Dependency to Business Processes A UML 2 Profile for Variability Models and their Dependency to Business Processes Birgit Korherr and Beate List Women s Postgraduate College for Internet Technologies Institute of Software Technology and

More information

Compiler Optimisation

Compiler Optimisation Compiler Optimisation 3 Dataflow Analysis Hugh Leather IF 1.18a hleather@inf.ed.ac.uk Institute for Computing Systems Architecture School of Informatics University of Edinburgh 2018 Introduction Optimisations

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

Defining Domain-Specific Modeling Languages

Defining Domain-Specific Modeling Languages Defining Domain-Specific Modeling Languages 1 st Oct 2008 Juha-Pekka Tolvanen MetaCase 1 Relevant language classifications to start with General-Purpose / Domain-Specific Narrow area of interest Often

More information

An Ontology-Based Methodology for Integrating i* Variants

An Ontology-Based Methodology for Integrating i* Variants An Ontology-Based Methodology for Integrating i* Variants Karen Najera 1,2, Alicia Martinez 2, Anna Perini 3, and Hugo Estrada 1,2 1 Fund of Information and Documentation for the Industry, Mexico D.F,

More information

OCL Support in MOF Repositories

OCL Support in MOF Repositories OCL Support in MOF Repositories Joachim Hoessler, Michael Soden Department of Computer Science Technical University Berlin hoessler@cs.tu-berlin.de, soden@cs.tu-berlin.de Abstract From metamodels that

More information

Statechart Modeling with Fujaba

Statechart Modeling with Fujaba GraBaTs 04 Preliminary Version Statechart Modeling with Fujaba Leif Geiger Albert Zündorf University of Kassel, Software Engineering Research Group, Wilhelmshöher Allee 73, 34121 Kassel, Germany {leif.geiger

More information

Detecting Renamings in Three-Way Merging

Detecting Renamings in Three-Way Merging Detecting Renamings in Three-Way Merging László Angyal, László Lengyel, Hassan Charaf Department of Automation and Applied Informatics Budapest University of Technology and Economics Goldmann György tér

More information

Parsing II Top-down parsing. Comp 412

Parsing II Top-down parsing. Comp 412 COMP 412 FALL 2018 Parsing II Top-down parsing Comp 412 source code IR Front End Optimizer Back End IR target code Copyright 2018, Keith D. Cooper & Linda Torczon, all rights reserved. Students enrolled

More information

* Corresponding Author

* Corresponding Author A Model Driven Architecture for REA based systems Signe Ellegaard Borch, Jacob Winther Jespersen, Jesper Linvald, Kasper Østerbye* IT University of Copenhagen, Denmark * Corresponding Author (kasper@it-c.dk)

More information

Business-Driven Software Engineering Lecture 5 Business Process Model and Notation

Business-Driven Software Engineering Lecture 5 Business Process Model and Notation Business-Driven Software Engineering Lecture 5 Business Process Model and Notation Jochen Küster jku@zurich.ibm.com Agenda BPMN Introduction BPMN Overview BPMN Advanced Concepts Introduction to Syntax

More information

IBM Endpoint Manager Version 9.0. Software Distribution User's Guide

IBM Endpoint Manager Version 9.0. Software Distribution User's Guide IBM Endpoint Manager Version 9.0 Software Distribution User's Guide IBM Endpoint Manager Version 9.0 Software Distribution User's Guide Note Before using this information and the product it supports,

More information

Adaptive Graph Pattern Matching for Model Transformations using Model-sensitive Search Plans 1

Adaptive Graph Pattern Matching for Model Transformations using Model-sensitive Search Plans 1 GraMoT 2005 Preliminary Version Adaptive Graph Pattern Matching for Model Transformations using Model-sensitive Search Plans Gergely Varró 2 Katalin Friedl 4 Department of Computer Science and Information

More information

Models in Conflict Towards a Semantically Enhanced Version Control System for Models

Models in Conflict Towards a Semantically Enhanced Version Control System for Models Models in Conflict Towards a Semantically Enhanced ersion Control System for Models Kerstin Altmanninger Department of Telecooperation, Johannes Kepler University Linz, Austria kerstin.altmanninger@jku.at

More information

Sequence Diagram Generation with Model Transformation Technology

Sequence Diagram Generation with Model Transformation Technology , March 12-14, 2014, Hong Kong Sequence Diagram Generation with Model Transformation Technology Photchana Sawprakhon, Yachai Limpiyakorn Abstract Creating Sequence diagrams with UML tools can be incomplete,

More information

On Using UML Profiles in ATL Transformations

On Using UML Profiles in ATL Transformations On Using UML Profiles in ATL Transformations Manuel Wimmer and Martina Seidl Business Informatics Group, Vienna University of Technology, Austria {wimmer seidl}@big.tuwien.ac.at Abstract. For defining

More information

MDSE USE CASES. Chapter #3

MDSE USE CASES. Chapter #3 Chapter #3 MDSE USE CASES Teaching material for the book Model-Driven Software Engineering in Practice by Morgan & Claypool, USA, 2012. www.mdse-book.com MDSE GOES FAR BEYOND CODE-GENERATION www.mdse-book.com

More information

ECS 142 Spring Project (part 2): Lexical and Syntactic Analysis Due Date: April 22, 2011: 11:59 PM.

ECS 142 Spring Project (part 2): Lexical and Syntactic Analysis Due Date: April 22, 2011: 11:59 PM. Project (part 2): Lexical and Syntactic Analysis Due Date: April 22, 2011: 11:59 PM. 1 Overview This course requires you to write a compiler that takes a program written in a language, Java, and constructs

More information

The Data timeout plugin PRINTED MANUAL

The Data timeout plugin PRINTED MANUAL The Data timeout plugin PRINTED MANUAL Data timeout plugin All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic, or mechanical, including photocopying,

More information

i-trade Application FAQs v1.1

i-trade Application FAQs v1.1 i-trade Application FAQs v1.1 1. WHAT IS I-TRADE APPLICATION? 2. WHAT IS SYSTEM REQUIREMENT OF I-TRADE APPLICATION? 3. HOW CAN DISPLAY I-TRADE APPLICATION DIFFERENT LANGUAGE? 4. HOW CAN I IMPROVE THE PERFORMANCE

More information

SysML Past, Present, and Future. J.D. Baker Sparx Systems Ambassador Sparx Systems Pty Ltd

SysML Past, Present, and Future. J.D. Baker Sparx Systems Ambassador Sparx Systems Pty Ltd SysML Past, Present, and Future J.D. Baker Sparx Systems Ambassador Sparx Systems Pty Ltd A Specification Produced by the OMG Process SysML 1.0 SysML 1.1 Etc. RFI optional Issued by Task Forces RFI responses

More information

Model-Driven Iterative Development of 3D Web-Applications Using SSIML, X3D and JavaScript

Model-Driven Iterative Development of 3D Web-Applications Using SSIML, X3D and JavaScript Freiberg University of Mining and Technology The University of Resources. Since 1765. WEB3D 2012-17th International Conference on 3D Web Technology Model-Driven Iterative Development of 3D Web-Applications

More information

The Aggregator plugin PRINTED MANUAL

The Aggregator plugin PRINTED MANUAL The Aggregator plugin PRINTED MANUAL Aggregator plugin All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic, or mechanical, including photocopying,

More information

A PARSING APPROACH FOR SYSTEM BEHAVIOUR MODELING

A PARSING APPROACH FOR SYSTEM BEHAVIOUR MODELING IADIS International Conference Applied Computing 2007 A PARSING APPROACH FOR SYSTEM BEHAVIOUR MODELING Lau Sei Ping 1, Wee Bui Lin 2, Nurfauza bt Jali 3 Faculty of Computer Science and Information Technology

More information

A GrGen.NET solution of the Reengineering Case for the Transformation Tool Contest 2011

A GrGen.NET solution of the Reengineering Case for the Transformation Tool Contest 2011 A GrGen.NET solution of the Reengineering Case for the Transformation Tool Contest 2011 Edgar Jakumeit Sebastian Buchwald May 2, 2011 1 Introduction The challenge of the Reengineering Case [1] is to extract

More information

Question 7.11 Show how heapsort processes the input:

Question 7.11 Show how heapsort processes the input: Question 7.11 Show how heapsort processes the input: 142, 543, 123, 65, 453, 879, 572, 434, 111, 242, 811, 102. Solution. Step 1 Build the heap. 1.1 Place all the data into a complete binary tree in the

More information

Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT

Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT Karl Trygve Kalleberg 1 Department of Informatics, University of Bergen, P.O. Box 7800, N-5020 BERGEN,

More information

SFilter: A Simple and Scalable Filter for XML Streams

SFilter: A Simple and Scalable Filter for XML Streams SFilter: A Simple and Scalable Filter for XML Streams Abdul Nizar M., G. Suresh Babu, P. Sreenivasa Kumar Indian Institute of Technology Madras Chennai - 600 036 INDIA nizar@cse.iitm.ac.in, sureshbabuau@gmail.com,

More information

SOFTWARE ENGINEERING UML FUNDAMENTALS. Saulius Ragaišis.

SOFTWARE ENGINEERING UML FUNDAMENTALS. Saulius Ragaišis. SOFTWARE ENGINEERING UML FUNDAMENTALS Saulius Ragaišis saulius.ragaisis@mif.vu.lt Information source Slides are prepared on the basis of Bernd Oestereich, Developing Software with UML: Object- Oriented

More information

Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010)

Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010) Electronic Communications of the EASST Volume X (2010) Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010) m2n: Translating Models to Natural Language

More information

Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology

Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology exam Compiler Construction in4020 July 5, 2007 14.00-15.30 This exam (8 pages) consists of 60 True/False

More information