requirements and user requirements will originate through the same process in OSS.
Figure 1: Research Model for OSS Quality
In OSS communities, user of the software detects defects and reports them (user can be a maintainer, author or an end user). Individual projects have their own structure to remove defects. Addition of new code to remove the defect will increase the complexity of the software. The more complex the software is, the harder it will be to make additions to it in future. If the code is not well documented, maintainers will be reluctant to remove existing lines of code. Corrective maintenance will reduce the reliability and maintainability of the software. We expect a negative relationship between corrective maintenance and quality.
Adaptive maintenance can present a complex scenario in case of corporate use of OSS. If OSS is used in organizations which have existing PSS applications, adaptive maintenance will be required to accommodate interfaces to PSS. Perfective maintenance in OSS will be very similar to Adaptive maintenance; therefore we group the two together in our model. The effect of this category of maintenance will be domain dependent. If the operational environment of OSS is very dynamic then there will be a frequent need for such maintenance. If on the other hand the operational environment is stable and the users are not demanding frequent addition of new functionality, there will less need for such maintenance.
Preventative maintenance is proactive approach to maintenance. We believe that OSS projects sustain a high level of quality through significant preventative maintenance. We expect a positive effect of such maintenance on software quality.
5. DATAANALYSISANDRESULTS
We are examining the research model using empirical data from our analysis of the Linux source code, as it evolved through version 2.4.0 to 2.4.20, a total of 21 releases. The period of release was 2001 to 2003. We measure the size of individual modules in each release and then use an aggregate measure for the entire release. The total number of modules analyzed increase from 5571 in version 2.4.0 to 11340 in version 2.4.20. Software size is measured in Source Lines of code (SLOC). We measure the raw size from the tar ball of the kernel and the SLOC using Linux commands for each module and for the complete system. We also measure size in terms of number of C modules. All results are validated and verified against test files. Changes to a Linux version are provided in the form of a new patch. The user can