Slicing dinámico para lenguajes de la familia .NET - De Rocco, Federico (2020)
Slicing dinámico es una técnica que se utiliza principalmente para facilitar la tarea de debugging[2], reduciendo el esfuerzo del programador encontrando aquellas líneas relevantes para un comportamiento dado[5]. Para construir un slice el enfoque clásico se basa en la búsqueda de dependencias entre las instrucciones del programa. Si bien en sus comienzos la técnica fue prometedora, hoy en día todavía persisten problemas de escalabilidad[30]. El grupo LaFHIS desarrolló en los últimos años DynAbs, un slicer de emisi´on/an´alisis de traza destinado a analizar c´odigo de alto nivel que intenta atacar parcialmente estos problemas de escalabilidad para aplicaciones C#. A pesar de los avances, la herramienta no ataca una de las deficiencias que tienen las herramientas de este tipo, que es la limitación de tratar un único lenguaje. En este trabajo se presenta una extensión para la herramienta para operar sobre el lenguaje Visual Basic, el cual actualmente no posee ninguna herramienta de slicing compatible exceptuando herramientas multilenguaje como ORBS [27, 28]. Como cualquier herramienta de este tipo, esta consiste en una parte destinada a instrumentar el código cliente y otra parte consumir la traza generada en su ejecución. Por lo tanto este trabajo consistió en implementar por un lado la funcionalidad necesaria para instrumentar código Visual Basic, y por otro, abstraer el módulo de análisis para que trate ambos lenguajes. A lo largo de este trabajo se detallan los conceptos relativos a slicing, los específicos a DynAbs y se explica cómo fue realizada esta extensión. Finalmente, se presentará una evaluación adecuada que determinó que han sido cubiertas suficientes expresiones del lenguaje y que efectivamente ahora se pueden tratar programas que han sido evaluados previamente en C#.