Type of Document Dissertation Author Thomas, Lawrence Gray Author's Email Address LGT0001@gmail.com URN etd-07082008-001537 Title An Analysis of Software Quality and Maintainability Metrics with an Application to a Longitudinal Study of the Linux Kernel. Degree PhD Department Computer Science Advisory Committee
Advisor Name Title Dr. Stephen R. Schach Committee Chair Dr. Julie A. Adams Committee Member Dr. Larry Dowdy Committee Member Dr. Ralph M. Butler Committee Member Dr. Richard Alan Peters II Committee Member Keywords
- Software engineering
- Software measurement -- Evaluation
Date of Defense 2008-05-14 Availability unrestricted AbstractCoupling between software modules has been shown to be deleterious to both software quality and maintainability. Common coupling (two or more modules sharing a global variable, or GV) is a particularly strong (and therefore undesirable) form of coupling. We examined 83 production (stable) versions of the Linux kernel. Previous studies have determined that the size of the Linux kernel (as measured in lines of code) grows linearly and the number of instances of common coupling grows exponentially with respect to version number. We found that the size of the Linux kernel and the number of instances of common coupling both grow linearly with respect to release date, because Linux kernels are released at irregular intervals.
We also measured correlations between common coupling and Oman’s maintainability index as well as two of Halstead’s Software Science metrics (volume and effort). The general validity of Oman’s and Halstead’s metrics has long been questioned. We performed a longitudinal study on three distinct series of the Linux kernel, in an attempt to see if these metrics were valid within multiple consecutive versions of the same program. All of the metrics we examined were valid in one series, but not in the other two. Of all the metrics we examined, only lines of code maintained a significant linear correlation with the number of instances of common coupling in all cases.
Rather than analyzing the code in only the /kernel/ subdirectory, we built complete, executable kernels, and analyzed all of the source code used to build each kernel. Doing so required us to develop an algorithm to select consistent kernel configurations across all versions of the kernel we analyzed.
We used a variety of open-source software tools (and one proprietary CASE tool), and built several specialized tools to link the existing tools, resulting in an end-to-end solution for the analysis of the various software metrics we gathered. Newer tools cannot be used to build the older versions of the kernel, and some of the code had to be modified in order to successfully build the kernel. We carefully documented these changes to assist future researchers.
Filename Size Approximate Download Time (Hours:Minutes:Seconds)
28.8 Modem 56K Modem ISDN (64 Kb) ISDN (128 Kb) Higher-speed Access Larry_Thomas-Dissertation-Final_Version-2008-07-07.pdf 2.89 Mb 00:13:22 00:06:52 00:06:01 00:03:00 00:00:15