HATTORI, L. P.; http://lattes.cnpq.br/8147803733617660; HATTORI, Lile Palma.
Resumo:
In order to attend the continuous need for evolution, software systems are subjected to constant changes. Both during software development and maintenance there is a need to incorporate changes, which can be caused by, for example, requirements change or design errors. To incorporate a change, we need to comprehend the system and foresee the consequences of that change to the system. This activity is called change impact analysis. Information extracted from impact analysis can be used to plan and execute a change, as well as to track the effect caused by it. Impact analysis can be applied after the implementation of a change to evaluate its effects through dynamic techniques based on execution traces. However, impact analysis is more proactive when applied before the implementation of a change to predict its impacts through static techniques. When assessing a change, static analysis techniques identify a great amount of impacts that do not occur in practice, these are called false-positives. In this work, we propose and evaluate a probabilistic impact analysis technique that identifies the impacts of a change before its implementation and assigns probability of occurrence to the impacts based on the software change history. Thus, with this technique, the impacts can be ordered by the probability of occurrence and the number of false-positives can be reduced. To evaluate our technique, we redefine two measures from information retrieval, called precision and recall, to assess the number of false-positives and false-negatives produced. False-negatives are impacts that occur in practice, but are not identified by the impact analysis technique. The results show that our probabilistic technique was able to reduce the number of false-positives produced and, consequently, increase precision of the impact
analysis applied before the implementation of a change.