Presentation is loading. Please wait.

Presentation is loading. Please wait.

With Jeff Gray and Ira Baxter Robert Tairas Visualization of Clone Detection Results Eclipse Technology Exchange Workshop OOPSLA 2006 Portland, Oregon.

Similar presentations


Presentation on theme: "With Jeff Gray and Ira Baxter Robert Tairas Visualization of Clone Detection Results Eclipse Technology Exchange Workshop OOPSLA 2006 Portland, Oregon."— Presentation transcript:

1 with Jeff Gray and Ira Baxter Robert Tairas Visualization of Clone Detection Results Eclipse Technology Exchange Workshop OOPSLA 2006 Portland, Oregon

2 2 Code Clones A sequence of statements that are duplicated in multiple locations in a program _____ _______ _________ ___ ______ ___ ______ _____ ________ ___ ______ _________ ____ _______ ______ _________ _____ _______ ________ ___ _________ ______ _______ _____ _________ _______ ___ ______ ________ __________ _______ ____ _______ ________ ___ _________ ______ ____ ______ _________ _____ ____ ________ ____ __________ _______ ___ ________ ___ _________ ______ _____ ________ ___ ______ _________ ______ _______ ______ _______ _________ _______ ___ ________ ___ _________ ____ Source Code ________ ___ _________ ______ Cloned Code

3 3 Clones in Source Code Copy-and-paste parts of code from one location to another  The copied code already works correctly  No time to be efficient Research shows that 5-10% of large scale computer programs are clones (Baxter, 98) _____ _______ _________ ___ ______ ___ ______ _____ ________ ___ ______ _________ ____ _______ ______ _________ _____ _______ ________ ___ _________ ______ _______ _____ _________ _______ ___ ______ ________ __________ _______ ____ _______ ________ ___ _________ ______ ____ ______ _________ _____ ____ ________ ____ __________ _______ ___ ________ ___ _________ ______ _____ ________ ___ ______ _________ ______ _______ ______ _______ _________ _______ ___ ________ ___ _________ ____ Source Code

4 4 Supporting Tool: CloneDR Commercial clone detection tool developed by Semantic Designs Finds clones by examining the abstract syntax tree representation of a program Java version freely available at: http://www.semanticdesigns.com/Products/Clone/register-download.html

5 5 Supporting tool: AJDT Visualiser Plugin Part of the AspectJ Development Tools (AJDT) project AJDT Visualiser website: http://www.eclipse.org/ajdt/visualiser An extension point to pass information: Bars: Implement IContentProvider Interface Stripes: Implement IMarkupProvider Interface Visualiser View

6 6 Clone Detection Results === Tree Clone Tuple ==== Tuple with 7 clones, 3 parameters; similarity = 0.9873417721518988 #4#10f577d0#97986c0 Clone 1: 6 lines from Line 43 to 48 File: c:/temp/runtime-EclipseApplication/JHotDraw/src/org/jhotdraw/contrib/WindowMenu.java new AbstractCommand("Cascade", newEditor) { public void execute() { WindowMenu.this.desktop.cascadeFrames(); } public boolean isExecutable() { return super.isExecutable() && (WindowMenu.this.desktop.getAllFrames().length > 0); } -------------------------------------------------------------------------------- #4#10f577d0#979d860 Clone 2: 6 lines from Line 51 to 56 File: c:/temp/runtime-EclipseApplication/JHotDraw/src/org/jhotdraw/contrib/WindowMenu.java new AbstractCommand("Tile", newEditor) { public void execute() { WindowMenu.this.desktop.tileFramesHorizontally(); } public boolean isExecutable() { return super.isExecutable() && (WindowMenu.this.desktop.getAllFrames().length > 0); } -------------------------------------------------------------------------------- #4#10f577d0#9e77f40 Clone 3: 7 lines from Line 52 to 58 File: c:/temp/runtime-EclipseApplication/JHotDraw/src/org/jhotdraw/contrib/CTXWindowMenu.java new AbstractCommand("Cascade", newEditor) { public void execute() { CTXWindowMenu.this.desktop.cascadeFrames(); } public boolean isExecutable() { return super.isExecutable() && (CTXWindowMenu.this.desktop.getAllFrames().length > 0); } …

7 7 Process Detection Info View Detected Clones View Detected Clones View Config Wizard Results Text File Parser CloneDR Eclipse Platform Clone Detection Results Plugin AJDT Visualiser Plugin 1 2 3 3 3 1.Initially, user is assisted by detection process configuration wizard. 2.CloneDR executes and generates a text file containing its results. These results are parsed by the plugin. 3.Detection statistics sent to information view and detected clones sent to both textual and graphical view (step 3).

8 8 Configuration Wizard The detection of clones can run on all files or just on pre- selected files The detection settings for CloneDR are also set in the wizard Wizard generates a configuration file that will be used by CloneDR

9 9 Detection Information Statistical information about the clone detection procedure itself in addition to the configuration settings are displayed in the clone detection results information view.

10 10 List of Clones Clone information:  grouped by similarity  source file  starting line number  ending line number Not new, Simian and SimScan plugins also provide similar reporting

11 11 Visualiser View Bars: Source files Stripes (Kinds): Clones Mouse over:  Length of clone  Other clones in the same clone group

12 12 Visualiser View Additional Options:  Display all bars containing the same clones as in the selected bar  Display all bars containing the selected clone  Open the file containing the selected clone  Open all files containing clones in the same clone group as the selected clone

13 13 The Big Picture

14 14 Case Study Performed on open source applications  JavaGenes, scientific evolutionary software  JHotDraw, a GUI framework Understanding the results  Clone group in the same class (JavaGenes)

15 15 Case Study Understanding the results (continued)  Ubitiquous clones (JHotDraw), methods that: return a new Rectangle object draw two ovals (including setting their colors) setting the undo and redo flags for the drawing view

16 16 Future Work A more structured view of the source code files  For OO languages, classes could be displayed in UML-like form. Demarcation of methods in bars representing source files  Displaying the borders of methods in the view can assist in determining which clones are method-level clones. Tighter integration of CloneDR in Eclipse  Simplify and speed up the detection and visualization process. CloneDR

17 17 Thank you. Questions? Visualization of Clone Detection Results: http://www.cis.uab.edu/tairasr/visual http://www.cis.uab.edu/tairasr/visual Clone Detection Literature: http://www.cis.uab.edu/tairasr/clones/literature http://www.cis.uab.edu/tairasr/clones/literature SoftCom Laboratory: http://www.cis.uab.edu/softcom http://www.cis.uab.edu/softcom


Download ppt "With Jeff Gray and Ira Baxter Robert Tairas Visualization of Clone Detection Results Eclipse Technology Exchange Workshop OOPSLA 2006 Portland, Oregon."

Similar presentations


Ads by Google