Four Eyes are Better than Two: on the Impact of Code Reviews on Software Quality (ICSME 2015)

by Gabriele Bavota, Barbara Russo.

Code review is advocated as one of the good practices to improve software quality and reduce the likelihood of introducing defects during code change activities. Recent research has shown how code components having a high review coverage (i.e., a high proportion of reviewed changes) tend to be less involved in post-release fixing activities. Yet the relationship between code review and bug introduction or the overall software quality is still largely unexplored.

This paper presents an empirical, exploratory study on three large open source systems that aims at investigating the influence of code review on (i) the chances of inducing bug fixes and (ii) the quality of the committed code components, as assessed by code coupling, complexity, and readability.

Findings show that not reviewed commits (i.e., commits that did not undergo a review process) have over two times more chances of introducing bugs than reviewed commits (i.e., commits that underwent a review process). In addition, code committed after review has a significantly higher readability with respect to not reviewed code.

Query-based Configuration of Text Retrieval Solutions for Software Engineering Tasks (ESEC/FSE 2015)

by Laura Moreno, Gabriele Bavota, Sonia Haiduc, Massimiliano Di Penta, Rocco Oliveto, Barbara Russo, Andrian Marcus

Text Retrieval (TR) approaches have been used to leverage the textual information contained in software artifacts to address a multitude of software engineering tasks. However, TR approaches need to be configured properly in order to lead to good results. Current approaches for automatic TR configuration in SE configure a single TR approach and then use it for all possible queries that can be formulated. In this paper, we show that such a configuration strategy leads to suboptimal results and propose quest, the first approach bringing TR configuration selection to the query level. quest recommends the best TR configuration for a given query, based on a supervised learning approach which determines the TR configuration that performs the best for each query based on its properties. We evaluated quest in the context of feature and bug localization, using a dataset with more than 1,000 queries. We found that quest is able to recommend one of the top three TR configurations for a query with a 69% accuracy, on average. We compared the results obtained with the configurations recommended by quest for every query with those obtained using a single TR configuration for all queries in a system and in the en- tire dataset. We found that using quest we obtain better results than with any of the considered TR configurations.

Lean Software Develompent in Action (Springer 2014)

Lean Software Development in Action

by Andrea Janes and Giancarlo Succi. Springer, 2014. http://www.springer.com/us/book/9783662441787

This book illustrates how goal-oriented, automated measurement can be used to create Lean organizations and to facilitate the development of Lean software, while also demonstrating the practical implementation of Lean software development by combining tried and trusted tools.

In order to be successful, a Lean orientation of software development has to go hand in hand with a company’s overall business strategy. To achieve this, two interrelated aspects require special attention: measurement and experience management. In this book, Janes and Succi provide the necessary knowledge to establish “Lean software company thinking,” while also exploiting the latest approaches to software measurement. A comprehensive, company-wide measurement approach is exactly what companies need in order to align their activities to the demands of their stakeholders, to their business strategy, etc. With the automatic, non-invasive measurement approach proposed in this book, even small and medium-sized enterprises that do not have the resources to introduce heavyweight processes will be able to make their software development processes considerably more Lean.

The book is divided into three parts. Part I, “Motivation for Lean Software Development,” explains just what “Lean Production” means, why it can be advantageous to apply Lean concepts to software engineering, and which existing approaches are best suited to achieving this. Part II, “The Pillars of Lean Software Development,” presents the tools needed to achieve Lean software development: Non-invasive Measurement, the Goal Question Metric approach, and the Experience Factory. Finally, Part III, “Lean Software Development in Action,” shows how different tools can be combined to enable Lean Thinking in software development.

The book primarily addresses the needs of all those working in the field of software engineering who want to understand how to establish an efficient and effective software development process. This group includes developers, managers, and students pursuing an M.Sc. degree in software engineering.