A Generative Approach to Model Interpreter Evolution

Slides:



Advertisements
Similar presentations
Object-oriented Software Change Dynamic Impact Analysis Lulu Huang and Yeong-Tae Song Dept. of Computer and Information Sciences Towson University Towson,
Advertisements

© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Meng Tian Extension in Domain Specific Code Generation with Ontology Based Aspect Weaving Supervisor: Julian Rathke
CS 355 – Programming Languages
Normans Principles Usability Engineering. Normans Principle Norman’s model of interaction is perhaps the most influential in human computer interaction.
An Information Theory based Modeling of DSMLs Zekai Demirezen 1, Barrett Bryant 1, Murat M. Tanik 2 1 Department of Computer and Information Sciences,
1 Legacy System Evolution through Model-Driven Program Transformation Funded by the DARPA Information Exploitation Office (DARPA/IXO), under the Program.
Levels of Independence in Aspect-Oriented Modeling Workshop on Model-driven Approaches to Middleware Applications Development June 17, 2003 Jeff Gray,
A Generative and Model Driven Framework for Automated Software Product Generation Wei Zhao Advisor: Dr. Barrett Bryant Computer and Information Sciences.
Yu SunUniversity of Alabama at Birmingham PAR Works Jeff Gray University of Alabama Montpellier, France July 3rd, 2013 This research is supported.
Model-Driven Program Transformation of a Large Avionics Application Jeff Gray, Jing Zhang, Yuehua Lin, Suman Roychoudhury, Hui Wu, Rajesh Sudarsan, Aniruddha.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Key Challenges for Modeling Language Creation by Demonstration Hyun Cho, Jeff Gray Department of Computer Science University of Alabama Jules White Bradley.
E-R Modeler: A Database Modeling Toolkit for Eclipse Hui Wu wuh -at- cis.uab.edu Academic Advisor : Dr. Jeff Gray gray -at-
Workshop 16: An upward shift in abstraction leads to a corresponding increase in productivity. In the past this has occurred when programming languages.
A Domain-Specific Modeling Language for Scientific Data Composition and Interoperability Hyun ChoUniversity of Alabama at Birmingham Jeff GrayUniversity.
Validated Model Transformation Tihamér Levendovszky Budapest University of Technology and Economics Department of Automation and Applied Informatics Applied.
Adaptive Hypermedia Tutorial System Based on AHA Jing Zhai Dublin City University.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
Semantic Foundations for Model-Integrated Computing A panel at the First OMG MIC Workshop Arlington, VA October 14, 2004 Jeff Gray, University of Alabama.
Object Oriented Reverse Engineering JATAN PATEL. What is Reverse Engineering? It is the process of analyzing a subject system to identify the system’s.
APPLY FUNCTIONAL MODELING TO CONSEQUENCE ANALYSIS IN SUPERVISION SYSTEMS Present by Xinxin Zhang 1 Morten Lind 1, Giulio Gola 2,
Generative Approaches for Application Tailoring of Mobile Devices Victoria M. Davis, Dr. Jeff Gray (UAB) and Dr. Joel Jones (UA) Portions of this research.
A Generative Approach to Model Interpreter Evolution Jing Zhang, Jeff Gray, and Yuehua Lin {zhangj, gray, cis.uab.edu Dept. of Computer & Information.
Model Transformations Require Formal Semantics Yu Sun 1, Zekai Demirezen 1, Tomaz Lukman 2, Marjan Mernik 3, Jeff Gray 1 1 Department of Computer and Information.
A Model Transformation Approach to Automated Model Construction and Evolution Yuehua Lin Jeff Gray Department of.
Automaton-Based Approach for Defining Dynamic Semantics of DSLs Ulyana Tikhonova St. Petersburg State Polytechnical University,
AUTOMATIC GENERATION OF MODEL TRAVERSALS FROM METAMODEL DEFINITIONS Authors: Tomaž Lukman, Marjan Mernik, Zekai Demirezen, Barrett Bryant, Jeff Gray ACM.
Knowledge Representation Part I Ontology Jan Pettersen Nytun Knowledge Representation Part I, JPN, UiA1.
You Can’t Afford to be Late!
Chapter 1 The Systems Development Environment
Chapter 1 The Systems Development Environment
Sumant Tambe* Akshay Dabholkar Aniruddha Gokhale
Reference: COS240 Syllabus
A Graphical Modeling Environment for the
Independent Study of Ontologies
Chapter 1 The Systems Development Environment
Chapter 1 The Systems Development Environment
Software What Is Software?
Program comprehension during Software maintenance and evolution Armeliese von Mayrhauser , A. Marie Vans Colorado State University Summary By- Fardina.
Chapter 1 The Systems Development Environment
Business Rule Based Configuration Management and Software System Implementation Using Decision Tables Olegas Vasilecas, Aidas Smaizys VGTU, Vilnius, Lithuania.
CS 790M Project preparation (I)
Chapter 3: The Requirements Workflow
Metaprogramming and its relevance in Software Engineering
Model-Driven Analysis Frameworks for Embedded Systems
Programming languages and software development
Dr. Sudha Ram Huimin Zhao Department of MIS University of Arizona
Logical architecture refinement
Methontology: From Ontological art to Ontological Engineering
Implementing Language Extensions with Model Transformations
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
DoDAF 2.x Meta Model (DM2) Conceptual Level
Transforming Automation through Artificial Intelligence
Evaluating Compuware OptimalJ as an MDA tool
Generic Language Technology (2IS15) Dynamic Semantics
KNOWLEDGE REPRESENTATION
MEgo2Vec: Embedding Matched Ego Networks for User Alignment Across Social Networks Jing Zhang+, Bo Chen+, Xianming Wang+, Fengmei Jin+, Hong Chen+, Cuiping.
Templatized Model Transformation: Enabling Reuse in Model Transformations Amogh Kavimandan and Aniruddha Gokhale Dept. of EECS, Vanderbilt University,
Automated Software Integration
Model Comparison: A Key Challenge for Transformation Testing and Version Control in Model Driven Software Development Yuehua Lin, Jing Zhang, Jeff Gray.
Automated Analysis and Code Generation for Domain-Specific Models
Computational Models of Discourse Analysis
Implementing Language Extensions with Model Transformations
System Analysis Tools By Prof. Mrs. Dipali Ghatge.
Chapter 1 The Systems Development Environment
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
CS 426 CS 791z Topics on Software Engineering
CS 426 CS 791z Topics on Software Engineering
Software Architecture & Design
Presentation transcript:

A Generative Approach to Model Interpreter Evolution Jing Zhang, Jeff Gray, and Yuehua Lin {zhangj, gray, liny} @ cis.uab.edu Dept. of Computer & Information Sciences University of Alabama at Birmingham http://www.cis.uab.edu/softcom/ Funded by the DARPA Information Exploitation Office (DARPA/IXO), under the Program Composition for Embedded Systems (PCES) program

Evolution of models and interpreters in terms of meta-model changes Define Interpret Interpretern Modeln Meta-modeln Interpreter0 Model0 Meta-model0 ∆M 1 ∆MM 1 ∆I 1 ∆M 2 ∆MM 2 ∆I 2 ∆M n ∆MM n ∆I n …… Based on ∆MM: The changes made to the meta-models ∆M: The changes reflected in the domain models ∆I: The changes reflected in the model interpreters

Example: Old/New Metamodel and model

Example: Old/New Interpreter CBuilderAtom *GetStartState( CBuilderModel *StateDiagram) { CBuilderAtom *startstate = null; const CBuilderAtomList *states = StateDiagram->GetAtoms("State"); POSITION pos=states->GetHeadPosition(); while(pos) { CBuilderAtom *st = states->GetNext(pos); CBuilderConnectionList *cons = st->GetInConnections("Transition"); if ( cons == null ) if ( startstate == null) startstate = st; else <<ERROR: more than one state has no InConnections>> } ASSERT ( startstate !=null ); return startstate; } CBuilderAtom *GetStartState( CBuilderModel *StateDiagram) { const CBuilderAtomList *startstates = StateDiagram->GetAtoms("StartState"); ASSERT(startstates->GetCount()==1); CBuilderAtom *startstate = startstates->GetHead(); return startstate; }

Technical Challenges ∆MM ∆I Lack of formally-written model interpreter Different developers may program interpreters in various ways Hard to maintain and evolve such subjective realizations of model interpreters Lack of formal specification for metamodel transformation Metamodel transformation specifications must include the entire knowledge for the underlying interpreter evolution ∆MM ∆I Lack of support for parsing and invasively transforming program source code from higher-level models. ? Utilize a mature program transformation engine: The Design Maintenance System (DMS)

Model Interpreter Evolution Architecture (MIEA) Modeling API’ Modeling API void CComponent::InvokeEx(CBuilder &builder) { Interpreter aInterpreter; CString fileName; char *specFile=new char[fileName.GetLength()]; strcpy(specFile, fileName); …. } Interpreters’ if(!aInterpreter.selectSpecAspects(fileName)) { return; } … Interpreters Metamodel’ Metamodel model Models Model Xform Engine Model Xform Specification Models’

DMS rewriting rules for evolving intepreter(1) Differences of names for any model entities, relationships and attributes rule ChangeName (id:identifier): expression_statement -> expression_statement = "\id -> GetModels(\“State\");" -> "\id -> GetModels(\“StartState\");".

DMS rewriting rules for evolving intepreter(2) Differences of model types rule ChangeModelType (id:identifier): expression_statement -> expression_statement = “\id -> GetAtoms(\“State\”);” -> “\id -> GetModels(\“State\”);”.

DMS rewriting rules for evolving intepreter(3) Differences of attribute types Problems: 2 ways: comparison to infer the rules or attach them to model transformation specifications rule ChangeAttrType (): declaration_statement -> declaration _statement = “CString Text;” -> “int Text;”.

Conclusion Ideal Goal: Proposed Solution: Obstacles: Support the (semi)-automation of model interpreter evolution in terms of metamodel changes and modeling API changes Proposed Solution: Model Interpreter Evolution Architecture Obstacles: Informal model interpreter Hard to maintain the fidelity mapping of high-level abstract models to the low-level source code Possible solution approaches to be investigated: Attach program rewriting rules to the existing model transformation specification Develop a new high-level specification for model transformation that can generate the rewriting rules Investigate an intelligent model comparison technique to generate the rules through human interactions

Thank You !! Questions ??