Cross Language Clone Analysis Team 2 February 3, 2011.

Slides:



Advertisements
Similar presentations
MS-Word XP Lesson 1.
Advertisements

© Paradigm Publishing, Inc Word 2010 Level 2 Unit 1Formatting and Customizing Documents Chapter 3Automating and Customizing Formatting.
Tutorial 12: Enhancing Excel with Visual Basic for Applications
Technical BI Project Lifecycle
Reverse Engineering © SERG Code Cloning: Detection, Classification, and Refactoring.
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
Visual Web Information Extraction With Lixto Robert Baumgartner Sergio Flesca Georg Gottlob.
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
University of Southern California Center for Systems and Software Engineering 1 © USC-CSSE Unified CodeCounter (UCC) with Differencing Functionality Marilyn.
Tutorial 10 Programming with JavaScript
Quality Assurance CS 615. Mission Statement The Quality Assurance team will provide assurance to stakeholders in CS-615/616 projects that their projects.
Chapter 3 Program translation1 Chapt. 3 Language Translation Syntax and Semantics Translation phases Formal translation models.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
COMPREHENSIVE Excel Tutorial 8 Developing an Excel Application.
Chapter 6– Artifacts of the process
1 Integrated Development Environment Building Your First Project (A Step-By-Step Approach)
A First Program Using C#
Graph-RAT Overview By Daniel McEnnis. 2/32 What is Graph-RAT  Relational Analysis Toolkit  Database abstraction layer  Evaluation platform  Robustly.
Bogor-Java Environment for Eclipse MSE Presentation II Yong Peng.
Self Guided Tour for Query V8.4 Basic Features. 2 This Self Guided Tour is meant as a review only for Query V8.4 Basic Features and not as a substitute.
C++ Code Analysis: an Open Architecture for the Verification of Coding Rules Paolo Tonella ITC-irst, Centro per la Ricerca Scientifica e Tecnologica
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
TVAC Electronic Call Sheet System Team HeatWave Summer 2007.
Mining and Analysis of Control Structure Variant Clones Guo Qiao.
Compiler course 1. Introduction. Outline Scope of the course Disciplines involved in it Abstract view for a compiler Front-end and back-end tasks Modules.
Tutorial 8 Programming with ActionScript 3.0. XP Objectives Review the basics of ActionScript programming Compare ActionScript 2.0 and ActionScript 3.0.
CST320 - Lec 11 Why study compilers? n n Ties lots of things you know together: –Theory (finite automata, grammars) –Data structures –Modularization –Utilization.
Cross Language Clone Analysis Team 2 October 27, 2010.
Chapter 6 Programming Languages (2) Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Cross Language Clone Analysis Team 2 April 7, 2011.
Key Applications Module Lesson 21 — Access Essentials
T Project Review Tetrastone [Iteration 2]
Feasibility Study Cross-language Clone Analysis Team 2.
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
May08-21 Model-Based Software Development Kevin Korslund Daniel De Graaf Cory Kleinheksel Benjamin Miller Client – Rockwell Collins Faculty Advisor – Dr.
Introduction to Enterprise Guide Jennifer Schmidt Rhonda Ellis Cassandra Hall.
Software Testing Łukasz Wojcieszek s2690 Tomasz Wyrzuc s2675.
Introducing Python CS 4320, SPRING Lexical Structure Two aspects of Python syntax may be challenging to Java programmers Indenting ◦Indenting is.
Cross Language Clone Analysis Team 2 October 13, 2010.
BOĞAZİÇİ UNIVERSITY DEPARTMENT OF MANAGEMENT INFORMATION SYSTEMS MATLAB AS A DATA MINING ENVIRONMENT.
XP New Perspectives on Microsoft Office Access 2003 Tutorial 10 1 Microsoft Office Access 2003 Tutorial 10 – Automating Tasks With Macros.
Test Automation For Web-Based Applications Portnov Computer School Presenter: Ellie Skobel.
Accomplishments  Getting larger portion of both Java and C# into CodeDOM to support cross language detections  Source code and statement line number.
Cross Language Clone Analysis Team 2 March 3, 2011.
Scalable Clone Detection and Elimination for Erlang Programs Huiqing Li, Simon Thompson University of Kent Canterbury, UK.
Word 2003 The Word Screen. Word 2003 Screen File Menu –Holds the options for creating a new document, opening a document, saving a document, printing.
Cross Language Clone Analysis Team 2 November 22, 2010.
May08-21 Model-Based Software Development Kevin Korslund Daniel De Graaf Cory Kleinheksel Benjamin Miller Client – Rockwell Collins Faculty Advisor – Dr.
Oracle Data Integrator User Functions, Variables and Advanced Mappings
Cross Language Clone Analysis Team 2 November 10, 2010.
Javascript Static Code Analyzer
Test Automation For Web-Based Applications Portnov Computer School 1 Selenium HP Web Test Tool Training.
Cross Language Clone Analysis Team 2. Team Introduction Task Summary Introduction Scope of Work Description of Related Research Identification of User.
 Software Clones:( Definitions from Wikipedia) ◦ Duplicate code: a sequence of source code that occurs more than once, either within a program or across.
Cross Language Clone Analysis Team 2 February 3, 2011.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
New Project Model UI Primary Author: Mikhail Sennikovsky Major contributors: Mikhail Voronin, Oleg Krasilnikov, Leo Treggiari Intel Corporation September,
XP Tutorial 8 Adding Interactivity with ActionScript.
XP New Perspectives on Microsoft Office Access 2003, Second Edition- Tutorial 6 1 Microsoft Office Access 2003 Tutorial 6 – Creating Custom Forms.
1 Lesson 6 Introducing JavaScript HTML and JavaScript BASICS, 4 th Edition.
Java Programming Fifth Edition Chapter 1 Creating Your First Java Classes.
Jython Environment For Students (JES) Final Presentation Team 3 David Raines Claire Bailey Jason Ergle Josh Sklare July 16,
COMPREHENSIVE Excel Tutorial 12 Expanding Excel with Visual Basic for Applications.
Lexical and Syntax Analysis
CSCI-235 Micro-Computer Applications
Scripts & Functions Scripts and functions are contained in .m-files
Cross Language Clone Analysis Team 2 November 22, 2010
Decisions, repetition, Code Snippets, Comments, and Intellisense
○Yuichi Semura1, Norihiro Yoshida2, Eunjong Choi3, Katsuro Inoue1
SSI Toolbox Status Workbook Overview
Presentation transcript:

Cross Language Clone Analysis Team 2 February 3, 2011

Parsing/CodeDOM Clone Analysis Customer Meeting GUI Implementation Testing Current Status Path Forward 2

 Allen Tucker  Patricia Bradford  Greg Rodgers  Ashley Chafin 3

Parsing and conversion to CodeDOM 4

 Received grammar and included in project.  One parser engine == Three languages

 Significant work remaining to get all statement variations into CodeDOM  Estimate of 35% complete  On going work will not impede analysis work.

The Algorithm 7

 3 Types of Clones (Definition of Similarity): ◦ Type 1: An exact copy without modifications (except for whitespace and comments) ◦ Type 2: A syntactically identical copy  Only variable, type, or function identifiers have been changed ◦ Type 3: A copy with further modifications  Statements have been changed, reordered, added, or removed 8

9 Code Base CodeDOM Conversion Use Gold Parser for conversion Transformation Transform the CodeDOM elements into a sequence of tokens Processed Code Match Detection Run comparison algorithm on transformed code Transformed Code Clones Formatting Clone pair/class locations of the transformed code are mapped to the original code base by line numbers and file location Clone Pairs/Classes Filtering Clones are extracted from the source, visualized and manually analyzed to filter out false positives

 Covert source code to CodeDOM 10

 Transform the CodeDOM syntax to a sequence of tokens 11

 $p$p($p$p&$p){$p$p=$p;$p$p=$p.$p();for(; $p!=$p. $p();++$p){$p<<$p<<$p<<*$p<<$p;++$p;}}  $p$p($p$p&$p){$p$p=$p;$p$p=$p.$p();for(; $p!=$p. $p();++$p){$p $p $p<<$p;++$p;}}  Levenshtein Distance ◦ minimum number of edits needed to transform one string into the other  Insertion  Deletion  substitution 12

13

Customer Meeting on 1/27/11 14

 We met with the customer on 1/27/11.  We discussed the following: ◦ Updated release plan  We moved up the project management user story. ◦ Current user stories (in design/development) - 5  Source Code Load & Translate  Source Code Analyze  Code Clone Highlights  Auto-Navigate  Project Management 15

 We discussed the following (cont.): ◦ Use cases – 8  Load New Source Code Project  Parse Source Code  Translate to CodeDOM  Associate Source Code  Load Project  Save & Delete Project  Name & Rename Project  View & Edit Project Properties 16

 We discussed the following (cont.): ◦ UML Models – 6  We had to transport over some UML models created last semester into our current UML model collection. ◦ Sketches – 4  Created sketched for the project management user story. ◦ Functional Tests – 3  Created functional tests for the project management user story. 17

Sketches / Demo 18

19 UI Development Complete

20 Partially complete

21 UI Development Complete

22 Under Construction

 Application Menu Options ◦ Should be added to Frame Layout design  Property Pages ◦ Project ◦ File Group? ◦ Source Files  Probable Changes in next iteration ◦ XP Process and Single/Multiple Projects 23

White Box and Black Box Testing 24

 White Box Testing: ◦ Unit Testing  Black Box Testing: ◦ Production Rule Testing  Allows us to test the robustness of our engine because we can force rule production errors.  Regression Testing  Automated ◦ Functional Testing 25

 Current Test Count: 33  Added test to cover existing code  All tests are passing… ◦ “Happy Path Tests” ◦ Will begin off-nominals

Where we currently stand 30

31  Source Code Load & Translate - ◦ C++ - ◦ C# - ◦ Java - ◦ Associate -  Source Code Analyze - ◦ Dr. Kraft’s tool - ◦ Type 1 clones – ◦ Type 2 clones – ◦ Type 3 clones – Where we stand…

32  Project Management – ◦ Remove “demo” GUI – 100% ◦ Sketches for visual design – 40% ◦ GUI Rework –  Testing - ◦ Baseline unit tests – 100% ◦ Update unit test for this iteration - Where we stand…

 As of Feb 3, 2011  SLOC: ◦ CS666_Client = 2137 lines ◦ CS666_Core = 2695 lines ◦ CS666_Console = 138 lines ◦ CS666_CppParser = 155 lines ◦ CS666_CsParser = 3265 lines ◦ CS666_JavaParser = 3388 lines ◦ CS666_LanguageSupport = 84 lines ◦ CS666_UnitTests = 944 lines  Total = lines (including unit tests) 33 - Used lcounter.exe to count SLOC

Path Forward for the next iteration 34

35 Schedule

36  Below is a list of the tasks for our next iteration: ◦ Parsing/CodeDOM  C++ parsing  Complete Java conversion to CodeDOM ◦ Clone Analysis  Detecting Type 1 clones ◦ GUI  Project management  Displaying source code  Sketches for visual design Next Iteration

37 ◦ Documentation  User Stories, Use Cases, UML Models, Sketches  Project management  Displaying source code  Displaying CodeDOM  Displaying Type 1 clones detected  Functional Tests  Update schedule ◦ Testing  Unit tests  Execute functional tests Next Iteration