[IEEE 2008 12th International Software Product Line Conference (SPLC) - Limerick, Ireland...

1
Jump-Starting Software Product Lines with Clone Detection Andrew Mark Dalgarno Software Acumen Limited, Cambridge, England [email protected] Abstract Clone detection, the systematic identification of identical or near-identical code fragments, is a powerful tool for launching a software product line from an existing code base and for maintaining a software product line once it is in operation. This session illustrates the concept of clone detection and places it in a product line context. 1. Session Description A basic, if highly inefficient mechanism for realizing a new software variant is to copy-and-paste, or clone, all or part of the organization’s existing code base and then modify the cloned code to satisfy the requirements of the new variant. For many organizations, unaware of research and practical experience in the area of software product lines, this is a natural way to realize multiple software variants. Clone detection [1] is the systematic identification of code clones in a code base. Clone detection can help organizations in the above position to migrate to a product line approach by highlighting identical and near-identical code fragments from which the core, reusable assets of the product line could be built [2], [3]. Furthermore, clone detection has an on-going role to play in maintenance and evolution of the product line. Active clone detection, for example as part of a continuous software integration process, can be used to identify new clones that have been introduced by application teams. These can indicate the need to support additional variability in the platform. This demonstration introduces clone detection and places it in a product line context. The clone detection capabilities of the Axivion Bauhaus Suite [4] are used for illustration purposes. 2. References [1] Koschke, R, Survey of Research on Software Clones, in Duplication, Redundancy, and Similarity in Software, eds. Rainer Koschke and Ettore Merlo and Andrew Walenstein, Internationales Begegnungs- und Forschungszentrum fuer Informatik (IBFI), Schloss Dagstuhl, Germany, 2007 [2] Frenzel, P.; Koschke, R.; Breu, Andreas P. J.; Angstmann, K., Extending the Reflexion Method for Consolidating Software Variants into Product Lines Reverse Engineering, 2007. WCRE 2007. 14th Working Conference on. Page(s): 160 – 169. [3] Baxter, I. D. and Churchett, D., Using Clone Detection to Manage a Product Line, ICSR7 Workshop, Industrial Experience with Product Line Approaches, Austin, Texas, USA 2002 [4] Axivion GmbH 12th International Software Product Line Conference 978-0-7695-3303-2/08 $25.00 © 2008 IEEE DOI 10.1109/SPLC.2008.55 351 12th International Software Product Line Conference 978-0-7695-3303-2/08 $25.00 © 2008 IEEE DOI 10.1109/SPLC.2008.55 351

Transcript of [IEEE 2008 12th International Software Product Line Conference (SPLC) - Limerick, Ireland...

Page 1: [IEEE 2008 12th International Software Product Line Conference (SPLC) - Limerick, Ireland (2008.09.8-2008.09.12)] 2008 12th International Software Product Line Conference - Jump-Starting

Jump-Starting Software Product Lines with Clone Detection

Andrew Mark DalgarnoSoftware Acumen Limited, Cambridge, England

[email protected]

Abstract

Clone detection, the systematic identification of identical or near-identical code fragments, is a powerful tool for launching a software product line from an existing code base and for maintaining a software product line once it is in operation.

This session illustrates the concept of clone detection and places it in a product line context.

1. Session Description

A basic, if highly inefficient mechanism for realizing a new software variant is to copy-and-paste, or clone, all or part of the organization’s existing code base and then modify the cloned code to satisfy the requirements of the new variant.

For many organizations, unaware of research and practical experience in the area of software product lines, this is a natural way to realize multiple software variants.

Clone detection [1] is the systematic identification of code clones in a code base. Clone detection can help organizations in the above position to migrate to a product line approach by highlighting identical and near-identical code fragments from which the core, reusable assets of the product line could be built [2], [3].

Furthermore, clone detection has an on-going role to play in maintenance and evolution of the product line. Active clone detection, for example as part of a continuous software integration process, can be used to identify new clones that have been introduced by application teams. These can indicate the need to support additional variability in the platform.

This demonstration introduces clone detection and places it in a product line context. The clone detection capabilities of the Axivion Bauhaus Suite [4] are used for illustration purposes.

2. References

[1] Koschke, R, Survey of Research on Software Clones, in Duplication, Redundancy, and Similarity in Software, eds. Rainer Koschke and Ettore Merlo and Andrew Walenstein, Internationales Begegnungs- und Forschungszentrum fuer Informatik (IBFI), Schloss Dagstuhl, Germany, 2007

[2] Frenzel, P.; Koschke, R.; Breu, Andreas P. J.; Angstmann, K., Extending the Reflexion Method for Consolidating Software Variants into Product LinesReverse Engineering, 2007. WCRE 2007. 14th Working Conference on. Page(s): 160 – 169.

[3] Baxter, I. D. and Churchett, D., Using Clone Detection to Manage a Product Line, ICSR7 Workshop, Industrial Experience with Product Line Approaches, Austin, Texas, USA 2002

[4] Axivion GmbH

12th International Software Product Line Conference

978-0-7695-3303-2/08 $25.00 © 2008 IEEE

DOI 10.1109/SPLC.2008.55

351

12th International Software Product Line Conference

978-0-7695-3303-2/08 $25.00 © 2008 IEEE

DOI 10.1109/SPLC.2008.55

351