David Bowes
Current Organizations / Institutes
The organizations/institutes from the scholar's latest article
Previous Organizations / Institutes
The organizations / institutes from the scholar's other articles in the past ten years
Research Subjects
David Bowes has a total of 69 co-authors. Here are the top co-authors by number of shared publications:
- Tracy Hall
Lancaster University
37 shared publications - Jean Petrić
University of Hertfordshire, Hatfield, UK
9 shared publications Steve Counsell
8 shared publications- Bruce Christianson
University of Hertfordshire
7 shared publications Thomas Shippey
5 shared publicationsD. Gray
Computer Science Department, University of Hertfordshire, UK
4 shared publications
Latest Publications
- Open Access
- 27 July 2022
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. 49 (4) , 1823-1841
How do Developers Really Feel About Bug Fixing? Directions for Automatic Program Repair
Automatic program repair (APR) is a rapidly advancing field of software engineering that aims to supplement or replace manual bug fixing with an automated tool. For APR to be successfully adopted in industry, it is vital that APR tools respond to developer needs and preferences. However, very little research has considered developers' general attitudes to APR or developers' current bug fixing practices (the activity APR aims to replace). This paper responds to this gap by reporting on a survey of 386 software developers about their bug finding and fixing practices and experiences, and their instinctive attitudes towards APR. We find that bug finding and fixing is not necessarily as onerous for developers as has often been suggested, being rated as more satisfying than developers' general work. The fact that developers derive satisfaction and benefit from bug fixing indicates that APR adoption is not as simple as APR replacing an unwanted activity. When it comes to potential APR approaches, we find a strong preference for developers being kept in the loop (for example, choosing between different fixes or validating fixes) as opposed to a fully automated process. This suggests that advances in APR should be careful to consider the agency of the developer, as well as what information is presented to developers alongside fixes. It also indicates that there are key barriers related to trust that would need to be overcome for full scale APR adoption, supported by the fact that even those developers who stated that they were positive about APR listed several caveats and concerns. We find very few statistically significant relationships between particular demographic variables (for example, developer experience, age, education) and key attitudinal variables, suggesting that developers' instinctive attitudes towards APR are little influenced by experience level but are held widely across the developer community.
- 27 July 2022
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. 49 (4) , 1823-1841
Open AccessHow do Developers Really Feel About Bug Fixing? Directions for Automatic Program Repair
Automatic program repair (APR) is a rapidly advancing field of software engineering that aims to supplement or replace manual bug fixing with an automated tool. For APR to be successfully adopted in industry, it is vital that APR tools respond to developer needs and preferences. However, very little research has considered developers' general attitudes to APR or developers' current bug fixing practices (the activity APR aims to replace). This paper responds to this gap by reporting on a survey of 386 software developers about their bug finding and fixing practices and experiences, and their instinctive attitudes towards APR. We find that bug finding and fixing is not necessarily as onerous for developers as has often been suggested, being rated as more satisfying than developers' general work. The fact that developers derive satisfaction and benefit from bug fixing indicates that APR adoption is not as simple as APR replacing an unwanted activity. When it comes to potential APR approaches, we find a strong preference for developers being kept in the loop (for example, choosing between different fixes or validating fixes) as opposed to a fully automated process. This suggests that advances in APR should be careful to consider the agency of the developer, as well as what information is presented to developers alongside fixes. It also indicates that there are key barriers related to trust that would need to be overcome for full scale APR adoption, supported by the fact that even those developers who stated that they were positive about APR listed several caveats and concerns. We find very few statistically significant relationships between particular demographic variables (for example, developer experience, age, education) and key attitudinal variables, suggesting that developers' instinctive attitudes towards APR are little influenced by experience level but are held widely across the developer community.
- Open Access
- 16 February 2022
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. 49 (1) , 419-436
Let’s Talk With Developers, Not About Developers: A Review of Automatic Program Repair Research
Automatic program repair (APR) offers significant potential for automating some coding tasks. Using APR could reduce the high costs historically associated with fixing code faults and deliver significant benefits to software engineering. Adopting APR could also have profound implications for software developers daily activities, transforming their work practices. To realise the benefits of APR it is vital that we consider how developers feel about APR and the impact APR may have on developers' work. Developing APR tools without consideration of the developer is likely to undermine the success of APR deployment. In this paper, we critically review how developers are considered in APR research by analysing how human factors are treated in 260 studies from Monperrus's Living Review of APR. Over half of the 260 studies in our review were motivated by a problem faced by developers (e.g., the difficulty associated with fixing faults). Despite these human-oriented motivations, fewer than 7% of the 260 studies included a human study. We looked in detail at these human studies and found their quality mixed (for example, one human study was based on input from only one developer). Our results suggest that software developers are often talked about in APR studies, but are rarely talked with. A more comprehensive and reliable understanding of developer human factors in relation to APR is needed. Without this understanding, it will be difficult to develop APR tools and techniques which integrate effectively into developers' workflows. We recommend a future research agenda to advance the study of human factors in APR.
- 16 February 2022
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. 49 (1) , 419-436
Open AccessLet’s Talk With Developers, Not About Developers: A Review of Automatic Program Repair Research
Automatic program repair (APR) offers significant potential for automating some coding tasks. Using APR could reduce the high costs historically associated with fixing code faults and deliver significant benefits to software engineering. Adopting APR could also have profound implications for software developers daily activities, transforming their work practices. To realise the benefits of APR it is vital that we consider how developers feel about APR and the impact APR may have on developers' work. Developing APR tools without consideration of the developer is likely to undermine the success of APR deployment. In this paper, we critically review how developers are considered in APR research by analysing how human factors are treated in 260 studies from Monperrus's Living Review of APR. Over half of the 260 studies in our review were motivated by a problem faced by developers (e.g., the difficulty associated with fixing faults). Despite these human-oriented motivations, fewer than 7% of the 260 studies included a human study. We looked in detail at these human studies and found their quality mixed (for example, one human study was based on input from only one developer). Our results suggest that software developers are often talked about in APR studies, but are rarely talked with. A more comprehensive and reliable understanding of developer human factors in relation to APR is needed. Without this understanding, it will be difficult to develop APR tools and techniques which integrate effectively into developers' workflows. We recommend a future research agenda to advance the study of human factors in APR.
- Open Access
- 1 October 2021
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 12-23
Expanding Fix Patterns to Enable Automatic Program Repair
Automatic Program Repair (APR) has been proposed to help developers and reduce the time spent repairing programs. Recent APR tools have applied learned templates (fix patterns) to fix code using knowledge from fixes successfully applied in the past. However, there is still no general agreement on the representation of fix patterns, making their application and comparison with a baseline difficult. As a consequence, it is also difficult to expand fix patterns and further enable APR. We automatically generate fix patterns from similar fixes and compare the generated fix patterns against a state-of-the-art taxonomy. Our automated approach splits fixes into smaller, method-level chunks and calculates their similarity. A threshold-based clustering algorithm groups similar chunks and finds matches with state-of-the-art fix patterns. In our evaluation, we present 33 clusters whose fix patterns were generated from the fixes of 835 Defects4J bugs. Of those 33 clusters, 22 matched a state-of-the-art taxonomy with good agreement. The remaining 11 clusters were thematically analysed and generated new fix patterns that expanded the taxonomy. Our new fix patterns should enable APR researchers and practitioners to expand their tools to fix a greater range of bugs in the future.
- 1 October 2021
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 12-23
Open AccessExpanding Fix Patterns to Enable Automatic Program Repair
Automatic Program Repair (APR) has been proposed to help developers and reduce the time spent repairing programs. Recent APR tools have applied learned templates (fix patterns) to fix code using knowledge from fixes successfully applied in the past. However, there is still no general agreement on the representation of fix patterns, making their application and comparison with a baseline difficult. As a consequence, it is also difficult to expand fix patterns and further enable APR. We automatically generate fix patterns from similar fixes and compare the generated fix patterns against a state-of-the-art taxonomy. Our automated approach splits fixes into smaller, method-level chunks and calculates their similarity. A threshold-based clustering algorithm groups similar chunks and finds matches with state-of-the-art fix patterns. In our evaluation, we present 33 clusters whose fix patterns were generated from the fixes of 835 Defects4J bugs. Of those 33 clusters, 22 matched a state-of-the-art taxonomy with good agreement. The remaining 11 clusters were thematically analysed and generated new fix patterns that expanded the taxonomy. Our new fix patterns should enable APR researchers and practitioners to expand their tools to fix a greater range of bugs in the future.
- 5 April 2021
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Software
- Vol. 38 (4) , 43-51
On The Introduction of Automatic Program Repair in Bloomberg
A key to the success of automatic program repair (APR) techniques is how easily they can be used in an industrial setting. In this article, we describe a collaboration by a team from four U.K.-based universities with Bloomberg (London) in implementing automatic, highquality fixes to its code base. We explain the motivation for adopting APR, the mechanics of the prototype tool that was built, and the practicalities of integrating APR into existing systems.
- 5 April 2021
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Software
- Vol. 38 (4) , 43-51
On The Introduction of Automatic Program Repair in Bloomberg
A key to the success of automatic program repair (APR) techniques is how easily they can be used in an industrial setting. In this article, we describe a collaboration by a team from four U.K.-based universities with Bloomberg (London) in implementing automatic, highquality fixes to its code base. We explain the motivation for adopting APR, the mechanics of the prototype tool that was built, and the practicalities of integrating APR into existing systems.
- 31 August 2020
- Published by Springer Nature
- p. 135-143
Zones of Pain: Visualising the Relationship Between Software Architecture and Defects
- 31 August 2020
- Published by Springer Nature
- p. 135-143
Zones of Pain: Visualising the Relationship Between Software Architecture and Defects
- 5 July 2019
- Published by Springer Nature in Empirical Software Engineering
- Vol. 24 (5) , 3151-3152
Guest editorial: special section on predictive models and data analytics in software engineering
- 5 July 2019
- Published by Springer Nature in Empirical Software Engineering
- Vol. 24 (5) , 3151-3152
Guest editorial: special section on predictive models and data analytics in software engineering
- Open Access
- 1 February 2019
- Published by Elsevier in Information and Software Technology
- Vol. 106, 142-160
Automatically identifying code features for software defect prediction: Using AST N-grams
- 1 February 2019
- Published by Elsevier in Information and Software Technology
- Vol. 106, 142-160
Open AccessAutomatically identifying code features for software defect prediction: Using AST N-grams
- Open Access
- 10 October 2018
- Published by Association for Computing Machinery (ACM)
- p. 42-51
How Effectively Is Defective Code Actually Tested?
- 10 October 2018
- Published by Association for Computing Machinery (ACM)
- p. 42-51
Open AccessHow Effectively Is Defective Code Actually Tested?
- Open Access
- 10 October 2018
- Published by Association for Computing Machinery (ACM)
- p. 70-79
Mining Communication Patterns in Software Development
- 10 October 2018
- Published by Association for Computing Machinery (ACM)
- p. 70-79
Open AccessMining Communication Patterns in Software Development
- Open Access
- 10 October 2018
- Published by Association for Computing Machinery (ACM)
- p. 90-93
A Longitudinal Study of Anti Micro Patterns in 113 versions of Tomcat
- 10 October 2018
- Published by Association for Computing Machinery (ACM)
- p. 90-93
Open AccessA Longitudinal Study of Anti Micro Patterns in 113 versions of Tomcat