Publications

Moreira S, José R, Campos JC.  2013.  An empirical study on immersive prototyping dimensions. Human-Computer Interaction: Human-Centred Design Approaches, Methods, Tools and Environments - HCI. 8004:421-430. Abstractmoreirajc13-hcii2013.pdf

Many aspects of the human experience of ubiquitous computing in built environments must be explored in the context of the target environment. However, delaying evaluation until a version of the system can be deployed can make redesign too costly. Prototypes have the potential to solve this problem by enabling evaluation before actual deployment. This paper presents a study of the design space of immersive prototyping for ubiquitous computing. It provides a framework to guide the alignment between speci c evaluation goals and speci c prototype properties. The goal is to understand the potential added-value of 3D simulation as a prototyping tool in the development process of ubiquitous computing environments.

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.

Abal I, Pinto JS.  2013.  Towards a mostly-automated prover for bit-vector arithmetic. Proceedings of the International Conference on Computer Science and Software Engineering - WSEAS. :132–133. Abstract2013_c3c2e13.pdf

We present work in progress on the development of EasyBV, a specialized theorem prover for fixed-size bit-vector arith- metic.

Cruz D, Henriques PR, Pinto JS.  2013.  Interactive verification of safety-critical software. Proceedings of the International Computer Software and Applications Conference - COMPSAC. :519-528. Abstract2013_compsac_13.pdf

A central issue in program verification is the generation of verification conditions (VCs): proof obligations which, if successfully discharged, guarantee the correctness of a program vis-a`-vis a given specification. While the basic theory of program verification has been around since the 1960s, the late 1990s saw the advent of practical tools for the verification of realistic programs, and research in this area has been very active since then. Automated theorem provers have contributed decisively to these developments.
This paper establishes a basis for the generation of verifi- cation conditions combining forward and backward reasoning, for programs consisting of mutually-recursive procedures an- notated with contracts and loop invariants. We introduce also a visual technique to verify a program, in an interactive way, using Verification Graphs (VG), where a VG is a Control Flow Graph (CFG) whose edges are labeled with contracts (pre- and postconditions). This technique intends to help a software engineer to find statements that are not valid with respect to the program’s specification.

Pedro AM, Pereira D, Pinho LM, Pinto JS.  2013.  Logic-based Schedulability Analysis for Compositional Hard Real-Time Embedded Systems. 6th International Workshop on Compositional Theory and Technology for Real-Time Embedded Systems - CRTS. Abstractcrts2013.pdf

Over the past decades several approaches for schedulability analysis have been proposed for both uni-processor and multi-processor real-time systems. Although different techniques are employed, very little has been put forward in using formal specifications, with the consequent possibility for misinterpretations or ambiguities in the problem statement. Using a logic based approach to schedulability analysis in the design of hard real-time systems eases the synthesis of correct-by construction procedures for both static and dynamic verification processes. In this paper we propose a novel approach to schedulability analysis based on a timed temporal logic with time durations. Our approach subsumes classical methods for uniprocessor scheduling analysis over compositional resource models by providing the developer with counter-examples, and by ruling out schedules that cause unsafe violations on the system. We also provide an example showing the effectiveness of our proposal.

Silva RAB, Arai NN, Burgareli LA, Oliveira JMP, Pinto JS.  2013.  Using Abstract Interpretation to Produce Dependable Aerospace Control Software. Industrial Track of the 6th Latin American Symposium on Dependable Computing - LADC. Abstractladc2013

n the context of software dependability, the software verification process has an important role. Formal verification of programs is an activity that can be inserted in this process to improve software reliability. This paper presents the definition of an approach that employs a formal verification technique based on abstract interpretation. The main goal is to apply this technique as a formal activity in the software verification process to help software engineers identify programs faults. The applicability of the proposed approach is demonstrated by a case study based on embedded aerospace control software. The results obtained from its use show that abstract interpretation can contribute to software dependability.

Miraldo VC, Frade MJ, Lourenço CB, Pinto JS.  2013.  Experimenting with Predicate Abstraction. Proceedings of Simpósio de Informática - Inforum. Abstractpredabs-final.pdf

Predicate abstraction is a technique employed in software model checking to produce abstract models that can be conservatively checked for property violations in reasonable time. The precision degree of different abstractions of the same program may differ based on (i) the set of predicates used; or (ii) the algorithmic technique employed to generate the model. In this paper we explain how we have implemented and optimized one such technique, that produces the most precise existential abstraction of a program, and give the first steps towards establishing a common framework for both this direct technique and a second one, based on cartesian abstraction by weakest precondition calculations.

Lourenço CB, Miraldo VC, Frade MJ, Pinto JS.  2013.  SPARK-BMC: Checking SPARK Code for Bugs. Proceedings of Simpósio de Informática - Inforum (SETR track) . Abstractpaper-short-final.pdf

The standard SPARK deductive verification tools, based on contracts, are not practical in early stages when the idea is only bug catching. We discuss the implementation of a bounded model checker for SPARK, focusing on specific challenges of this language. Our tool is fully automatic, complementing the existing tools for SPARK.

Cunha A, Macedo N, Guimarães T.  2013.  Model Repair and Transformation with Echo. 28th International Conference on Automated Software Engineering - ASE. 6138:694–697. Abstractase13.pdf

Models are paramount in model-driven engineering. In a software project many models may coexist, capturing different views of the system or different levels of abstraction. A key and arduous task in this development method is to keep all such models consistent, both with their meta-models (and the respective constraints) and among themselves. This paper describes Echo, a tool that aims at simplifying this task by automating inconsistency detection and repair using a solver based engine. Consistency between different models can be specified by bidirectional model transformations, and is guaranteed to be recovered by minimal updates on the inconsistent models. The tool is freely available as an Eclipse plugin, developed on top of the popular EMF framework, and supports constraints and transformations specified in the OMG standard languages OCL and QVT-R, respectively.

Cunha A, Macedo N.  2013.  Implementing QVT-R Bidirectional Model Transformations Using Alloy. 16th International Conference on Fundamental Approaches to Software Engineering - FASE. 7793:297–311. Abstractfase13.pdf

QVT Relations (QVT-R) is the standard language proposed by the OMG to specify bidirectional model transformations. Unfortunately, in part due to ambiguities and omissions in the original seman- tics, acceptance and development of effective tool support has been slow. Recently, the checking semantics of QVT-R has been clarified and formalized. In this paper we propose a QVT-R tool that complies to such semantics. Unlike any other existing tool, it also supports meta-models enriched with OCL constraints (thus avoiding returning ill-formed models), and proposes an alternative enforcement semantics that works ac- cording to the simple and predictable “principle of least change”. The implementation is based on an embedding of both QVT-R transformations and UML class diagrams (annotated with OCL) in Alloy, a lightweight formal specification language with support for automatic model finding via SAT solving.