Understanding Software Clones: Types, Causes, and Strategies for Management
This presentation by Adarsh Khare explores the phenomenon of software clones, focusing on their types, root causes, and management strategies. It categorizes clones into three types: exact copies, syntactically identical copies, and modified copies. The presentation discusses the pressures that lead to code duplication and suggests strategies for clone avoidance and removal. It highlights recommended tools, including Clone Dr, that assist in managing clones effectively. The importance of integrating these tools into the development phase is emphasized with relevant references supporting the discussion.
Understanding Software Clones: Types, Causes, and Strategies for Management
E N D
Presentation Transcript
Software Clones Individual Research Presentation Presented By: AdarshKhare
Outline • Introduction • Types of Clones • Root Causes for Code Clones • Strategies • Tools Suggested • Relating with 577a and 577b 1
Types of Clones • Type1 • Exact copy without modifications • Type 2 • Syntactically Identical Copy ( only variable, type, or function identifiers have been changes) • Type 3 • A copy with further modifications ( statements have been changes, added, or removed) 2
Root Causes • Programmers are forced to duplicate the code • Programmers reuse the copied text as a template and then customize • Time Pressure • Organizational Issues ( e.g distributed development organizations) 3
Strategies • Clone Avoidance • Better to avoid them at the beginning. • Clone Removal • Can be achieved using commercial tools • Clone Detection 4
Tool Suggested ( Clone Removal) • Let programmers copy and adjust, and then let tools factor out the • differences with appropriate mechanisms. –Ira Baxter, 2002 • Clone Dr 5
Features of the Tool • Compares files exhaustively across whole systems • Available for many different languages like PHP 4.0 & 5.0, C,C++, C# • Supports analysis of thousands of files/millions of lines of code. 6
Relating with 577a and 577b • 577a • Start gathering knowledge about the tools. • 577b • Use the tools during “Development Phase”. 7
References • Clone Dr • http://www.semdesigns.com/Products/Clone/ • Survey Research and cloning • https://www.google.com/search?q=software+cloning&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a • http://drops.dagstuhl.de/volltexte/2007/962/pdf/06301.KoschkeRainer.962.pdf • http://www.tzi.de/st/papers/koschke-fosm-08.pdf 8