Understanding the Effects of Code Clones on Modularity in Software Systems

Liguo Yu, Srini Ramaswamy, Aparajithan Vaidyanathan · 2012

Modularity is an important software design principle. One key point in the design of high quality software products is avoiding code clones, i.e., a portion of source code that is identical or similar to another. During the software evolution process, new code segments are frequently added. It is common to see that code clones accrue with the release of new versions of the product. Such accruement could be more serious in systems software, where new code segments are associated with similar functions or similar drivers. In this paper, we study code clones of two versions of the Linux kernel from the viewpoint of modularity. Our investigation finds that although quite some effort has been spent in Linux to remove some code clones, more code clones are typically added with the release of new versions. This has become a major issue that is potentially causing degradation of the modularity design principle within the Linux kernel.

Read the paper · More papers on PaperTik