Automated workarounds from Java program specifications based on SAT solving

"The failures that bugs in software lead to can sometimes be bypassed by the so-called workarounds: when a (faulty) routine fails, alternative routines that the system offers can be used in place of the failing one, to circumvent the failure. Existing approaches to workaround-based system recov...

Descripción completa

Guardado en:
Detalles Bibliográficos
Autores principales: Uva, Marcelo, Ponzio, Pablo, Regis, Germán, Aguirre, Nazareno, Frías, Marcelo
Formato: Artículos de Publicaciones Periódicas acceptedVersion
Lenguaje:Inglés
Publicado: 2019
Materias:
Acceso en línea:http://ri.itba.edu.ar/handle/123456789/1642
Aporte de:
id I32-R138-123456789-1642
record_format dspace
spelling I32-R138-123456789-16422022-12-07T13:06:24Z Automated workarounds from Java program specifications based on SAT solving Uva, Marcelo Ponzio, Pablo Regis, Germán Aguirre, Nazareno Frías, Marcelo ANALISIS DE FALLAS ESPECIFICACIONES DEPURACION DE PROGRAMAS LENGUAJES DE PROGRAMACION SOFTWARE JAVA "The failures that bugs in software lead to can sometimes be bypassed by the so-called workarounds: when a (faulty) routine fails, alternative routines that the system offers can be used in place of the failing one, to circumvent the failure. Existing approaches to workaround-based system recovery consider workarounds that are produced from equivalent method sequences, utomatically computed from user-provided abstract models, or directly produced from user-provided equivalent sequences of operations. In this paper, we present two techniques for computing workarounds from Java code equipped with formal specifications, that improve previous approaches in two respects. First, the particular state where the failure originated is actively involved in computing workarounds, thus leading to repairs that are more state specific. Second, our techniques automatically compute workarounds on concrete program state characterizations, avoiding abstract software models and user-provided equivalences. The first technique uses SAT solving to compute a sequence of methods that is equivalent to a failing method on a specific failing state, but which can also be generalized to schemas for workaround reuse. The second technique directly exploits SAT to circumvent a failing method, building a state that mimics the (correct) behaviour of a failing routine, from a specific program state too. We perform an experimental evaluation based on case studies involving implementations of collections and a library for date arithmetic, showing that the techniques can effectively compute workarounds from complex contracts in an important number of cases, in time that makes them feasible to be used for run-time repairs. Our results also show that our state-specific workarounds enable us to produce repairs in many cases where previous workaround-based approaches are inapplicable." 2019-07-11T14:35:28Z 2019-07-11T14:35:28Z 2018-11 Artículos de Publicaciones Periódicas info:eu-repo/semantics/acceptedVersion 1433-2779 http://ri.itba.edu.ar/handle/123456789/1642 en info:eu-repo/semantics/altIdentifier/doi/10.1007/s10009-018-0503-8 application/pdf
institution Instituto Tecnológico de Buenos Aires (ITBA)
institution_str I-32
repository_str R-138
collection Repositorio Institucional Instituto Tecnológico de Buenos Aires (ITBA)
language Inglés
topic ANALISIS DE FALLAS
ESPECIFICACIONES
DEPURACION DE PROGRAMAS
LENGUAJES DE PROGRAMACION
SOFTWARE
JAVA
spellingShingle ANALISIS DE FALLAS
ESPECIFICACIONES
DEPURACION DE PROGRAMAS
LENGUAJES DE PROGRAMACION
SOFTWARE
JAVA
Uva, Marcelo
Ponzio, Pablo
Regis, Germán
Aguirre, Nazareno
Frías, Marcelo
Automated workarounds from Java program specifications based on SAT solving
topic_facet ANALISIS DE FALLAS
ESPECIFICACIONES
DEPURACION DE PROGRAMAS
LENGUAJES DE PROGRAMACION
SOFTWARE
JAVA
description "The failures that bugs in software lead to can sometimes be bypassed by the so-called workarounds: when a (faulty) routine fails, alternative routines that the system offers can be used in place of the failing one, to circumvent the failure. Existing approaches to workaround-based system recovery consider workarounds that are produced from equivalent method sequences, utomatically computed from user-provided abstract models, or directly produced from user-provided equivalent sequences of operations. In this paper, we present two techniques for computing workarounds from Java code equipped with formal specifications, that improve previous approaches in two respects. First, the particular state where the failure originated is actively involved in computing workarounds, thus leading to repairs that are more state specific. Second, our techniques automatically compute workarounds on concrete program state characterizations, avoiding abstract software models and user-provided equivalences. The first technique uses SAT solving to compute a sequence of methods that is equivalent to a failing method on a specific failing state, but which can also be generalized to schemas for workaround reuse. The second technique directly exploits SAT to circumvent a failing method, building a state that mimics the (correct) behaviour of a failing routine, from a specific program state too. We perform an experimental evaluation based on case studies involving implementations of collections and a library for date arithmetic, showing that the techniques can effectively compute workarounds from complex contracts in an important number of cases, in time that makes them feasible to be used for run-time repairs. Our results also show that our state-specific workarounds enable us to produce repairs in many cases where previous workaround-based approaches are inapplicable."
format Artículos de Publicaciones Periódicas
acceptedVersion
author Uva, Marcelo
Ponzio, Pablo
Regis, Germán
Aguirre, Nazareno
Frías, Marcelo
author_facet Uva, Marcelo
Ponzio, Pablo
Regis, Germán
Aguirre, Nazareno
Frías, Marcelo
author_sort Uva, Marcelo
title Automated workarounds from Java program specifications based on SAT solving
title_short Automated workarounds from Java program specifications based on SAT solving
title_full Automated workarounds from Java program specifications based on SAT solving
title_fullStr Automated workarounds from Java program specifications based on SAT solving
title_full_unstemmed Automated workarounds from Java program specifications based on SAT solving
title_sort automated workarounds from java program specifications based on sat solving
publishDate 2019
url http://ri.itba.edu.ar/handle/123456789/1642
work_keys_str_mv AT uvamarcelo automatedworkaroundsfromjavaprogramspecificationsbasedonsatsolving
AT ponziopablo automatedworkaroundsfromjavaprogramspecificationsbasedonsatsolving
AT regisgerman automatedworkaroundsfromjavaprogramspecificationsbasedonsatsolving
AT aguirrenazareno automatedworkaroundsfromjavaprogramspecificationsbasedonsatsolving
AT friasmarcelo automatedworkaroundsfromjavaprogramspecificationsbasedonsatsolving
_version_ 1765661092690788352