Universidad Católica de Santiago del Estero

Facultad de Matemática Aplicada




Software maintenance supported by program transformation techniques

"In nature nothing is created, nothing is lost, all is transformed." Antoine-Laurent de Lavoisier (1743-1794).


Description

Nowadays software refactoring is being used for improving design, and so, the conditions for comprehension and maintenance. However, the metrics for measuring the improvements are unable to supply reliable parameters since there are many aspects affecting comprehension, which cannot be measured: the programmer's programming style, their knowledge of the application and the domain problem, the comprehension strategy applied and the tools used, among others. Furthermore, each maintenance request has its own characteristics which can be "matched" differently by different code arrangements. That means that a given maintenance request can fit well with the current code arrangement. However, given a request with other characteristics the (same) current code arrangement can fail to supply the best conditions for comprehension and maintenance. Therefore, we believe that refactoring, as applied today, is not the final solution for the problems arising during comprehension and maintenance.

In this project, we advocate that working on the current artifact version only, as the existing maintenance approaches suggest, is insufficient for an effective maintenance. Instead, we argue that the code should be transformed by program transformation techniques (refactoring specifically) to generate multiple subsidiary versions automatically. Once the subsidiary version (less error prone) that better fits the request at hand has been selected, the changes would be implemented on it and then they would be propagated back to the current version. We believe that this "dynamic" maintenance approach, opposite to the existing "static" software maintenance approaches (where the process is performed on the current artifact version only), will allow programmers to operate on the software artifact from different perspectives.

© Copyright 2013, Gustavo Villavicencio