Abstract
The classification of software systems into types has been achieved in the past by observing both their specifications and behavioral patterns: the SPE classification, for instance, and its further supplements and refinements, has identified the S-type (i.e., fully specified), the P-type (i.e., specified but dependent on the context) and the E-type (i.e., addressing evolving problems) among the software systems.
In order to detect types, and establish similarities, among Free/Libre/Open Source Software (FLOSS) systems, this paper considers three modular characteristics (functions, files and folders) and their evolution: how they are evolving with size, if they are constant across systems, and whether recurring evolutionary patterns are observed. Using these various-grained characteristics, a set of models for the evolution of modularization are extracted from evolving systems, and then used to extract similarities and types from a wide sample of FLOSS projects.
This paper provides three contributions: first, it shows that several models are needed to encompass the variety of modularization patterns; second, it provides three types of models (uni-variate, bi-variate and tri-variate) for the evolution of modularization, with significant goodness-of-fit’s. Finally, it shows that two of these patterns alone can interpolate the modular characteristics of the vast majority of a random choice of FLOSS projects.
Chapter PDF
Similar content being viewed by others
Keywords
- IEEE Computer Society
- Application Domain
- Software Reuse
- Open Source Software Evolution
- Modular Characteristic
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Barry, E.J., Kemerer, C.F., Slaughter, S.A.: On the uniformity of software evolution patterns. In: ICSE 2003: Proceedings of the 25th International Conference on Software Engineering, pp. 106–113. IEEE Computer Society, Washington (2003)
Capiluppi, A.: Models for the evolution of os projects. In: ICSM 2003: Proceedings of the International Conference on Software Maintenance, p. 65. IEEE Computer Society, Washington (2003)
Capiluppi, A., Boldyreff, C.: Identifying and improving reusability based on coupling patterns. In: Mei, H. (ed.) ICSR 2008. LNCS, vol. 5030, pp. 282–293. Springer, Heidelberg (2008)
Capiluppi, A., Morisio, M., Ramil, J.F.: The evolution of source folder structure in actively evolved open source systems. In: METRICS 2004: Proceedings of the Software Metrics, 10th International Symposium, pp. 2–13. IEEE Computer Society, Washington (2004)
Cook, S., Harrison, R., Lehman, M.M., Wernick, P.: Evolution in software systems: foundations of the spe classification scheme: Research articles. J. Softw. Maint. Evol. 18(1), 1–35 (2006)
Ferrett, L.K., Offutt, J.: An empirical comparison of modularity of procedural and object-oriented software. In: ICECCS 2002: Proceedings of the Eighth International Conference on Engineering of Complex Computer Systems, p. 173. IEEE Computer Society, Washington (2002)
Fitzgerald, B.: A critical look at open source. Computer 37(7), 92–94 (2004)
Frakes, W.B., Pole, T.P.: An empirical study of representation methods for reusable software components. IEEE Trans. Softw. Eng. 20(8), 617–630 (1994)
German, D.M.: Using software trails to reconstruct the evolution of software: Research articles. J. Softw. Maint. Evol. 16(6), 367–384 (2004)
Herraiz, I., Gonzalez-Barahona, J.M., Robles, G.: Towards a theoretical model for software growth. In: MSR 2007: Proceedings of the Fourth International Workshop on Mining Software Repositories, p. 21. IEEE Computer Society, Washington (2007)
Lauridsen, J., Mur, J.: Multicollinearity in cross-sectional regressions. Journal of Geographical Systems 8(4), 317–333 (2006), http://ideas.repec.org/a/kap/jgeosy/v8y2006i4p317-333.html
Lehman, M.M.: Uncertainty in computer application and its control through the engineering of software. Journal of Software Maintenance 1(1), 3–27 (1989)
Lehman, M.M., Belady, L.A. (eds.): Program evolution: processes of software change. Academic Press Professional, Inc., San Diego (1985)
Lerner, J., Tirole, J.: Some simple economics of open source. The Journal of Industrial Economics L(2), 197–232 (2002), http://www3.interscience.wiley.com/cgi-bin/fulltext/118942767/PDFSTART
McClure, C.: Software reuse techniques: adding reuse to the system development process. Prentice-Hall, Inc., Upper Saddle River (1997)
Morisio, M., Ezran, M., Tully, C.: Success and failure factors in software reuse. IEEE Trans. Softw. Eng. 28(4), 340–357 (2002)
Nakakoji, K., Yamamoto, Y., Nishinaka, Y., Kishida, K., Ye, Y.: Evolution patterns of open-source software systems and communities. In: IWPSE 2002: Proceedings of the International Workshop on Principles of Software Evolution, pp. 76–85. ACM, New York (2002), http://doi.acm.org/10.1145/512035.512055
Narduzzo, A., Rossi, A.: The role of modularity in free/open source software development. In: Koch, S. (ed.) Free/Open Source Software Development, pp. 84–102. Idea Group Publishing, Hershey (2004)
Parnas, D.L.: On the criteria to be used in decomposing systems into modules, pp. 139–150 (1979)
Pressman, R.S.: Software Engineering: A Practitioner’s Approach. McGraw-Hill Higher Education, New York (2001)
Prieto-DÃaz, R.: Implementing faceted classification for software reuse. Commun. ACM 34(5), 88–97 (1991), http://doi.acm.org/10.1145/103167.103176
Robles, G., Amor, J.J., Gonzalez-Barahona, J.M., Herraiz, I.: Evolution and growth in large libre software projects. In: IWPSE 2005: Proceedings of the Eighth International Workshop on Principles of Software Evolution, pp. 165–174. IEEE Computer Society, Washington (2005)
Smith, N., Capiluppi, A., Ramil, J.F.: A study of open source software evolution data using qualitative simulation. Software Process: Improvement and Practice 10(3), 287–300 (2005)
Trochim, W.: The Research Methods Knowledge Base, 2nd edn. Atomic Dog Publishing, Cincinnati, http://www.amazon.ca/exec/obidos/redirect?tag=citeulike09-20&path=ASIN/1931442487
Yu, L., Chen, K.: Categorization of common coupling and its application to the maintainability of the linux kernel. IEEE Trans. Softw. Eng. 30(10), 694–706 (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 IFIP International Federation for Information Processing
About this paper
Cite this paper
Capiluppi, A. (2009). Domain Drivers in the Modularization of FLOSS Systems. In: Boldyreff, C., Crowston, K., Lundell, B., Wasserman, A.I. (eds) Open Source Ecosystems: Diverse Communities Interacting. OSS 2009. IFIP Advances in Information and Communication Technology, vol 299. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-02032-2_3
Download citation
DOI: https://doi.org/10.1007/978-3-642-02032-2_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-02031-5
Online ISBN: 978-3-642-02032-2
eBook Packages: Computer ScienceComputer Science (R0)