Recent Publications

Cunha A, Pinto JS.  2004.  Making the Point-free Calculus Less Pointless. Proceedings of the 2nd APPSEM Workshop. :178–179. Abstractmkpflpl.pdf

Functional programming is particularly well suited for equational reasoning – referential transparency ensures that expressions in functional programs behave as ordinary expressions in mathematics. However, unstructured programming can still difficult formal treatment. As such, when John Backus proposed a new functional style of programming in his 1977 ACM Turing Award lecture, the main features were the absence of variables and the use of functional forms or combinators to combine existing functions into new functions [1]. The choice of the combinators was based not only on their programming power, but also on the power of the associated algebraic laws. Quoting Backus: “Associated with the functional style of programming is an algebra of programs [...] This algebra can be used to transform programs and to solve equations whose “unknowns ” are programs in much the same way one transforms equations in high-school algebra”.

Correia A, Sousa AL, Soares L, Moura F, Oliveira R.  2004.  Revisiting epsilon serializabilty to improve the database state machine. Proceedings of the Workshop on Dependable Distributed Data Management (with SRDS 2004). Abstract10.1.1.149.5820.pdf

Recently, a large body of research has been exploiting group communication based techniques to improve the dependability and performance of synchronously replicated database systems.

Sousa AL, Pereira JO, Oliveira R, Moura F.  2004.  Semantic reliability on the Database State Machine. JISBD - Jornadas de Ingenieria del Software y Bases de Datos. Abstractspo04.pdf

Database replication protocols based on group communication primitives have recently been the subject of a considerable body of research [1, 11, 13, 6, 8, 4]. The reason for this stems from the adequacy of the order and atomicity properties of group communication primitives to implement synchronous replication (i.e., strong consistent) strategies. Unlike database replication schemes based on traditional transactional.

Pereira JO, Oliveira R.  2004.  The mutable consensus protocol. Proceedings of 23rd IEEE International Symposium on Reliable Distributed Systems (SRDS). Abstractsrds04-mutable.pdf

In this paper we propose the mutable consensus protocol, a pragmatic and theoretically appealing approach to enhance the performance of distributed consensus. First, an apparently inefficient protocol is developed using the simple stubborn channel abstraction for unreliable message passing. Then, performance is improved by introducing judiciously chosen finite delays in the implementation of channels. Although this does not compromise correctness, which rests on an asynchronous system model, it makes it likely that the transmission of some messages is avoided and thus the message exchange pattern at the network level changes noticeably. By choosing different delays in the underlying stubborn channels, the mutable consensus protocol can actually be made to resemble several different protocols. Besides presenting the mutable consensus protocol and four different mutations, we evaluate in detail the particularly interesting permutation gossip mutation, which allows the protocol to scale gracefully to a large number of processes by balancing the number of messages to be handled by each process with the number of communication steps required to decide. The evaluation is performed using a realistic simulation model which accurately reproduces resource consumption in real systems.

Pereira JO, Rodrigues L, Pinto A, Oliveira R.  2004.  Low latency probabilistic broadcast in wide area networks. Proceedings of 23rd IEEE International Symposium on Reliable Distributed Systems (SRDS). Abstractprpo04.pdf

In this paper we propose a novel probabilistic broadcast protocol that reduces the average end-to-end latency by dynamically adapting to network topology and tracconditions.
It does so by using an unique strategy that consists in adjusting the fanout and preferred targets for dif erent gossip rounds as a function of the properties of each node.No declassi cation is light-weight and integrated in the protocol membership management.
Furthermore, each node is not required to have full knowledge of the group membership or of the network topology. The paper shows how the protocol can be con gured and evaluates its performance with a detailed simulation model.

Oliveira JN.  2004.  A Survey of Formal Methods Courses in European Higher Education. TFM - Teaching Formal Methods. 3294:235-248. Abstract

This paper presents a survey of Formal Methods courses in European higher education carried out by the FME Subgroup on Education over the last two years. The survey data sample is made of 117 courses spreading over 58 higher-education institutions across 13 European countries and involving (at least) 91 academic staff.
A total number of 365 websites have been browsed which are accessible from the electronic (HTML) version of this paper in the form of links to course websites, lecturers and topic entries in encyclopedias or virtual libraries.Three main projections of our sample are briefly analysed. Although far from being fully representative, these already provide some useful indicators about the impact of formal methods in European computing curricula.

Almeida JB, Almeida PS, Moreno CB.  2004.  Bounded Version Vectors. International Conference on Distributed Computing - ICDCS. 3274:102-116. Abstract04bvv.pdf

Version vectors play a central role in update tracking under optimistic distributed systems, allowing the detection of obsolete or inconsistent versions of replicated data. Version vectors do not have a bounded representation; they are based on integer counters that grow indefinitely as updates occur. Existing approaches to this problem are scarce; the mechanisms proposed are either unbounded or operate only under specific settings. This paper examines version vectors as a mechanism for data causality tracking and clarifies their role with respect to vector clocks. Then, it introduces bounded stamps and proves them to be a correct alternative to integer counters in version vectors. The resulting mechanism, bounded version vectors, represents the first bounded solution to data causality tracking between replicas subject to local updates and pairwise symmetrical synchronization.

Meng S, Barbosa LS.  2004.  On Refinement of Generic Software Components. Proceedings of 10th International Conference on Algebraic Methodology and Software Technology - AMAST. 3116:506–520. Abstractrefiamast.pdf

This paper characterizes refinement of state-based software components modelled as pointed coalgebras for some Set endofunctors. The proposed characterization is parametric on a specification of the underlying behaviour model introduced as a strong monad. This provides a basis to reason about (and transform) state-based software designs.

Sun M, Naixião Z, Barbosa LS.  2004.  On Semantics and Refinement of UML Statecharts: A Coalgebraic View. 2nd International Conference on Software Engineering and Formal Methods (SEFM 2004), 28-30 September 2004, Beijing, China. :164–173. Abstractsefm04.pdf

Statecharts was conceived as a visual formalism for the design of reactive systems. UML statecharts is an object-based variant of classical statecharts, incorporating several concepts different from the classical statecharts. This paper discusses a coalgebraic description of UML statecharts, directly derived from its operational semantics. In particular such an approach induces suitable notions of equivalence and (behavioral) refinement for statecharts. Finally, a few refinement laws are investigated to support verifiable stepwise system development with statecharts.

Barbosa MB, Barbosa LS.  2004.  Towards a Relational Model for Component Interconnection. Proceedings of 8th Brazilian Symposium on Programming Languages - SBLP. :17–30. Abstractbb04sblp.pdf

The basic motivation of component based development is to replace conventional programming by the composition of reusable off-the-shelf units, externally coordinated through a network of connecting devices, to achieve a common goal. This paper introduces a new relational model for software connectors and discusses some preliminary work on its implementation in HASKELL. The proposed model adopts a coordination point of view in order to deal with components’ temporal and spatial decoupling and, therefore, to provide support for looser levels of inter-component dependency and effective external control.

Barbosa MB, Barbosa LS.  2004.  Specifying Software Connectors. Proceedings of 1st International ColloquiumTheoretical Aspects of Computing - ICTAC . 3407:53–68. Abstractbb04ictac_lsb.pdf

Orchestrating software components, often from independent suppliers, became a central concern in software construction. Actually, as relevant as components themselves, are the ways in which they can be put together to interact and cooperate in order to achieve some common goal. Such is the role of the so-called software connectors: external coordination devices which ensure the flow of data and enforce synchronization constraints within a component’s network. This paper introduces a new model for software connectors, based on relations extended in time, which aims to provide support for light inter-component dependency and effective external control.

Rodrigues N, Barbosa LS.  2004.  Prototyping Behavioural Specifications in the Net Framework. Proceedings of 7th Brazilian Symposium on Formal Methods - SBMF. :108–118. Abstractrb04actas.pdf

Over the last decade, software architecture emerged as a critical design step in Software Engineering. This encompassed a shift from traditional programming towards the deployment and assembly of independent components. The specification of the overall system structure, on the one hand, and of the interactions patterns between its components, on the other, became a major concern for the working developer. Although a number of formalisms to express behaviour and supply the indispensable calculational power to reason about designs, are available, the task of deriving architectural designs on top of popular component platforms has remained largely informal. This paper introduces a systematic approach to derive, from behavioural specifications written in Ccs, the corresponding architectural skeletons in the Microsoft. Net framework in the form of executable C code. Such prototyping process is automated by means of a specific tool developed in Haskell.

Bernardeschi C, Martini L, Masci P.  2004.  Java bytecode verification with dynamic structures. IASTED Conf. on Software Engineering and Applications. :559-564. Abstract

Java applets run on a Virtual Machine that checks code's integrity and correctness before execution using a module called Bytecode Verifier. Java Card technology allows Java applets to run on smart cards. Large memory space requirements of the verification process do not allow the implementation of a Bytecode Verifier embedded in the Java Card Virtual Machine. To address this feasibility problem, we propose a modified verification algorithm that optimizes the use of system memory. The algorithm, inspired to compilers techniques, partitions the code of the methods into control regions. In this way data structures can be dynamically allocated and the verification process can be applied locally to a subset of instructions.

Campos JC, Doherty G.  2003.  Reasoning about Dynamic Information Displays. II3 Spring Days Workshop. 2844:288-302. Abstracti3sd01-cfcs.pdf

With increasing use of computing systems while on the move and in constantly changing conditions, whether it is via mobile devices, wearable computers or embedded systems in the environment, time plays an increasingly important role in interaction. The way in which information is represented in an interface is fundamental to interaction with it, and how the information is used in the users tasks and activities. Dynamic representations where the user must perceive changes in the information displayed over time pose a further challenge to the designer. Very often this information is integrated with information from the environment in the performance of the user’s tasks. The diminutive size and limited display capabilities of many ubiquitous and mobile computing devices further motivate careful design of these displays. In this paper we look at how time can be taken into account when reasoning about representational issues from the early stages of design. We look at a model which can be used to reason about these issues in a structured fashion, and apply it to an example.

Campos JC, Harrison M.  2003.  From HCI to Software Engineering and back. Bridging the Gaps Between Software Engineering and Human-Computer Interaction, ICSE '2003 workshop. :49-56. Abstractcamposh03.pdf

Methods to assess and ensure system usability are becoming increasingly important as market edge becomes less dependent on function and more dependent on ease of use, and as recognition increases that a user’s failure to understand how an automated system works may jeapordise its safety. While ultimately only deployment of a system will prove its usability, a number of approaches to early analysis have been proposed that provide some ability to predict the usability and human-error proneness of the fielded system. The majority of these approaches are designed to be used by human factors specialists, require specific expertise that does not fall within the domain of software engineering and fall outside standard software development life cycles. However, amongst this number, some rigorous mathematical methods have been proposed as solutions to the more general problem of ensuring quality of system designs citations both in terms of the broader software engineering agenda and in terms of their effectiveness for usability analysis, the opportunities that they offer and discusses what might be done to make them more acceptable and effective. The paper positions those methods that have been effective against less formal usability analysis methods.