Cómputo automático de workarounds transitorios a partir de especificaciones de programas usando SAT solving
- Autores
- Uva, Marcelo Ariel
- Año de publicación
- 2022
- Idioma
- español castellano
- Tipo de recurso
- tesis doctoral
- Estado
- versión publicada
- Colaborador/a o director/a de tesis
- Ponzio, Pablo Daniel
López Pombo, Carlos Gustavo - Descripción
- En muchas situaciones, el software puede recuperarse de fallas en tiempo de ejecución usando workarounds. Un workaround se define como una alternativa de ejecución para un método defectuoso que permite mantener al sistema funcionando luego de la ocurrencia de una falla. En este trabajo se presentan dos técnicas para el cómputo automático de workarounds. Estas técnicas emplean especificaciones formales (pre y post-condiciones de métodos, e invariantes de clases), y usan SAT solving como procedimiento de decisión. A diferencia de enfoques previos, las técnicas emplean también el estado de ejecución del sistema al momento de la falla, por lo que decimos que los workarounds computados por las mismas son transitorios. En la primera técnica, los workarounds transitorios consisten de una secuencia de rutinas que satisfacen la especificación del método defectuoso, para el estado en que se produjo la falla. Se propone también un enfoque para generalizar estos workarounds transitorios a esquemas de workarounds, que sirven para acelerar la búsqueda de workarounds transitorios para otros estados que producen fallas en el método defectuoso. La segunda técnica, propone la construcción de workarounds transitorios usando SAT solving para generar directamente un estado que satisface la postcondición de la rutina defectuosa, a partir del estado donde se produjo la falla. Para optimizar esta técnica se propone usar predicados de rotura de simetrías y cotas ajustadas (técnicas del estado del arte para mejorar la eficiencia y la escalabilidad de SAT solving), y evaluar los beneficios que estos enfoques pueden brindar en el cómputo de workarounds. Las técnicas propuestas se evaluaron experimentalmente sobre una familia de casos de estudio, que incluyen implementaciones de colecciones (con estructuras de datos de distinta complejidad) y una biblioteca para aritmética de fechas. Los resultados muestran que las técnicas propuestas permiten computar workarounds transitorios en un número importante de casos, y en tiempos razonables para su aplicación a la recuperación de fallas de software en tiempo de ejecución.
Software failures, produced by errors in source code, can often be bypassed in run time by using the so called workarounds: execution alternatives that the system can used in place of faulty routine to circumvent the failure. In this thesis, we present two techniques for the automated computation of workarounds from Java code equipped with formal specifications (consisting of method pre and postconditions and class invariants), using SAT solving. As opposed to previous approaches, these techniques make use of the state of the system where the faulty method was executed, hence the computed workarounds are transient. In the first technique, transient workarounds are defined as an alternative set of routines that satisfy the specification of the faulty method at the given state. We propose a mechanism to generalize these transient workarounds to schemas, which can be used to speed up the search for transient workarounds in other failing states. The second technique directly exploits SAT solving to circumvent the failing method, automatically building a state that mimics its correct be- haviour (described by the method’s specification) when starting at the given state. In order to optimize and improve scalability of the second technique we compute and add symmetry breaking predicates and tight field bounds to optimize the SAT process. For the purpose of experimentally assessing the presented techniques, we develop a number of case studies based on contract-equipped collection classes and a Java library for date arithmetic. The results of the assessment show that the techniques can effectively compute workarounds from complex contracts in an important number of cases, in times that makes them feasible to be used for run time repairs.
Fil: Uva, Marcelo Ariel. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina. - Materia
-
RECUPERACION EN TIEMPO DE EJECUCION
WORKAROUNDS
ESPECIFICACIONES FORMALES
SAT SOLVING
RUNTIME RECOVERY
WORKAROUNDS
FORMAL SPECIFICATIONS
SAT SOLVING - Nivel de accesibilidad
- acceso abierto
- Condiciones de uso
- https://creativecommons.org/licenses/by-nc-sa/2.5/ar
- Repositorio
- Institución
- Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
- OAI Identificador
- tesis:tesis_n7251_Uva
Ver los metadatos del registro completo
id |
BDUBAFCEN_bd69123c350b3606f8863a9cfc312745 |
---|---|
oai_identifier_str |
tesis:tesis_n7251_Uva |
network_acronym_str |
BDUBAFCEN |
repository_id_str |
1896 |
network_name_str |
Biblioteca Digital (UBA-FCEN) |
spelling |
Cómputo automático de workarounds transitorios a partir de especificaciones de programas usando SAT solvingAutomatic computation of transient workarounds from program specifications using SAT solvingUva, Marcelo ArielRECUPERACION EN TIEMPO DE EJECUCIONWORKAROUNDSESPECIFICACIONES FORMALESSAT SOLVINGRUNTIME RECOVERY WORKAROUNDSFORMAL SPECIFICATIONSSAT SOLVINGEn muchas situaciones, el software puede recuperarse de fallas en tiempo de ejecución usando workarounds. Un workaround se define como una alternativa de ejecución para un método defectuoso que permite mantener al sistema funcionando luego de la ocurrencia de una falla. En este trabajo se presentan dos técnicas para el cómputo automático de workarounds. Estas técnicas emplean especificaciones formales (pre y post-condiciones de métodos, e invariantes de clases), y usan SAT solving como procedimiento de decisión. A diferencia de enfoques previos, las técnicas emplean también el estado de ejecución del sistema al momento de la falla, por lo que decimos que los workarounds computados por las mismas son transitorios. En la primera técnica, los workarounds transitorios consisten de una secuencia de rutinas que satisfacen la especificación del método defectuoso, para el estado en que se produjo la falla. Se propone también un enfoque para generalizar estos workarounds transitorios a esquemas de workarounds, que sirven para acelerar la búsqueda de workarounds transitorios para otros estados que producen fallas en el método defectuoso. La segunda técnica, propone la construcción de workarounds transitorios usando SAT solving para generar directamente un estado que satisface la postcondición de la rutina defectuosa, a partir del estado donde se produjo la falla. Para optimizar esta técnica se propone usar predicados de rotura de simetrías y cotas ajustadas (técnicas del estado del arte para mejorar la eficiencia y la escalabilidad de SAT solving), y evaluar los beneficios que estos enfoques pueden brindar en el cómputo de workarounds. Las técnicas propuestas se evaluaron experimentalmente sobre una familia de casos de estudio, que incluyen implementaciones de colecciones (con estructuras de datos de distinta complejidad) y una biblioteca para aritmética de fechas. Los resultados muestran que las técnicas propuestas permiten computar workarounds transitorios en un número importante de casos, y en tiempos razonables para su aplicación a la recuperación de fallas de software en tiempo de ejecución.Software failures, produced by errors in source code, can often be bypassed in run time by using the so called workarounds: execution alternatives that the system can used in place of faulty routine to circumvent the failure. In this thesis, we present two techniques for the automated computation of workarounds from Java code equipped with formal specifications (consisting of method pre and postconditions and class invariants), using SAT solving. As opposed to previous approaches, these techniques make use of the state of the system where the faulty method was executed, hence the computed workarounds are transient. In the first technique, transient workarounds are defined as an alternative set of routines that satisfy the specification of the faulty method at the given state. We propose a mechanism to generalize these transient workarounds to schemas, which can be used to speed up the search for transient workarounds in other failing states. The second technique directly exploits SAT solving to circumvent the failing method, automatically building a state that mimics its correct be- haviour (described by the method’s specification) when starting at the given state. In order to optimize and improve scalability of the second technique we compute and add symmetry breaking predicates and tight field bounds to optimize the SAT process. For the purpose of experimentally assessing the presented techniques, we develop a number of case studies based on contract-equipped collection classes and a Java library for date arithmetic. The results of the assessment show that the techniques can effectively compute workarounds from complex contracts in an important number of cases, in times that makes them feasible to be used for run time repairs.Fil: Uva, Marcelo Ariel. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.Universidad de Buenos Aires. Facultad de Ciencias Exactas y NaturalesPonzio, Pablo DanielLópez Pombo, Carlos Gustavo2022-12-21info:eu-repo/semantics/doctoralThesisinfo:eu-repo/semantics/publishedVersionhttp://purl.org/coar/resource_type/c_db06info:ar-repo/semantics/tesisDoctoralapplication/pdfhttps://hdl.handle.net/20.500.12110/tesis_n7251_Uvaspainfo:eu-repo/semantics/openAccesshttps://creativecommons.org/licenses/by-nc-sa/2.5/arreponame:Biblioteca Digital (UBA-FCEN)instname:Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturalesinstacron:UBA-FCEN2025-09-29T13:41:26Ztesis:tesis_n7251_UvaInstitucionalhttps://digital.bl.fcen.uba.ar/Universidad públicaNo correspondehttps://digital.bl.fcen.uba.ar/cgi-bin/oaiserver.cgiana@bl.fcen.uba.arArgentinaNo correspondeNo correspondeNo correspondeopendoar:18962025-09-29 13:41:27.256Biblioteca Digital (UBA-FCEN) - Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturalesfalse |
dc.title.none.fl_str_mv |
Cómputo automático de workarounds transitorios a partir de especificaciones de programas usando SAT solving Automatic computation of transient workarounds from program specifications using SAT solving |
title |
Cómputo automático de workarounds transitorios a partir de especificaciones de programas usando SAT solving |
spellingShingle |
Cómputo automático de workarounds transitorios a partir de especificaciones de programas usando SAT solving Uva, Marcelo Ariel RECUPERACION EN TIEMPO DE EJECUCION WORKAROUNDS ESPECIFICACIONES FORMALES SAT SOLVING RUNTIME RECOVERY WORKAROUNDS FORMAL SPECIFICATIONS SAT SOLVING |
title_short |
Cómputo automático de workarounds transitorios a partir de especificaciones de programas usando SAT solving |
title_full |
Cómputo automático de workarounds transitorios a partir de especificaciones de programas usando SAT solving |
title_fullStr |
Cómputo automático de workarounds transitorios a partir de especificaciones de programas usando SAT solving |
title_full_unstemmed |
Cómputo automático de workarounds transitorios a partir de especificaciones de programas usando SAT solving |
title_sort |
Cómputo automático de workarounds transitorios a partir de especificaciones de programas usando SAT solving |
dc.creator.none.fl_str_mv |
Uva, Marcelo Ariel |
author |
Uva, Marcelo Ariel |
author_facet |
Uva, Marcelo Ariel |
author_role |
author |
dc.contributor.none.fl_str_mv |
Ponzio, Pablo Daniel López Pombo, Carlos Gustavo |
dc.subject.none.fl_str_mv |
RECUPERACION EN TIEMPO DE EJECUCION WORKAROUNDS ESPECIFICACIONES FORMALES SAT SOLVING RUNTIME RECOVERY WORKAROUNDS FORMAL SPECIFICATIONS SAT SOLVING |
topic |
RECUPERACION EN TIEMPO DE EJECUCION WORKAROUNDS ESPECIFICACIONES FORMALES SAT SOLVING RUNTIME RECOVERY WORKAROUNDS FORMAL SPECIFICATIONS SAT SOLVING |
dc.description.none.fl_txt_mv |
En muchas situaciones, el software puede recuperarse de fallas en tiempo de ejecución usando workarounds. Un workaround se define como una alternativa de ejecución para un método defectuoso que permite mantener al sistema funcionando luego de la ocurrencia de una falla. En este trabajo se presentan dos técnicas para el cómputo automático de workarounds. Estas técnicas emplean especificaciones formales (pre y post-condiciones de métodos, e invariantes de clases), y usan SAT solving como procedimiento de decisión. A diferencia de enfoques previos, las técnicas emplean también el estado de ejecución del sistema al momento de la falla, por lo que decimos que los workarounds computados por las mismas son transitorios. En la primera técnica, los workarounds transitorios consisten de una secuencia de rutinas que satisfacen la especificación del método defectuoso, para el estado en que se produjo la falla. Se propone también un enfoque para generalizar estos workarounds transitorios a esquemas de workarounds, que sirven para acelerar la búsqueda de workarounds transitorios para otros estados que producen fallas en el método defectuoso. La segunda técnica, propone la construcción de workarounds transitorios usando SAT solving para generar directamente un estado que satisface la postcondición de la rutina defectuosa, a partir del estado donde se produjo la falla. Para optimizar esta técnica se propone usar predicados de rotura de simetrías y cotas ajustadas (técnicas del estado del arte para mejorar la eficiencia y la escalabilidad de SAT solving), y evaluar los beneficios que estos enfoques pueden brindar en el cómputo de workarounds. Las técnicas propuestas se evaluaron experimentalmente sobre una familia de casos de estudio, que incluyen implementaciones de colecciones (con estructuras de datos de distinta complejidad) y una biblioteca para aritmética de fechas. Los resultados muestran que las técnicas propuestas permiten computar workarounds transitorios en un número importante de casos, y en tiempos razonables para su aplicación a la recuperación de fallas de software en tiempo de ejecución. Software failures, produced by errors in source code, can often be bypassed in run time by using the so called workarounds: execution alternatives that the system can used in place of faulty routine to circumvent the failure. In this thesis, we present two techniques for the automated computation of workarounds from Java code equipped with formal specifications (consisting of method pre and postconditions and class invariants), using SAT solving. As opposed to previous approaches, these techniques make use of the state of the system where the faulty method was executed, hence the computed workarounds are transient. In the first technique, transient workarounds are defined as an alternative set of routines that satisfy the specification of the faulty method at the given state. We propose a mechanism to generalize these transient workarounds to schemas, which can be used to speed up the search for transient workarounds in other failing states. The second technique directly exploits SAT solving to circumvent the failing method, automatically building a state that mimics its correct be- haviour (described by the method’s specification) when starting at the given state. In order to optimize and improve scalability of the second technique we compute and add symmetry breaking predicates and tight field bounds to optimize the SAT process. For the purpose of experimentally assessing the presented techniques, we develop a number of case studies based on contract-equipped collection classes and a Java library for date arithmetic. The results of the assessment show that the techniques can effectively compute workarounds from complex contracts in an important number of cases, in times that makes them feasible to be used for run time repairs. Fil: Uva, Marcelo Ariel. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina. |
description |
En muchas situaciones, el software puede recuperarse de fallas en tiempo de ejecución usando workarounds. Un workaround se define como una alternativa de ejecución para un método defectuoso que permite mantener al sistema funcionando luego de la ocurrencia de una falla. En este trabajo se presentan dos técnicas para el cómputo automático de workarounds. Estas técnicas emplean especificaciones formales (pre y post-condiciones de métodos, e invariantes de clases), y usan SAT solving como procedimiento de decisión. A diferencia de enfoques previos, las técnicas emplean también el estado de ejecución del sistema al momento de la falla, por lo que decimos que los workarounds computados por las mismas son transitorios. En la primera técnica, los workarounds transitorios consisten de una secuencia de rutinas que satisfacen la especificación del método defectuoso, para el estado en que se produjo la falla. Se propone también un enfoque para generalizar estos workarounds transitorios a esquemas de workarounds, que sirven para acelerar la búsqueda de workarounds transitorios para otros estados que producen fallas en el método defectuoso. La segunda técnica, propone la construcción de workarounds transitorios usando SAT solving para generar directamente un estado que satisface la postcondición de la rutina defectuosa, a partir del estado donde se produjo la falla. Para optimizar esta técnica se propone usar predicados de rotura de simetrías y cotas ajustadas (técnicas del estado del arte para mejorar la eficiencia y la escalabilidad de SAT solving), y evaluar los beneficios que estos enfoques pueden brindar en el cómputo de workarounds. Las técnicas propuestas se evaluaron experimentalmente sobre una familia de casos de estudio, que incluyen implementaciones de colecciones (con estructuras de datos de distinta complejidad) y una biblioteca para aritmética de fechas. Los resultados muestran que las técnicas propuestas permiten computar workarounds transitorios en un número importante de casos, y en tiempos razonables para su aplicación a la recuperación de fallas de software en tiempo de ejecución. |
publishDate |
2022 |
dc.date.none.fl_str_mv |
2022-12-21 |
dc.type.none.fl_str_mv |
info:eu-repo/semantics/doctoralThesis info:eu-repo/semantics/publishedVersion http://purl.org/coar/resource_type/c_db06 info:ar-repo/semantics/tesisDoctoral |
format |
doctoralThesis |
status_str |
publishedVersion |
dc.identifier.none.fl_str_mv |
https://hdl.handle.net/20.500.12110/tesis_n7251_Uva |
url |
https://hdl.handle.net/20.500.12110/tesis_n7251_Uva |
dc.language.none.fl_str_mv |
spa |
language |
spa |
dc.rights.none.fl_str_mv |
info:eu-repo/semantics/openAccess https://creativecommons.org/licenses/by-nc-sa/2.5/ar |
eu_rights_str_mv |
openAccess |
rights_invalid_str_mv |
https://creativecommons.org/licenses/by-nc-sa/2.5/ar |
dc.format.none.fl_str_mv |
application/pdf |
dc.publisher.none.fl_str_mv |
Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
publisher.none.fl_str_mv |
Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
dc.source.none.fl_str_mv |
reponame:Biblioteca Digital (UBA-FCEN) instname:Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales instacron:UBA-FCEN |
reponame_str |
Biblioteca Digital (UBA-FCEN) |
collection |
Biblioteca Digital (UBA-FCEN) |
instname_str |
Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
instacron_str |
UBA-FCEN |
institution |
UBA-FCEN |
repository.name.fl_str_mv |
Biblioteca Digital (UBA-FCEN) - Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
repository.mail.fl_str_mv |
ana@bl.fcen.uba.ar |
_version_ |
1844618705720311808 |
score |
13.070432 |