Search-Based Peer Reviewers Recommendation in Modern Code Review 32 nd IEEE International Conference on Software Maintenance and Evolution (ICSME) 2016.

Slides:



Advertisements
Similar presentations
1 An Adaptive GA for Multi Objective Flexible Manufacturing Systems A. Younes, H. Ghenniwa, S. Areibi uoguelph.ca.
Advertisements

Using Parallel Genetic Algorithm in a Predictive Job Scheduling
Genetic Algorithms Contents 1. Basic Concepts 2. Algorithm
1 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial “Genetic Algorithms are good at taking large, potentially huge search spaces and.
Using Natural Language Program Analysis to Locate and understand Action-Oriented Concerns David Shepherd, Zachary P. Fry, Emily Hill, Lori Pollock, and.
1 Preserving Privacy in Collaborative Filtering through Distributed Aggregation of Offline Profiles The 3rd ACM Conference on Recommender Systems, New.
Using a Genetic Algorithm for Approximate String Matching on Genetic Code Carrie Mantsch December 5, 2003.
Evolutionary Computation Application Peter Andras peter.andras/lectures.
Genetic Algorithm What is a genetic algorithm? “Genetic Algorithms are defined as global optimization procedures that use an analogy of genetic evolution.
Coordinative Behavior in Evolutionary Multi-agent System by Genetic Algorithm Chuan-Kang Ting – Page: 1 International Graduate School of Dynamic Intelligent.
Genetic Algorithms: A Tutorial
1 An Overview of Evolutionary Computation 조 성 배 연세대학교 컴퓨터과학과.
A Budget Constrained Scheduling of Workflow Applications on Utility Grids using Genetic Algorithms Jia Yu and Rajkumar Buyya Grid Computing and Distributed.
Dependency Tracking in software systems Presented by: Ashgan Fararooy.
Soft Computing Lecture 18 Foundations of genetic algorithms (GA). Using of GA.
1 PARSEWeb: A Programmer Assistant for Reusing Open Source Code on the Web Suresh Thummalapenta and Tao Xie Department of Computer Science North Carolina.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University A Multi-Objective.
GENETIC ALGORITHMS FOR THE UNSUPERVISED CLASSIFICATION OF SATELLITE IMAGES Ankush Khandelwal( ) Vaibhav Kedia( )
1 “Genetic Algorithms are good at taking large, potentially huge search spaces and navigating them, looking for optimal combinations of things, solutions.
Debug Concern Navigator Masaru Shiozuka(Kyushu Institute of Technology, Japan) Naoyasu Ubayashi(Kyushu University, Japan) Yasutaka Kamei(Kyushu University,
How to apply Genetic Algorithms Successfully Prabhas Chongstitvatana Chulalongkorn University 4 February 2013.
DYNAMIC FACILITY LAYOUT : GENETIC ALGORITHM BASED MODEL
Introduction to Evolutionary Computation Prabhas Chongstitvatana Chulalongkorn University WUNCA, Mahidol, 25 January 2011.
Automated Patch Generation Adapted from Tevfik Bultan’s Lecture.
Chapter 9 Genetic Algorithms.  Based upon biological evolution  Generate successor hypothesis based upon repeated mutations  Acts as a randomized parallel.
Imagine: a tool for generating HTML style sheets with an interactive genetic algorithm based on genes frequencies N. Monmarché, G. Nocent, M. Slimane,
Multi-Abstraction Concern Localization Tien-Duy B. Le, Shaowei Wang, and David Lo School of Information Systems Singapore Management University 1.
Presentation: Genetic clustering of social networks using random walks ELSEVIER Computational Statistics & Data Analysis February 2007 Genetic clustering.
Introduction Metaheuristics: increasingly popular in research and industry mimic natural metaphors to solve complex optimization problems efficient and.

1 Contents 1. Basic Concepts 2. Algorithm 3. Practical considerations Genetic Algorithm (GA)
A Cooperative Coevolutionary Genetic Algorithm for Learning Bayesian Network Structures Arthur Carvalho
Genetic Algorithms. Overview “A genetic algorithm (or GA) is a variant of stochastic beam search in which successor states are generated by combining.
Genetic Algorithms. Solution Search in Problem Space.
Genetic Algorithm(GA)
Genetic Algorithms and Evolutionary Programming A Brief Overview.
 Presented By: Abdul Aziz Ghazi  Roll No:  Presented to: Sir Harris.
Hirophysics.com The Genetic Algorithm vs. Simulated Annealing Charles Barnes PHY 327.
Intelligent Database Systems Lab 國立雲林科技大學 National Yunlin University of Science and Technology 1 Intelligent Exploration for Genetic Algorithms Using Self-Organizing.
1 Genetic Algorithms Contents 1. Basic Concepts 2. Algorithm 3. Practical considerations.
Genetic Algorithm (Knapsack Problem)
Introduction to Genetic Algorithms
Using GA’s to Solve Problems
Naoya Ujihara1, Ali Ouni2, Takashi Ishio1, Katsuro Inoue1
Who is the Expert? Combining Intention and Knowledge of Online Discussants in Collaborative RE Tasks Itzel Morales-Ramirez1,2, Matthieu Vergne1,2, Mirko.
Towards Trustworthy Program Repair
MultiRefactor: Automated Refactoring To Improve Software Quality
CSC 380: Design and Analysis of Algorithms
Ruru Yue1, Na Meng2, Qianxiang Wang1 1Peking University 2Virginia Tech
Artificial Intelligence Project 2 Genetic Algorithms
ISP and Egress Path Selection for Multihomed Networks
An evolutionary approach to solving complex problems
Advanced Artificial Intelligence Evolutionary Search Algorithm
A Generalized Model for Visualizing Library Popularity, Adoption, and Diffusion within a Software Ecosystem Raula Gaikovina Kula, Coen De Roover, Daniel.
Mining and Analyzing Data from Open Source Software Repository
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Boris Todorov1, Raula Gaikovina Kula2, Takashi Ishio2, Katsuro Inoue1
Example: Applying EC to the TSP Problem
Genetic Algorithms: A Tutorial
Jinhong Jung, Woojung Jin, Lee Sael, U Kang, ICDM ‘16
iSRD Spam Review Detection with Imbalanced Data Distributions
Automated Patch Generation
The Vision of Self-Aware Performance Models
Solving the Minimum Labeling Spanning Tree Problem
Md. Tanveer Anwar University of Arkansas
Yupei Xiong Bruce Golden Edward Wasil INFORMS Annual Meeting
Traveling Salesman Problem by Genetic Algorithm
Bug Localization with Combination of Deep Learning and Information Retrieval A. N. Lam et al. International Conference on Program Comprehension 2017.
Genetic Algorithms: A Tutorial
CSC 380: Design and Analysis of Algorithms
Presentation transcript:

Search-Based Peer Reviewers Recommendation in Modern Code Review 32 nd IEEE International Conference on Software Maintenance and Evolution (ICSME) 2016 October 5-7, 2016, Raleigh, North Carolina, USA Ali Ouni Raula Gaikovina Kula Katsuro Inoue

2 Code review is a key part of the software development process Programmer Code reviewer What does that code do?

3 The “modern”, lightweight, tool-supported code review developer Code change gerrit code review reworked code Code repository reviewers

changed files Code change description reviewers developer

Code reviewers assignment problem “Who should review my code?” Identifying appropriate reviewers is a hard task −A code change involve multiple files −A file is edited by multiple developers and reviewer my multiple reviewers Reviewer assignment problem [Patanamon et al., SANER 2015] −delays acceptance : 12 days −sometimes patches are completely forgotten 5

State of the art ReviewBot [Balachandran, ICSE 2013] −based on the modification history of source code using static analysis tools to find experienced reviewers RevFinder [Patanamon et al., SANER 2015] −based on the past reviews of files with similar names and paths to build an expertise model cHRev [Zanjani et al., TSE 2015] −based on a reviewer expertise model −combines a quantification of review comments and their time 6

Problem Statement Single/independent reviewers −A change might require many reviewers Focus only on reviewer expertise −Expertise change over time (increase or decrease) No consideration of the socio-technical aspect −“Peer” code review −human process = personal + social aspects 7 Combinatorial search problem while considering both expertise and social aspects THAT LINE OF CODE GIVES ME GAS

Approach overview: RevRec 8 Reviews history Search-based Reviewers Recommendation (Genetic Algorithm) Search-based Reviewers Recommendation (Genetic Algorithm) Recommended Reviewers Review Request developer Reviewer expertise Reviewer collaboration

Reviewer Expertise (RE) model For each modified file we consider −Comments frequency −Comments recency 9

Reviewer Collaboration (RC) model Social network: each reviewer may have a review collaboration with −developer −other reviewers Graph representation −sub-graph connectivity −weights count on the edges (comments count) Kirill Serg Victor Murano Stan

Genetic algorithm (GA) 11 Population of solutions Evaluation Selection Crossover Mutation Optimal or “good” solution found ? Recommended reviewers Yes No START END Key elements −Solution representation −Change operators −Fitness function −Selection −Creation of the initial population

GA adaptation DmitryKirillAndreyMuranoSergGiulioVictorHenarAlexeyJenkins Solution representation

GA adaptation DmitryKirillAndreyMuranoSergGiulioVictorHenarAlexeyJenkins Parent 1 Parent 2 Crossover k=3 Child 1 Child 2 Point cut Parent Solution representation Crossover operator Mutation operator Mutation m=6

Fitness function 14 Maximize Reviewer Expertise RE Reviewer Collaboration RC Kirill Serg Victor Murano Stan

Empirical Evaluation 15

Three research questions RQ1. How accurate is RevRec in recommending peer reviewers for code changes? RQ2. What are the effects of each of the reviewers expertise and collaboration on the accuracy of RevRec? RQ3. How does GA compared to random search (RS) and other popular search algorithms, SA and PSO? 16

Studied systems SystemPeriod studied#Reviews#Reviewers#Files Android ~ , ,840 OpenStack ~ , ,953 Qt ~ , , Dataset:

Analysis method Accuracy Ranking performance −Mean Reciprocal Rank (MRR) 18 Top-5 recommended reviewers Recommended reviewer #1 #2 #3 #4 #5

RQ1. Accuracy results 19 RevRec correctly recommends peer code reviewers with an average of 55% of precision and 70% of recall

RQ2. Expertise vs. Collaboration 20 The social aspect plays an important role in modern code review

Recall RQ3. Performance of Genetic Algorithm 21 Precision Population-based search algorithms are more suitable than local search for the reviewers recommendation problem

Summary We proposed an automated approach for peer reviewers recommendation −Genetic algorithm −Combine reviewers expertise and social aspect Empirical evaluation on 3 open-source projects using Gerrit code review −Promising accuracy results: 55% of precision and 70% of recall −Social aspect plays an important role in modern code review Future work −Consider industrial and open source projects −Integrate the commit history in the expertise model −Other aspects to improve accuracy 22

23 Thank you for your attention! Questions? Discussions? Suggestions?