Following a trend of other ICSE 2012 participants (e.g., Felienne Hermans), I decided to try and write quick, on-the-fly summaries of some ICSE presentations that I find interesting. I’m also working on a not-so-live summary of SEAMS 2012, and that will be posted as soon as I finish it.
So, earlier today, in Research Session 14 (Models), Yijun Yu presented the paper Maintaining Invariant Traceability through Bidirectional Transformations.
The work focuses on the “Twin Peaks” relationship between requirements (which are about solving the right problems) and architectures (which are about to solve the problems right). It’s an old problem (see Basar Nuseibeh’s paper Weaving together requirements and architectures), but one that still provides several challenges.
Yijun and his colleagues see traceability as model transformations. An example is a design model written using the Eclipse Modeling Framework (EMF) that allows developers to generate (and re-generate to keep sync) Java code from the model and change the model by refactoring the code. However, changes in code (marked with [cci_java]@generated NOT[/cci_java] so re-generations won’t override the custom changes) can break this sync.
Therefore, they propose not only to use what they call “vertical synchronization” from the EMF model to the generated code, but also the “horizontal synchronization” from code that is generated and code that has been customized and is no longer touched by EMF. Prof. Yu then presents the concept of invariant traceability, in which artifacts (in different steps of the software development process) can change, but the links between them should remain stable, in order to keep traceability.