Author:
Stan Jarzabek
Affiliation:
Bialystok University of Technology, Faculty of Computer Science, Bialystok, Poland
Keyword(s):
Software Clones, Generic Design, Software Maintainability and Reusability, Software Complexity.
Abstract:
Similarities are inherent in software. They show as software clones – similar code fragments, functions, classes, source files, and bigger program structures spreading through software systems in multiple variant forms. Often, these recurring program structures represent important concepts from software requirements or design spaces. Interestingly, despite potential benefits, avoiding many of such redundancies is often either impossible or would require developers to compromise important design goals. In this paper, I discuss software similarity phenomenon, its sources, the many roles clones play in programs, the software productivity benefits that can be gained by avoiding clones, and difficulties to realize these benefits with conventional programming languages and design techniques. I point to generative techniques as a promising approach to address software redundancy problems.