Cross Language Clone Analysis Team 2 April 7, 2011
Parsing/CodeDOM Clone Analysis GUI Implementation Testing Current Status Path Forward 2
Allen Tucker Patricia Bradford Greg Rodgers Ashley Chafin 3
Parsing and conversion to CodeDOM 4
Accomplishments Java and C# conversion into CodeDOM to support cross language detections are equal (see teal cells left) Local variable statement in place for Java. Not much progress this iteration. 5
I see ewe 6
7 Code Base CodeDOM Conversion Use Gold Parser for conversion Transformation Transform the CodeDOM elements into a sequence of tokens Processed Code Clone Analysis Run comparison algorithm on transformed code Transformed Code Clone Formatting Clone pair/class locations of the transformed code are mapped to the original code base by line numbers and file location Clone Match 0…*
8 Current Status 100 % complete with Tokenization Analysis Formatting Making progress on Java into CodeDOM C# into CodeDOM
9 Additions Clone Match Clone Type Type 1 - An exact copy Type 2 - A syntactically identical copy Type 3 - A copy with further modifications Fixed a handful (<10) bugs
How do you build the model? 10
11 Documentation TokenizeAnalyze Expressions25/25 Statements14/14 Other7/7 Total46/46 How are we using CodeDOM as a common code representation?
12 Documentation CodeDOM Expressions CodeArgumentReferenceExpression CodeDefaultValueExpression CodeBinaryOperatorExpression … 25 Java Expressions PreIncrementExpression MultiplicativeExpression ShiftExpression … 80+ C# Expressions PreIncrementExpression MultiplicativeExpression ShiftExpression … 80+
Sketches Old/New 13
14
15
16
17
18 Need to add legend
19 Need to implement grouping by other types. Language/File group
20
21
Demo 22
White Box and Black Box Testing 23
24 98/101 Unit Tests Currently Pass Failed based on recent change to tokenization technique for Labels to accommodate java and c# codeDOM conversion.
25
26
Path Forward for the next iteration 27
28 Below is a list of the tasks for our next iteration: ◦ Parsing/CodeDOM Continue Java, C# conversion to CodeDOM ◦ Clone Analysis Look at Performance Improvements ◦ GUI Bug fixes /Enhancements Project Properties Page Preference Page Performance Checks/Enhancements Next Iteration
29 ◦ Documentation User Stories, Use Cases, UML Models, Sketches Functional Tests Update schedule Language Plugin Development ◦ Testing Unit tests Execute functional tests Record bugs/issues found Next Iteration