On the Power of Abstraction: a Model-Driven Co-evolution Approach of Software CodeNIER
Model-driven software engineering allows abstraction through the use of models and then automation by transforming them into various artefacts, in particular to code. For example, 1) from architectural models to code , 2) from metamoddels to API code with EMF in Eclipse, 3) from entity models to front-end and back-end code in jHispter, ect. In all these examples, the generated code is usually enriched by developers with additional code implementing advanced functionalities (e.g., checkers, recommenders, etc.) to build a full coherent system. When the system must evolve, the models are evolved before to re-generate the code. As a result, the developers’ enriched code may be impacted and thus may need to be co-evolved accordingly. Many approaches support the co-evolution of various artifacts, but, not the co-evolution of code. This paper sheds light on this issue and envisions to fill this gap.
We formulate the hypothesis that the code co-evolution can be driven by the model changes by means of change propagation. To investigate this hypothesis, we implemented a prototype for the use case of metamodels and their accompanying code in EMF Eclipse. As a preliminary evaluation, we considered as a case study the implementation of the OCL language in Eclipse. In particular, the case of the OCL Pivot metamodel evolution and its code co-evolution in two projects from version 3.2.2 to 3.4.4. Preliminary results confirms our hypothesis that evolution changes can effectively drive the code co-evolution. On 562 impacts in two projects’ code by 221 metamodel changes, our approach was able to reach 89% and 92,5% respectively of precision and recall.
Fri 10 JulDisplayed time zone: (UTC) Coordinated Universal Time change
07:00 - 08:00 | I19-Code Generation and VerificationTechnical Papers / Software Engineering in Practice / New Ideas and Emerging Results at Baekje Chair(s): Raffi Khatchadourian City University of New York (CUNY) Hunter College | ||
07:00 6mTalk | Using Hypersafety Verification for Proving Correctness of Programming AssignmentsNIER New Ideas and Emerging Results Jude Anil TCS Research, Sumanth Prabhu TCS Research, Kumar Madhukar TCS Innovation Labs (TRDDC), R Venkatesh | ||
07:06 12mTalk | Automatically Testing String SolversTechnical Technical Papers Pre-print | ||
07:18 6mTalk | On the Power of Abstraction: a Model-Driven Co-evolution Approach of Software CodeNIER New Ideas and Emerging Results Djamel Eddine Khelladi CNRS, France, Benoit Combemale University of Toulouse and Inria, Mathieu Acher (Univ Rennes, Inria, IRISA), Olivier Barais (Univ Rennes, Inria, IRISA) | ||
07:24 12mTalk | Co-Evolving Code with Evolving MetamodelsTechnical Technical Papers Djamel Eddine Khelladi CNRS, France, Benoit Combemale University of Toulouse and Inria, Mathieu Acher (Univ Rennes, Inria, IRISA), Olivier Barais (Univ Rennes, Inria, IRISA), Jean-Marc Jézéquel Univ Rennes - IRISA | ||
07:36 12mTalk | Rule-based Code Generation in Industrial Automation: Four Large-scale Case Studies applying the CAYENNE MethodSEIP Software Engineering in Practice Heiko Koziolek ABB Corporate Research, Andreas Burger ABB Corporate Research, Marie Platenius-Mohr ABB Corporate Research, Julius Rückert ABB Corporate Research, Hadil Abukwaik ABB Corporate Research, Raoul Jetley ABB, Abdulla PP ABB Corporate Research Pre-print | ||
07:48 12mTalk | Understanding and Handling Alert Storm for Online Service SystemsSEIP Software Engineering in Practice Nengwen Zhao Tsinghua University, Junjie Chen Tianjin University, Xiao Peng China EverBright Bank, Honglin Wang BizSeer, Xinya Wu BizSeer, Yuanzong Zhang BizSeer, Zikai Chen Tsinghua University, Xiangzhong Zheng BizSeer, Xiaohui Nie Tsinghua University, Gang Wang China EverBright Bank, Yong Wu China EverBright Bank, Fang Zhou China EverBright Bank, Wenchi Zhang BizSeer, Kaixin Sui BizSeer, Dan Pei Tsinghua University |