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.
|