—Reducing software complexity is key to reducing software maintenance costs. To discover complexity-reducing practices, in this paper we study the evolution of seven sizable open...
The principle of modularisation is one of the main techniques that software designers use to tame the complexity of programming. A software project, however, is complex in many oth...
We use 810 versions of the Linux kernel, released over a period of 14 years, to characterize the system’s evolution, using Lehman’s laws of software evolution as a basis. We i...
Most studies of software evolution have been performed on systems developed within a single company using traditional management techniques. With the widespread availability of se...