Invertible Program Restructurings for Continuing Modular Maintenance
  When one chooses a main axis of structural decompostion for a software, such as function- or data-oriented decompositions, the other axes become secondary, which can be harmful when one of these secondary axes becomes of main importance. This is called the tyranny of the dominant decomposition. In the context of modular extension, this problem is known as the Expression Problem and has found many solutions, but few solutions have been proposed in a larger context of modular maintenance. We solve the tyranny of the dominant decomposition in maintenance with invertible program transformations. We illustrate this on the typical Expression Problem example. We also report our experiments with Java and Haskell programs and discuss the open problems with our approach. 
Julien Cohen (LINA), R\'emi Douence (LINA, INRIA - EMN), Akram Ajouli   (LINA, INRIA - EMN)
cs.SE