i-nth logo


Andre Silva


Spreadsheets are among the most used programming languages today. The easy to use and the intuitive nature of the visual interface makes them a preferred programming tool for any kind of individual or organization. The flexibility they provide to organize data as users need to is one of the reasons that makes them so popular. However, this flexibility also makes them very error-prone.

In order to improve spreadsheet quality and reduce the number of errors, software engineering practices were introduced, namely object oriented and model-driven techniques. These techniques enabled the specification of the spreadsheet business logic, which offers the possibility to better structure data, while at the same time narrowing the range of types of errors made by user input. While these developments had a huge impact, spreadsheet evolution is still an inherently human process, which is in itself error-prone.

In many real world applications of spreadsheets, they are used to store and disseminate data between different systems. Different systems can use different data formats, this leads to the need to change and adapt the data produced by a source system so that it complies to the data format consumed by a target system. Usually in these cases, both the initial and final data models are known in advance.

The objective of this thesis is to present techniques that enable data evolution to be made automatically, using model-driven spreadsheets.


Evolving a spreadsheet model
Evolving a spreadsheet model

To evolve the model and instance previously defined, one must create the target model in a separated sheet, select the source model and press the "Evolve To" control.


2013, Master's thesis, Universidade do Minho, September

Full article

Directed evolution of model-driven spreadsheets