The ITC-Irst Reverse Engineering group was charged with analyzing a software application of approximately 4.7 million lines of C code. It was an old legacy system, maintained for a long time, on which several successive adaptive and corrective maintenance interventions produced a degradation of the original structure. The company decided to reengineer the software instead of replacing it because the complexity and costs of re-implementing the application from scratch could not be afforded. Several problems were encountered during reengineering, including identifying dependencies and detecting redundant functions that have no further use. In order to accomplish these goals, we had to adopt a conservative approach. Before performing any kind of analysis on the whole code, we carefully evaluated the expected benefits. This phase was supported by a preliminary asset of the impact of the analysis, usually performed on a selected set of code modules. When the obtained results were interesting, we carefully balanced the expected benefits of the analysis and the amount of the resources needed to perform it. This paper summarizes that experience, pointing out how we approached to the problem, the way we managed the limited resources available in order to complete the task within the assigned deadlines, and the lessons we learned

Reengineering 4.7 million lines of code

Tonella, Paolo;
2000-01-01

Abstract

The ITC-Irst Reverse Engineering group was charged with analyzing a software application of approximately 4.7 million lines of C code. It was an old legacy system, maintained for a long time, on which several successive adaptive and corrective maintenance interventions produced a degradation of the original structure. The company decided to reengineer the software instead of replacing it because the complexity and costs of re-implementing the application from scratch could not be afforded. Several problems were encountered during reengineering, including identifying dependencies and detecting redundant functions that have no further use. In order to accomplish these goals, we had to adopt a conservative approach. Before performing any kind of analysis on the whole code, we carefully evaluated the expected benefits. This phase was supported by a preliminary asset of the impact of the analysis, usually performed on a selected set of code modules. When the obtained results were interesting, we carefully balanced the expected benefits of the analysis and the amount of the resources needed to perform it. This paper summarizes that experience, pointing out how we approached to the problem, the way we managed the limited resources available in order to complete the task within the assigned deadlines, and the lessons we learned
File in questo prodotto:
Non ci sono file associati a questo prodotto.

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11582/1744
 Attenzione

Attenzione! I dati visualizzati non sono stati sottoposti a validazione da parte dell'ateneo

Citazioni
  • ???jsp.display-item.citation.pmc??? ND
social impact