Critics: An Interactive Code Review Tool for

Slides:



Advertisements
Similar presentations
Search in Source Code Based on Identifying Popular Fragments Eduard Kuric and Mária Bieliková Faculty of Informatics and Information.
Advertisements

June, 2013 (Suppl. material & Speaker’s notes July/Aug 2013) Ted J. Biggerstaff Software Generators, LLC.
1 Mind Visual Diff An architecture comparison tool December 16 th, 2014 – v0.2.2 Seyvoz Stephane Assystem.
Automated creation of verification models for C-programs Yury Yusupov Saint-Petersburg State Polytechnic University The Second Spring Young Researchers.
Aki Hecht Seminar in Databases (236826) January 2009
Memories of Bug Fixes Sunghun Kim, Kai Pan, and E. James Whitehead Jr., University of California, Santa Cruz Presented By Gleneesha Johnson CMSC 838P,
BUSINESS DRIVEN TECHNOLOGY
Design patterns Observer,Strategi, Composite,Template (Chap 5, 6)
What is Wordpress?  WordPress has a web template processor. Users can re-arrange widgets without editing PHP of HTML code; they can also install and.
Data Structures and Programming.  John Edgar2.
SIEVE—Search Images Effectively through Visual Elimination Ying Liu, Dengsheng Zhang and Guojun Lu Gippsland School of Info Tech,
Microsoft Office System UK Developers Conference Radisson Edwardian, Heathrow 29 th & 30 th June 2005.
Systematic Editing: Generating Program Transformations from an Example Na Meng Miryung Kim Kathryn S. McKinley The University of Texas at Austin.
Robert Tairas (INRIA & EMN) Ferosh Jacob (University of Alabama) Jeff Gray (University of Alabama) International Workshop on Software Clones (IWSC) – May.
Dependency Tracking in software systems Presented by: Ashgan Fararooy.
PLATFORM INDEPENDENT SOFTWARE DEVELOPMENT MONITORING Mária Bieliková, Karol Rástočný, Eduard Kuric, et. al.
Lase: Locating and Applying Systematic Edits by Learning from Examples Na Meng* Miryung Kim* Kathryn S. McKinley* + The University of Texas at Austin*
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University Inoue Laboratory Eunjong Choi 1 Investigating Clone.
Storing Organizational Information - Databases
Mining Billions of AST Nodes to Study Actual and Potential Usage of Java Language Features Robert Dyer The research activities described in this talk were.
Efficiently Mining Source Code with Boa Robert Dyer The research activities described in this talk were supported in part by the US National Science Foundation.
Presented by: Ashgan Fararooy Referenced Papers and Related Work on:
Semi-Automatic patch upgrade kit
A radiologist analyzes an X-ray image, and writes his observations on papers  Image Tagging improves the quality, consistency.  Usefulness of the data.
Duplicate code detection using anti-unification Peter Bulychev Moscow State University Marius Minea Institute eAustria, Timisoara.
Understanding the Behavior of Java Programs Tarja Systa Software Systems Lab. Tampere Univ. Sookmyung Women’s Univ. PSLAB Choi, yoon jeong.
LogTree: A Framework for Generating System Events from Raw Textual Logs Liang Tang and Tao Li School of Computing and Information Sciences Florida International.
Virtual Navigation of Multimedia Maps A versatile map generator and viewer Virtual Navigation of Multimedia Maps A versatile map generator and viewer Robert.
Virtual Navigation of Multimedia Maps A versatile map generator and viewer Virtual Navigation of Multimedia Maps A versatile map generator and viewer Robert.
Andy Nguyen Christopher Piech Jonathan Huang Leonidas Guibas. Stanford University.
Application of Design Patterns to Geometric Decompositions V. Balaji, Thomas L. Clune, Robert W. Numrich and Brice T. Womack.
YANG Roque Gagliano.
Dive Into® Visual Basic 2010 Express
Big data classification using neural network
Interactive Code Review for Systematic Changes
Chapter 0: Introduction
Chapter 2: The Visual Studio .NET Development Environment
CMSC 345 Defensive Programming Practices from Software Engineering 6th Edition by Ian Sommerville.
Gedas Adomavicius Jesse Bockstedt
Safety Mishap Analysis & Retrieval Tool (SMART)
Safety Mishap Analysis & Retrieval Tool (SMART)
Software Documentation
Abstract descriptions of systems whose requirements are being analysed
Updating Malwarebytes Tech Support and software support is important otherwise you shall come across some technical errors. If software is not updated.
Using Python to Interact with the EPA WATERS Web Services (part 2)
Ruru Yue1, Na Meng2, Qianxiang Wang1 1Peking University 2Virginia Tech
Web Data Extraction Based on Partial Tree Alignment
Safety Mishap Analysis & Retrieval Tool (SMART)
Application Solution: 3D Inspection Automation with SA
N. Capp, E. Krome, I. Obeid and J. Picone
: Clone Refactoring Davood Mazinanian Nikolaos Tsantalis Raphael Stein
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
CLINICAL INFORMATION SYSTEM
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
What's New in eCognition 9
Safety Mishap Analysis & Retrieval Tool (SMART)
Dr. Bhavani Thuraisingham The University of Texas at Dallas
Safety Mishap Analysis & Retrieval Tool (SMART)
Authors: Barry Smyth, Mark T. Keane, Padraig Cunningham
Safety Mishap Analysis & Retrieval Tool (SMART)
Safety Mishap Analysis & Retrieval Tool (SMART)
Chapter 8 Prototyping and Rapid Application Development
Chapter 7 Software Testing.
Fine-grained and Accurate Source Code Differencing
What's New in eCognition 9
What's New in eCognition 9
Safety Mishap Analysis & Retrieval Tool (SMART)
UML Design for an Automated Registration System
May News Recap Facebook F8 Conference Automated Ads Video Editing Tools Story Users Increase to 500 Million Messenger Updates Lead Form Templates.
Presentation transcript:

Critics: An Interactive Code Review Tool for Searching and Inspecting Systematic Changes Tianyi Zhang, Myoungkyu Song, Miryung Kim Problem Statement Peer code reviews are widely-used quality assurance activities in software development. When using existing code review tools, it is difficult for developers to inspect systematic changes — similar but not identical edits scattered across different files. Developers may find it difficult to ensure that all locations are updated correctly and that there are no missing updates. int keyDownEvent (int w) { - ExpandItem item = items [index]; switch (w) { case OS.SPACE: Event event = new Event (); - event.item = item; - sendEvent(true, event); + event.item = focusItem; + sendEvent(event); + refreshItem(focusItem); (a) change example int keyReleaseEvent (int wParam) { - ExpandItem item = items [index]; switch (wParam) { case OS.SPACE: Event ev = new Event (); - ev.item = item; - sendEvent(true, ev); + ev.item = focusItem; + sendEvent(ev); + refreshItem(focusItem); (b) a similar but not identical change int ButtonUpEvent (int wParam) { - ExpandItem item = items [index]; if (wParam == HOVER){ Event bEvent = new Event (); - bEvent.item = item; - sendEvent(true, bEvent); + sendEvent(bEvent); + refreshItem(focusItem); (c) an inconsistent change Solution: Critics, An Interactive Code Review Tool “What other code locations changed similar to this change?” “Are there any other locations that are similar to this code but are not updated?” Combine program differencing with pattern-based interactive code search. Allow a reviewer to customize an abstract diff template by selecting a sub region of a diff patch and by generalizing the AST edits and surrounding context. Template matching and search using a Robust Tree Edit Distance algorithm Side-by-Side Compare View new revision old revision Anomalous Changes select examin Systematic Changes peer reviewer edit Abstract Diff Template AST edits Context Extraction Critics Plug-in Features A user can select code in an Eclipse Compare View and provide it as an input. A user can visualize and customize a template in a side-by-side Diff Template View. A user can examine similar changes and locates anomalies in the Matching Result View. A user can see a corresponding patch content using Diff Details View. A user can generalize type, method, and identifier names or exclude certain nodes for Template Refinement. This work was supported by National Science Foundation under grants CCF-1149391, CCF-1117902, SHF-0910818 and a Google Faculty Award.