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

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.

Saved in:
Bibliographic Details
Main Author: Rosner, Nicolás Leandro
Other Authors: Frias, Marcelo Fabián
Format: info:eu-repo/semantics/doctoralThesis biblioteca
Language:eng
Published: Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales
Subjects: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, JAVA,
Online Access:https://hdl.handle.net/20.500.12110/tesis_n6011_Rosner
http://repositoriouba.sisbi.uba.ar/gsdl/cgi-bin/library.cgi?a=d&c=aextesis&d=tesis_n6011_Rosner_oai
Tags: Add Tag
No Tags, Be the first to tag this record!