Registro:
Documento: | Tesis Doctoral |
Título: | Análisis de ejecuciones parciales de Software Model Checkers |
Título alternativo: | Analysis of partial Software Model Checking results |
Autor: | Castaño, Rodrigo |
Editor: | Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
Publicación en la Web: | 2018-08-16 |
Fecha de defensa: | 2018-03-21 |
Fecha en portada: | 2018 |
Grado Obtenido: | Doctorado |
Título Obtenido: | Doctor de la Universidad de Buenos Aires en el área de Ciencias de la Computación |
Departamento Docente: | Departamento de Computación |
Director: | Braberman, Víctor Adrián |
Consejero: | Garbervetsky, Diego |
Jurado: | D'Argenio, Pedro Rubén; Aguirre, Nazareno Matías; Frías, Marcelo Fabián |
Idioma: | Inglés |
Palabras clave: | MODEL CHECKING; ANALISIS AUTOMATICO DE PROGRAMAS; COBERTURA; VERIFICACION FORMALMODEL CHECKING; PROGRAM ANALYSIS; COVERAGE; FORMAL VERIFICATION |
Tema: | computación/modelos computacionales computación/ingeniería del software
|
Formato: | PDF |
Handle: |
http://hdl.handle.net/20.500.12110/tesis_n6345_Castano |
PDF: | https://bibliotecadigital.exactas.uba.ar/download/tesis/tesis_n6345_Castano.pdf |
Registro: | https://bibliotecadigital.exactas.uba.ar/collection/tesis/document/tesis_n6345_Castano |
Ubicación: | COM 006345 |
Derechos de Acceso: | Esta obra puede ser leída, grabada y utilizada con fines de estudio, investigación y docencia. Es necesario el reconocimiento de autoría mediante la cita correspondiente. Castaño, Rodrigo. (2018). Análisis de ejecuciones parciales de Software Model Checkers. (Tesis Doctoral. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales). Recuperado de http://hdl.handle.net/20.500.12110/tesis_n6345_Castano |
Resumen:
Las herramientas de análisis estático de código han mostrado un progresosignificativo en la última década. Una de las formulaciones del problema aresolver es el de descubrir si una propiedad es satisfecha necesariamente porun determinado sistema bajo análisis o si, por el contrario, existen ejecuciones de dicho sistema que violan la propiedad deseada. Dicha enunciación del problema es conocida como Software Model Checking y el mismo es indecidible en el caso caso general. Habitualmente las herramientas de Software Model Checking buscan llegara estar en condiciones de producir un resultado afirmativo, confirmando quela propiedad es satisfecha, o negativo, que habitualmente incluye un contraejemplo que viola la propiedad en cuestión. Sin embargo, en muchos casos, las herramientas se ven obligadas a producir un tercer resultado que indica que no se pudo demostrar la propiedad pero tampoco generar un contraejemplo. Además de los límites teóricos mencionados, en la práctica el problema resulta intratable para una gran cantidad de instancias de relevancia debido a que insume una elevada cantidad de recursos y de tiempo, incluso para casos en los que se alcanzaría finalmente una solución. En estos casos la gran mayoría de las herramientas indican al usuarioúnicamente que el intento de verificación no alcanzó un resultado concluyente, sin ninguna aclaración adicional. Este trabajo se centra en proveer al usuario información adicional en dichos intentos de verificación. Con ese objetivo en mente, proponemos distintas formas de presentar e interpretar la información que se puede extraer en esos casos, teniendo en cuenta distintos posibles grados de familiaridad con las técnicas de verificación subyacente por parte del usuario. En particular, nos centramos en una amplia familia de técnicas de verificación y presentamos varias vistas del progreso realizado por la herramienta previo a interrumpir el intento de verificación, acompañadas de su correspondiente caracterización formal. Adicionalmente, adaptamos la noción de cobertura, más frecuentemente utilizada en testing, a la familia de técnicas analizada. En ambos casos brindamos algoritmos que generan automáticamentetanto las vistas propuestas como sub-aproximaciones de la métrica de cobertura. Las técnicas propuestas son evaluadas sobre instancias de referencias ampliamente utilizadas tanto para determinar la practicalidad en cuanto al tiempo de ejecución requerido como para analizar la interpretabilidad de los resultados generados. La experimentación realizada confirma que es factible extraer informacióna partir de resultados inconcluyentes e interpretar dichos resultados revelando información no trivial.
Abstract:
Static analysis tools have shown significant progress in the past decade. The problem these tools tackle can be formulated as deciding whether a property always holds for a specific system-under-verification or, on the contrary, certain execution in fact violates the desired safety property. Such problem definition is known as Software Model Checking and is, in the general case, undecidable. Software Model Checkers usually attempt to either prove the propertyholds or, when it does not, to produce a counterexample that constitutes aviolation. However, in many cases, tools produce neither and instead theyare forced to produce a third kind of result, indicating the attempt failedto produce a conclusive result, i.e. the property could not be proved but acounterexample was not found either. Taking the undecidability results aside,in practice the problem remains intractable for a large number of industrialinstances due to the immense resources required to solve them, even when aconclusive result would, at last, be produced. In all of these cases most tools would indicate, without any further clarifications, that the resource limits were reached and the result was inconclusive. This work aims to provide users with additional information in these cases. With that goal, we propose a number of approaches to presenting and interpreting the information that can be extracted from an inconclusive verification attempt. Moreover, we take into account the different possible degrees of expertise that a user could have with the underlying verification techniques and attempt to make our output understandable to all users. Concretely, we focus on a broad family of verification techniques andpresent a number of views of the progress achieved during verification. Weprovide, in each case, a formal characterization. Furthermore, we adapt thenotion of coverage, more commonly used in testing, to the family of verification techniques discussed. In both cases, we present algorithms to automatically compute both the views and the coverage metric proposed without requiring additional user input. The ideas proposed are evaluated on standard benchmark instances, bothto assess the practicality in terms of performance and also to determine theunderstandability of the results generated. Our experiments confirm that it is possible to extract information frominconclusive verification results and gather non-trivial insights from the results.
Citación:
---------- APA ----------
Castaño, Rodrigo. (2018). Análisis de ejecuciones parciales de Software Model Checkers. (Tesis Doctoral. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales.). Recuperado de https://hdl.handle.net/20.500.12110/tesis_n6345_Castano
---------- CHICAGO ----------
Castaño, Rodrigo. "Análisis de ejecuciones parciales de Software Model Checkers". Tesis Doctoral, Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales, 2018.https://hdl.handle.net/20.500.12110/tesis_n6345_Castano
Estadísticas:
Descargas totales desde :
Descargas mensuales
https://bibliotecadigital.exactas.uba.ar/download/tesis/tesis_n6345_Castano.pdf