Técnicas distribuídas para verificación acotada eficiente

Autores
Rosner, Nicolás Leandro
Año de publicación
2015
Idioma
inglés
Tipo de recurso
tesis doctoral
Estado
versión publicada
Colaborador/a o director/a de tesis
Frías, Marcelo Fabián
Descripción
El análisis formal de artefactos de software suele dividirse en dos clases de enfoques: pesados y livianos. Los métodos pesados ofrecen plena certeza del resultado obtenido pero requieren usuarios expertos. Losmétodos livianos son más fáciles de aprender y se materializan en herramientas totalmente automáticas,pero la validez de sus resultados es parcial. Por ejemplo, en las técnicas de verificación exhaustivaacotada, la validez del resultado devuelto por la herramienta automática siempre está limitada poralguna noción de alcance o tamaño máximo configurable por el usuario. Para incrementar el grado deconfianza en el resultado, el usuario sólo debe aumentar ese alcance y volver a ejecutar la herramienta. Sin embargo, el costo computacional del análisis automático es casi siempre exponencial en dichoalcance. En esta tesis presentamos una serie de técnicas y herramientas cuyo objetivo es mejorar la escalabilidaddel análisis exhaustivo acotado de artefactos de software. En particular, nos interesa poderaprovechar la disponibilidad de hardware de bajo costo (como por ejemplo clusters de PCs, existentesen muchas empresas e instituciones) para extender la frontera de lo tratable mediante esta clase deenfoques. Por una parte presentamos transcoping, un enfoque incremental para explorar problemas de verificación exhaustiva acotada en tamaños pequeños y extrapolar la información recolectada para asistirla toma automática de decisiones en tamaños mayores del mismo problema. Mostramos su aplicaciónal análisis distribuido de modelos Alloy, así como a la toma de decisiones en la generación de casos detest basada en invariantes híbridos. También presentamos Ranger, otra técnica distinta para distribuir el análisis de modelos Alloy,que divide el problema en subproblemas de menor complejidad linealizando el espacio de potencialescontraejemplos y partiéndolo en intervalos disjuntos. Por otra parte, construyendo sobre la noción de cotas ajustadas para campos de la técnica TACO,presentamos MUCHO-TACO, una técnica para distribuir la verificación de programas Java anotadoscon contratos JML, basada en la herramienta secuencial TACO. Por último presentamos BLISS, un conjunto de técnicas para refinar la búsqueda de estructurasválidas durante la ejecución simbólica, basadas en Symbolic PathFinder.
Formal analysis of software artifacts is often divided into two kinds of methods: heavyweight andlightweight. The former offer complete certainty in the result, but require interaction with highlytrained expert users. The latter are easier to learn and supported by fully automated tools, but thevalidity of their results is typically partial. For instance, in bounded exhaustive analysis techniques,the validity of the result is always limited by some notion of scope or maximum size provided bythe user. To increase the level of confidence of the result, the user can simply increase the scope ofthe analysis and run the tool again. However, the computational cost of such automated analyses isalmost always exponential in said scope. In this thesis we present a series of techniques and tools with the common goal of improving thescalability of bounded exhaustive analysis of software artifacts. In particular, we are interested inleveraging the availability of low-cost hardware (such as PC clusters, which are currently availablein many companies and institutions) in order to push the tractability barrier of bounded exhaustiveanalysis techniques. We present transcoping, an incremental approach that explores bounded exhaustive verificationproblems at small sizes, gathers information, then extrapolates it in order to make better-informeddecisions at larger sizes of the same problems. We show its application to the distributed analysis of Alloy models, as well as to the generation of bounded exhaustive test suites using hybrid invariants. We then present Ranger, another technique to distribute the analysis of Alloy models which splitsthe problem into subproblems of lower complexity by linearizing the space of potential counterexamplesand dividing it into disjoint intervals. Building on the notion of tight field bounds from the TACO technique, we present MUCHO-TACO,a technique for distributed verification of Java programs annotated with JML contracts, based on thesequential TACO tool. We also present BLISS, a set of techniques to improve the search for valid structures during symbolicexecution for non-primitive inputs based on Symbolic PathFinder.
Fil: Rosner, Nicolás Leandro. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.
Materia
INGENIERIA DE SOFTWARE
ANALISIS AUTOMATICO DE SOFTWARE
VERIFICACION EXHAUSTIVA ACOTADA
SISTEMAS DISTRIBUIDOS
EJECUCION SIMBOLICA
ALLOY
JAVA (LENGUAJE DE PROGRAMACION)
JML
TACO
SOFTWARE ENGINEERING
AUTOMATED SOFTWARE ANALYSIS
BOUNDED EXHAUSTIVE VERIFICATION
DISTRIBUTED SYSTEMS
SYMBOLIC EXECUTION
ALLOY
JAVA
JML
TACO
Nivel de accesibilidad
acceso abierto
Condiciones de uso
https://creativecommons.org/licenses/by-nc-sa/2.5/ar
Repositorio
Biblioteca Digital (UBA-FCEN)
Institución
Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
OAI Identificador
tesis:tesis_n6011_Rosner

id BDUBAFCEN_72d9aa216092dc697fb2a67934df4ff6
oai_identifier_str tesis:tesis_n6011_Rosner
network_acronym_str BDUBAFCEN
repository_id_str 1896
network_name_str Biblioteca Digital (UBA-FCEN)
spelling Técnicas distribuídas para verificación acotada eficienteDistributed techniques for efficient bounded verificationRosner, Nicolás LeandroINGENIERIA DE SOFTWAREANALISIS AUTOMATICO DE SOFTWAREVERIFICACION EXHAUSTIVA ACOTADASISTEMAS DISTRIBUIDOSEJECUCION SIMBOLICAALLOYJAVA (LENGUAJE DE PROGRAMACION)JMLTACOSOFTWARE ENGINEERINGAUTOMATED SOFTWARE ANALYSISBOUNDED EXHAUSTIVE VERIFICATIONDISTRIBUTED SYSTEMSSYMBOLIC EXECUTIONALLOYJAVAJMLTACOEl análisis formal de artefactos de software suele dividirse en dos clases de enfoques: pesados y livianos. Los métodos pesados ofrecen plena certeza del resultado obtenido pero requieren usuarios expertos. Losmétodos livianos son más fáciles de aprender y se materializan en herramientas totalmente automáticas,pero la validez de sus resultados es parcial. Por ejemplo, en las técnicas de verificación exhaustivaacotada, la validez del resultado devuelto por la herramienta automática siempre está limitada poralguna noción de alcance o tamaño máximo configurable por el usuario. Para incrementar el grado deconfianza en el resultado, el usuario sólo debe aumentar ese alcance y volver a ejecutar la herramienta. Sin embargo, el costo computacional del análisis automático es casi siempre exponencial en dichoalcance. En esta tesis presentamos una serie de técnicas y herramientas cuyo objetivo es mejorar la escalabilidaddel análisis exhaustivo acotado de artefactos de software. En particular, nos interesa poderaprovechar la disponibilidad de hardware de bajo costo (como por ejemplo clusters de PCs, existentesen muchas empresas e instituciones) para extender la frontera de lo tratable mediante esta clase deenfoques. Por una parte presentamos transcoping, un enfoque incremental para explorar problemas de verificación exhaustiva acotada en tamaños pequeños y extrapolar la información recolectada para asistirla toma automática de decisiones en tamaños mayores del mismo problema. Mostramos su aplicaciónal análisis distribuido de modelos Alloy, así como a la toma de decisiones en la generación de casos detest basada en invariantes híbridos. También presentamos Ranger, otra técnica distinta para distribuir el análisis de modelos Alloy,que divide el problema en subproblemas de menor complejidad linealizando el espacio de potencialescontraejemplos y partiéndolo en intervalos disjuntos. Por otra parte, construyendo sobre la noción de cotas ajustadas para campos de la técnica TACO,presentamos MUCHO-TACO, una técnica para distribuir la verificación de programas Java anotadoscon contratos JML, basada en la herramienta secuencial TACO. Por último presentamos BLISS, un conjunto de técnicas para refinar la búsqueda de estructurasválidas durante la ejecución simbólica, basadas en Symbolic PathFinder.Formal analysis of software artifacts is often divided into two kinds of methods: heavyweight andlightweight. The former offer complete certainty in the result, but require interaction with highlytrained expert users. The latter are easier to learn and supported by fully automated tools, but thevalidity of their results is typically partial. For instance, in bounded exhaustive analysis techniques,the validity of the result is always limited by some notion of scope or maximum size provided bythe user. To increase the level of confidence of the result, the user can simply increase the scope ofthe analysis and run the tool again. However, the computational cost of such automated analyses isalmost always exponential in said scope. In this thesis we present a series of techniques and tools with the common goal of improving thescalability of bounded exhaustive analysis of software artifacts. In particular, we are interested inleveraging the availability of low-cost hardware (such as PC clusters, which are currently availablein many companies and institutions) in order to push the tractability barrier of bounded exhaustiveanalysis techniques. We present transcoping, an incremental approach that explores bounded exhaustive verificationproblems at small sizes, gathers information, then extrapolates it in order to make better-informeddecisions at larger sizes of the same problems. We show its application to the distributed analysis of Alloy models, as well as to the generation of bounded exhaustive test suites using hybrid invariants. We then present Ranger, another technique to distribute the analysis of Alloy models which splitsthe problem into subproblems of lower complexity by linearizing the space of potential counterexamplesand dividing it into disjoint intervals. Building on the notion of tight field bounds from the TACO technique, we present MUCHO-TACO,a technique for distributed verification of Java programs annotated with JML contracts, based on thesequential TACO tool. We also present BLISS, a set of techniques to improve the search for valid structures during symbolicexecution for non-primitive inputs based on Symbolic PathFinder.Fil: Rosner, Nicolás Leandro. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.Universidad de Buenos Aires. Facultad de Ciencias Exactas y NaturalesFrías, Marcelo Fabián2015-12-15info: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_n6011_Rosnerenginfo: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:31Ztesis:tesis_n6011_RosnerInstitucionalhttps://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:32.249Biblioteca Digital (UBA-FCEN) - Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturalesfalse
dc.title.none.fl_str_mv Técnicas distribuídas para verificación acotada eficiente
Distributed techniques for efficient bounded verification
title Técnicas distribuídas para verificación acotada eficiente
spellingShingle Técnicas distribuídas para verificación acotada eficiente
Rosner, Nicolás Leandro
INGENIERIA DE SOFTWARE
ANALISIS AUTOMATICO DE SOFTWARE
VERIFICACION EXHAUSTIVA ACOTADA
SISTEMAS DISTRIBUIDOS
EJECUCION SIMBOLICA
ALLOY
JAVA (LENGUAJE DE PROGRAMACION)
JML
TACO
SOFTWARE ENGINEERING
AUTOMATED SOFTWARE ANALYSIS
BOUNDED EXHAUSTIVE VERIFICATION
DISTRIBUTED SYSTEMS
SYMBOLIC EXECUTION
ALLOY
JAVA
JML
TACO
title_short Técnicas distribuídas para verificación acotada eficiente
title_full Técnicas distribuídas para verificación acotada eficiente
title_fullStr Técnicas distribuídas para verificación acotada eficiente
title_full_unstemmed Técnicas distribuídas para verificación acotada eficiente
title_sort Técnicas distribuídas para verificación acotada eficiente
dc.creator.none.fl_str_mv Rosner, Nicolás Leandro
author Rosner, Nicolás Leandro
author_facet Rosner, Nicolás Leandro
author_role author
dc.contributor.none.fl_str_mv Frías, Marcelo Fabián
dc.subject.none.fl_str_mv INGENIERIA DE SOFTWARE
ANALISIS AUTOMATICO DE SOFTWARE
VERIFICACION EXHAUSTIVA ACOTADA
SISTEMAS DISTRIBUIDOS
EJECUCION SIMBOLICA
ALLOY
JAVA (LENGUAJE DE PROGRAMACION)
JML
TACO
SOFTWARE ENGINEERING
AUTOMATED SOFTWARE ANALYSIS
BOUNDED EXHAUSTIVE VERIFICATION
DISTRIBUTED SYSTEMS
SYMBOLIC EXECUTION
ALLOY
JAVA
JML
TACO
topic INGENIERIA DE SOFTWARE
ANALISIS AUTOMATICO DE SOFTWARE
VERIFICACION EXHAUSTIVA ACOTADA
SISTEMAS DISTRIBUIDOS
EJECUCION SIMBOLICA
ALLOY
JAVA (LENGUAJE DE PROGRAMACION)
JML
TACO
SOFTWARE ENGINEERING
AUTOMATED SOFTWARE ANALYSIS
BOUNDED EXHAUSTIVE VERIFICATION
DISTRIBUTED SYSTEMS
SYMBOLIC EXECUTION
ALLOY
JAVA
JML
TACO
dc.description.none.fl_txt_mv El análisis formal de artefactos de software suele dividirse en dos clases de enfoques: pesados y livianos. Los métodos pesados ofrecen plena certeza del resultado obtenido pero requieren usuarios expertos. Losmétodos livianos son más fáciles de aprender y se materializan en herramientas totalmente automáticas,pero la validez de sus resultados es parcial. Por ejemplo, en las técnicas de verificación exhaustivaacotada, la validez del resultado devuelto por la herramienta automática siempre está limitada poralguna noción de alcance o tamaño máximo configurable por el usuario. Para incrementar el grado deconfianza en el resultado, el usuario sólo debe aumentar ese alcance y volver a ejecutar la herramienta. Sin embargo, el costo computacional del análisis automático es casi siempre exponencial en dichoalcance. En esta tesis presentamos una serie de técnicas y herramientas cuyo objetivo es mejorar la escalabilidaddel análisis exhaustivo acotado de artefactos de software. En particular, nos interesa poderaprovechar la disponibilidad de hardware de bajo costo (como por ejemplo clusters de PCs, existentesen muchas empresas e instituciones) para extender la frontera de lo tratable mediante esta clase deenfoques. Por una parte presentamos transcoping, un enfoque incremental para explorar problemas de verificación exhaustiva acotada en tamaños pequeños y extrapolar la información recolectada para asistirla toma automática de decisiones en tamaños mayores del mismo problema. Mostramos su aplicaciónal análisis distribuido de modelos Alloy, así como a la toma de decisiones en la generación de casos detest basada en invariantes híbridos. También presentamos Ranger, otra técnica distinta para distribuir el análisis de modelos Alloy,que divide el problema en subproblemas de menor complejidad linealizando el espacio de potencialescontraejemplos y partiéndolo en intervalos disjuntos. Por otra parte, construyendo sobre la noción de cotas ajustadas para campos de la técnica TACO,presentamos MUCHO-TACO, una técnica para distribuir la verificación de programas Java anotadoscon contratos JML, basada en la herramienta secuencial TACO. Por último presentamos BLISS, un conjunto de técnicas para refinar la búsqueda de estructurasválidas durante la ejecución simbólica, basadas en Symbolic PathFinder.
Formal analysis of software artifacts is often divided into two kinds of methods: heavyweight andlightweight. The former offer complete certainty in the result, but require interaction with highlytrained expert users. The latter are easier to learn and supported by fully automated tools, but thevalidity of their results is typically partial. For instance, in bounded exhaustive analysis techniques,the validity of the result is always limited by some notion of scope or maximum size provided bythe user. To increase the level of confidence of the result, the user can simply increase the scope ofthe analysis and run the tool again. However, the computational cost of such automated analyses isalmost always exponential in said scope. In this thesis we present a series of techniques and tools with the common goal of improving thescalability of bounded exhaustive analysis of software artifacts. In particular, we are interested inleveraging the availability of low-cost hardware (such as PC clusters, which are currently availablein many companies and institutions) in order to push the tractability barrier of bounded exhaustiveanalysis techniques. We present transcoping, an incremental approach that explores bounded exhaustive verificationproblems at small sizes, gathers information, then extrapolates it in order to make better-informeddecisions at larger sizes of the same problems. We show its application to the distributed analysis of Alloy models, as well as to the generation of bounded exhaustive test suites using hybrid invariants. We then present Ranger, another technique to distribute the analysis of Alloy models which splitsthe problem into subproblems of lower complexity by linearizing the space of potential counterexamplesand dividing it into disjoint intervals. Building on the notion of tight field bounds from the TACO technique, we present MUCHO-TACO,a technique for distributed verification of Java programs annotated with JML contracts, based on thesequential TACO tool. We also present BLISS, a set of techniques to improve the search for valid structures during symbolicexecution for non-primitive inputs based on Symbolic PathFinder.
Fil: Rosner, Nicolás Leandro. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.
description El análisis formal de artefactos de software suele dividirse en dos clases de enfoques: pesados y livianos. Los métodos pesados ofrecen plena certeza del resultado obtenido pero requieren usuarios expertos. Losmétodos livianos son más fáciles de aprender y se materializan en herramientas totalmente automáticas,pero la validez de sus resultados es parcial. Por ejemplo, en las técnicas de verificación exhaustivaacotada, la validez del resultado devuelto por la herramienta automática siempre está limitada poralguna noción de alcance o tamaño máximo configurable por el usuario. Para incrementar el grado deconfianza en el resultado, el usuario sólo debe aumentar ese alcance y volver a ejecutar la herramienta. Sin embargo, el costo computacional del análisis automático es casi siempre exponencial en dichoalcance. En esta tesis presentamos una serie de técnicas y herramientas cuyo objetivo es mejorar la escalabilidaddel análisis exhaustivo acotado de artefactos de software. En particular, nos interesa poderaprovechar la disponibilidad de hardware de bajo costo (como por ejemplo clusters de PCs, existentesen muchas empresas e instituciones) para extender la frontera de lo tratable mediante esta clase deenfoques. Por una parte presentamos transcoping, un enfoque incremental para explorar problemas de verificación exhaustiva acotada en tamaños pequeños y extrapolar la información recolectada para asistirla toma automática de decisiones en tamaños mayores del mismo problema. Mostramos su aplicaciónal análisis distribuido de modelos Alloy, así como a la toma de decisiones en la generación de casos detest basada en invariantes híbridos. También presentamos Ranger, otra técnica distinta para distribuir el análisis de modelos Alloy,que divide el problema en subproblemas de menor complejidad linealizando el espacio de potencialescontraejemplos y partiéndolo en intervalos disjuntos. Por otra parte, construyendo sobre la noción de cotas ajustadas para campos de la técnica TACO,presentamos MUCHO-TACO, una técnica para distribuir la verificación de programas Java anotadoscon contratos JML, basada en la herramienta secuencial TACO. Por último presentamos BLISS, un conjunto de técnicas para refinar la búsqueda de estructurasválidas durante la ejecución simbólica, basadas en Symbolic PathFinder.
publishDate 2015
dc.date.none.fl_str_mv 2015-12-15
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_n6011_Rosner
url https://hdl.handle.net/20.500.12110/tesis_n6011_Rosner
dc.language.none.fl_str_mv eng
language eng
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_ 1844618707512328192
score 13.070432