António Ravara

LO
6papers
7citations
Novelty13%
AI Score30

6 Papers

SEJul 20, 2018Code
Uma análise comparativa de ferramentas de análise estática para deteção de erros de memória

Patrícia Monteiro, João Lourenço, António Ravara

--- Portuguese version As falhas de software estão com frequência associadas a acidentes com graves consequências económicas e/ou humanas, pelo que se torna imperioso investir na validação do software, nomeadamente daquele que é crítico. Este artigo endereça a temática da qualidade do software através de uma análise comparativa da usabilidade e eficácia de quatro ferramentas de análise estática de programas em C/C++. Este estudo permitiu compreender o grande potencial e o elevado impacto que as ferramentas de análise estática podem ter na validação e verificação de software. Como resultado complementar, foram identificados novos erros em programas de código aberto e com elevada popularidade, que foram reportados. --- English version Software bugs are frequently associated with accidents with serious economical and/or human consequences, being thus imperative the investment in the validation of software, namely of the critical one. This article addresses the topic of software quality by making a comparative analysis of the usability and efficiency of four static analysis tools for C/C++ programs. This study allow to understand the big potential and high impact that these tools may have in the validation and verification of software. As a complementary result, we identified new errors in very popular open source projects, which have been reported.

5.9PLApr 22
Automatic Code and Test Generation of Smart Contracts from Coordination Models

Elvis Konjoh Selabi, Maurizio Murgia, António Ravara et al.

We propose a formal approach for specifying and implementing decentralised coordination in distributed systems, with a focus on smart contracts. Our model captures dynamic roles, data-driven transitions, and external coordination interfaces, enabling high-level reasoning about decentralised workflows. We implement a toolchain that supports formal model validation, code generation for Solidity (our framework is extendable to other smart contract languages), and automated test synthesis. Although our implementation targets blockchain platforms, the methodology is platform-agnostic and may generalise to other service-oriented and distributed architectures. We demonstrate the expressiveness and practicality of the approach by modelling and realising some coordination patterns in smart contracts.

SESep 17, 2020
Typestates to Automata and back: a tool

André Trindade, João Mota, António Ravara

Development of software is an iterative process. Graphical tools to represent the relevant entities and processes can be helpful. In particular, automata capture well the intended execution flow of applications, and are thus behind many formal approaches, namely behavioral types. Typestate-oriented programming allow us to model and validate the intended protocol of applications, not only providing a top-down approach to the development of software, but also coping well with compositional development. Moreover, it provides important static guarantees like protocol fidelity and some forms of progress. Mungo is a front-end tool for Java that associates a typestate describing the valid orders of method calls to each class, and statically checks that the code of all classes follows the prescribed order of method calls. To assist programming with Mungo, as typestates are textual descriptions that are terms of an elaborate grammar, we developed a tool that bidirectionally converts typestates into an adequate form of automata, providing on one direction a visualization of the underlying protocol specified by the typestate, and on the reverse direction a way to get a syntactically correct typestate from the more intuitive automata representation.

LOSep 8, 2014
Proceedings 10th International Workshop on Automated Specification and Verification of Web Systems

Maurice H. ter Beek, António Ravara

These proceedings contain the papers presented at the 10th International Workshop on Automated Specification and Verification of Web Systems (WWV 2014), which was held on 18 July 2014 in Vienna, Austria, as a satellite workshop of the Federated Logic Conference (FLoC 2014), associated to the 7th International Joint Conference on Automated Reasoning (IJCAR 2014), as part of the Vienna Summer of Logic (VSL 2014). WWV is a yearly workshop that aims at providing an interdisciplinary forum to facilitate the cross-fertilization and the advancement of hybrid methods that exploit concepts and tools drawn from rule-based programming, formal methods, software engineering and Web-oriented research.

DCAug 15, 2012
Proceedings 11th International Workshop on Foundations of Coordination Languages and Self Adaptation

Natallia Kokash, António Ravara

Welcome to the proceedings of FOCLASA 2012, the 11th International Workshop on the Foundations of Coordination Languages and Self-Adaptation. FOCLASA 2012 was held in Newcastle upon Tyne, UK, on September 8, 2012 as a satellite event of CONCUR 2012, the 23rd International Conference on Concurrency Theory. The workshop provides a venue where researchers and practitioners could meet, exchange ideas, identify common problems, determine some of the key and fundamental issues related to coordination languages and self adaptation, and explore together and disseminate solutions. Indeed, a number of hot research topics are currently sharing the common problem of combining concurrent, distributed, mobile and heterogeneous components, trying to harness the intrinsic complexity of the resulting systems. Computation nowadays is becoming inherently concurrent, either because of characteristics of the hardware (with multicore processors becoming omnipresent) or due to the ubiquitous presence of distributed systems (incarnated in the Internet). Computational systems are therefore typically distributed, concurrent, mobile, and often involve composition of heterogeneous components. To specify and reason about such systems and go beyond the functional correctness proofs, e.g., by supporting reusability and improving maintainability, approaches such as coordination languages and self adaptation are recognised as fundamental. This year, we received 13 submissions involving 35 authors from 10 different countries. Papers underwent a rigorous review process, and all accepted papers received 3 review reports. After the review process, the international Program Committee of FOCLASA 2012 decided to select 8 papers for presentation during the workshop and inclusion in these proceedings. These papers tackle different issues that are currently central to our community, self-adaptation and coordination, processes and coordination, and type systems. The workshop features an invited talk by Sebastian Uchitel from Imperial College London (UK).