Publications

Export 29 results:
Sort by: Author [ Title  (Desc)] Type Year
A B C D E F G H I J K L [M] N O P Q R S T U V W X Y Z   [Show ALL]
C
Combining Smells and Fault Localization in Spreadsheets (in preparation), Abreu, Rui, Cunha Jácome, Fernandes João P., Martins Pedro, Perez Alexandre, and Saraiva João , (Submitted) paper.pdf
B
Bidirectional Transformation of Model-Driven Spreadsheets, Cunha, Jácome, Fernandes João P., Mendes Jorge, Pacheco Hugo, and Saraiva João , Theory and Practice of Model Transformations, Volume 7307, p.105–120, (2012) Abstracticmt12.pdf

Spreadsheets play an important role in software organizations. Indeed, in large software organizations, spreadsheets are not only used to define sheets containing data and formulas, but also to collect information from different systems, to adapt data coming from one system to the format required by another, to perform operations to enrich or simplify data, etc. In fact, over time many spreadsheets turn out to be used for storing and processing increasing amounts of data and supporting increasing numbers of users. Unfortunately, spreadsheet systems provide poor support for modularity, abstraction, and transformation, thus, making the maintenance, update and evolution of spreadsheets a very complex and error-prone task. We present techniques for model-driven spreadsheet engineering where we employ bidirectional transformations to maintain spreadsheet models and instances synchronized. In our setting, the business logic of spreadsheets is defined by ClassSheet models to which the spreadsheet data conforms, and spreadsheet users may evolve both the model and the data instances. Our techniques are implemented as part of the MDSheet framework: an extension for a traditional spreadsheet system.

A Bidirectional Model-driven Spreadsheet Environment (Poster/Abstract), Cunha, Jácome, Fernandes João Paulo, Mendes Jorge, and Saraiva João , Proceedings of the 34rd International Conference on Software Engineering, p.1443–1444, (2012) Abstractabstract.pdfposter.pdf

n this extended abstract we present a bidirectional model-driven framework to develop spreadsheets. By being model driven, our approach allows to evolve a spreadsheet model and automatically have the data co-evolved. The bidirectional component achieves precisely the inverse, that is, to evolve the data and automatically obtain a new model to which the data conforms.

A
Automatically Inferring Models from Spreadsheets, Cunha, Jácome, Erwig Martin, Mendes Jorge, and Saraiva João , Automated Software Engineering (ASE), Volume 23, Issue 3, p.361-392, (2016) Abstractase14.pdfWebsite

Many errors in spreadsheet formulas can be avoided if spreadsheets are built automatically from higher-level models that can encode and enforce consistency constraints in the generated spreadsheets. Employing this strategy for legacy spreadsheets is difficult, because the model has to be reverse engineered from an existing spreadsheet and existing data must be transferred into the new model-generated spreadsheet. We have developed and implemented a technique that automatically infers relational schemas from spreadsheets. This technique uses particularities from the spreadsheet realm to create better schemas. We have evaluated this technique in two ways: First, we have demonstrated its applicability by using it on a set of real-world spreadsheets. Second, we have run an empirical study with users. The study has shown that the results produced by our technique are comparable to the ones developed by experts starting from the same (legacy) spreadsheet data. Although relational schemas are very useful to model data, they do not fit well spreadsheets as they do not allow to express layout. Thus, we have also introduced a mapping between relational schemas and ClassSheets. A ClassSheet controls further changes to the spreadsheet and safeguards it against a large class of formula errors. The developed tool is a contribution to spreadsheet (reverse) engineering, because it fills an important gap and allows a promising design method (ClassSheets) to be applied to a huge collection of legacy spreadsheets with minimal effort.