Linker-Based Program Extraction and Its Uses in Studying Software Evolution

One of the problems of empirical studies of software evolution is the lack of an effective technique for extracting facts about very large software systems (millio ns of lines of code) over hundreds of versions. In this paper, we describe a linker-based approach to program extraction that is well suited for the study of large software system evolution. Our approach is particularly accurate, convenient and efficient. Its core c omponent is a fact extractor, called ldx, which is a customized version of the GNU code linker ld and performs both code linking and fact extraction. We call a ldx output graph an as-linked view (ALV). A sequence of ALVs of successive versions of a software system can be utilized to help understand software evolution. We describe our preliminary empirical studies on the evolution of two large open source systems, Linux and PostgreSQL. We discuss several interesting results, which either validate results from earlier studies or sugge st new concepts in studying software evolution.

[1]  Dewayne E. Perry,et al.  Metrics and laws of software evolution-the nineties view , 1997, Proceedings Fourth International Software Metrics Symposium.

[2]  Michael W. Godfrey,et al.  Evolution in open source software: a case study , 2000, Proceedings 2000 International Conference on Software Maintenance.

[3]  Meir M. Lehman,et al.  Rules and Tools for Software Evolution Planning and Management , 2001, Ann. Softw. Eng..

[4]  Stephen R. Schach On the Nonmaintainability of Open-Source Software , 2002 .

[5]  Richard C. Holt,et al.  The chaos of software development , 2003, Sixth International Workshop on Principles of Software Evolution, 2003. Proceedings..

[6]  Michael W. Godfrey,et al.  Proceedings, sixth International Workshop on Principles of Software Evolution, 1-2 September 2003, Helsinki, Finland , 2003 .

[7]  Tibor Gyimóthy,et al.  A short introduction to Columbus/CAN , 2001 .