Publications

Campos JC, Harrison M.  2011.  Modelling and analysing the interactive behaviour of an infusion pump. Electronic Communications of the EASST. 45 Abstract641-1972-1-pb.pdf

This paper is concerned with the scaleable and systematic analysis of interactive systems. The motivating problem is the procurement of medical devices. In such situations several different manufacturers offer solutions that support a particular clinical activity. Apart from cost, which is a dominating factor, the variations between devices are relatively subtle and the consequences of particular design features are not clear from manufacturers' manuals, demonstrations or trial uses. De- spite their subtlety these differences can be important to the safety and usability of the device. The paper argues that formal analysis of the range of offered devices can provide a systematic means of comparison. The paper also explores barriers to the use of such techniques, demonstrating how layers of specification may be used to make it possible to reuse common specification. Infusion pumps provide a motivating example. A specific model is described and analysed and comparison between competitive devices is discussed rather than dealt with in detail.

Machado J, Seabra E, Campos JC, Soares F, Le C.  2011.  Safe Controllers Design for Industrial Automation Systems. Computers & Industrial Engineering. 60(4):635-653. Abstractcaie-s-09-00536-paracctc.pdf

The design of safe industrial controllers is one of the most important domains related with Automation Systems research. For this purpose, there are used some important synthesis and analysis techniques. Among the analysis techniques two of the most important are Simulation and Formal Verification. In this paper these two techniques are used together in a complementary way. For the successful application of these mentioned techniques the plant modelling is crucial, so the understanding and modelling of the plant behaviour is essential for obtaining safe industrial systems controllers. A two step approach is presented: first, the use of Simulation and, second, the use of Formal Verification of Industrial Systems Specifications. The specification and plant models used for each technique are described. Simulation and Formal Verification results are presented and discussed. The approach presented in the paper makes it possible to deal with real industrial systems, and obtain safe controllers for hybrid plants. Modelica modelling language and Dymola simulation environment is used for Simulation purposes and Timed Automata formalism and UPPAAL real-time model-checker are used for Formal Verification purposes.

Cunha A, Visser J.  2011.  Transformation of Structure-Shy Programs with Application to XPath Queries and Strategic Functions. Science of Computer Programming. 76(6):516–539. Abstractscp.pdf

Various programming languages allow the construction of structure-shy programs. Such programs are defined generically for many different datatypes and only specify specific behavior for a few relevant subtypes. Typical examples are XML query languages that allow selection of subdocuments without exhaustively specifying intermediate element tags. Other examples are languages and libraries for polytypic or strategic functional programming and for adaptive object-oriented programming.

In this paper, we present an algebraic approach to transformation of declarative structure-shy programs, in particular for strategic functions and XML queries. We formulate a rich set of algebraic laws, not just for transformation of structure-shy programs, but also for their conversion into structure-sensitive programs and vice versa. We show how subsets of these laws can be used to construct effective rewrite systems for specialization, generalization, and optimization of structure-shy programs. We present a type-safe encoding of these rewrite systems in Haskell which itself uses strategic functional programming techniques. We discuss the application of these rewrite systems for XPath query optimization and for query migration in the context of schema evolution.

Frade MJ, Pinto JS.  2011.  Verification conditions for source-level imperative programs. Computer Science Review. 5(3):252–277. Abstractverification-conditions-revised_2.pdf

This paper is a systematic study of verification conditions and their use in the context of program verification. We take Hoare logic as a starting point and study in detail how a verification conditions generator can be obtained from it. The notion of program annotation is essential in this process. Weakest preconditions and the use of updates are also studied as alternative approaches to verification conditions. Our study is carried on in the context of a While language. Important extensions to this language are considered toward the end of the paper. We also briefly survey modern program verification tools and their approaches to the generation of verification conditions.

Pardo A, Fernandes JP, Saraiva JA.  2011.  Shortcut fusion rules for the derivation of circular and higher-order programs. Higher-Order and Symbolic Computation. 24:115-149. Abstracthosc11.pdf

Functional programs often combine separate parts using intermediate data structures for communicating results. Programs so defined are modular, easier to understand and maintain, but suffer from inefficiencies due to the generation of those gluing data structures. To eliminate such redundant data structures, some program transformation techniques have been proposed. One such technique is shortcut fusion, and has been studied in the context of both pure and monadic functional programs.
In this paper, we study several shortcut fusion extensions, so that, alternatively, circular or higher-order programs are derived. These extensions are also provided for effect-free programs and monadic ones. Our work results in a set of generic calculation rules, that are widely applicable, and whose correctness is formally established.

Silva A, Bonchi F, Bonsangue M, Rutten J.  2011.  Quantitative Kleene coalgebras. Information and Computation. 209(5):822–849. Abstractic-concur.pdf

We present a systematic way to generate (1) languages of (generalised) regular expressions, and (2) sound and complete axiomatizations thereof, for a wide variety of quantitative systems. Our quantitative systems include weighted versions of automata and transition systems, in which transitions are assigned a value in a monoid that represents cost, duration, probability, etc. Such systems are represented as coalgebras and (1) and (2) above are derived in a modular fashion from the underlying (functor) type of these coalgebras. In previous work, we applied a similar approach to a class of systems (without weights) that generalizes both the results of Kleene (on rational languages and DFA’s) and Milner (on regular behaviours and finite LTS’s), and includes many other systems such as Mealy and Moore machines.

In the present paper, we extend this framework to deal with quantitative systems. As a consequence, our results now include languages and axiomatizations, both existing and new ones, for many different kinds of probabilistic systems.

Casanova P, Schmerl B, Garlan D, Abreu R.  2011.  Architecture-based run-time fault diagnosis. Software Architecture. 6903(1):261–277. Abstractecsa2011-abrtfd.pdf

An important step in achieving robustness to run-time faults is the ability to detect and repair problems when they arise in a running system. Effective fault detection and repair could be greatly enhanced by run-time fault diagnosis and localization, since it would allow the repair mechanisms to focus adaptation effort on the parts most in need of attention. In this paper we describe an approach to run-time fault diagnosis that combines architectural models with spectrum-based reasoning for multiple fault localization. Spectrum-based reasoning is a lightweight technique that takes a form of trace abstraction and produces a list (ordered by probability) of likely fault candidates. We show how this technique can be combined with architectural models to support run-time diagnosis that can (a) scale to modern distributed software systems; (b) accommodate the use of black-box components and proprietary infrastructure for which one has neither a specification nor source code; and (c) handle inherent uncertainty about the probable cause of a problem even in the face of transient faults and faults that arise only when certain combinations of system components interact.

Gonzalez-Sanchez A, Piel É, Abreu R, Gross H-G, Van Gemund AJC.  2011.  Prioritizing tests for software fault diagnosis. Software: Practice and Experience. 41(10):42-51. Abstract09e4150be6c66dcc4a000000.pdf

During regression testing, test prioritization techniques select test cases that maximize the confidence on the correctness of the system when the resources for quality assurance (QA) are limited. In the event of a test failing, the fault at the root of the failure has to be localized, adding an extra debugging cost that has to be taken into account as well. However, test suites that are prioritized for failure detection can reduce the amount of useful information for fault localization. This deterio rates the quality of the diagnosis provided, making the subsequent debugging phase more expensive, and defeating the purpose of the test cost minimization. In this paper we introduce a new test case prioritization approach that maximizes the improvement of the diagnostic information per test. Our approach minimizes the loss of diagnostic quality in the prioritized test suite. When considering QA cost as the combination of testing cost and debugging cost, on our benchmark set, the results of our test case prioritization approach show reductions of up to 60% of the overall combined cost of testing and debugging, compared with the next best technique.

Backhouse R, Ferreira JF.  2011.  On Euclid's Algorithm and Elementary Number Theory. Science of Computer Programming. 76(3):160-180. Abstract2011-oneuclidsalgorithm.pdf

Algorithms can be used to prove and to discover new theorems. This paper shows how algorithmic skills in general, and the notion of invariance in particular, can be used to derive many results from Euclid’s algorithm. We illustrate how to use the algorithm as a verification interface (i.e., how to verify theorems) and as a construction interface (i.e., how to investigate and derive new theorems). The theorems that we verify are well-known and most of them are included in standard number-theory books. The new results concern distributivity properties of the greatest common divisor and a new algorithm for efficiently enumerating the positive rationals in two different ways. One way is known and is due to Moshe Newman. The second is new and corresponds to a deforestation of the Stern-Brocot tree of rationals. We show that both enumerations stem from the same simple algorithm. In this way, we construct a Stern-Brocot enumeration algorithm with the same time and space complexity as Newman’s algorithm. A short review of the original papers by Stern and Brocot is also included.

Clarke D, Proença J, Lazovik A, Arbab F.  2011.  Channel-based coordination via constraint satisfaction. Science of Computer Programming. 76(8):681–710. Abstractchannel-basedcoordinationviaconstraintsatisfaction.pdf

Coordination in Reo emerges from the composition of the behavioural constraints of primitives, such as channels, in a component connector. Understanding and implementing Reo, however, has been challenging due to interaction of the channel metaphor, which is an inherently local notion, and the non-local nature of the constraints imposed by composition. In this paper, the channel metaphor takes a back seat. We focus on the behavioural constraints imposed by the composition of primitives and phrase the semantics of Reo as a constraint satisfaction problem. Not only does this provide a clear description of the behaviour of Reo connectors in terms of synchronisation and data how constraints, it also paves the way for new implementation techniques based on constraint satisfaction. We also demonstrate that this approach is more ecient than existing techniques based on connector colouring.

Oliveira N, Rodrigues N, Henriques PR.  2011.  Domain-Specific Language for Coordination Patterns. Computer Science and Information Systems. 8:343–359.
Luković I, Pereira MJV, Oliveira N, da Cruz D, Henriques PR.  2011.  A DSL for PIM Specifications: Design and Attribute Grammar based Implementation. Computer Science and Information Systems. 8(2):379–403.1820-02141100018l.pdf
Boulos MNK, Wheeler S, Tavares C, Jones R.  2011.  How smartphones are changing the face of mobile and participatory healthcare: an overview, with example from eCAALYX. Biomedical Engineering Online. 10:24. Abstracthow_smartphones_are_changing.pdf

The latest generation of smartphones are increasingly viewed as handheld computers rather than as phones, due to their powerful on-board computing capability, capacious memories, large screens and open operating systems that encourage application development. This paper provides a brief state-of-the-art overview of health and healthcare smartphone apps (applications) on the market today, including emerging trends and market uptake. Platforms available today include Android, Apple iOS, RIM BlackBerry, Symbian, and Windows (Windows Mobile 6.x and the emerging Windows Phone 7 platform). The paper covers apps targeting both laypersons/patients and healthcare professionals in various scenarios, e.g., health, fitness and lifestyle education and management apps; ambient assisted living apps; continuing professional education tools; and apps for public health surveillance. Among the surveyed apps are those assisting in chronic disease management, whether as standalone apps or part of a BAN (Body Area Network) and remote server configuration. We describe in detail the development of a smartphone app within eCAALYX (Enhanced Complete Ambient Assisted Living Experiment, 2009- 2012), an EU-funded project for older people with multiple chronic conditions. The eCAALYX Android smartphone app receives input from a BAN (a patient-wearable smart garment with wireless health sensors) and the GPS (Global Positioning System) location sensor in the smartphone, and communicates over the Internet with a remote server accessible by healthcare professionals who are in charge of the remote monitoring and management of the older patient with multiple chronic conditions. Finally, we briefly discuss barriers to adoption of health and healthcare smartphone apps (e.g., cost, network bandwidth and battery power efficiency, usability, privacy issues, etc.), as well as some workarounds to mitigate those barriers.

Bernardeschi C, Cassano L, Domenici A, Masci P.  2011.  Simulation and Test-Case Generation for PVS Specifications of Control Logics. International Journal on Advances in Software. 4 Abstract

We describe a framework for the simulation of control logics specified in the higher-order logic of the Prototype Verification System. The framework offers a library of predefined modules, a method for the composition of more complex modules, and an event-driven simulation engine. A developer defines a system architecture by composing its model out of library modules, possibly introducing new module definitions, and simulates the behaviour of the system model by providing its input waveforms, which are given as functions from time to logic levels. The generation of simulation scenarios (test cases) can be automated by using parametric waveforms that can be instantiated through universal and existential quantifiers. We demonstrate the simulation capabilities of our framework on two simple case studies from a nuclear power plant application. The main feature of this approach is that our formal specifications are executable. Moreover, once the simulation experiments give developers sufficient confidence in the correctness of the specification, the logic models can serve as the basis for its formal verification.

Cunha A, Pacheco H.  2011.  Algebraic Specialization of Generic Functions for Recursive Types. Electronic Notes in Theoretical Computer Science. 229:57–74. AbstractWebsite
n/a