Publications

Abreu R, Riboira A, Wotawa F.  2012.  Constraint-based Debugging of Spreadsheets. CIbSE - Proceedings of the XV Iberoamerican Conference on Software Engineering. :1–14. Abstractpaper_46.pdf

Despite being staggeringly error prone, spreadsheets can be viewed as a highly flexible end-users programming environment. As a consequence, spreadsheets are widely adopted for decision making by end-users, and may have a serious economical impact for the business. Hence, approaches for aiding the process of pinpointing the faulty cells in a spreadsheet are of great value. In this paper we present a constrain-based approach for debugging spreadsheets. We coin the approach ConBug. Essentially, the approach takes as input a (faulty) spreadsheet and a test case that reveals the fault (a test case specifies values for the input cells as well as the expected values for the output cells) and computes a set of diagnosis candidates for the debugging problem we are trying to solve.To compute the set of diagnosis candidates we convert the spreadsheet and test case to a constraint satisfaction problem (CSP), modeled using the state-of-the-art constraint solver MINION. We use a case study, in particular using a spreadsheet taken from the well-known EUSES Spreadsheet Corpus, to better explain the different phases of the approach as well as to measure the efficiency of ConBug. We conclude that ConBug can be of added value for the end user in order to pinpoint faulty cells.

Perez A, Riboira A, Abreu R.  2012.  A topology-based model for estimating the diagnostic efficiency of statistics-based approaches. 23rd International Symposium on Software Reliability Engineering Workshops - ISSREW. :171–176. Abstractalexandreperez-iwpd-2012.pdf

Spectrum-based fault localization (SFL) and dynamic code coverage (DCC) are two statistics-based fault localization techniques used in software fault diagnosis. Due to their nature (statistical analysis of the coverage information), the best technique of the two depends greatly on the system under test code structure and size. We propose a lightweight, topology-based analysis to quickly estimate the project under test coverage matrix when executed, based on the source code structure. This analysis will choose which fault localization technique to use by creating an hierarchical model of the system. To validate our proposed approach, an empirical evaluation was performed, injecting faults in six real-world software projects. We have demonstrated that using the topology-based analysis to choose the best fault localization technique provides a better execution time performance on average (23%) than using DCC (9%), when comparing to SFL.

Abreu R, Riboira A, Wotawa F.  2012.  Debugging Spreadsheets: A CSP-based Approach. IEEE 23rd International Symposium on Software Reliability Engineering Workshops - ISSREW. :159–164. Abstractiwpd12-2.pdf

Despite being staggeringly error prone, spreadsheets can be viewed as a highly flexible end-users programming environment. As a consequence, spreadsheets are widely adopted for decision making, and may have a serious economical impact for the business. Hence, approaches for aiding the process of pinpointing the faulty cells in a spreadsheet are of great value. We present a constrain-based approach, CONBUG, for debugging spreadsheets. The approach takes as input a (faulty) spreadsheet and a test case that reveals the fault and computes a set of diagnosis candidates for the debugging problem we are trying to solve. To compute the set of diagnosis candidates we convert the spreadsheet and test case to a constraint satisfaction problem. From our experimental results, we conclude that CONBUG can be of added value for the end user to pinpoint faulty cells.

Cardoso N, Abreu R.  2012.  Self-Healing on the Cloud: State-of-the-art and Future Challenges. Eighth International Conference on the Quality of Information and Communications Technology - QUATIC. :279–284. Abstractmain.pdf

Despite the enhancement on software hardness induced by development-time automatic testing and debugging tools, it remains practically impossible to create fault-free applications. The research on self-healing systems emerged to enable applications to cope with unexpected events at run-time in order to maximize their availability, survivability, maintainability, and reliability, while minimizing human intervention. With the increase in software's complexity, in part triggered by the advent of the Internet and Cloud Computing, self-healing properties in applications are becoming a necessity. The main focus of this position paper is on presenting the issues that render unusable or ineffective the usage of the development-time Spectrum-based Fault Localization(SFL) algorithm in run-time environments. We concluded that, despite the issues found, it should be possible to devise an SFL algorithm for run-time environments that can also achieve the good results yielded by SFL at development-time.

Huang Y, Zhao Y, Qin S, He G, Ferreira JF.  2012.  A Timed CSP Model for the Time-Triggered Language Giotto. 35th Annual IEEE Software Engineering Workshop (SEW). :110-119. Abstracta_timed_csp_model_for_the_time-triggered_language_giotto.pdf

Giotto is a time-triggered embedded programming language which provides an abstract programming model for hard real-time applications. It effectively decouples the imple- mentation from the design. A Giotto program focuses on the functionality and timing of periodic tasks. All the actions, e.g., task invocations, actuator updates, and mode switches, described in Giotto programs are triggered by real time. We take the views of the concerns of Giotto programs, including the reaction to the environment, the communication between tasks, the timing predictability, etc. Our goal is to simulate Giotto programs using a timed CSP-based model which can effectively express the concerns and can be used to verify safety properties. This paper is a first step that presents the timed CSP model for Giotto programs. We also give a case study to illustrate the utility of the timed CSP model. Based on the existing research for CSP with time, we believe that our model can support to analyze and verify safety properties of Giotto programs.

Ferreira JF, He G, Qin S.  2012.  Automated Verification of the FreeRTOS Scheduler in HIP/SLEEK. Sixth International Symposium on Theoretical Aspects of Software Engineering (TASE). :51-58. Abstract2012-automatedverificationfreertosscheduler.pdf

Automated verification of operating system kernels is a challenging problem, partly due to the use of shared mutable data structures. In this paper, we show how we can automatically verify memory safety and functional correctness of the task scheduler component of the FreeRTOS kernel using the verification system HIP/SLEEK. We show how some of HIP/SLEEK features like user-defined predicates and lemmas make the specifications highly expressive and the verification process viable. To the best of our knowledge, this is the first code-level verification of memory safety and functional correctness properties of the FreeRTOS scheduler. The outcome of our experiment confirms that HIP/SLEEK can indeed be used to verify code that is used in production. Moreover, since the properties that we verify are quite general, we envisage that the same approach can be adopted to verify the scheduler of other operating systems.

Clarke D, Proença J.  2012.  Partial Connector Colouring. Proceedings of 14th International Conference on Coordination Models and Languages . :59–73. Abstractmain.pdf

Connector colouring provided an intuitive semantics of Reo connectors which lead to e ective implementation techniques, rst based on computing colouring tables directly, and later on encodings of colouring into constraints. One weakness of the framework is that it operates globally, giving a colouring to all primitives of the connector in lock-step, including those not involved in the interaction. This global approach limits both scalability and the available concurrency. This paper addresses these problems by introducing partiality into the connector colouring model. Partial colourings allow parts of a connector to operate independently and in isolation, increasing scalability and concurrency.

Proença J, Clarke D, de Vink EP, Arbab F.  2012.  Dreams: a framework for distributed synchronous coordination. Proceedings of the ACM Symposium on Applied Computing - SAC. :1510–1515. Abstractsac2012.pdf

Synchronous coordination systems, such as Reo, exchange data via indivisible actions, while distributed systems are typically asynchronous and assume that messages can be delayed or get lost. To combine these seemingly contradictory notions, we introduce the Dreams framework. Coordination patterns in Dreams are described using a synchronous model based on the Reo language, whereas global system behaviour is given by the runtime composition of autonomous actors communicating asynchronously. Dreams also exploits the use of actors in the composition of coordination patterns to allow asynchronous communication whenever possible, increasing the scalability of the implementation.

Jongmans S-STQ, Clarke D, Proença J.  2012.  A Procedure for Splitting Processes and its Application to Coordination. Proceedings 11th International Workshop on Foundations of Coordination Languages and Self Adaptation - FOCLASA . :79–96. Abstract1209.1422.pdf

We present a procedure for splitting processes in a process algebra with multi-actions (a subset of the
specification language mCRL2). This splitting procedure cuts a process into two processes along a
set of actions A: roughly, one of these processes contains no actions from A, while the other process
contains only actions from A. We state and prove a theorem asserting that the parallel composition
of these two processes equals the original process under appropriate synchronization.
We apply our splitting procedure to the process algebraic semantics of the coordination language
Reo: using this procedure and its related theorem, we formally establish the soundness of splitting
Reo connectors along the boundaries of their (a)synchronous regions in implementations of Reo.
Such splitting can significantly improve the performance of connectors.

Patrignani M, Matthys N, Proença J, Hughes D, Clarke D.  2012.  Formal analysis of policies in wireless sensor network applications. Proceedings of Third International Workshop on Software Engineering for Sensor Network Applications - SESENA . :15–21. Abstractnls-plc-6pp.pdf

Since wireless sensor network applications are ever growing in scale and complexity, managers require strong formal guarantees that any changes done to the system can be enacted safely. This paper presents the formalisation and analysis of the semantics of policies, tiny software artefacts used to orchestrate wireless sensor network applications. The semantics of policies is formalised in terms of traces augmented with information concerning the constraints under which traces are executed. These traces are composed according to the network topology and subsequently analysed using them CRL2 model-checking tool. The analysis allows for the detection of semantical inconsistencies that may lead to dangerous or unwanted behaviour of the application based on the policy configuration. An analysis of policies in a real-world system is provided, showing how to verify security and resource usage properties.

Martins P.  2012.  Zipper-based Embedding of Modern Attribute Grammar Extensions. SLE - Doctoral Symposium of the 5th International Conference on Software Language Engineering. Abstractsle10.pdf

This research abstract describes the research plan for a Ph.D project. We plan to de ne a powerful and elegant embedding of modern extensions to attribute grammars. Attribute grammars are a suitable formalism to express complex, multiple traversal algorithms. In recent years there has been a lot of work in attribute grammars, namely by de ning new extensions to the formalism (forwarding and reference attribute grammars, etc), by proposing new attribute evaluation models (lazy and circular evaluators, etc) and by embedding attribute grammars (like rst class attribute grammars). We will study how to design such extensions through a zipper-based embedding and we will study eficient evaluation models for this embedding. Finally, we will express several attribute grammars in our setting and we will analyse the performance of our implementation.

Pereira MJV, Berón M, da Cruz D, Oliveira N, Henriques PR.  2012.  Problem Domain Oriented Approach for Program Comprehension. 1st Symposium on Languages, Applications and Technologies, SLATE 2012. 21:91-105.
Oliveira N, Pereira MJV, Gancarski AL, Henriques PR.  2012.  Learning Spaces for Knowledge Generation. 1st Symposium on Languages, Applications and Technologies, SLATE 2012. 21:175-184.
Bourke AK, Prescher S, Koehler F, Cionca V, Tavares C, Gomis S, Garcia V, Nelson J.  2012.  Embedded fall and activity monitoring for a wearable ambient assisted living solution for older adults. Engineering in Medicine and Biology Society (EMBC), 2012 Annual International Conference of the IEEE. :248–251. Abstract

With the rapidly increasing over 60 and over 80 age groups in society, greater emphasis will be put on technology to detect emergency situations, such as falls, in order to promote independent living. This paper describes the development and deployment of fall-detection, activity classification and energy expenditure algorithms, deployed in a tele-monitoring system. These algorithms were successfully tested in an end-user trial involving 9 elderly volunteers using the system for 28 days.

Lima R.  2012.  Comparação de Mecanismos de Cancelamento de Difusão. INFORUM 2012. p. 96-107. ISBN 978-972-8893-32-3rmlinforum.pdf