Conference Papers

Almeida D, Campos JC, Saraiva JA, Silva JC.  2015.  Towards a catalog of usability smells. SAC - Proceedings of the 30th Annual ACM Symposium on Applied Computing. Abstractsac2015_1.pdf

This paper presents a catalog of smells in the context of interactive applications. These so-called usability smells are indicators of poor design on an application's user interface, with the potential to hinder not only its usability but also its maintenance and evolution. To eliminate such usability smells we discuss a set of program/usability refactorings. In order to validate the presented usability smells catalog, and the associated refactorings, we present a preliminary empirical study with software developers in the context of a real open source hospital management application. Moreover, a tool that computes graphical user interface behavior models, giving the applications' source code, is used to automatically detect usability smells at the model level.

Couto M, Cunha J, Fernandes JP, Pereira R, Saraiva JA.  2015.  GreenDroid: A tool for analysing power consumption in the android ecosystem. Scientific Conference on Informatics, 2015 IEEE 13th International. :73-78. Abstractinformatics2015_51_marcocouto.pdf

n/a

Cunha J, Fernandes JP, Mendes J, Pereira R, Saraiva JA.  2014.  Design and Implementation of Queries for Model-Driven Spreadsheets. CEFP - Central European Functional Programming School. Abstractdsl13_query.pdf

This paper presents a domain-specific querying language for model-driven spreadsheets. We briefly show the design of the language and present in detail its implementation, from the denormalization of data and translation of our user-friendly query language to a more efficient query, to the execution of the query using Google. To validate our work, we executed an empirical study, comparing QuerySheet with an alternative spreadsheet querying tool, which produced positive results.

Cunha J, Fernandes JP, Saraiva JA.  2014.  Spreadsheet Engineering. CEFP - Central European Functional Programming School. Abstractdsl13_notes.pdf

These tutorial notes present a methodology for spreadsheet engineering. First, we present data mining and database techniques to reason about spreadsheet data. These techniques are used to compute relationships between spreadsheet elements (cells/columns/rows). These relations are then used to infer a model de ning the business logic of the spreadsheet. Such a model of a spreadsheet data is a visual domain speci c language that we embed in a well-known spreadsheet system. The embedded model is the building block to de ne techniques for modeldriven spreadsheet development, where advanced techniques are used to guarantee the model-instance synchronization. In this model-driven environment, any user data update as to follow the the model-instance conformance relation, thus, guiding spreadsheet users to introduce correct data. Data re nement techniques are used to synchronize models and instances after users update/evolve the model. These notes brie y describe our model-driven spreadsheet environment, the MDSheet environment, that implements the presented methodology. To evaluate both proposed techniques and the MDSheet tool, we have conducted, in laboratory sessions, an empirical study with the summer school participants. The results of this study are presented in these notes.

Cunha J, Fernandes JP, Mendes J, Pereira R, Saraiva JA.  2014.  ES-SQL: Visually Querying Spreadsheets. Proceedings of the Symposium on Visual Languages and Human-Centric Computing - VL/HCC. 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.

Cunha J, Fernandes JP, Mendes J, Pereira R, Saraiva JA.  2014.  Embedding Model-Driven Spreadsheet Queries in Spreadsheet Systems. Proceedings of the Symposium on Visual Languages and Human-Centric Computing - VL/HCC. Abstractvlhcc14.pdf

Spreadsheets are widely used not only to define mathematical expressions, but also to store large and complex data. To query such data is usually a difficult task to perform, usually for end user. In this work we embed the textual query language in the model-driven spreadsheet environment as a spreadsheet itself. The result is an expressive and powerful query environment that has knowledge of the business logic defined by the spreadsheet data (the spreadsheet model) to guide end users constructing correct queries.

Abreu R, Cunha J, Fernandes JP, Martins P, Perez A, Saraiva JA.  2014.  Smelling faults in spreadsheets. Proceedings of the 30th IEEE International Conference on Software Maintenance and Evolution. 14 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 wellknown 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.

Cunha J, Fernandes JP, Mendes J, Pereira R, Saraiva JA.  2014.  MDSheet - Model-Driven Spreadsheets. 1st Workshop on Software Engineering Methods in Spreadsheets (SEMS 2014). Abstractpaper_11.pdf

This paper showcases MDSheet, a framework aimed at improving the engineering of spreadsheets. This framework is model-driven, and has been fully integrated under a spreadsheet system. Also, its practical interest has been demonstrated by several empirical studies.

Cunha J, Martins P, Fernandes JP, Pereira R, Saraiva JA.  2014.  Refactoring meets Model-Driven Spreadsheet Evolution. Proceedings of the 9th International Conference on Quality in Model Driven Engineering - QUATIC. Abstractquatic14.pdf

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.

Martins P, Fernandes JP, Saraiva JA.  2014.  A Web Portal for the Certification of Open Source Software. Proceedings of the 6th International Workshop on Foundations and Techniques for Open Source Software Certification - OPENCERT. Abstractopencert12.pdf

This paper presents a web portal for the certi cation of open source software. The portal aims at helping programmers in the internet age, when there are (too) many open source reusable libraries and tools available. Our portal o ers programmers a web-based and easy setting to analyze and certify open source software, which is a crucial step to help programmers choosing among many available alternatives, and to get some guarantees before using one piece of software. The paper presents our rst prototype of such web portal. It also describes in detail a domain speci c language that allows programmers to describe with a high degree of abstraction speci c open source software certi cations. The design and implementation of this language is the core of the web portal.

Martins P, Saraiva JA, Fernandes JP, Wyk EV.  2014.  Generating Attribute Grammar-based Bidirectional Transformations from Rewrite Rules. Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation - PEPM. Abstractpepm2014.pdf

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.

Cunha J, Abreu R, Fernandes JP, Martins P, Saraiva JA, Perez A.  2014.  FaultySheet Detective: When Smells Meet Fault Localization. Proceedings of the 30th IEEE International Conference on Software Maintenance and Evolution. 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.

Campos JC, Silva JC, Silva JL, Saraiva JA.  2014.  An approach for graphical user interface external bad smells detection. Advances in Intelligent Systems and Computing. 276 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.

Cunha J, Fernandes JP, Pereira R, Saraiva JA.  2014.  Graphical Querying of Model- Driven Spreadsheets. 6th International Conference on Human-Computer Interaction - HCI. 12 Abstracthci14.pdf

This paper presents a graphical interface to query modeldriven spreadsheets, based on experience with previous work and empirical studies in querying systems, to simplify query construction for typical end-users with little to no knowledge of SQL. We briefly show our previous text based model-driven querying system. Afterwards, we detail our graphical model-driven querying interface, explaining each part of the interface and showing an example. To validate our work, we executed an empirical study, comparing our graphical querying approach to an alternative querying tool, which produced positive results.

Cunha J, Couto M, Carção T, Fernandes JP, Saraiva JA.  2014.  Detecting Anomalous Energy Consumption in Android Applications. SBLP - 
XVIII Simpósio Brasileiro de Linguagens de Programação . 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 .

Silva JC, Silva JL, Campos JC, Saraiva JA.  2013.  Uma Abordagem para a Geração de Casos de Teste Baseada em Modelos. Sistemas e Tecnologias de Informação. 2:142-146. Abstractid-265-jcsilva.pdf

The analytical methods based on evaluation models of interactive systems were proposed as an alternative to user testing in the last stages of the software development due to its costs. However, the use of isolated behavioral models of the system limits the results of the analytical methods. An example of these limitations relates to the fact that they are unable to identify implementation issues that will impact on usability. With the introduction of model-based testing we are enable to test if the implemented software meets the specified model. This paper presents an model-based approach for test cases generation from the static analysis of source code.

Cunha J, Fernandes JP, Mendes J, Saraiva JA.  2013.  Complexity Metrics for ClassSheet Models. ICCSA - - International Conference on Computational Science and Its Applications. :459-474. Abstracticcsa-sq13.pdf

This paper proposes a set of metrics for the assessment of the complexity of models de ning the business logic of spreadsheets. This set can be considered the rst step in the direction of building a quality standard for spreadsheet models, that is still to be de ned. The computation of concrete metric values has further been integrated under a well-established model-driven spreadsheet development environment, providing a framework for the analysis of spreadsheet models under spreadsheets themselves.

Cunha J, Fernandes JP, Mendes J, Pereira R, Saraiva JA.  2013.  Querying model-driven spreadsheets. Symposium on Visual Languages and Human-Centric Computing - VL/HCC. :83-86. Abstractvlhcc13.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.

Belo O, Cunha J, Fernandes JP, Mendes J, Pereira R, Saraiva JA.  2013.  QuerySheet: A bidirectional query environment for model-driven spreadsheets. Symposium on Visual Languages and Human-Centric Computing - VL/HCC. :199-200. 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.

Martins P, Carvalho NR, Fernandes JP, Almeida JJ, Saraiva JA.  2013.  A Framework for Modular and Customizable Software Analysis. 13th International Conference on Computational Science and Applications - ICCSA. :443-458. Abstracticcsa13.pdf

This paper presents a framework for the analysis of software artifacts. We revise and propose techniques that aid in the manipulation and combination of target-language specific tools, and in handling and controlling the results of such tools. We also propose to integrate under our framework techniques that are capable of performing language independent analyses.
The final result of our work is an analysis environment that is modular and flexible and that allows easy and elegant implementations of complex analysis suites.
We finally conduct a proof of concept for our framework by analyzing a well-known, widely used open-source software package.

Pardo A, Fernandes JP, Saraiva JA.  2013.  Multiple Intermediate Structure Deforestation by Shortcut Fusion. Simpósio Brasileiro de Linguagens de Programação - SBLP. :120-134. Abstractsblp13_b.pdf

Shortcut fusion is a well-known optimization technique for functional programs. Its aim is to transform multi-pass algorithms into single pass ones, achieving deforestation of the intermediate structures that multi-pass algorithms need to construct. Shortcut fusion has already been extended in several ways. It can be applied to monadic programs, maintaining the global effects, and also to obtain circular and higher-order programs. The techniques proposed so far, however, only consider programs defined as the composition of a single producer with a single consumer. In this paper, we analyse shortcut fusion laws to deal with programs consisting of an arbitrary number of function compositions.

Martins P, Fernandes JP, Saraiva JA.  2013.  Zipper-Based Attribute Grammars and Their Extensions. Simpósio Brasileiro de Linguagens de Programação - SBLP. :135-149. Abstractsblp13.pdf

Attribute grammars are a suitable formalism to express complex software language analysis and manipulation algorithms, which rely on multiple traversals of the underlying syntax tree. Recently, Attribute Grammars have been extended with mechanisms such as references and high-order and circular attributes. Such extensions provide a powerful modular mechanism and allow the specification of complex fix-point computations. This paper defines an elegant and simple, zipper-based embedding of attribute grammars and their extensions as first class citizens. In this setting, language specifications are defined as a set of independent, off-the-shelf components that can easily be composed into a powerful, executable language processor. Several real examples of language specification and processing programs have been implemented in this setting.

Cunha J, Saraiva JA, Visser J.  2012.  Model-Based Programming Environments for Spreadsheets. Brazilian Symposium on Programming Languages - SBLP. 7554:117–133. Abstractsblp12.pdf

Although spreadsheets can be seen as a flexible programming environment, 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.

Cunha J, Fernandes JP, Mendes J, Saraiva JA.  2012.  Extension and Implementation of ClassSheet Models. Proceedings of the Symposium on Visual Languages and Human-Centric Computing - VL/HCC. :19–22. Abstractvlhcc12.pdf

In this paper we explore the use of models in the context of spreadsheet engineering. We review a successful spreadsheet modeling language, whose semantics we further extend. With this extension we bring spreadsheet models closer to the business models of spreadsheets themselves. An addon for a widely used spreadsheet system, providing bidirectional model-driven spreadsheet development, was also improved to include the proposed model extension.

Cunha J, Fernandes JP, Mendes J, Pacheco H, Saraiva JA.  2012.  Bidirectional Transformation of Model-Driven Spreadsheets. Theory and Practice of Model Transformations - ICMT. 7307:105–120. Abstracticmt12.pdf

Spreadsheets play an important role in software organizations. Indeed, in large software organizations, spreadsheets are not only used to de ne sheets containing data and formulas, but also to collect information from di erent 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 de ned 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.