Campos JC, Saraiva JA, Silva CE, Silva JC.  2012.  GUIsurfer: A Reverse Engineering Framework for User Interface Software. Reverse Engineering - Recent Advances and Applications. :31-54. Abstract

In the context of developing tool support to the automated analysis of interactive systems implementations, this chapter proposal aims to investigate the applicability of reverse engineering approaches to the derivation of user interfaces behavioural models. The ultimate goal is that these models might be used to reason about the quality of the system, both from an usability and an implementation perspective, as well as being used to help systems maintenance, evolution and redesign.

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


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.