Cookies Policy
The website need some cookies and similar means to function. If you permit us, we will use those means to collect data on your visits for aggregated statistics to improve our service. Find out More
Accept Reject
  • Menu
Publications

Publications by HASLab

2014

Model-based programming environments for spreadsheets

Authors
Cunha, J; Mendes, J; Saraiva, J; Visser, J;

Publication
SCIENCE OF COMPUTER PROGRAMMING

Abstract
Spreadsheets can be seen as a flexible programming environment. However, they lack some of the concepts of regular programming languages, such as structured data types. This can lead the user to edit the spreadsheet in a wrong way and perhaps cause corrupt or redundant data. We devised a method for extraction of a relational model from a spreadsheet and the subsequent embedding of the model back into the spreadsheet to create a model-based spreadsheet programming environment. The extraction algorithm is specific for spreadsheets since it considers particularities such as layout and column arrangement. The extracted model is used to generate formulas and visual elements that are then embedded in the spreadsheet helping the user to edit data in a correct way. We present preliminary experimental results from applying our approach to a sample of spreadsheets from the EUSES Spreadsheet Corpus. Finally, we conduct the first systematic empirical study to assess the effectiveness and efficiency of this approach. A set of spreadsheet end users worked with two different model-based spreadsheets, and we present and analyze here the results achieved.

2014

Refactoring meets Model-Driven Spreadsheet Evolution

Authors
Cunha, J; Fernandes, JP; Martins, P; Pereira, R; Saraiva, J;

Publication
2014 9TH INTERNATIONAL CONFERENCE ON THE QUALITY OF INFORMATION AND COMMUNICATIONS TECHNOLOGY (QUATIC)

Abstract
Software refactoring is a well-known technique that provides transformations on software artifacts with the aim of improving their overall quality. In this paper we present a set of refactorings for ClassSheets, a modeling language that allows to specify the business logic of a spreadsheet in an object-oriented fashion. The set of refactorings that we propose allows us to improve the quality of these spreadsheet models. Moreover, it is implemented in a setting that guarantees that all model refactorings are automatically carried to all the corresponding (spreadsheet) instances, thus providing an automatic evolution of the data so it is always synchronized with the model.

2014

An Approach for Graphical User Interface External Bad Smells Detection

Authors
Silva, JC; Campos, JC; Saraiva, J; Silva, JL;

Publication
NEW PERSPECTIVES IN INFORMATION SYSTEMS AND TECHNOLOGIES, VOL 2

Abstract
In the context of an effort to develop methodologies to support the evaluation of interactive system, this paper investigates an approach to detect graphical user interface external bad smells. Our approach consists in detecting user interface external bad smells through model-based reverse engineering from source code. Models are used to define which widgets are present in the interface, when can particular graphical user interface (GUI) events occur, under which conditions, which system actions are executed, and which GUI state is generated next. From these models we obtain metrics that can later be used to identify the smells.

2014

Smelling Faults in Spreadsheets

Authors
Abreu, R; Cunha, J; Fernandes, JP; Martins, P; Perez, A; Saraiva, J;

Publication
2014 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME)

Abstract
Despite being staggeringly error prone, spreadsheets are a highly flexible programming environment that is widely used in industry. In fact, spreadsheets are widely adopted for decision making, and decisions taken upon wrong (spreadsheet-based) assumptions may have serious economical impacts on businesses, among other consequences. This paper proposes a technique to automatically pinpoint potential faults in spreadsheets. It combines a catalog of spreadsheet smells that provide a first indication of a potential fault, with a generic spectrum-based fault localization strategy in order to improve (in terms of accuracy and false positive rate) on these initial results. Our technique has been implemented in a tool which helps users detecting faults. To validate the proposed technique, we consider a well-known and well-documented catalog of faulty spreadsheets. Our experiments yield two main results: we were able to distinguish between smells that can point to faulty cells from smells and those that are not capable of doing so; and we provide a technique capable of detecting a significant number of errors: two thirds of the cells labeled as faulty are in fact (documented) errors.

2014

Generating attribute grammar-based bidirectional transformations from rewrite rules

Authors
Martins, P; Saraiva, J; Fernandes, JP; Wyk, EV;

Publication
PEPM

Abstract
Higher order attribute grammars provide a convenient means for specifying uni-directional transformations, but they provide no direct support for bidirectional transformations. In this paper we show how rewrite rules (with non-linear right hand sides) that specify a forward/get transformation can be inverted to specify a partial backward/put transformation. These inverted rewrite rules can then be extended with additional rules based on characteristics of the source language grammar and forward transformations to create, under certain circumstances, a total backward transformation. Finally, these rules are used to generate attribute grammar specifications implementing both transformations. Categories and Subject Descriptors D.3.3 [Programming Languages]: Data Types and Structures, Recursion; F.3.2 [Logics and Meanings of Programs]: Semantics of Programming Languages- Algebraic approaches to semantics; I.1.1 [Symbolic and Algebraic Manipulation]: Expressions and Their Representation.

2014

Defining Energy Consumption Plans for Data Querying Processes

Authors
Gonçalves, R; Saraiva, J; Belo, O;

Publication
2014 IEEE FOURTH INTERNATIONAL CONFERENCE ON BIG DATA AND CLOUD COMPUTING (BDCLOUD)

Abstract
During the last few years, we have been witnessing a significant increase in research about the development and production of hardware and software components with low levels of energy consumption. Today, energy consumption is one of the most critical issues in the area of information technologies and communication. One of the fractions in which this concern is most evident is in the management of database systems, with particular emphasis on those commonly designated as data centers. On these systems daily run a large amount of data querying processes, monitored and controlled by high sophisticated database management systems, which are responsible to establish efficient processing plans to support them. Using the information provided by a querying execution plan, especially the one related to the operators they used to perform database operations, we designed and developed an alternative method to define energy consumption plans for database queries. In this paper we present how such method works on the estimation of the energy consumption of each database operator integrated in the execution plan of a query at compile time. With it, we build up its corresponding energy consumption plan for executing the query, taking into consideration as well the characteristics of the computational platforms used for that.

  • 152
  • 260