Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Code Ownership: The Principles, Differences, an...

Dr. Kla Tantithamthavorn
November 04, 2024
11

Code Ownership: The Principles, Differences, and Their Associations with Software Quality

Reference: Patanamon Thongtanunam, and Chakkrit Tantithamthavorn, Code Ownership: The Principles, Differences, and Their Associations with Software Quality, In Proceedings of the IEEE International Symposium on Software Reliability Engineering (ISSRE), 2024.

Dr. Kla Tantithamthavorn

November 04, 2024
Tweet

Transcript

  1. Patanamon Thongtanunam, and Chakkrit Tantithamthavorn, Code Ownership: The Principles, Differences,

    and Their Associations with Software Quality, In Proceedings of the IEEE International Symposium on Software Reliability Engineering (ISSRE), 2024. The Principles, Differences, and Their Associations with Software Quality Dr. Kla Tantithamthavorn Senior Lecturer in Software Engineering Contact: [email protected] Website: http://chakkrit.com Twitter: @klainfo Dr. Pick Thongtanunam Senior Lecturer in Software Engineering Contact: [email protected] Website: http://patanamon.com Twitter: @patanamon
  2. Large-scale software systems consist of many building blocks, written by

    many developers. File B File A File C File D Given a file, who owns the code?
  3. Code ownership is used to establish a chain of responsibility

    for software artifacts. Benefits: • Accountability: Help teams identify who wrote this part of the code • Intellectual property: Help teams identify who is the right owner of this part of the code • Rapid bug-fixing: Help teams identify who should fix this part of the code • Increased code quality: Help teams establish a code ownership policy (e.g., maintaining the degree of higher code ownership => less defects) The Principles of Code Ownership File D Given a module, who is the owner?
  4. Commit-based Code Ownership [1] = the percentage of code changes

    made by a particular developer (d) over a certain period of time for a particular file (f) Traditional Code Ownership Approximation [1] Christian Bird, Brendan Murphy, and Harald Gall. 2011. Don’t Touch My Code ! Examining the Effects of Ownership on Software Quality. In Proceedings of the European Conference on Foundations of Software Engineering (ESEC/FSE). Line-based Code Ownership [2] = the percentage of code lines written by a particular developer (d) over a certain period of time for a particular file (f) [2] Foyzur Rahman and Premkumar Devanbu. 2013. How, and Why, Process Metrics are Better. In Proceedings of the International Conference on Software Engineering (ICSE). 432–441. Kla Pick Pick Kla Pick Pick Kla Given this file, who is the owner?
  5. Traditional Code Ownership Approximation Pick Kla Kla Pick Pick Pick

    Kla Who is the owner? Jane Bob Mary Linda Since the traditional code ownership approximations focus on different aspects (contribution vs authorship), they may identify different owners, leading to inconsistent ownership attribution.
  6. RQ1: Commonality of Developers Only 0% to 40% of developers

    in a file can be commonly identified by commit-based and line-based approaches. However, line-based code ownership can identify more major developers. Line Commit Both approaches do not identify the same set of developers.
  7. RQ2: Consistency of Ownership Values Both approaches produce different code

    ownership values. The ownership values approximated by the commit-based and line-based approaches have a small to moderate correlation. Line Commit
  8. RQ3: Important Factors Commit-based code ownership metrics share the strongest

    relationship with software quality Commit-based code ownership approximation has the highest important scores.
  9. RQ4: Applicability to the Future? The commit-based code ownership which

    is important in the past release is also important in the current release. Commit-based code ownership should be used to explain why a file is predicted as defective
  10. Line-based code ownership should be used for accountability purposes, but

    commit-based code ownership should be used for bug-fixing purposes. Both approaches do not identify the same set of developers. Both approaches produce different code ownership values. Commit-based code ownership shares the strongest relationship with software quality. The commit-based code ownership which is important in the past release is also important in the current release. Obj1: The Differences of Code Ownership Approximation Obj2: The Association of Code Ownership on Software Quality Dr. Kla Tantithamthavorn Senior Lecturer in Software Engineering Contact: [email protected]