Show simple item record

An Analysis of Software Quality and Maintainability Metrics with an Application to a Longitudinal Study of the Linux Kernel.

dc.creatorThomas, Lawrence Gray
dc.date.accessioned2020-08-22T17:18:33Z
dc.date.available2010-07-15
dc.date.issued2008-07-15
dc.identifier.urihttps://etd.library.vanderbilt.edu/etd-07082008-001537
dc.identifier.urihttp://hdl.handle.net/1803/12852
dc.description.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.
dc.format.mimetypeapplication/pdf
dc.subjectSoftware engineering
dc.subjectSoftware measurement -- Evaluation
dc.subjectLinux
dc.titleAn Analysis of Software Quality and Maintainability Metrics with an Application to a Longitudinal Study of the Linux Kernel.
dc.typedissertation
dc.contributor.committeeMemberDr. Julie A. Adams
dc.contributor.committeeMemberDr. Larry Dowdy
dc.contributor.committeeMemberDr. Richard Alan Peters II
dc.contributor.committeeMemberDr. Ralph M. Butler
dc.type.materialtext
thesis.degree.namePHD
thesis.degree.leveldissertation
thesis.degree.disciplineComputer Science
thesis.degree.grantorVanderbilt University
local.embargo.terms2010-07-15
local.embargo.lift2010-07-15
dc.contributor.committeeChairDr. Stephen R. Schach


Files in this item

Icon

This item appears in the following Collection(s)

Show simple item record