Code quality analysis in open source software development

TitleCode quality analysis in open source software development
Publication TypeJournal Article
Year of Publication2002
AuthorsStamelos, I, Angelis, L, Oikonomou, A, Bleris, GL
Secondary TitleInformation Systems Journal
Volume12
Pagination43–60
KeywordsC, Code quality characteristics, functions, linux, metrics, open source development, software measurement, structural code analysis, Suse, user satisfaction
Abstract

Proponents of open source style software development claim that better software is produced using this model compared with the traditional closed model. However, there is little empirical evidence in support of these claims. In this paper, we present the results of a pilot case study aiming: (a) to understand the implications of structural quality; and (b) to figure out the benefits of structural quality analysis of the code delivered by open source style development. To this end, we have measured quality characteristics of 100 applications written for Linux, using a software measurement tool, and compared the results with the industrial standard that is proposed by the tool. Another target of this case study was to investigate the issue of modularity in open source as this characteristic is being considered crucial by the proponents of open source for this type of software development. We have empirically assessed the relationship between the size of the application components and the delivered quality measured through user satisfaction. We have determined that, up to a certain extent, the average component size of an application is negatively related to the user satisfaction for this application.

Notes

"For our case study, we have used Logiscope‚ (Telelogic, 2000), a comprehensive set of tools able to perform, automatically, code measurement and comparison with user-defined programming standards"
"Using Logiscope, we examined a sample of 100 C programs found in the SUSE Linux 6.0 release."
metrics collected:
number of statements
cyclomatic complexity
maximum levels
number of paths
unconditional jumps
comment frequency
vocabulary frequency
program length
average size
number of inputs/outputs

Full Text