http://lattes.cnpq.br/7697794806460975; SOUZA, Rodrigo Rocha Gomes e.
Résumé:
The analysis of dependencies between source code entities of a software system is performed by several reverse engineering tools in order to reveal information that is useful for software maintenance. There is, however, a shortage of experimental studies designed to evaluate such tools, in part due to the high cost of conducting experiments in the area.
In the area of networks and distributed systems, the high cost of experimentation motivates the use of simulation as a means to evaluate protocols and algorithms. In reverse engineering, however, simulations are underexplored — which is partly explained by the lack of realistic computational models for dependencies between source code entities. This paper presents computer models that generate representations which can be interpreted as dependencies between source code entities. One of the models, called BCR+, was developed in the context of this work. We have also developed a classification model that can tell, with accuracy of 96%, whether a representation of dependencies is realistic — that is, if it resembles representations extracted from real systems. This work also presents a proof of concept, demonstrating the feasibility of using BCR+ to evaluate algorithms used in the context of software architecture recovery, a branch of reverse engineering.