Metamodels play a significant role to describe and analyze the relations between domain concepts. They are also cornerstone to build a software language (SL) for a domain and its associated tooling. Metamodel definition generally drives code generation of a core API. The latter is further enriched by developers with additional code implementing advanced functionalities, e.g., checkers, recommenders, etc. When a SL is evolved to the next version, the metamodels are evolved as well before to re-generate the core API code. As a result, the developers added code both in the core API and the SL toolings may be impacted and thus may need to be co-evolved accordingly. Many approaches support the co-evolution of various artifacts when metamodels evolve. However, not the co-evolution of code. This paper fills this gap. We propose a semi-automatic co-evolution approach based on change propagation. The premise is that knowledge of the metamodel evolution changes can be propagated by means of resolutions to drive the code co-evolution. Our approach leverages on the abstraction level of metamodels where a given metamodel element has often different usages in the code. It supports alternative co-evaluations to meet different developers needs. Our work is evaluated on three Eclipse SL implementations, namely OCL, Modisco, and Papyrus over several evolved versions of metamodels and code. In response to five different evolved metamodels, we co-evolved caused impacts on 18 projects. A comparison of our co-evolved code with the versioned ones shows the usefulness of our approach, while supporting useful alternative co-evolution that developers have manually performed.
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 |