- -

Diseño y desarrollo de un fragmentador de programas para Java basado en el System Dependence Graph

RiuNet: Repositorio Institucional de la Universidad Politécnica de Valencia

Compartir/Enviar a

Citas

Estadísticas

  • Estadisticas de Uso

Diseño y desarrollo de un fragmentador de programas para Java basado en el System Dependence Graph

Mostrar el registro sencillo del ítem

Ficheros en el ítem

dc.contributor.advisor Silva Galiana, Josep Francesc es_ES
dc.contributor.author Costa Rosa, Javier es_ES
dc.date.accessioned 2020-10-14T11:49:11Z
dc.date.available 2020-10-14T11:49:11Z
dc.date.created 2020-09-23
dc.date.issued 2020-10-14 es_ES
dc.identifier.uri http://hdl.handle.net/10251/151760
dc.description.abstract [ES] La fragmentación de programas es una técnica de análisis de software muy útil en muchos ámbitos relacionados con la ingeniería del software, especialmente en la depuración de código. No obstante, a pesar de lo beneficiosa que puede llegar a ser, no todos los lenguajes de programación disponen de un fragmentador público que aborde la totalidad del lenguaje y que integre los últimos avances en esta técnica. En el caso de Java sí existen herramientas de análisis estático comerciales como CodeSonar. Sin embargo, aunque también existen herramientas de libre acceso como Indus, WALA, Kaveri, etc., ninguna de estas está suficientemente actualizada, o incluso son dependientes de otras o de algunos entornos de desarrollo, como puede ser Eclipse. Disponer de un fragmentador de código puede facilitar en gran medida tareas relacionadas con la ingeniería del software. En el caso de la depuración de código, por ejemplo, un error obtenido en un punto cualquiera del programa es mucho más sencillo de identificar si se consiguen descartar algunas partes del programa que se sabe a ciencia cierta que no tienen relevancia alguna en el error obtenido, optimizando tiempo y recursos. Lo que se pretende en el presente trabajo es diseñar y desarrollar desde cero una herramienta de fragmentación de código estática que sea pública, actualizada y de libre acceso para el lenguaje Java. Esto incluye todo el ciclo de desarrollo: Desde el diseño conceptual, pasando por el análisis del código, la construcción de diversas representaciones necesarias como el CFG (Control Flow Graph), PDG (Program Dependence Graph) y SDG (System Dependence Graph), entre otros, hasta la obtención del fragmento y su exportación a fichero. Todo ello tratando de desarrollar una herramienta robusta, mantenible y extensible, de forma que se pueda actualizar y ampliar su funcionalidad de forma fácil y sencilla en el futuro. es_ES
dc.description.abstract [EN] Program slicing is a program analysis technique that is useful in many areas related to software engineering, especially in program debugging. However, despite its benefits, not all programming languages have a public and up-to-date program slicer. In case of Java, there do exist commercial, static analysis tools like CodeSonar. However, although some freely available tools also exist, like Indus, WALA, Kaveri, etc., none of them is up-to-date, or even they depend on others or some development environments like Eclipse. Having a program slicer can simplify some tasks related to software engineering. In case of code debugging, for example, an error obtained in any point of the program can be traced more easily if some certainly irrelevant parts of the program can be discarded, optimizing time and resources. The aim of this work is to design and develop a public, up-to-date and freely accesible static program slicing tool from scratch, for the Java language. That includes the whole development cycle: From the conceptual design, through code analysis, graph building such as CFG (Control Flow Graph), PDG (Program Dependence Graph) and SDG (System Dependence Graph), among others, to the computation of the final fragment and its exportation. All of this trying to develop a robust, maintenable and extensible tool, that can be updated and extended in the future. es_ES
dc.description.abstract [CA] La fragmentació de programes és una técnica d’anàlisi de software molt útil en molts àmbits relacionats amb l’enginyeria software, especialment en la depuració de codi. No obstant, tot i lo beneficiosa que pot arribar a ser, no tots els llenguatges de programació disponen d’un fragmentador públic que aborde la totalitat del llenguatge i que integre els últims avanços d’aquesta tècnica. En el cas de Java, sí existeixen ferramentes d’anàlisi estàtic comercials com CodeSurfer. No obstant, encara que existeixen algunes ferramentas de lliure accés com Indus, WALA, Kaveri, etc. ningú d’aquestes está completament actualitzada, o dependeixen d’altres ferramentas o d’algú entorn de desenvolupament com Eclipse. Disposar d’un fragmentador de codi pot facilitar molt algunes tasques relacionades amb la engenyeria del software. En el cas de la depuració de codi, per example, un error obtingut en qualsevol punt del programa és molt més senzill d’identificar si es consegueix descartar altres parts del programa que es sap que no tenen rellev`ancia, optimitzant el temps i els recursos. En aquest treball es pretén disenyar i desenvolupar desde zero una ferramenta de fragmentació de codi estática que siga pública, actualitzada i de lliure accés per a Java. Aquest inclou tot el cicle de desenvolupament: desde el diseny conceptual, pasant per l’análisi del codi, la construcció de diverses representacions necesarias com el CFG (Control Flow Graph), PDG (Program Dependence Graph) y SDG (System Dependence Graph), entre altres, fins i la obtenció del fragment i la seua exportació. Tot així tratant de desenvolupar una ferramenta robusta, mantenible y extensible que es puga actualitzar i ampliar la seua funcionalitat de manera fàcil y senzilla en el futur. es_ES
dc.format.extent 55 es_ES
dc.language Español es_ES
dc.publisher Universitat Politècnica de València es_ES
dc.rights Reconocimiento - Compartir igual (by-sa) es_ES
dc.subject Program Slicing es_ES
dc.subject Java es_ES
dc.subject System Dependence Graph es_ES
dc.subject.classification LENGUAJES Y SISTEMAS INFORMATICOS es_ES
dc.subject.other Máster Universitario en Ingeniería y Tecnología de Sistemas Software-Màster Universitari en Enginyeria i Tecnologia de Sistemes Programari es_ES
dc.title Diseño y desarrollo de un fragmentador de programas para Java basado en el System Dependence Graph es_ES
dc.type Tesis de máster es_ES
dc.rights.accessRights Abierto es_ES
dc.contributor.affiliation Universitat Politècnica de València. Departamento de Sistemas Informáticos y Computación - Departament de Sistemes Informàtics i Computació es_ES
dc.description.bibliographicCitation Costa Rosa, J. (2020). Diseño y desarrollo de un fragmentador de programas para Java basado en el System Dependence Graph. http://hdl.handle.net/10251/151760 es_ES
dc.description.accrualMethod TFGM es_ES
dc.relation.pasarela TFGM\107907 es_ES


Este ítem aparece en la(s) siguiente(s) colección(ones)

Mostrar el registro sencillo del ítem