Analyzing Assembler to Eliminate Dead Functions: An Industrial Experience

Authors: Ian J. Davis Michael W. Godfrey Richard C. Holt Serge Mankovskii Nick Minchenko

Venue: 2012 16th European Conference on Software Maintenance and Reengineering, pp. 467-470, 2012

Year: 2012

Abstract: Industrial software systems often contain fragments of code that are vestigial, that is, they were created long ago for a specific purpose but are no longer useful within the current design of the system. In this work, we describe how we have adapted some research tools to remove such code, we use a hybrid static analysis approach of both source code and assembler to construct a model of the system, and then use graph querying to detect possible dead functions. Suspected dead functions are then commented out of the source. The system is then rebuilt and run against existing test suites to verify that the removals do not affect the semantics of the system. Finally, we discuss the results of performing this technique on a large and long-lived industrial software system as well as a large open source system.

BibTeX:

@inproceedings{ianj.davis2012aatedfaie,
    author = "Ian J. Davis and Michael W. Godfrey and Richard C. Holt and Serge Mankovskii and Nick Minchenko",
    title = "Analyzing Assembler to Eliminate Dead Functions: An Industrial Experience",
    year = "2012",
    pages = "467-470",
    booktitle = "Proceedings of 2012 16th European Conference on Software Maintenance and Reengineering"
}

Plain Text:

Ian J. Davis, Michael W. Godfrey, Richard C. Holt, Serge Mankovskii, and Nick Minchenko, "Analyzing Assembler to Eliminate Dead Functions: An Industrial Experience," 2012 16th European Conference on Software Maintenance and Reengineering, pp. 467-470