Yu SunUniversity of Alabama at Birmingham PAR Works Jeff Gray University of Alabama Montpellier, France July 3rd, 2013 This research is supported.

Slides:



Advertisements
Similar presentations
Verification of DSMLs Using Graph Transformation: A Case Study with Alloy Zekai Demirezen 1, Marjan Mernik 1,2, Jeff Gray 1, Barrett Bryant 1 1 Department.
Advertisements

Identifying, Modifying, Creating, and Removing Monitor Rules for SOC Ricardo Contreras Andrea Zisman
1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
Lecture # 2 : Process Models
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
© 2007 ATLAS Nantes 1 Atlas Model Weaver Use Case: Aspect Oriented Modeling Marcos Didonet Del Fabro Atlas Group (INRIA & LINA), Université de Nantes,
Eugene Syriani Jeff Gray University of Alabama Software Engineering Group Department of Computer Science College of Engineering.
This research is supported by NSF CAREER award CCF A Demonstration-based Approach to Support Live Transformations in a Model Editor Yu SunUniversity.
This research is supported by NSF CAREER award CCF MT-Scribe: A Flexible Tool to Support Model Evolution Yu SunUniversity of Alabama at Birmingham.
Software Engineering COMP 201
Train Control Language Teaching Computers Interlocking By: J. Endresen, E. Carlson, T. Moen1, K. J. Alme, Haugen, G. K. Olsen & A. Svendsen Synthesizing.
Chapter 6: Design of Expert Systems
Software Reuse Building software from reusable components Objectives
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
1 SWE Introduction to Software Engineering Lecture 5.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
Software Testing and Quality Assurance
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato.
Programming Fundamentals (750113) Ch1. Problem Solving
L ECTURE 2 S OFTWARE P ROCESSES 1. O BJECTIVES To describe outline process models for requirements engineering, software development, testing and evolution.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
Mining Metamodels From Instance Models: The MARS System Faizan Javed Department of Computer & Information Sciences, University of Alabama at Birmingham.
McGill University Proposal Exam School of Computer Science Ph.D. Candidate in the Modelling, Simulation and Design Lab Eugene Syriani.
The chapter will address the following questions:
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Chapter 2 The process Process, Methods, and Tools
Yu Sun 1, Zekai Demirezen 1, Marjan Mernik 2, Jeff Gray 1, Barret Bryant 1 1 Department of Computer and Information Sciences, University of Alabama at.
Context Tailoring the DBMS –To support particular applications Beyond alphanumerical data Beyond retrieve + process –To support particular hardware New.
MDA and QVT  Tom Gullion, Director of Product Management, Together Products.
Software Engineering 2003 Jyrki Nummenmaa 1 CASE Tools CASE = Computer-Aided Software Engineering A set of tools to (optimally) assist in each.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
Introduction to MDA (Model Driven Architecture) CYT.
Key Challenges for Modeling Language Creation by Demonstration Hyun Cho, Jeff Gray Department of Computer Science University of Alabama Jules White Bradley.
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
Generative Programming. Automated Assembly Lines.
Hybrid Transformation Modeling Integrating a Declarative with an Imperative Model Transformation Language Pieter Van Gorp
This research is supported by NSF CAREER award CCF A WYSISYG Approach forConfiguring Model Layout using Model Transformations Yu SunUniversity.
Contact Profile (1/2) Yu Sun, University of Alabama at Birmingham Hyun Cho, University of Alabama Jeff Gray, University of Alabama Jules White, Virginia.
Automated Transformation of Statements Within Evolving Domain Specific Languages Peter Bell CEO/CTO, SystemsForge 7th OOPSLA Workshop on Domain-Specific.
Visual Specification of a DSL Processor Debugger Tamás Mészáros and Tihamér Levendovszky Budapest University of Technology and Economics.
1 Model-based Aspect Weaver Construction Suman Roychoudhury Frédéric Jouault Jeff Gray {roychous, jouault, cis.uab.edu This project is supported.
Chapter 4 Automated Tools for Systems Development Modern Systems Analysis and Design Third Edition 4.1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Model Transformation for End-Users
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
DS(M)Ls for End-Users and Domain Experts? Panel on Creating DSLs Models in Software Engineering Workshop Zurich, Switzerland June 3, 2012 Jeff Gray University.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
A Model Transformation Approach to Automated Model Construction and Evolution Yuehua Lin Jeff Gray Department of.
Object Design More Design Patterns Object Constraint Language Object Design Specifying Interfaces Review Exam 2 CEN 4010 Class 18 – 11/03.
Model Transformation By Demonstration Yu Sun, Jules White, Jeff Gray This work funded in part by NSF CAREER award CCF CIS Dept. – University of.
AUTOMATIC GENERATION OF MODEL TRAVERSALS FROM METAMODEL DEFINITIONS Authors: Tomaž Lukman, Marjan Mernik, Zekai Demirezen, Barrett Bryant, Jeff Gray ACM.
A Framework for Automated and Composable Testing of Component-based Services Miguel A. Jiménez, Ángela Villota, Norha M. Villegas, Gabriel Tamura, Laurence.
Defects of UML Yang Yichuan. For the Presentation Something you know Instead of lots of new stuff. Cases Instead of Concepts. Methodology instead of the.
Chapter3:Software Processes
Modern Systems Analysis and Design Third Edition
Software Processes (a)
Chapter 6: Design of Expert Systems
Model-Driven Analysis Frameworks for Embedded Systems
Modern Systems Analysis and Design Third Edition
Programming Fundamentals (750113) Ch1. Problem Solving
Modern Systems Analysis and Design Third Edition
Analysis models and design models
CS310 Software Engineering Lecturer Dr.Doaa Sami
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Presentation transcript:

Yu SunUniversity of Alabama at Birmingham PAR Works Jeff Gray University of Alabama Montpellier, France July 3rd, 2013 This research is supported by NSF CAREER award CCF University of Alabama at Birmingham End-User Support for Debugging Demonstration-based Model Transformation Execution University of Alabama

Outline  Model Transformation by Demonstration (MTBD)  MTBD Debugger 2

Domain-Specific Modeling (DSM)  DSM specifies a system using domain concept models, and enables code generation from models Problem Domains Domain- Specific Modeling Languages Represent the System … Low-Level Software Artifacts Generate the Code 3

DSM Helps End-User Programming  DSM enables end-users to participate in software development 4 End-UsersEnd-User Developers Upgrade Using DSM

A B cde B cde F B cde Model Evolution Model Scalability Aspect- Oriented Modeling Model Layout Model Management Model Refactoring Typical Model Evolution Activities 5

Using Model Transformation Languages  MTLs are specialized languages to implement model transformation tasks  Automate model transformations by programming 6 QVT Query/View/Transformation ECL Embedded Constraint Language GReAT Graph Rewriting and Transformation Popular Model Transformation Languages

Difficult to Learn and Use MTLs 7 End-Users Metamodel Diversity of MTLs Programming Concepts

The Challenges Lead to an Irony  A technology meant to enable end-users to participate in software development, does not enable end-users to change and evolve the software 8 End-UsersEnd-User Developers Upgrade Using DSM End-Users Degrade Using MTL Modeling SystemModel Evolution

Model Transformation By Demonstration (MTBD)  A complete model transformation framework  Specify and execute model transformations  Users are fully isolated from MTLs and metamodel definitions  Infer and generate model transformation patterns by demonstrating model transformations on concrete examples 9 Add, Remove, Update

Overview of MTBD 10 User Demonstration Operation Recording Pattern Inference User Refinement Operation Optimization Pattern Execution Correctness Checking Execution Control Pattern Repository MT Specification MT Execution

A Model Transformation Example  If a room contains both a weapon (>100) and gold, replace them with a monster having half the power of the weapon Source model with the weapon and gold Target model with the monster

User Demonstration 12 Operation Recording Pattern Inference User Refinement Operation Optimization Pattern Execution Correctness Checking Execution Control Pattern Repository User Demonstration Edit a sample source model to change it into the desired target model, reflecting the purpose of the transformation Before Demonstration After Demonstration Attribute refactoring to demonstrate attribute transformation on a concrete model

Execution Control User Demonstration Operation Recording 13 Pattern Inference User Refinement Operation Optimization Pattern Execution Correctness Checking Pattern Repository Operation Recording All the user operations performed during the demonstration will be recorded, as well as the related context information StepOperation TypeDetail 1Delete ElementRoot.MazeFolder.Room2.Weapon1 2Delete ElementRoot.MazeFolder.Room2.Gold1 3Add ElementRoot.MazeFolder.Room2 (Monster1) 4Update ElementRoot.MazeFolder.Room2.Monster1.power (Root.MazeFolder.Room2.Weapon1.power / 2)

Execution Control Operation Recording User Demonstration Operation Optimization 14 Pattern Inference User Refinement Pattern Execution Correctness Checking Pattern Repository for each op in the input operation list switch (op.type) case ADD_ELEM: for each op_temp after the current op in the list if op_temp.type == REMOVE_ELEM and op_temp removes what op added and the element was not referred in between then remove both op and op_temp from the list case MODIFY_ELEM: traverse the final model instance and search the element being modified if not found then remove op from the list … Users may perform meaningless operations that need to be optimized …… StepOperation 1Add a Monster1 in Room2 2Add the Gold1 in Room2 …… …Delete Monster1 in Room2 Operation Optimization

Execution Control Operation Optimization Operation Recording User Demonstration Pattern Inference 15 User Refinement Pattern Execution Correctness Checking Pattern Repository A transformation pattern consists of: Transformation precondition (When and Where) Transformation actions (How) Pattern Inference Precondition (Elements needed) elem1.elem2.elem3.elem4 elem1.elem2.elem3.elem6 elem1.elem2.elem3 (elem5) elem1.elem2.elem3.elem5 Precondition (Elements Type) elem1 – Root elem2 – MazeFolder elem3 – Room elem4 – Monster elem5 – Weapon elem6 – Gold No.Transformation Actions 1Remove elem4 2Remove elem6 2Add elem5 in elem3 3Set elem5.power = elem4.power / 2

Execution Control Operation Optimization Operation Recording User Demonstration Pattern Execution Correctness Checking Pattern Repository Pattern Inference User Refinement 16 User Refinement The initially inferred pattern is usually not accurate: Preconditions are not specific enough Transformation actions are not generic enough User-centric interfaces are provided to enable user refinement: Users continue to work at the model instance level Isolate users from knowing MTLs and metamodels Precondition (Elements needed) elem1.elem2.elem3.elem4 (elem4 > 100) elem1.elem2.elem3.elem6 elem1.elem2.elem3 (elem5) elem1.elem2.elem3.elem5 Precondition (Elements Type) elem1 – Root elem2 – MazeFolder elem3 – Room elem4 – Monster elem5 – Weapon elem6 – Gold

Execution Control Pattern Repository 17 Operation Optimization Operation Recording User Demonstration User Refinement Pattern Execution Correctness Checking Pattern Inference All the finalized patterns are stored in the repository for future reuse Pattern Repository

Execution Control Pattern Execution 18 Operation Optimization Operation Recording User Demonstration User Refinement Correctness Checking Pattern Repository Pattern Inference Pattern Execution The execution engine is responsible for: Precondition matching Execution of transformation actions >100 Traverse the whole model instance and list all elements Start to match the elements in the precondition one-by-one Backtracking algorithm is used No.Transformation Actions 1Remove elem4 2Remove elem6 2Add elem5 in elem3 3Set elem5.power = elem4.power / 2

Execution Control Correctness Checking 19 Operation Optimization Operation Recording User Demonstration User Refinement Pattern Execution Pattern Repository Pattern Inference To prevent the execution from violating the metamodel definitions: Each execution is logged Correctness checking is performed after each execution After a violation occurs, all the executed operations will be undone Correctness Checking

Execution Control 20 Operation Optimization Operation Recording User Demonstration User Refinement Pattern Execution Correctness Checking Pattern Repository Pattern Inference An execution controller is built to enable: Execute multiple transformation patterns Control the execution sequence of multiple transformation patterns Control the number of execution times Execution Control

Practical and Incremental Development of MTBD 21 User Demonstration Operation Recording Pattern Inference User Refinement Operation Optimization Pattern Execution Correctness Checking Pattern Repository Model Evolution Model Scalability Aspect- Oriented Modeling Model Layout Model Management Model Refactoring For each type of model evolution: Identify the critical requirements Update MTBD to make it work Execution Control

The Need for a MTBD Debugger 22 User Demonstration Operation Recording Pattern Inference User Refinement Operation Optimization Pattern Execution Correctness Checking Execution Control Pattern Repository MT Specification MT Execution Users can make mistakes, and bugs can happen. Users can make mistakes, and bugs can emerge ModelsModels’ Transformation Pattern Reusing existing patterns may cause unknown errors

Lack of an End-User MTL Debugger  Bugs can occur in MTL rules  Most MTLs do not have an associated debugger  Some existing debuggers are at the same level as MTLs, so not appropriate for end-users 23 ModelsModels’ MTL Rules End-Users

MTBD Debugger: Being User-Centric  The debugger should be at the same level of abstraction as MTBD, and be domain-focused 24 End-UsersEnd-User Developers Upgrade Using DSM Modeling System End-User Developers Model Evolution Debugging Model Evolution Using MTBD End-Users Debugging

MTBD Debugger: Being User-Centric  The debugger should be at the same level of abstraction as MTBD, and be domain-focused 25 End-UsersEnd-User Developers Upgrade Using DSM Modeling System End-User Developers Model Evolution End-User Developers Debugging Model Evolution Using MTBD Using MTBD Debugger

Overview of MTBD Debugger 26 User Demonstration Operation Recording Pattern Inference User Refinement Operation Optimization Pattern Execution Correctness Checking Pattern Repository MT Specification MT Execution Execution Control ModelsModels’ Transformation Pattern MTBD Debugger Pattern Matching View Pattern Execution View Precondition Transformation Actions

MTBD Debugger Case Study 27 Replace Monster with Weapon + Gold 120 (Monster.Strength > 100) SequenceOperation Performed 1Remove Monster1 in Root.TextGameFolder.Room2 2Add a Weapon in Root.TextGameFolder.Room2 3Add a Gold in Root.TextGameFolder.Room2 4 Set Root.TextGameFolder.Room2.Weapon.strength = Monster1.strength = 120 5Set precondition on Monster1: Monster1.strength > 10 This error may cause the generated pattern to be over-matched in the model

MTBD Debugger In Action Pattern Execution View Step-through each transformation action Display relative information Track the currently matched elements Pattern Matching View Display the information about the matched elements Display the precondition

MTBD Debugger In Action Common Bugs Over-Matched Precondition Under-Matched Precondition Incorrect Generic Operation Choosing Wrong Element Incorrect Attribute Expression

MTBD Debugger In Action Common Bugs Over-Matched Precondition Under-Matched Precondition Incorrect Generic Operation Choosing Wrong Element Incorrect Attribute Expression

MTBD Debugger In Action Common Bugs Over-Matched Precondition Under-Matched Precondition Incorrect Generic Operation Choosing Wrong Element Incorrect Attribute Expression

MTBD Debugger In Action Common Bugs Over-Matched Precondition Under-Matched Precondition Incorrect Generic Operation Choosing Wrong Element Incorrect Attribute Expression

MTBD Debugger Summary  MTBD Debugger assists in debugging MTBD transformation patterns  Pattern Matching View checks the matching elements  Pattern Execution View traces the transformation actions  MTBD Debugger is at the same level of abstraction as MTBD  Users do not need to know MTLs  Users are isolated from metamodels 33

Conclusion & Future Work  Enable end-users to participate in changing and evolving software models with reusable transformations and debugging support  Model Transformation By Demonstration (MTBD)  An end-user centric model transformation approach to support model evolution activities  MTBD Debugger  An end-user centric debugging facility for MTBD  Next version  Improve user experience by adding graphical representations  Breakpoint support  Use MTBD debugger to support MTL debugging 34

Thank you  Personal:   Model Transformation By Demonstration:  Model Transformation By Demonstration

Related Work  MTL Debugger (ATL, Fujaba)  Allilaire ‘06, Königs ’05, Wagner ’06  Transformation Nets (TNs) Supported Debugging  Schoenboeck ’10  Forensic MT Debugging  Hillberd ‘07  M2T (Model-to-Text) Debugging  Dhoolia‘10 36