Defect patterns and software metric correlations in a mature ubiquitous system
This work addresses the lack of empirical data in software engineering by offering long-term insights that could recalibrate general practices, though it is incremental in applying existing methods to a new dataset.
The study analyzed defect growth and structural patterns in a 30-year-old Fortran numerical library, challenging widely-held language-independent beliefs about software defects and providing empirical support for defect clustering.
Software engineering is not an empirically based discipline. Consequently, many of its practices are based on little more than a generally agreed feeling that something may be true. Part of the problem is that it is both relatively young and unusually rich in new and often competing methodologies. As a result, there is little time to infer important empirical patterns of behaviour before the technology moves on. Very occasionally an opportunity arises to study the defect growth and patterns in a well-specified software system which is also well-documented and heavily-used over a very long period. Here we analyse the defect growth and structural patterns in just such a system, a numerical library written in Fortran evolving over a period of 30 years. This is important to the wider community for two reasons. First, the results cast significant doubt on widely-held long standing language-independent beliefs and second, some of these beliefs are perpetuated in modern technologies. It therefore makes good sense to use empirical long-term data as it becomes available to re-calibrate those generalisations. Finally, we analyse the phenomenon of defect clustering providing further empirical support for its existence.