Synchronizing Models and Code

Synchronizing Models and Code is a project funded by the Swiss National Science Foundation (SNSF project # 200020_131827).

Funding: 337,337.— SFr.
Period: Oct 1, 2010 - Dec. 30, 2012
Collaborating teams: REVEAL research group, University of Lugano, Switzerland
RMod group, INRIA, Lille, France
Loose Research Group, Politehnica University of Timisoara, Rumania

Keywords

Software evolution; Reflection; Meta-modeling; Context-oriented programming; Clone detection; Software architecture; Reverse engineering

Summary

Successful software systems are under constant pressure to adapt to changing circumstances. Software adaptations take many forms, are of varying granularity, and may need to take effect over extreme variations in time scale. Running software systems are often subject to fine-grained, short-term adaptation to available resources and run-time context. Modest requirements changes typically provoke medium-grained, medium and long-term evolution of software source code, with consequent short-term adaptation of running software. Deeper requirements changes can provoke coarse-grained, long-term adaptation at the architectural level.

In each of these cases we are faced with the challenge of keeping the source code and the running software synchronized with changes in the higher-level domain and requirements models. This synchronization, however, is often difficult because current languages and runtime systems assume global consistency. They cannot cope with typical inconsistencies of systems with rapidly changing requirements, such as unpredictable variations in the execution environments, inconsistent versions of components, or dispersed code sources.

In this project we propose to study novel techniques to keep software systems synchronized with models in the face of varying granularities of change over different time scales.

For more information, please consult the Research Plan of the project [pdf].


Intermediate report

The intermediate report covers the period from Oct. 1, 2010 through Sept. 30, 2011.

This project explores various ways of synchronizing software source code with implicit application domain knowledge. The key results achieved in each of the tracks of this project in the first year include:

This research has resulted in 9 full papers in international, peer-reviewed conferences, 6 peer-reviewed international workshop papers, and several theses.

For further details see:


Final report

The final report covers the period from Oct. 1, 2011 through Dec. 31, 2012.

This project explores various ways of synchronizing software source code with implicit application domain knowledge. The key results achieved in each of the tracks of this project are as follows:

For further details see: