Open Source Observation
A rapid growth in the development and usage of open source software has been observed in recent years. In the open source observation, we collect quality data from selected open source software, measure quality attributes, and analyze the quality evolution of the open source software against QMOOD model case studies.
Collected Quality Data and Discussion
One of the original goals of this project is to develop a tool with QMOOD hierarchical quality evaluation model, and to evaluate the results with J. Bansiya et. al. work (J. Bansiya and C. G. Davis, "A Hierarchical Model for Object-Oriented Design Quality Assessment," IEEE Transactions on Software Engineering, vol.20, no.1, pp.4-17, Jan. 2002). The evaluation tells whether the observation in their case study stands in open source domain. The QMOOD is initially build to measure software developed with C++ programming language. Therefore we also collect quality data from selected open source software (OSS) implemented with C++.
Moreover, we would like to observer whether different quality evolution patterns exist in different types of OSS, including general applicaton, framework, and software development library. The selected target OSS is categorized into these three types. Additionally, sufficient download count, project age, and software releases are also required.
Therefore, in a preliminary experiment, we collect some open source projects depend on following limitations :
- Pure C++ programming language
- The open source project product is software application
- The product is released more than four stable release
- The product has long project age and big amount of download
According to these limitations, these open source projects are selected :
The result shows that all 14 projects' functionality and reusability attributes are increasing with time. Excepts GNUWorld and Bakery, the rest 12 projects downgrade understandability with time. The functionality, reusability and understandability attribute evoulution of these 14 projects are basically consistent with J. Bansiya et. al.'s case study.
The flexibility attribute of Interactive Visualization Framework, GNUWorld, and Bakery decreased with time, which is not expected for framework type projects.
According to the experiment, a short conclusion can be made in the following table. The evolution of functionality reusability attributes are supported by all projects, while the evolution of flexibility, extendibility and effectiveness attributes are not supported by most of the projects. Meanwhile the evolution of understandability attribute is weakly supported.