Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ACorralando EPAs: acercando el modelo mental al computacional

Leandro
April 14, 2016

ACorralando EPAs: acercando el modelo mental al computacional

Leandro

April 14, 2016
Tweet

More Decks by Leandro

Other Decks in Science

Transcript

  1. Overview • La validación de software • Objetivo de la

    tesis • Enabledness-Preserving Abstractions (EPAs) • Corral: A Solver for Reachability Modulo Theories • Resultados • Trabajo futuro • Conclusiones 2
  2. La validación de software • Proceso cuyo objetivo es incrementar

    la confianza de que una descripción formal se corresponde con la realidad 3
  3. Objetivo de la tesis • Estudiar el uso de EPAs

    como forma de modelar protocolos • Analizar Corral y la factibilidad de incorporación como mecanismo de decisión • Intentar conseguir mejores resultados :-) 7
  4. –Jorge Luis Borges, “Funes El Memorioso”. “…le molestaba que el

    perro de las tres y catorce (visto de perfil) tuviera el mismo nombre que el perro de las tres y cuarto (visto de frente)” 12
  5. Enabledness-Preserving Abstractions (EPAs) • Modelos finitos de comportamiento que agrupan

    instancias de una clase según los métodos que se encuentran habilitados en ellas 15
  6. Enabledness-Preserving Abstractions (EPAs) • Modelos finitos de comportamiento que agrupan

    instancias de una clase según los métodos que se encuentran habilitados en ellas 16
  7. Diseño por contratos • Especificación formal de un componente de

    software • Invariantes de clase • Por cada acción • Precondiciones • Postcondiciones 17
  8. EPAs: estados abstractos • Los estados abstractos de la EPA

    son caracterizados mediante el siguiente invariante: 18
  9. Construcción de EPAs (BFS): Estados candidatos • ¿Qué acciones están

    necesariamente habilitadas si hago una acción determinada? • ¿Qué acciones están necesariamente deshabilitadas si hago una acción determinada? 19
  10. Contestando las preguntas: Reachability • Con raíces en la teoría

    de máquinas de estados finitas • Dado un grafo con un estado inicial y uno de error, ¿existe un camino desde el inicio al error? 21
  11. Introducción a Corral • Bounded model checker • “¿Existe una

    ejecución que muestre la presencia de un error?” • 3 posibles resultados: True bug, No bugs, Recursion Bound Reached • Utiliza sub- y sobre-aproximaciones para analizar código Boogie 23
  12. Un poco más de detalle • Usa sobre- y sub-aproximaciones

    para encontrar bugs 26 Programa Sub Sobre
  13. Un poco más de detalle • Usa sobre- y sub-aproximaciones

    para encontrar bugs 27 Programa Sub Sobre
  14. Un poco más de detalle • Usa sobre- y sub-aproximaciones

    para encontrar bugs 28 Programa Sub Sobre
  15. Un poco más de detalle • Usa sobre- y sub-aproximaciones

    para encontrar bugs 29 Programa Sub Sobre True bug!
  16. Queries para Corral • ¿La acción ‘b’ está necesariamente habilitada

    si estoy en el estado ‘s’ y ejecuto ‘a’? 30
  17. Queries para Corral • ¿La acción ‘b’ está necesariamente deshabilitada

    si estoy en el estado ‘s’ y ejecuto ‘a’? 31
  18. Generación paralela • 3 niveles de paralelismo: • Por cada

    estado • Por cada acción habilitada • Queries • Actualmente los últimos dos están implementados 35
  19. Dónde estamos parados? • 3 implementaciones • Contractor • Analiza

    código C • Usa Blast para resolver las queries • Paralelismo manual 37
  20. Dónde estamos parados? • 3 implementaciones • Contractor.NET • Analiza

    bytecode .NET • Paralelismo automático (2 niveles) • Code Contracts y Corral como motores de decisión 38
  21. Trabajo futuro • Implementación • Incrementar el nivel de paralelismo

    • Versión en Java • Mejorar la traducción • Conceptual • Probabilidades de uso de las transiciones • Generación de casos de test 41
  22. Conclusiones • Resultados más precisos • Bounded model checking vs.

    Abstract interpretation • Queries con parámetros • Soporte de lenguajes de más alto nivel • Ampliación de casos de estudio manejables • Obtención de EPAs en menos tiempo 42
  23. Fin