Paolo Tonella and Alessandra Potrich,
Reverse Engineering of the Interaction Diagrams from C++ Code
In object oriented programming, the functionalities of a
system result from the interactions (message exchanges)
among the objects allocated by the system. While designing
object interactions is far more complex than designing the
object structure in forward engineering, the problem of
understanding object interactions during code evolution
is even harder, because the related information is spread
across the code.
In this paper, a technique for the automatic extraction of
UML interaction diagrams from C++ code is proposed. The
algorithm is based on a static, conservative flow analysis,
that approximates the behavior of the system in any execution
and for any possible input. Applicability of the approach to
large software is achieved by means of two mechanisms:
partial analysis and focusing. Usage of our method on a
real world, large C++ system confirmed its viability.
Postscript version of the paper.