Cross Language Clone Analysis Team 2 March 3, 2011.
-
Upload
betty-fleming -
Category
Documents
-
view
222 -
download
0
Transcript of Cross Language Clone Analysis Team 2 March 3, 2011.
![Page 1: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/1.jpg)
Presentation 12Cross Language Clone Analysis
Team 2March 3, 2011
![Page 2: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/2.jpg)
• Parsing/CodeDOM• Clone Analysis• GUI Implementation• Documentation• Testing• Current Status• Path Forward
Agenda
2
![Page 3: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/3.jpg)
Allen Tucker Patricia Bradford Greg Rodgers Ashley Chafin
Our Team
3
![Page 4: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/4.jpg)
Parsing & CodeDOMParsing and conversion to CodeDOM
4
![Page 5: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/5.jpg)
CodeDOM Status
Accomplishments
Language Element CodeDOM Java C# C++Source File CodeCompilationUnit Yes YesImports/Using CodeNamespaceImport Yes YesFormal Parameters CodeParameterDeclarationExpression Yes YesMethod Declaration CodeMemberMethod Yes YesInterface Declaration CodeTypeDeclaration Yes YesField Declaration CodeMemberField Yes YesEnumeration Declaration CodeTypeDeclaration Yes YesClass Declaration CodeTypeDeclaration Yes YesStruct Declaration CodeTypeDeclaration Yes YesConstructor Declaration CodeConstructor Yes Yes
Java and C# conversion into CodeDOM to support cross language detections are now equal (see green cells left)
Source code and statement line number associations now in place
5
![Page 6: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/6.jpg)
Clone AnalysisThe Algorithm
6
![Page 7: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/7.jpg)
Breadth First
7
CodeNamespace
CodeTypeDeclaration
CodeMemberMethod◦ CodeParameterDeclarationExpression
![Page 8: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/8.jpg)
Deep Dive
8
Tokenize Analyze
Expressions 9/26 0/26
Statements 9/15 0/26
Other 7/24 0/24
Others Include:CodeMemberFieldCodeMemberMethodCodeMemberPropertyCodeNamespaceCodeTypeDeclarationCodeTypeMemberCodeTypeParameter
Others Include:CodeCatchClauseCodeMemberEventCodeCommentCodeDirectiveCodeEntryPointMethodCodeTypeDelegate
![Page 9: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/9.jpg)
Analysis Changes
9
Namespace
Compile Unit
Namespace
Type Declaration
Member Method
Statement
Expression Expression
Type Declaration
Member Method
Statement
Expression Expression
Tokenize()
Compare() Compare()
$T$P(){$T$P}
$T$P(){$T$P}
$T$P(){$T$P}
$T$P(){$T$P}
$T$P(){$T$P}
$T$P(){$T$P}$T$P(){$T$P}
$T$P(){$T$P}
$T$P(){$T$P}
$T$P(){$T$P}
$T$P(){$T$P}
$T$P(){$T$P} $T$P(){$T$P}
Compare()
Compare()
Compare()
![Page 10: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/10.jpg)
10
Next Iteration At least 75% Complete with Deep Dive
Tokenization Analysis
Add properties settings to the CloneDetection Interface
Setting lower bound on token length Setting bounds on confidence levels
![Page 11: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/11.jpg)
GUI ImplementationSketches / Demo
11
![Page 12: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/12.jpg)
Source File Properties
12
![Page 13: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/13.jpg)
Namespace Properties
13
![Page 14: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/14.jpg)
File Type Properties
14
![Page 15: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/15.jpg)
File Group Properties
15
![Page 16: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/16.jpg)
Density Graph
16
![Page 17: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/17.jpg)
Clone View
17
![Page 18: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/18.jpg)
DocumentationDocumentation Status
18
![Page 19: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/19.jpg)
Documentation History
19
![Page 20: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/20.jpg)
TestingWhite Box and Black Box Testing
20
![Page 21: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/21.jpg)
White Box Testing: ◦ Unit Testing
Black Box Testing:◦ Production Rule Testing◦ Stress Testing◦ Functional Testing
Testing Our Project
21
![Page 22: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/22.jpg)
Console Project…bypasses GUI◦ Parses source and builds CodeDOM◦ No analysis
◦ Targets JDK1.6 Microsoft Visual Studio 9.0
Stress Testing
22
![Page 23: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/23.jpg)
Stress Testing (Good)
23
![Page 24: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/24.jpg)
Stress Testing (Not So Good)
24
![Page 25: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/25.jpg)
Current Test Count: 33
Added test code to cover◦ Clone analysis◦ Some stress
Project Unit Test Results
![Page 26: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/26.jpg)
Project Metrics (Release 0.01)
![Page 27: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/27.jpg)
Project Metrics (Release 0.02)
![Page 28: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/28.jpg)
Project Metrics History
28
![Page 30: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/30.jpg)
Bug Tracking History
30
![Page 31: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/31.jpg)
Current StatusWhere we currently stand
31
![Page 32: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/32.jpg)
32
Below is the status of the tasks for this past iteration:◦ Parsing/CodeDOM
C++ parsing – 15% C# and Java are both equal for CodeDOM
◦ Clone Analysis Tokenization & analysis – 75%
◦ GUI Project management – 100% Displaying source code – 100% Sketches for visual design – 100%
Where we stand….
![Page 33: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/33.jpg)
33
◦ Documentation – 96% User Stories, Use Cases, UML Models, Sketches Functional Tests Update schedule
◦ Testing Unit tests – 90% Execute functional tests – 100%
Where we stand….
![Page 34: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/34.jpg)
As of March 3, 2011 SLOC:
◦ CS666_Client = 5190 lines◦ CS666_Core = 2988 lines◦ CS666_Console = 287 lines◦ CS666_CppParser = 484 lines◦ CS666_CsParser = 3459 lines◦ CS666_JavaParser = 3502 lines◦ CS666_LanguageSupport = 84 lines◦ CS666_UnitTests = 944 lines
Total = 16938 lines (including unit tests)
SLOC For Our Project
34
- Used lcounter.exe to count SLOC
![Page 35: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/35.jpg)
SLOC History
35
- Used lcounter.exe to count SLOC
![Page 36: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/36.jpg)
SLOC History
36
- Used lcounter.exe to count SLOC
![Page 37: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/37.jpg)
Path ForwardPath Forward for the next iteration
37
![Page 38: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/38.jpg)
38
Schedule
![Page 39: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/39.jpg)
39
Below is a list of the tasks for our next iteration:◦ Parsing/CodeDOM
C++ parsing Java, C#, C++ conversion to CodeDOM
◦ Clone Analysis Add property settings to clone analysis
◦ GUI Project management Clone analysis Sketches for visual design
Next Iteration
![Page 40: Cross Language Clone Analysis Team 2 March 3, 2011.](https://reader035.fdocuments.net/reader035/viewer/2022062807/5697bffd1a28abf838cc1d99/html5/thumbnails/40.jpg)
40
◦ Documentation User Stories, Use Cases, UML Models, Sketches Functional Tests Update schedule
◦ Testing Unit tests Execute functional tests Record bugs/issues found
Next Iteration