Optimal Recommendations for Source Code Reviews

Total Page:16

File Type:pdf, Size:1020Kb

Optimal Recommendations for Source Code Reviews Masaryk University Faculty of Informatics Optimal Recommendations for Source Code Reviews Master’s Thesis Jakub Lipčák Brno, Spring 2017 Masaryk University Faculty of Informatics Optimal Recommendations for Source Code Reviews Master’s Thesis Jakub Lipčák Brno, Spring 2017 Declaration Hereby I declare that this paper is my original authorial work, which I have worked out on my own. All sources, references, and literature used or excerpted during elaboration of this work are properly cited and listed in complete reference to the due source. Jakub Lipčák Advisor: Bruno Rossi, PhD i Acknowledgement I would like to thank my advisor, Bruno Rossi, PhD., for all his help, support and guidance, which was very valuable and professional. I would also like to express my gratitude to my family for support- ing me in my studies. iii Abstract Software code reviews are an important part of the development process, leading to better software quality and reduced overall costs. However, finding appropriate code reviewers is a complex and time- consuming task. In this thesis we analyze several Code Reviewer Recom- mendation Algorithms designed to find appropriate code reviewers for opened pull requests. We re-implemented two of the major approaches (ReviewBot and RevFinder) and we proposed several modifications which improved the Top-5 accuracy of the RevFinder algorithm by 12.90% on average. Furthermore, we propose a novel code reviewer recommendation approach based on the Naive Bayes technique that takes into consideration the most important features of previously reviewed pull requests. Experiments using 35 239 pull requests from three open source projects show that our approach provides 88.59% accuracy on average considering a top 10 recommendation, which is by 12.35% better than the average accuracy provided by the RevFinder algorithm. Finally, we analyze the reproducibility problems of existing research in this area observed during the work on this thesis and we propose some recommendations for future research. iv Keywords Source Code Review, Code Reviewer Recommendation System, Pull Request, Distributed Software Development, Machine Learning, Gerrit v Contents 1 Introduction 1 1.1 Problem Statement ......................2 1.2 Goals .............................2 1.3 Thesis Structure ........................3 2 Code Reviews 5 2.1 What Do We Know about Code Reviews? ..........5 2.1.1 Code Review Process . .6 2.1.2 Objectives of Code Reviews . .7 2.1.3 Factors Influencing Code Reviews . .8 2.2 Code Review Tools ......................9 2.2.1 Gerrit . .9 2.2.2 GitHub . 10 2.2.3 Crucible . 11 2.2.4 Collaborator . 11 3 Code Reviewer Recommendation Algorithms 13 3.1 Definition ........................... 13 3.2 Evaluation Metrics ...................... 13 3.2.1 Top-k Accuracy . 14 3.2.2 Mean Reciprocal Rank . 14 3.2.3 Metrics from the Information Retrieval Domain 15 3.3 Existing Recommendation Algorithms ............ 15 3.3.1 Traditional Approaches . 16 3.3.2 Cross-project and Technology Experience . 18 3.3.3 Machine Learning . 19 3.3.4 Social Relations . 21 3.3.5 Features Summary . 22 3.4 Proposed Recommendation Algorithm ............ 22 3.4.1 Naive Bayes Classification . 23 3.4.2 Feature Extraction . 25 3.4.3 Reviewers Recommendation . 26 4 Design and Implementation 29 4.1 Implemented Algorithms ................... 29 4.1.1 ReviewBot Implementation . 29 vii 4.1.2 RevFinder Implementation . 30 4.1.3 Naive Bayes Reviewer Recommendation . 31 4.2 Implementation Details .................... 32 4.2.1 Design and Technologies . 32 4.2.2 Communication Interface . 32 5 Empirical Evaluation 35 5.1 Datasets ............................ 35 5.1.1 Description of Data Collection . 35 5.1.2 Structure of Data Collection . 36 5.2 Experimental Setup ...................... 37 5.3 Results ............................ 37 5.3.1 Baseline Approach Accuracy . 38 5.3.2 Proposed Approach Accuracy . 38 5.3.3 Comparison of Solutions . 39 5.3.4 Discussion . 40 5.3.5 Threats to Validity . 42 6 Reproducibility of Reviewer Recommendation Algorithms 45 6.1 Reproducible Research in Software Engineering ....... 46 6.2 Reproducibility Problems ................... 46 6.2.1 Source Code . 46 6.2.2 Data Sets . 47 6.2.3 Metrics . 47 6.2.4 Reproducibility Summary . 48 7 Conclusion 49 Bibliography 51 A Google Chrome Extension 55 B GitHub Repository 57 C Data Model and Datasets. 59 D Configuration and Deployment 61 D.1 Configuration ......................... 61 D.2 Deployment .......................... 62 viii 1 Introduction As distributed collaboration in the development of open source soft- ware projects gains more and more popularity, there is a need for tools able to support this kind of development process [1]. The pull-based model has been widely adopted across several open source projects in recent years as a method allowing external contributors to propose changes into the code base of the projects. Software code reviews are a crucial part of this model. They are considered as one of the most effective ways of improving the overall quality of the source code [2]. The outcomes of code reviews are highly dependent on the code re- viewers and it has turned out that finding appropriate code reviewers for pull requests in the distributed environments is often a non-trivial problem [3]. It has been found beneficial to have some effective tools which are able to automate the process of recommendation of software code reviewers for newly created pull requests [1]. It is a necessary step before reviewing the code changes and its automation can speed up the whole process of integrating new functionality into the main de- velopment branch as well as increase overall software quality [4]. A lot of research has been done in this area already and there are sev- eral existing approaches dealing with this task [4, 5, 6]. However, it is strongly believed that there are still areas worthy of further research in order to increase the efficiency and relevance of the results provided by the actual Code Reviewer Recommendation Algorithms [1]. Software code reviews are expensive because the good under- standing of large code changes by code reviewers is a time-consuming process and finding appropriate code reviewers can also be very labor- intensive for developers. The outcomes of Code Reviewer Recommenda- tion Algorithms should reduce the costs of this process. The automated recommendation of code reviewers would reduce the efforts neces- sary to find appropriate code reviewers and relevant results have the potential to reduce time spent by code reviewers on the understanding of large code changes [1]. 1 1. Introduction 1.1 Problem Statement Patanamon et al. [4] examined comments from more than 1 400 repre- sentative review samples of four open source projects. They discovered that 4% - 30% of reviews have code reviewer assignment problem. It takes approximately 12 days longer to approve a code change with a code reviewer assignment problem. This fact decreases the effectiveness of the Pull-based model. Code reviewers could be assigned to the pull requests immediately after their creation in an ideal scenario, but it is not a common case at the moment. The Pull-based model has a potential to be more effective and enhancements in this area are the main motivation for this thesis. 1.2 Goals The problem stated in Section 1.1 can be solved by better automated recommendation tools. We have identified two goals worth research- ing in this area. The main goal of this thesis is to evaluate several methods dealing with the recommendation of the most appropriate code reviewers for software code changes. It should provide new approaches and ideas capable of outperforming some of the existing algorithms. The imple- mented prototype will be able to recommend relevant software code reviewers and it will be evaluated on a set of projects. Furthermore, the implemented prototype should be usable in a real environment. The second goal of this thesis is related to reproducibility and replicability problems of past research about Code Reviewer Recom- mendation Algorithms. This thesis should report about such problems in existing research in this area and should provide some recommen- dations to avoid these problems in the future. It should also follow the reproducible research guidelines. 2 1. Introduction 1.3 Thesis Structure This thesis is divided into the following chapters: Chapter 2: Code Reviews gives an overview about the code review process, its objectives, factors influencing this process and also about existing code review tools. Chapter 3: Code Reviewer Recommendation Algorithms describes the most relevant algorithms in this area and common metrics for their evaluation. It also describes our own proposal based on the Naive Bayes technique, as we believed that we can achieve better results than some other algorithms using this approach. Chapter 4: Design and Implementation provides an overview of the implementation describing implemented algorithms and technologies used for the implementation. Chapter 5: Empirical Evaluation presents the results and discussion about our empirical evaluation. It also describes datasets used for testing the algorithms and provides answers to the research questions. Chapter 6: Reproducibility of Reviewer Recommendation Algorithms deals with reproducibility problems in Software Engineering and es- pecially in the area of Code Reviewer Recommendation Algorithms. Chapter 7: Conclusion summarizes the thesis, its contribution, fulfill- ment of the goals and ideas for the future work. 3 2 Code Reviews This chapter describes the code review process, factors influencing this process and tools for its support. The code review process was formalized in 1976 by M. E. Fagan. It was a highly structured process based on line-by-line group reviews in the form of Inspections [7]. The code review practices have rapidly changed in recent years [8]. Modern code review process has become informal (in contrast to Fagan’s definition), tool-based [9], more light- weight, continuous and asynchronous [10]. 2.1 What Do We Know about Code Reviews? Code reviews are understood as a process executed in order to improve the overall quality of software.
Recommended publications
  • The'as Code'activities: Development Anti-Patterns for Infrastructure As Code
    Empirical Software Engineering manuscript No. (will be inserted by the editor) The `as Code' Activities: Development Anti-patterns for Infrastructure as Code Akond Rahman · Effat Farhana · Laurie Williams Pre-print accepted at the Empirical Software Engineering Journal Abstract Context: The `as code' suffix in infrastructure as code (IaC) refers to applying software engineering activities, such as version control, to main- tain IaC scripts. Without the application of these activities, defects that can have serious consequences may be introduced in IaC scripts. A systematic investigation of the development anti-patterns for IaC scripts can guide prac- titioners in identifying activities to avoid defects in IaC scripts. Development anti-patterns are recurring development activities that relate with defective IaC scripts. Goal: The goal of this paper is to help practitioners improve the quality of infrastructure as code (IaC) scripts by identifying development ac- tivities that relate with defective IaC scripts. Methodology: We identify devel- opment anti-patterns by adopting a mixed-methods approach, where we apply quantitative analysis with 2,138 open source IaC scripts and conduct a sur- vey with 51 practitioners. Findings: We observe five development activities to be related with defective IaC scripts from our quantitative analysis. We iden- tify five development anti-patterns namely, `boss is not around', `many cooks spoil', `minors are spoiler', `silos', and `unfocused contribution'. Conclusion: Our identified development anti-patterns suggest
    [Show full text]
  • Whodo: Automating Reviewer Suggestions at Scale
    1 WhoDo: Automating reviewer suggestions at scale 59 2 60 3 61 4 Sumit Asthana B.Ashok Chetan Bansal 62 5 Microsoft Research India Microsoft Research India Microsoft Research India 63 6 [email protected] [email protected] [email protected] 64 7 65 8 Ranjita Bhagwan Christian Bird Rahul Kumar 66 9 Microsoft Research India Microsoft Research Redmond Microsoft Research India 67 10 [email protected] [email protected] [email protected] 68 11 69 12 Chandra Maddila Sonu Mehta 70 13 Microsoft Research India Microsoft Research India 71 14 [email protected] [email protected] 72 15 73 16 ABSTRACT ACM Reference Format: 74 17 Today’s software development is distributed and involves contin- Sumit Asthana, B.Ashok, Chetan Bansal, Ranjita Bhagwan, Christian Bird, 75 18 uous changes for new features and yet, their development cycle Rahul Kumar, Chandra Maddila, and Sonu Mehta. 2019. WhoDo: Automat- 76 ing reviewer suggestions at scale. In Proceedings of The 27th ACM Joint 19 has to be fast and agile. An important component of enabling this 77 20 European Software Engineering Conference and Symposium on the Founda- 78 agility is selecting the right reviewers for every code-change - the tions of Software Engineering (ESEC/FSE 2019). ACM, New York, NY, USA, 21 79 smallest unit of the development cycle. Modern tool-based code 9 pages. https://doi.org/10.1145/nnnnnnn.nnnnnnn 22 review is proven to be an effective way to achieve appropriate code 80 23 review of software changes. However, the selection of reviewers 81 24 in these code review systems is at best manual.
    [Show full text]
  • Software Reviews
    Software Reviews Software Engineering II WS 2020/21 Enterprise Platform and Integration Concepts Image by Chris Isherwood from flickr: https://www.flickr.com/photos/isherwoodchris/6807654905/ (CC BY-SA 2.0) Review Meetings a software product is [examined by] project personnel, “ managers, users, customers, user representatives, or other interested parties for comment or approval —IEEE1028 ” Principles ■ Generate comments on software ■ Several sets of eyes check ■ Emphasis on people over tools Code Reviews — Software Engineering II 2 Software Reviews Motivation ■ Improve code ■ Discuss alternative solutions ■ Transfer knowledge ■ Find defects Code Reviews — Software Engineering II Image by Glen Lipka: http://commadot.com/wtf-per-minute/ 3 Involved Roles Manager ■ Assessment is an important task for manager ■ Possible lack of deep technical understanding ■ Assessment of product vs. assessment of person ■ Outsider in review process ■ Support with resources (time, staff, rooms, …) Developer ■ Should not justify but only explain their results ■ No boss should take part at review Code Reviews — Software Engineering II 4 Review Team Team lead ■ Responsible for quality of review & moderation ■ Technical, personal and administrative competence Reviewer ■ Study the material before first meeting ■ Don’t try to achieve personal targets! ■ Give positive and negative comments on review artifacts Recorder ■ Any reviewer, can rotate even in review meeting ■ Protocol as basis for final review document Code Reviews — Software Engineering II 5 Tasks of
    [Show full text]
  • Arxiv:2005.09217V1 [Cs.SE] 19 May 2020 University of Tennessee Knoxville, Tennessee, USA E-Mail: [email protected] 2 Andrey Krutauz Et Al
    Noname manuscript No. (will be inserted by the editor) Do Code Review Measures Explain the Incidence of Post-Release Defects? Case Study Replications and Bayesian Networks Andrey Krutauz · Tapajit Dey · Peter C. Rigby · Audris Mockus Received: date / Accepted: date Abstract Aim: In contrast to studies of defects found during code review, we aim to clarify whether code reviews measures can explain the prevalence of post-release defects. Method: We replicate McIntosh et al.'s [51] study that uses additive re- gression to model the relationship between defects and code reviews. To in- crease external validity, we apply the same methodology on a new software project. We discuss our findings with the first author of the original study, McIntosh. We then investigate how to reduce the impact of correlated pre- dictors in the variable selection process and how to increase understanding of the inter-relationships among the predictors by employing Bayesian Network (BN) models. Context: As in the original study, we use the same measures authors ob- tained for Qt project in the original study. We mine data from version control and issue tracker of Google Chrome and operationalize measures that are close Andrey Krutauz Concordia University Montreal, QC, Canada E-mail: [email protected] Tapajit Dey University of Tennessee Knoxville, Tennessee, USA E-mail: [email protected] Peter C. Rigby Concordia University Montreal, QC, Canada E-mail: [email protected] Audris Mockus arXiv:2005.09217v1 [cs.SE] 19 May 2020 University of Tennessee Knoxville, Tennessee, USA E-mail: [email protected] 2 Andrey Krutauz et al.
    [Show full text]
  • Software Project Management (November 2018)
    TYBSC.IT (SEM5) – SOFTWARE PROJECT MANAGEMENT (NOVEMBER 2018) Q.P. Code: 57826 Q1 a) Briefly explain the different phases of project management life cycle. (5) The project life cycle describes the various logical phases in the life of a project from its beginning to its end in order to deliver the final product of the project. The idea of breaking the project into phases is to ensure that the project becomes manageable, activities are arranged in a logical sequence, and risk is reduced. (1) The Project Goal The first step of any project, irrespective of its size and complexity, is defining its overall goal. Every project undertaken aims to provide business value to the organization hence the goal of the project should focus on doing the same. Now, the goal of the project needs to be defined initially as it provides the project team with a clear focus and guides it through each phase of the project. The project is hazy and seems risky at the start, but as the project goals get defined and starts making progress, things start to look brighter and the probability of success increase. (2) The Project Plan Also known as baseline plan. The project plan is developed to provide answers to various project related queries such as: What the project aims to achieve?-The project deliverables How does the project team aim to achieve it?-The tasks and activities Who all will be involved in the project?-The stakeholders and the project team How much will it cost?-The project budget How much time will it take?-The project schedule What are the risks involved?-Risk identification (3) Project Plan Execution The project plan thus developed needs to now be executed.
    [Show full text]
  • The Impact of Code Review Coverage and Code Review Participation on Software Quality
    The Impact of Code Review Coverage and Code Review Participation on Software Quality A Case Study of the Qt, VTK, and ITK Projects Shane McIntosh1, Yasutaka Kamei2, Bram Adams3, and Ahmed E. Hassan1 1Queen’s University, Canada 2Kyushu University, Japan 3Polytechnique Montréal, Canada 1{mcintosh, ahmed}@cs.queensu.ca [email protected] [email protected] ABSTRACT 1. INTRODUCTION Software code review, i.e., the practice of having third-party Software code reviews are a well-documented best practice team members critique changes to a software system, is a for software projects. In Fagan's seminal work, formal design well-established best practice in both open source and pro- and code inspections with in-person meetings were found prietary software domains. Prior work has shown that the to reduce the number of errors detected during the testing formal code inspections of the past tend to improve the qual- phase in small development teams [8]. Rigby and Bird find ity of software delivered by students and small teams. How- that the modern code review processes that are adopted in a ever, the formal code inspection process mandates strict re- variety of reviewing environments (e.g., mailing lists or the view criteria (e.g., in-person meetings and reviewer check- Gerrit web application1) tend to converge on a lightweight lists) to ensure a base level of review quality, while the mod- variant of the formal code inspections of the past, where ern, lightweight code reviewing process does not. Although the focus has shifted from defect-hunting to group problem- recent work explores the modern code review process qual- solving [34].
    [Show full text]
  • A Community of Practice Around Peer Review for Long-Term Research Software Sustainability
    A Community of Practice Around Peer Review for Long-Term Research Software Sustainability Karthik Ram Noam Ross University of California, Berkeley, EcoHealth Alliance, The rOpenSci Project The rOpenSci Project Carl Boettiger Maelle€ Salmon University of California, Berkeley, The rOpenSci Project The rOpenSci Project Stefanie Butland Scott Chamberlain The rOpenSci Project University of California, Berkeley, The rOpenSci Project Abstract—Scientific open source projects are responsible for enabling many of the major advances in modern science including recent breakthroughs such as the Laser Interferometer Gravitational-Wave Observatory project recognized in the 2017 Nobel Prize for physics. However, much of this software ecosystem is developed ad hoc with no regard for sustainable software development practices. This problem is further compounded by the fact that researchers who develop software have little in the way of resources or academic recognition for their efforts. The rOpenSci Project, founded in 2011 with the explicit mission of developing software to support reproducible science, has in recent years undertaken an effort to improve the long tail of scientific software. In this paper, we describe our software peer-review system, which brings together the best of traditional academic review with new ideas from industry code review. & MODERN SCIENCE RELIES very heavily on open source software to acquire, manipulate, and ana- Digital Object Identifier 10.1109/MCSE.2018.2882753 lyze large volumes of data. One would be hard Date of publication 30 November 2018; date of current pressed to find areas of science today that do not rely on software to generate new discoveries. version 8 March 2019. March/April 2019 Published by the IEEE Computer Society 1521-9615 ß 2018 IEEE 59 Accelerating Scientific Discovery With Reusable Software Such software, often referred to as research soft- analyze their data.
    [Show full text]
  • Contemporary Peer Code Review Practices and Associated Benefits
    CONTEMPORARY PEER CODE REVIEW PRACTICES AND ASSOCIATED BENEFITS by AMIANGSHU BOSU DR. JEFFREY C. CARVER, COMMITTEE CHAIR DR. JEFF GRAY DR. MUNAWAR HAFIZ DR. RANDY SMITH DR. MARCUS BROWN A DISSERTATION Submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy in the Department of Computer Science in the Graduate School of The University of Alabama TUSCALOOSA, ALABAMA 2015 Copyright Amiangshu Bosu 2015 ALL RIGHTS RESERVED ABSTRACT Prior research indicates that peer code review is an effective method for reducing the num- ber of defects and improving the quality of code. Besides maintaining the integrity of the code, code review spreads knowledge, expertise, and development techniques among the review par- ticipants. In the recent years, many Open Source Software (OSS) communities and commercial organizations have adopted ’contemporary’ or ’modern’ code review, an informal, regular, tool- based process. Because both OSS and commercial developers spend a significant amount of effort performing code reviews, the primary goal of this dissertation is to better understand contemporary code review practices, its benefits, and factors that influence its outcomes. To address this goal, this dissertation describes empirical studies using surveys, software repository mining, and social network analysis. The first study is a survey of OSS developers to understand their collaboration and the process by which they form impressions of each other. The results suggest that coding-related factors influence impression formation the most among OSS developers. Therefore, the types of interactions where participants can judge a peers code or creativity (e.g., code review) should be crucial for peer impression formation.
    [Show full text]
  • Revisiting Linus's
    Int. J. Human-Computer Studies 77 (2015) 52–65 Contents lists available at ScienceDirect Int. J. Human-Computer Studies journal homepage: www.elsevier.com/locate/ijhcs Revisiting Linus’s law: Benefits and challenges of open source software peer review Jing Wang n, Patrick C. Shih, John M. Carroll College of Information Sciences and Technology, The Pennsylvania State University, University Park, PA 16802, United States article info abstract Article history: Open source projects leverage a large number of people to review products and improve code quality. Received 14 January 2014 Differences among participants are inevitable and important to this collaborative review process— Received in revised form participants with different expertise, experience, resources, and values approach the problems 18 December 2014 differently, increasing the likelihood of finding more bugs and fixing the particularly difficult ones. To Accepted 18 January 2015 understand the impacts of member differences on the open source software peer review process, we Communicated by Francoise Detienne Available online 28 January 2015 examined bug reports of Mozilla Firefox. These analyses show that the various types of member differences increase workload as well as frustration and conflicts. However, they facilitate situated Keywords: learning, problem characterization, design review, and boundary spanning. We discuss implications for Online collaboration work performance and community engagement, and suggest several ways to leverage member Software peer review differences in the open source software peer review process. Open source & 2015 Elsevier Ltd. All rights reserved. 1. Introduction provide opportunities for engaging an even larger audience in OSS development, and these potential contributors are likely to differ “Given enough eyeballs, all bugs are shallow” (Raymond, 2001).
    [Show full text]
  • Open Source Peer Review – Lessons and Recommendations for Closed Source
    Open Source Peer Review – Lessons and Recommendations for Closed Source Peter C. Rigby, Software Engineering Group, University of Victoria, Canada Brendan Cleary, CHISEL Group, University of Victoria, Canada Frederic Painchaud, DRDC Valcartier, Department of National Defence, Canada Margaret-Anne Storey, CHISEL Group, University of Victoria, Canada Daniel M. German, Software Engineering Group, University of Victoria, Canada Use asynchronous, frequent, incremental peer reviews conducted by invested experts sup- ported by lightweight tools and metrics Although the effectiveness of software inspec- tion (formal peer review) has a long and mostly supportive history, the thought of reviewing a large, unfamiliar software artifact over a period Figure 1. The spectrum of peer review techniques: of weeks is something dreaded by both the author From formal inspection to minimal-process OSS review. and the reviewers. The dislike of this cumbersome Tool supported, lightweight review provides a flexible, process is natural, but neither the formality nor but traceable middle ground. the aversion are fundamental characteristics of peer review. The core idea of review is simply false assurance of quality, frustrate developers, and lengthen to get an expert peer to examine your work for the development cycle. As Michael Fagan, the father of problems that you are blind to. The actual process formal inspection laments, “even 30 years after its [Fagan is much less important for finding defects than the inspection’s] creation, it is often not well understood and expertise of the people involved [1]. more often, poorly executed” [2]. In this article, we contrast While developers will acknowledge the value of inspec- OSS peer review with the following traditional inspection tion, most avoid it and adoption of traditional inspection process that is widely acknowledged in the inspection litera- practices remains relatively low [2], [3].
    [Show full text]
  • Reviewer Recommendation Using Software Artifact Traceability Graphs
    Reviewer Recommendation using Software Artifact Traceability Graphs Emre Sülün Eray Tüzün Uğur Doğrusöz [email protected] [email protected] [email protected] Bilkent University Bilkent University Bilkent University Ankara, Turkey Ankara, Turkey Ankara, Turkey ABSTRACT 1 INTRODUCTION Various types of artifacts (requirements, source code, test cases, Due to its nature, through the lifecycle of a software, many different documents, etc.) are produced throughout the lifecycle of a software. kinds of changes occur to the software. These changes might have These artifacts are often related with each other via traceability intended consequences such as successfully adding new function- links that are stored in modern application lifecycle management ality or modifying the existing functionality. However, in some repositories. Throughout the lifecycle of a software, various types cases, the changes have unintended consequences such as intro- of changes can arise in any one of these artifacts. It is important to ducing a new bug while fixing another; thus, these changes need review such changes to minimize their potential negative impacts. to be carefully reviewed. To maximize benefits of a review, the To maximize benefits of the review process, the reviewer(s) should reviewer(s) should be chosen appropriately. However, choosing be chosen appropriately. the right reviewer(s) might not be a trivial task, especially in large In this study, we reformulate the reviewer suggestion problem projects. Automatically suggesting appropriate reviewers have two using software artifact traceability graphs. We introduce a novel main benefits: (1) reducing overall review time by automatically approach, named RSTrace, to automatically recommend reviewers assigning reviewers [22] (2) increasing the review quality and thus that are best suited based on their familiarity with a given artifact.
    [Show full text]
  • Experimenters Handbook (GRC-DOC-PLAN-5006)
    National Aeronautics and GRC-CONN-PLAN-5006 A Space Administration EFFECTIVE DATE: 06/18/2012 Space Communications and Navigation (SCaN) Testbed Project National Aeronautics and Space Administration John H. Glenn Research Center at Lewis Field, Ohio 44135 SCaN TESTBED PROJECT Experimenter’s Handbook AUTHORIZED by CM when under FORMAL Configuration Control Date Signature 7/9/12 /s/ Robert E. Turk Distribution: [ ] NASA (U.S. Gov. Only) [ ] Project Only [ X ] Government and Contractors Availability: [ X ] Public (No Restriction) [ ] Export Controlled [ ] Confidential/ Commercial [ ] Internal Use Only Space Communications and Navigation (SCaN) Testbed Project Document No.: GRC-CONN-PLAN-5006 Revision: A Title: Experimenter’s Handbook Effective Date: 06/18/2012 Page ii of viii PREFACE National Aeronautics and Space Administration (NASA) is developing an on-orbit, adaptable, Software Defined Radio (SDR)/Space Telecommunications Radio System (STRS)-based testbed facility to conduct a suite of experiments to advance technologies, reduce risk, and enable future mission capabilities on the International Space Station (ISS). The Space Communications and Navigation (SCaN) Testbed Project will provide NASA, industry, other Government agencies, and academic partners the opportunity to develop and field communications, navigation, and networking technologies in the laboratory and space environment based on reconfigurable, software defined radio platforms and the STRS Architecture. The project was previously known as the Communications, Navigation, and Networking reConfigurable Testbed (CoNNeCT). Also included are the required support efforts for Mission Integration and Operations, consisting of a ground system and the Glenn Telescience Support Center (GRC TSC). This document has been prepared in accordance with NASA Glenn’s Configuration Management Procedural Requirements GLPR 8040.1 and applies to the SCaN Testbed configuration management activities performed at NASA’s Glenn Research Center (GRC).
    [Show full text]