Publications

Paulo J, Pereira JO.  2011.  Model Checking a Decentralized Storage Deduplication Protocol. Fast Abstract in Latin-American Symposium on Dependable Computing. :1. Abstractpp11.pdf

Deduplication of live storage volumes in a cloud computing environment is better done by post-processing: by delaying discovery and removal of duplicate data after I/O requests have been concluded, impact in latency can be minimized. When compared to traditional deduplication in backup systems, which can be done in-line and in a centralized fashion, distribution and concurrency lead to increased complexity. This paper outlines a deduplication algorithm for a typical cloud infrastructure with a common storage pool and summarizes how model-checking with the TLA+ toolset was used to uncover and correct some subtle concurrency issues.

Campos JC, Mendes S.  2011.  FlexiXML - A portable user interface rendering engine for UsiXML. User Interface Extensible Markup Language - UsiXML. :158-168. Abstractflexixmlv7.pdf

A considerable amount of effort in software development is dedicated to the user interaction layer.Given the complexity inherent to the development of this layer, it is important to be able to analyse the concepts and ideas being used in the development of a given user interface. This analysis should be performed as early as possible. Model- based user interface development provides a solution to this problem by providing developers with tools that enable both modeling, and reasoning about, user interfaces at different levels of abstraction. Of particular interest here, is the possibility of animating the models to generate actual user interfaces. This paper describes FlexiXML, a tool that performs the rendering and animation of user interfaces described in the UsiXML modeling language.

Campos JC, Machado J.  2011.  Supporting requirements formulation in software formal verification. Latin-American Symposium on Dependable Computing - LADC - suplemental proceedings . Abstract7_-_81412.pdf

Formal verification tools such as model checkers have reached a stage were their applicability in the development process of dependable and safety critical systems has become viable. While the formal verification step in tools such as model checkers is fully automated, writing appropriate models and properties is a skillful process. In particular, a correct understanding of the logics used to express properties is needed to guarantee that properties correctly encode the original requirements. In this paper we illustrate how a patterns-based tool can help in simplifying the process of generating logical formulae from informally expressed requirements.

Machado J, Campos JC.  2011.  Partial Plant Models in Formal Verification of Industrial Automation Discrete Systems. Latin-American Symposium on Dependable Computing - ICMD - suplemental proceedings. Abstract8_-_81433.pdf

The use of a plant model for formal verification of Industrial Automation systems controllers is realistic because all automation systems are composed by a controller and a plant. Therefore, if the plant model is not used, there is a part of the system that is not considered. However, if there are some cases where the use of a plant model makes the formal verification results more realistic and robust, there are other cases where this does not always happen. Moreover, the discussion presented in this paper is related with the need of using a Plant Model considering, not all of the Plant Model, but Partial Plant models in order to facilitate formal verification tasks of Industrial Automation Discrete Event Systems Controllers.

Barbosa A, Paiva A, Campos JC.  2011.  Test case generation from mutated task models. Proceedings of the 3rd Symposium on Engineering Interactive Computing Systems - EICS. :175-184. Abstractbarbosapc2011.pdf

This paper describes an approach to the model-based testing of graphical user interfaces from task models. Starting from a task model of the system under test, oracles are generated whose behaviour is compared with the execution of the running system. The use of task models means that the effort of producing the test oracles is reduced. It does also mean, however, that the oracles are confined to the set of expected user behaviours for the system. The paper focuses on solving this problem. It shows how task mutations can be generated automatically, enabling a broader range of user behaviours to be considered. A tool, based on a classification of user errors, generates these mutations. A number of examples illustrate the approach.

Freire L, Arezes P, Campos JC.  2011.  A importância das avaliações qualitativas em sistemas E-learning. Occupational Safety and Hygiene - SHO. :274-278. Abstractfreireac2011.pdf

É cada vez mais frequente encontrarem-se investigações sobre a usabilidade dos sistemas de E-learning. Como resultados destas investigações, parece ser claro que grande parte delas aponta para a necessidade de uma discussão crítica acerca de métodos para avaliação de usabilidade específicos para os sistemas educativos, nomeadamente, sobre a importância do foco nos métodos direccionados para os utilizadores principais. Entretanto, parece também ser urgente e fundamental investigar a forma com que as análises ergonómicas tem sido aplicadas, assim como, as adaptações necessárias a tais métodos de usabilidade, de modo a definirem-se avaliações mais coerentes com a natureza do sistema. Sendo assim, com base na observação dos sistemas de E-learning - neste artigo será apresentada uma revisão bibliográfica quanto às principais formas de avaliação de usabilidade em sistemas educativos. Como resultado desta revisão, os estudos de Ergonomia levam-nos a considerar possibilidades de análise da usabilidade através de um ponto de vista mais humano, onde se equaciona a influência que o background do utilizador poderá ter sobre a interacção com o sistema e, consequentemente, que atributos de usabilidade serão mais significativos para aquele determinado perfil de utilizador. Neste sentido, o presente estudo pretende argumentar, através de uma visão geral do estado-da-arte, em prol da necessidade e da importância que o investigador deve ter sobre a noção exacta dos instrumentos de que dispõe, por forma a averiguar os dados que o utilizador poderá fornecer-lhe e qual a relevância dos resultados obtidos para a introdução de melhorias no sistema. Ao longo do artigo é efectuada uma discussão sobre métodos qualitativos de avaliação de usabilidade, baseados em experiências com sistemas de E-learning, académicos e/ou comerciais, ao incluir utilizadores com origens em diversos países e culturas. Dito isto, este artigo pretende retratar uma mudança de paradigma de avaliação que tem sido observada nos últimos anos, tanto na área de ergonomia, como na área do design de sistemas educativos.

Soares L, Pereira JO.  2011.  Improving the Scalability of Cloud-Based Resilient Database Servers. Distributed Applications and Interoperable Systems - DAIS, with DisCoTec. Abstractsp11.pdf

Many rely now on public cloud infrastructure-as-a-service for database servers, mainly, by pushing the limits of existing pooling and replication software to operate large shared-nothing virtual server clusters. Yet, it is unclear whether this is still the best architectural choice, namely, when cloud infrastructure provides seamless virtual shared storage and bills clients on actual disk usage. This paper addresses this challenge with Resilient Asynchronous Commit (RAsC), an improvement to a well-known shared-nothing design based on the assumption that a much larger number of servers is required for scale than for resilience. Then we compare this proposal to other database server architectures using an analytical model focused on peak throughput and conclude that it provides the best performance/cost trade-o while at the same time addressing a wide range of fault scenarios.

Gomes P, Pereira JO, Oliveira R.  2011.  An Object Mapping for the Cassandra Distributed Database. INFORUM - Simpósio de Informática - Sessão sobre Computação Paralela, Distribuída e de Larga Escala. Abstractgpo11.pdf

New data management systems aimed at huge amounts of data, such as those pioneered by Google, Amazon, and Yahoo, have recently motivated a profound revolution in database management. These systems are characterized by simple data and query models and by their relaxed consistency, that contrasts with the ubiquitous and widely known relational and ACID model. These changes, in combination with the absence of a high level language for query and manipulation, make it harder for developers to port applications or to leverage existing know-how. In fact, the major proponents of such technologies are precisely those companies that can employ highly skilled developers.This paper bridges this gap between the common programmer and the increasingly popular Apache Cassandra distributed database by providing an object mapping for the Java language in the style of object-relational mappers that are commonly used with SQL databases. In detail, we describe how the object-relational paradigm can be mapped to the new data model and experimentally evaluate the result with a combination of the standard TPC-W benchmark and a representative application from the telecom industry.

Barbosa MB, Moss A, Page D, Rodrigues N, Silva P.  2011.  Type Checking Cryptography Implementations. Fundamentals of Software Engineering - 4th IPM International Conference, FSEN 2011, Revised Selected Papers. 7141:316-334. Abstractfsen11.pdf

Cryptographic software development is a challenging field: high performance must be achieved, while ensuring correctness and compliance with low-level security policies. CAO is a domain specific language designed to assist development of cryptographic software. An important feature of this language is the design of a novel type system introducing native types such as predefined sized vectors, matrices and bit strings, residue classes modulo an integer, finite fields and finite field extensions, allowing for extensive static validation of source code. We present the formalisation, validation and implementation of this type system.

Maia F, Matos M, Pereira JO, Oliveira R.  2011.  Worldwide consensus. Proceedings of the 11th international conference on Distributed applications and interoperable systems - IFIP. :257–269. Abstractworldwide_consensus.pdf

Consensus is an abstraction of a variety of important challenges in dependable distributed systems. Thus a large body of theoretical knowledge is focused on modeling and solving consensus within different system assumptions. However, moving from theory to practice imposes compromises and design decisions that may impact the elegance, trade-offs and correctness of theoretical appealing consensus protocols.
In this paper we present the implementation and detailed analysis, in a real environment with a large number of nodes, of mutable consensus, a theoretical appealing protocol able to offer a wide range of trade-offs (called mutations) between decision latency and message complexity. The analysis sheds light on the fundamental behavior of the mutations, and leads to the identification of problems related to the real environment. Such problems are addressed without ever affecting the correctness of the theoretical proposal.

Cunha A, Pacheco H.  2011.  Algebraic Specialization of Generic Functions for Recursive Types. Proceedings of the 2nd Workshop on Mathematically Structured Functional Programming - MSFP. 229:57–74. Abstractmsfp08.pdf

Defining functions over large, possibly recursive, data structures usually involves a lot of boilerplate. This code simply traverses non-interesting parts of the data, and rapidly becomes a maintainability problem. Many generic programming libraries have been proposed to address this issue. Most of them allow the user to specify the behavior just for the interesting bits of the structure, and provide traversal combinators to “scrap the boilerplate”. The expressive power of these libraries usually comes at the cost of efficiency, since runtime checks are used to detect where to apply the type-specific behavior. In previous work we have developed an effective rewrite system for specialization and optimization of generic programs. In this paper we extend it to also cover recursive data types. The key idea is to specialize traversal combinators using well-known recursion patterns, such as folds or paramorphisms. These are ruled by a rich set of algebraic laws that enable aggressive optimizations. We present a type-safe encoding of this rewrite system in Haskell, based on recent language extensions such as type-indexed type families.

Cunha A, Pacheco H.  2011.  Calculating with Lenses: Optimising Bidirectional Transformations. Proceedings of the 20th ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation . :91–100. Abstractpepm11.pdf

This paper presents an equational calculus to reason about bidirectional transformations specified in the point-free style. In particular, it focuses on the so-calledlenses as a bidirectional idiom, and shows that many standard laws characterising point-free combinators and recursion patterns are also valid in that setting. A key result is that uniqueness also holds for bidirectional folds and unfolds, thus unleashing the power of fusion as a program optimisation technique. A rewriting system for automatic lens optimisation is also presented, to prove the usefulness of the proposed calculus.

Cunha A, Garis A, Riesco D.  2011.  Translating Alloy Specifications to UML Class Diagrams Annotated with OCL. Proceedings of the 9th International Conference on Software Engineering and Formal Methods - SEFM. 7041:221-236. Abstractsefm11.pdf

Model-driven engineering (MDE) is a software engineering approach based on model transformations at different abstraction levels. It prescribes the development of software by successively transforming the models from abstract (specifications) to more concrete ones (code). Alloy is an increasingly popular lightweight formal specification language that supports automatic verification. Unfortunately, its widespread industrial adoption is hampered by the lack of an ecosystem of MDE tools, namely code generators. This paper presents a model transformation from Alloy to UML class diagrams annotated with OCL (UML+OCL) and shows how an existing transformation from UML+OCL to Alloy can be improved to handle dynamic issues. The proposed bidirectional transformation enables a smooth integration of Alloy in the current MDE contexts, by allowing UML+OCL specifications to be transformed to Alloy for validation and verification, to correct and possibly refine them inside Alloy, and to translate them back to UML+OCL for sharing with stakeholders or to reuse current model-driven architecture tools to refine them toward code.

Campos F, Pereira JO, Oliveira R.  2011.  Achieving Eventual Leader Election in WS - Discovery. Proceedings of 5th Latin-American Symposium on Dependable Computing (LADC). Abstractcpo11.pdf

The Devices Profile for Web Services (DPWS) provides the foundation for seamless deployment, autonomous configuration, and joint operation for various computing de- vices in environments ranging from simple personal multimedia setups and home automation to complex industrial equipment and large data centers. In particular, WS-Discovery provides dynamic rendezvous for clients and services embodied in such devices. Unfortunately, failure detection implicit in this standard is very limited, both by embodying static timing assumptions and by omitting liveness monitoring, leading to undesirable situations in demanding application scenarios. In this paper we identify these undesirable outcomes and propose an extension of WS-Discovery that allows failure detection to achieve eventual leader election, thus preventing them.

Cruz F, Gomes P, Oliveira R, Pereira JO.  2011.  Assessing NoSQL Databases for Telecom Applications. Proceedings of IEEE 13th Conference on Commerce and Enterprise Computing (CEC). Abstracto_publicado.pdf

The constant evolution of access technologies are turning Internet access more ubiquitous, faster, better and cheaper. In connection with the proliferation of Internet access, Cloud Computing is changing the way users look at data, moving from local applications and installations to remote services, accessible from any device. This new paradigm presents numerous opportunities that even traditional businesses like telecoms cannot ignore, in particular, enabling new and more cost effective solutions to old problems. The work presented in this paper provides a detailed description of how a telecom application can be migrated to a NoSQL database. Particularly, by pointing out the necessary change of how we reason about data as well as the data structures that support it, in order to take full advantage of Cloud Computing. In addition, we also present a preliminary evaluation of different data persistency paradigms based on a fully tunable simulation platform that mimics the operation of a telecom business.