Mirna Maia.; http://lattes.cnpq.br/2600028670260478; MAIA, Mirna Carelli Oliveira.
Resumo:
Changes happen during the software development process so that requirements keep upto-date with costumers needs. The change implementation is an expensive and not trivial activity. Impact analysis is the process that aids software engineers in identifying the consequences of program changes. It may be used before doing changes to calculate its costs or after changes to validate the modified program with regression tests. Two approaches are usually taken in impact analysis: static or dynamic techniques. In the former, program structure is analyzed in order to identify change impact. The latter analyzes execution traces to identify change impact based on dynamic dependencies. Both approaches may be inaccurate, super-estimating or sub-estimating the impact. In the former case, non-affected entities may be included, characterizing the presence of false-positives. In the latter, results do not take into account affected entities, characterizing false-negatives. With false-positives, unnecessary super-estimated information may confuse the analyst. On the other hand, false-negatives mean sub-estimated impact that causes financial losses to the company, usually worse than false-positives. In this work, we propose and evaluate a hybrid impact analysis technique that aims to reduce the number of false-negatives. The technique is hybrid because it combines static and dynamic approaches to identify change impact. We evaluated the technique comparing the absolute number of false negatives and the obtained recall. Recall is a metric that
represents the ratio between the number of entities correctly obtained by the analysis and the total number of affected entities. Analysis of the results showed that the proposed technique increased recall between 90 and 115% compared to the static technique, and between 21,2 and 39% compared to the dynamic technique. Although our results are encouraging, a more thorough study is needed to evaluate up to where the results may be generalized.