Publications

Export 51 results:
Sort by: [ Author  (Desc)] Title 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 
C
Discovery-Based Edit Assistance for Spreadsheets, Cunha, Jácome, Saraiva João, and Visser Joost , Proceedings of the 2009 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), Washington, DC, USA, p.233–237, (2009) Abstractvl-hcc09.pdf

Spreadsheets can be viewed as a highly flexible end-users programming environment which enjoys wide-spread adoption. But spreadsheets lack many of the structured programming concepts of regular programming paradigms. In particular, the lack of data structures in spreadsheets may lead spreadsheet users to cause redundancy, loss, or corruption of data during edit actions. In this paper, we demonstrate how implicit structural properties of spreadsheet data can be exploited to offer edit assistance to spreadsheet users. Our approach is based on the discovery of functional dependencies among data items which allow automatic reconstruction of a relational database schema. From this schema, new formulas and visual objects are embedded into the spreadsheet to offer features for auto-completion, guarded deletion, and controlled insertion. Schema discovery and spreadsheet enhancement are carried out automatically in the background and do not disturb normal user experience.

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.

Querying Model-Driven Spreadsheets, Cunha, Jácome, Fernandes João Paulo, Mendes Jorge, Pereira Rui, and Saraiva João , Proceedings of the 2013 IEEE Symposium on Visual Languages and Human-Centric Computing, Washington, DC, USA, p.83–86, (2013) Abstractvlhcc2013-query.pdf

Spreadsheets are being used with many different purposes that range from toy applications to complete information systems. In any of these cases, they are often used as data repositories that can grow significantly. As the amount of data grows, it also becomes more difficult to extract concrete information out of them. This paper focuses on the problem of spreadsheet querying. In particular, we propose an expressive and composable technique where intuitive queries can be defined. Our approach builds on a model-driven spreadsheet development environment, and queries are expressed referencing entities in the model of a spreadsheet instead of in its actual data. Finally, the system that we have implemented relies on Google's query function for spreadsheets.

SmellSheet Detective: A Tool for Detecting Bad Smells in Spreadsheets, Cunha, Jácome, Fernandes João Paulo, Mendes Jorge, Martins Pedro, and Saraiva João , Proceedings of the 2012 IEEE Symposium on Visual Languages and Human-Centric Computing, Washington, DC, USA, p.243–244, (2012) Abstractvlhcc12-td.pdf

This tool demo paper presents SmellSheet Detective: a tool for automatically detecting bad smells in spreadsheets. We have defined a catalog of bad smells in spreadsheet data which was fully implemented in a reusable library for the manipulation of spreadsheets. This library is the building block of the SmellSheet Detective tool, that has been used to detect smells in large, real-world spreadsheet within the EUSES corpus, in order to validate and evolve our bad smells catalog.

A Structured Approach to Document Spreadsheets (in preparation), Cunha, Jácome, and Canteiro Diogo , (Submitted) jvlc.pdf
ES-SQL: Visually Querying Spreadsheets, Cunha, Jácome, Fernandes João Paulo, Mendes Jorge, Pereira Rui, and Saraiva João , Proceedings of the 2014 IEEE Symposium on Visual Languages and Human-Centric Computing, Washington, DC, USA, p.203–204, (2014) Abstractvlhcc14-td.pdf

This paper presents ES-SQL, an embedded tool for visually constructing queries over spreadsheets. This tool provides an expressive query environment which has knowledge on the business logic of spreadsheets, and by this knowledge it assists the user in defining the intended queries.

Evaluating Refactorings for Spreadsheet Models, Cunha, Jácome, Fernandes João Paulo, Mendes Jorge, Pereira Rui, Saraiva João Alexandre, and Martins Pedro , Journal of Systems and Software, Volume 118, p.234-250, (2016) Abstractmain.pdf

Software refactoring is a well-known technique that provides transformations on software artifacts with the aim of improving their overall quality.

In the past, we have proposed a catalog of refactoring for spreadsheet models expressed in the ClassSheets modeling language, which allows us to specify the business logic of a spreadsheet in an object-oriented fashion.

Reasoning about spreadsheets at the model level enhances a model-driven spreadsheet environment where a ClassSheet model and its conforming instance (the spreadsheet data) automatically co-evolves after a refactoring is applied at the model level. Our motivation for such research was to improve the model and its conforming instance: the spreadsheet data.

In this paper we define such refactorings using previously proposed evolution steps for models and instances.

We also present an empirical study we designed and conducted in order to confirm our original intuition that these refactorings have a positive impact on end-user productivity, both in terms of effectiveness and efficiency.

The results are presented not only in terms of productivity changes between refactored and non-refactored scenarios, but also in terms of overall user satisfaction, relevance, and experience.

In almost all cases the refactorings indeed improved end-users productivity. Moreover, in most cases users were more engaged with the refactored version of the spreadsheets they worked with.

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.

Embedding, Evolution, and Validation of Spreadsheet Models in Spreadsheet Systems, Cunha, Jácome, Fernandes João P., Mendes Jorge, and Saraiva João , IEEE Transactions on Software Engineering, Volume 41, Issue 3, p.241-263, (2014) Abstracttse14.pdfWebsite

This paper proposes and validates a model-driven software engineering technique for spreadsheets. The technique that we envision builds on the embedding of spreadsheet models under a widely used spreadsheet system. This means that we enable the creation and evolution of spreadsheet models under a spreadsheet system. More precisely, we embed ClassSheets, a visual language with a syntax similar to the one offered by common spreadsheets, that was created with the aim of specifying spreadsheets. Our embedding allows models and their conforming instances to be developed under the same environment. In practice, this convenient environment enhances evolution steps at the model level while the corresponding instance is automatically co-evolved. Finally, we have designed and conducted an empirical study with human users in order to assess our technique in production environments. The results of this study are promising and suggest that productivity gains are realizable under our model-driven spreadsheet development setting.

Embedding and Evolution of Spreadsheet Models in Spreadsheet Systems, Cunha, Jácome, Fernandes João Paulo, Mendes Jorge, and Saraiva João , Proceedings of the 2011 IEEE Symposium on Visual Languages and Human-Centric Computing, Washington, DC, USA, p.186–201, (2011) Abstractvlhcc11.pdf

This paper describes the embedding of ClassSheet models in spreadsheet systems. ClassSheet models are well-known and describe the business logic of spreadsheet data. We embed this domain specific model representation on the (general purpose) spreadsheet system it models. By defining such an embedding, we provide end users a model-driven engineering spreadsheet developing environment. End users can interact with both the model and the spreadsheet data in the same environment. Moreover, we use advanced techniques to evolve spreadsheets and models and to have them synchronized. In this paper we present our work on extending a widely used spreadsheet system with such a model-driven spreadsheet engineering environment.

Products go Green: Worst-Case Energy Consumption in Software Product Lines, Couto, Marco, Borba Paulo, Cunha Jácome, Fernandes João P., Pereira Rui, and Saraiva João , 21st International Systems and Software Product Line Conference, Sept 25-29, Sevilla, Spain, (2017) paper.pdf
Analyzing and Classifying Energy Consumption in Android Applications (in preparation), Couto, Marco, Cunha Jácome, Fernandes João P., Pereira Rui, and Saraiva João , (Submitted) paper.pdf
GreenDroid: A Tool for Analysing Power Consumption in the Android Ecosystem, Couto, Marco, Cunha Jácome, and Fernandes João Paulo , Proceedings of the 13th International Conference Informatics’2015, Propad, Slovakia, p.73-78, (2015) informatics2015.pdf
Static Energy Consumption Analysis in Variability Systems, Couto, Marco, Cunha Jácome, Fernandes João Paulo, Pereira Rui, and Saraiva João Alexandre , 2nd Green in Software Engineering Workshop (GInSEng’16), an event of the 4th International Conference on ICT for Sustainability (ICT4S), 29 Aug. - 1 Sep., Amsterdam, The Netherlands, (2016) Abstractginseng_2016_paper_1-2.pdf

Energy consumption is becoming an evident concern to software developers. This is even more notorious due to the propagation of mobile devices. Such propagation of devices is also influencing software development: a software system is now developed has a set of similar products sharing common features.
In this short paper, we describe our methodology aim at static and accurately predict the energy consumption of software products in such variability systems, typically called software product lines.

Modeling the Impact of UAVs in Sustainability, Conejero, José, Brito Isabel, Moreira Ana, Cunha Jácome, and Araújo João , 5th International Workshop on Requirements Engineering for Sustainable Systems (RE4SuSy) @RE16, Beijing, China, (2016) 2016-modeling-impact.pdf
Detecting Anomalous Energy Consumption in Android Applications, Carção, Tiago, Couto Marco, Cunha Jácome, Fernandes João Paulo, and Saraiva João , Proceedings of the 18th Brazilian Symposium on Programming Languages, p.77-91, (2014) Abstractsblp14.pdf

The use of powerful mobile devices, like smartphones, tablets and laptops, are changing the way programmers develop software. While in the past the primary goal to optimize software was the run time optimization, nowadays there is a growing awareness of the need to reduce energy consumption. This paper presents a technique and a tool to detect anomalous energy consumption in Android applications, and to relate it directly with the source code of the application. We propose a dynamically calibrated model for energy consumption for the Android ecosystem, and that supports different devices. The model is then used as an API to monitor the application execution: first, we instrument the application source code so that we can relate energy consumption to the application source code; second, we use a statistical approach, based on fault-localization techniques, to localize abnormal energy consumption in the source code.

SpreadsheetDoc: An Excel Add-in for Documenting Spreadsheets, Canteiro, Diogo, and Cunha Jácome , Proceedings of the 6th National Symposium of Informatics (INForum’15), Covilhã, Portugal, (2015) inforum2015.pdf
Type-Safe Evolution of Web Services, Campinhos, João, Seco João Costa, and Cunha Jácome , Proceedings of the 2nd International Workshop on Variability and Complexity in Software Design (VACE 2017), a ICSE workshop, Buenos Aires, Argentina, (2017) main.pdf
Evolução Controlada de Arquitecturas de Serviços Web, Campinhos, João, Seco João Costa, and Cunha Jácome , (2016) poster6.1.pdfmain.pdf
B
QuerySheet: A Bidirectional Query Environment for Model-Driven Spreadsheets, Belo, Orlando, Cunha Jácome, Fernandes João Paulo, Mendes Jorge, Pereira Rui, and Saraiva João , Proceedings of the 2013 IEEE Symposium on Visual Languages and Human-Centric Computing, Washington, DC, USA, p.199–200, (2013) Abstractvlhcc2013-td.pdf

This paper presents a tool, named QUERYSHEET, to query spreadsheets. We defined a language to write the queries, which resembles SQL, the language to query databases. This allows to write queries which are more related to the spreadsheet content than with current approaches.

End Users Productivity in Model-based Spreadsheets: An Empirical Study, Beckwith, Laura, Cunha Jácome, Fernandes João Paulo, and Saraiva João , Number DI-CCTC-10-10, (2010) Abstracttr_study.pdf

Spreadsheets are widely used by end users, and studies have shown that most end-user spreadsheets contain non-trivial errors. To improve end users productivity, recent research proposes the use of a model-driven engineering approach to spreadsheets. In this paper 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 the results achieved.

A Type-Level Approach to Component Prototyping, Barbosa, Luís, Cunha Jácome, and Visser Joost , International Workshop on Synthesis and Analysis of Component Connectors: in Conjunction with the 6th ESEC/FSE Joint Meeting, New York, NY, USA, p.23–36, (2007) Abstractsyanco07.pdf

Algebraic theories for modeling components and their interactions offer abstraction over the specifics of component states and interfaces. For example, such theories deal with forms of sequential composition of two components in a manner independent of the type of data stored in the states of the components, and independent of the number and types of methods offered by the interfaces of the combinators. General purpose programming languages do not offer this level of abstraction, which implies that a gap must be bridged when turning component models into implementations. In this paper, we present an approach to prototyping of component-based systems that employs so-called type-level programming (or compile-time computation) to bridge the gap between abstract component models and their type-safe implementation in a functional programming language. We demonstrate our approach using Barbosa's model of components as generalized Mealy machines. For this model, we develop a combinator library in Haskell, which uses type-level programming with two effects. Firstly, wiring between components is computed during compilation. Secondly, the well-formedness of the component compositions is guarded by Haskell's strong type system.

A
Smelling Faults in Spreadsheets, Abreu, Rui, Cunha Jácome, Fernandes João Paulo, Martins Pedro, Perez Alexandre, and Saraiva João , Proceedings of the 30th IEEE International Conference on Software Maintenance and Evolution, Washington, DC, USA, p.111–120, (2014) Abstracticsme14.pdf

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.

FaultySheet Detective: When Smells Meet Fault Localization, Abreu, Rui, Cunha Jácome, Fernandes João Paulo, Martins Pedro, Perez Alexandre, and Saraiva João , Proceedings of the 30th IEEE International Conference on Software Maintenance and Evolution, Washington, DC, USA, p.625–628, (2014) Abstracticsme14-td.pdf

This paper presents a tool, dubbed FaultySheet Detective, for aiding in spreadsheet fault localization, which combines the detection of bad smells with a generic spectrum-based fault localization algorithm.

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