Improving modularity by refactoring code clones: a feasibility study on Linux

  • Authors:
  • Liguo Yu;Srini Ramaswamy

  • Affiliations:
  • Indiana University, South Bend;University of Arkansas at Little Rock

  • Venue:
  • ACM SIGSOFT Software Engineering Notes
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Modularity is an important principle of software design. It is directly associated with software understandability, maintainability, and reusability. However, as software systems evolve, old code segments are modified / removed and new code segments are added, the original modular design of the program might be distorted. One of the factors that can affect the modularity of the system is the introduction of code clones --- a portion of source code that is identical or similar to another --- in the software evolution process. This paper applies clone detection techniques to study the modularity of Linux. The code clones are first identified using an automatic tool. Then each clone set is analyzed by a domain expert to classify it into one of the three clone concern categories: singular concern, crosscutting concern, and partial concern. Different approaches to dealing with these different categories of code clones are suggested in order to improve modularity.