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. In this paper. a tecnique for the automatic extraction of the interaction diagrams from C++ code is proposed. The algoritm is based on a static flow analysis, so that results are ensured to conservatively approximate the behavior of the system in any execution and for any possible input. Scalability of the approach to large software is achieved by means of two mechanisms: partial analysis and focusing. Application of our method to a real world, large C++ system confirmed its viability and usefulness
Reverse Engineering of the Interaction Diagrams from C++ Code
Tonella, Paolo;Potrich, Alessandra
2003-01-01
Abstract
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. In this paper. a tecnique for the automatic extraction of the interaction diagrams from C++ code is proposed. The algoritm is based on a static flow analysis, so that results are ensured to conservatively approximate the behavior of the system in any execution and for any possible input. Scalability of the approach to large software is achieved by means of two mechanisms: partial analysis and focusing. Application of our method to a real world, large C++ system confirmed its viability and usefulnessI documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.