Journal Articles

Riboira A, Rodrigues R, Abreu R.  2012.  Integrating Interactive Visualizations of Automatic Debugging Techniques on an Integrated Development Environment. International Journal of Creative Interfaces and Computer Graphics (IJCICG). 3(2):42–59. Abstractcamera-ready.doc

Automated debugging techniques based on statistical analysis of historical test executions data have recently received considerable attention due to their diagnostic capabilities. However, the tools that materialize such techniques suffer from a common, rather important shortcoming: the lack of effective diagnostic reports' visualizations. This limitation prevents the wide adoption of such tools, as it is difficult to understand the diagnostic reports yielded by them. To fill this gap, the authors propose a framework for integrating interactive visualizations of automatic debugging reports in a popular development environment namely, the Eclipse integrated development environment. The framework, coined GZoltar, provides several important features to aid the developer's efficiency to find the root cause of observed failures quickly, such as direct links to the source code editor. Furthermore, the authors report on the results of a user study conducted to assess GZoltar's effectiveness.

Wong PYH, Albert E, Muschevici R, Proença J, Schäfer J, Schlatte R.  2012.  The ABS tool suite: modelling, executing and analysing distributed adaptable object-oriented systems. STTT - Software Tools for Technology Transfer. 14(5):567–588. Abstract1-original.pdf

Modern software systems must support a high degree of variability to accommodate a wide range of requirements and operating conditions. This paper introduces the Abstract Behavioural Speci cation (ABS) language and tool suite, a comprehensive platform for developing and analysing highly adaptable distributed concurrent software systems. The ABS language has a hybrid functional and object-oriented core, and comes with extensions that support the development of systems that are adaptable to diversi ed requirements, yet capable to maintain a high level of trustworthiness. Using ABS, system variability is consistently traceable from the level of requirements engineering down to object behaviour. This facilitates temporal evolution, as changes to the required set of features of a system are automatically re ected by functional adaptation of the system's behaviour. The analysis capabilities of ABS stretch from debugging, observing and simulating to resource analysis of ABS models and help ensure that a system will remain dependable throughout its evolutionary lifetime. We report on the experience of using the ABS language and the ABS tool suite in an industrial case study.

Avvenuti M, Bernardeschi C, Francesco ND, Masci P.  2012.  JCSI: A tool for checking secure information flow in Java Card applications. Journal of Systems and Software. 85:2479-2493. Abstract

This paper describes a tool for checking secure information flow in Java Card applications. The tool performs a static analysis of Java Card CAP files and includes a CAP viewer. The analysis is based on the theory of abstract interpretation and on a multi-level security policy assignment. Actual values of variables are abstracted into security levels, and bytecode instructions are executed over an abstract domain. The tool can be used for discovering security issues due to explicit or implicit information flows and for checking security properties of Java Card applications downloaded from untrusted sources.

Jin D, Yang B, Moreno CB, Liu D, He D, Liu J.  2011.  A Markov random walk under constraint for discovering overlapping communities in complex networks. Journal of Statistical Mechanics: Theory and Experiment. 2011(P05031):21. Abstract1303.5675.pdf

Detection of overlapping communities in complex networks has motivated recent research in the relevant fields. Aiming this problem, we propose a Markov dynamics based algorithm, called UEOC, which means, 'unfold and extract overlapping communities'. In UEOC, when identifying each natural community that overlaps, a Markov random walk method combined with a constraint strategy, which is based on the corresponding annealed network (degree conserving random network), is performed to unfold the community. Then, a cutoff criterion with the aid of a local community function, called conductance, which can be thought of as the ratio between the number of edges inside the community and those leaving it, is presented to extract this emerged community from the entire network. The UEOC algorithm depends on only one parameter whose value can be easily set, and it requires no prior knowledge on the hidden community structures. The proposed UEOC has been evaluated both on synthetic benchmarks and on some real-world networks, and was compared with a set of competing algorithms. Experimental result has shown that UEOC is highly effective and efficient for discovering overlapping communities.

Shapiro M, Preguiça N, Moreno CB, Zawirsky M, Fatourou P, others.  2011.  Convergent and Commutative Replicated Data Types. Bulletin of the European Association for Theorical Computer Science. :67–88. Abstract120-477-1-pb.pdf

Eventual consistency aims to ensure that replicas of some mutable shared object converge without foreground synchronisation. Previous approaches to eventual consistency are ad-hoc and error-prone. We study a principled approach: to base the design of shared data types on some simple formal conditions that are sufficient to guarantee eventual consistency. We call these types Convergent or Commutative Replicated Data Types (CRDTs). This paper formalises asynchronous object replication, either state based or operation based, and provides a sufficient condition appropriate for each case. It describes several useful CRDTs, including container data types supporting both add and remove operations with clean semantics, and more complex types such as graphs and monotonic DAGs. It discusses some properties needed to implement non-trivial CRDTs.

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
Lopes N, Moreno CB.  2010.  Building Inverted Indexes Using Balanced Trees Over DHT Systems. EuroSys 2006 Poster. Abstract10.1.1.163.9683.pdf

Distributed Hash Table (DHT) systems are scalable and efficient data structures for object storage and location using a simple put/get interface. These systems place objects over a very large set of hosts using a multitude of algorithms in order to distribute objects uniformly among hosts using logarithmic (or lower) costs for routing table sizes and message hops [1, 2]. However, these systems assume that object size (storage load) and popularity (communication load) follow an uniform distribution. When unbalanced data is used on a DHT, hotspots are created at some specific (random) hosts. Although one might argue that storage is not a critical resource, due to the current trend on secondary storage capacity, storing such large objects creates network bottlenecks, which in turn may limit data availability.

Silva JC, Campos JC, Saraiva JA.  2010.  GUI Inspection from Source Code Analysis. Electronic Communications of the EASST. 33 Abstract459-1337-1-pb.pdf

Graphical user interfaces (GUIs) are critical components of todays software. Given their increased relevance, correctness and usability of GUIs are becoming essential. This paper describes the latest results in the development of our tool to reverse engineer the GUI layer of interactive computing systems. We use static analysis techniques to generate models of the user interface behaviour from source code. Models help in graphical user interface inspection by allowing designers to concentrate on its more important aspects. One particularly type of model that the tool is able to generate is state machines. The paper shows how graph theory can be useful when applied to these models. A number of metrics and algorithms are used in the analysis of aspects of the user interface's quality. The ultimate goal of the tool is to enable analysis of interactive system through GUIs source code inspection.

Azevedo PJ, Jorge AM.  2010.  Ensembles of jittered association rule classifiers. Data Mining and Knowledge Discovery. 21(1):91-129. Abstractart3a10.10072fs10618-010-0173-y.pdf

The ensembling of classifiers tends to improve predictive accuracy. To obtain an ensemble with N classifiers, one typically needs to run N learning processes. In this paper we introduce and explore Model Jittering Ensembling, where one single model is perturbed in order to obtain variants that can be used as an ensemble. We use as base classifiers sets of classification association rules. The two methods of jittering ensembling we propose are Iterative Reordering Ensembling (IRE) and Post Bagging (PB). Both methods start by learning one rule set over a single run, and then produce multiple rule sets without relearning. Empirical results on 36 data sets are positive and show that both strategies tend to reduce error with respect to the single model association rule classifier. A bias–variance analysis reveals that while both IRE and PB are able to reduce the variance component of the error, IRE is particularly effective in reducing the bias component. We show that Model Jittering Ensembling can represent a very good speed-up w.r.t. multiple model learning ensembling. We also compare Model Jittering with various state of the art classifiers in terms of predictive accuracy and computational efficiency.

Almeida PS, Barbosa MB, Pinto JS, Vieira B.  2010.  Deductive verification of cryptographic software. Innovations in Systems and Software Engineering. 6:203–218. Abstractisse_2010.pdf

We apply state-of-the art deductive verification tools to check security-relevant properties of cryptographic software, including safety, absence of error propagation, and correctness with respect to reference implementations. We also develop techniques to help us in our task, focusing on methods oriented towards increased levels of automation, in scenarios where there are clear obvious limits to such automation. These techniques allow us to integrate automatic proof tools with an interactive proof assistant, where the latter is used off-line to prove once-and-for-all fundamental lemmas about properties of programs. The techniques developed have independent interest for practical deductive verification in general.

Barbosa LS, Cerone A, Petrenko A, Shaikh S.  2010.  Certification of open-source software: A role for formal methods? International Journal of Computer Systems Science and Engineering. :273-281. Abstractijcsse-bcps.pdf

Despite its huge success and increasing incorporation in complex, industrial-strength applications, open source software, by the very nature of its open, unconventional, distributed development model, is hard to assess and certify in an effective, sound and independent way. This makes its use and integration within safety or security-critical systems, a risk. And, simultaneously an opportunity and a challenge for rigourous, mathematically based, methods which aim at pushing software analysis and development to the level of a mature engineering discipline. This paper discusses such a challenge and proposes a number of ways in which open source development may benefit from the whole patrimony of formal methods.