The evolution of a single system is a task where we deal with the modification of a single product. Lehman’s laws of software evolution were broadly evaluated within this type of systems and the results shown that these single systems evolve according to his stated laws over time. However, when dealing with Software Product Lines (SPL), we need to deal with the modification of several products which include common, variable, and product specific assets. Because of the several assets within SPL, each stated law may have a different behavior for each asset kind. Nonetheless, we do not know if the stated laws are still valid for SPL since they were not yet evaluated in this context.
Thus, this paper details an empirical investigation where 4 of the Lehman’s Laws (LL) of Software Evolution were used in an SPL industrial project to understand how the SPL assets evolve over time. This project relates to an application in the medical domain developed in a medium-size company in Brazil. It contains 45 modules and a total of 70,652 bug requests in the tracking system, gathered along the past 10 years.
We employed two techniques—the KPSS Test and linear regression analysis, to assess the relationship between LL and SPL assets.
The results showed that 3 laws were supported based on the data employed (continuous change, increasing complexity, and declining quality). The other law (continuing growth) was partly supported, depending on the SPL evaluated asset (common, variable, or product-specific).
[Keywords: software product lines, software evolution, Lehman’s Laws of Software Evolution, empirical study]
See Also:
On understanding laws, evolution, and conservation in the large-program life cycle
The Life Cycle of Businesses and their Internal Organization
STEPS Toward Expressive Programming Systems: “A Science Experiment”
Innovation and cumulative culture through tweaks and leaps in online programming contests
Organizational Transformation as Punctuated Equilibrium: An Empirical Test
The Work Life of Developers: Activities, Switches and Perceived Productivity