Estudo comparativo de ferramentas de análise estática no contexto de engenharia reversa - Silva, Jorge Diego de Sousa (2018)
Software maintenance is one of the most important phases of the software life cycle because after the system is delivered for use, errors tend to arise, and changes tend to be requested by users. However, there are several difficulties in maintaining systems, especially if they are legacy, since generally such systems have little or no documentation, making it difficult to make any changes. In this context, reverse engineering was developed with the purpose of facilitating the maintenance of software, aiding in the recovery of components and documentation of systems. The objective of this work is to perform a comparative study of static analysis tools, in the context of reverse engineering, based on recovered components, established criteria, ease of use, usefulness and behavioral intention of the tools. In order to obtain preliminary results, a study was carried out regarding the components that the tools could retrieve from the system, UML elements and relationships (association, composition, aggregation, inheritance, realization and dependence) were taken into account. The results show a similarity to the number of UML elements retrieved, already in relation to the relationships, the performance of the tools was low when compared to the amount of UML elements recovered. An experiment was carried out with students of the Software Engineering course of the Federal University of Ceará - Russian Campus, where the students used two tools in a system, and then a questionnaire was applied to evaluate the tools, taking into account ease of use , utility and behavioral intent of tools. Given the large number of CASE tools available, this paper contributes to the selection of effective and easy-to-use reverse engineering tools based on experimental results. As results we obtain a statistical analysis of the data of the experiment and an analysis of the components and relationships that each tool was able to recover, in this way, helping software development companies in the choice of a static analysis tool.