ABSTRACT

Chapter Summary In Chapter 9 we discussed the software similarity phenomenon, and reasons why it often leads to software clones — program structures recurring within and across programs, in many variant forms, in many places. We find clones of different granularity levels, occurring at all levels of program abstraction, from the subsystem level to implementation, taking many forms, from similar program fragments to patterns of collaborating components. The reasons why repetitions occur are common. As the cloning problem must be viewed in the context of other design goals, many clones are difficult to avoid with conventional techniques for generic design.