Tightening the contract refinements of a system architecture

Contract-based design is an emerging paradigm for correct-by-construction hierarchical systems: components are associated with assumptions and guarantees expressed as formal properties; the architecture is analyzed by verifying that each contract of composite components is correctly refined by the c...

ver descrição completa

Detalhes bibliográficos
Autores: Cimatti, Alessandro, Demasi, Ramiro Adrian, Tonetta, Stefano
Tipo de documento: artigo
Estado:Versão publicada
Data de publicação:2018
País:Argentina
Recursos:Consejo Nacional de Investigaciones Científicas y Técnicas
Repositório:CONICET Digital (CONICET)
Idioma:inglês
OAI Identifier:oai:ri.conicet.gov.ar:11336/91228
Acesso em linha:http://hdl.handle.net/11336/91228
Access Level:Acceso aberto
Palavra-chave:CONTRACT-BASED DESIGN
OCRA
TEMPORAL LOGIC
PARAMETER SYNTHESIS
https://purl.org/becyt/ford/1.2
https://purl.org/becyt/ford/1
Descrição
Resumo:Contract-based design is an emerging paradigm for correct-by-construction hierarchical systems: components are associated with assumptions and guarantees expressed as formal properties; the architecture is analyzed by verifying that each contract of composite components is correctly refined by the contracts of its subcomponents. The approach is very efficient, because the overall correctness proof is decomposed into proofs local to each component. However, the process for the contract specification and refinement is quite expensive because the requirements are formalized into formal properties, where part of the complexity is delegated to the designer, who has the burden of specifying the contracts. Typical problems include understanding which contracts are necessary, and how they can be simplified without breaking the correctness of the refinement and other refinements in case some subcontracts are shared. In this paper, we tackle these problems by proposing a technique to understand and simplify the contract refinements of a system architecture during the development process for the contract specification and refinement. The technique, called tightening, is based on parameter synthesis. The idea is to generate a set of parametric proof obligations, where each parameter evaluation corresponds to a variant of the original(s) contract refinement(s), and to search for tighter variants of the contracts that still ensure the correctness of the refinement(s). We cast this approach in the OCRA framework, where contracts are expressed with LTL formulas, and we evaluate its performance and effectiveness on a number of benchmarks.