Identifying technical debt through issue trackers
department or school: Applied Science, Faculty of
department or school: Electrical and Computer Engineering, Department of
data provider: DSpace
degree campus: UBCV
creator: Dai, Ke
issued: 2018-12-03T16:57:56Z
issued: 2018
related degree: Master of Applied Science - MASc
degree grantor: University of British Columbia
description: Technical debt is a figurative expression to describe a phenomenon where software development organizations compromise some quality attributes of their products (e.g., maintainability and evolvability) in order to achieve some business benefits in the software development lifecycle. Technical debt may also be incurred unintentionally due to inconsiderate design decisions, poor programming practices or technological gaps. Different from bugs or defects, technical debt is mostly invisible to customers or end users as the software often works well from their perspective and even developers are often unconscious of the existence of technical debt. The invisibility of technical debt increases the risk of high maintenance and evolution cost in the future. Thus, it is crucial to manage technical debt effectively to assure the health of the software system. The first step of managing technical debt is the identification of technical debt. Many source code analysis tools have been developed to identify code-level technical debt; however, identifying non-code-level technical debt remains understudied and needs deep exploration. This thesis proposes an approach to identifying non-code-level technical debt through issue trackers using natural language processing and machine learning techniques and evaluates the performance of our approach using two issue-tracking data sets in English and Chinese respectively from open source and commercial software projects. We found that there are actually some common English and Chinese words that can be used as indicators of technical debt. We analyzed how these words contribute to indicating technical debt and compared the similarities between English and Chinese key phrases at the semantic level. Based on these key phrases, we developed different classifiers to detect technical debt issues automatically using machine learning techniques, evaluated and compared the performance of these classifiers in identifying technical debt issues record…
aggregated CHO: https://circle.library.ubc.ca/rest/handle/2429/67947
note: Identifying Technical Debt through Issue Trackers by Ke Dai B.Eng., Nanjing Institute of Technology, 2008 A THESIS SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF APPLIED SCIENCE in THE FACULTY OF GRADUATE AND POSTDOCTORAL STUDIES (Electrical and Computer Engineering) THE UNIVERSITY OF BRITISH COLUMBIA (Vancouver) November 2018 © Ke Dai, 2018 ii The following individuals certify that they have read, and recommend to the Faculty of Graduate and Postdoctoral Studies for acceptance, a thesis/dissertation entitled: Identifying Technical Debt through Issue Trackers submitted by Ke Dai in partial fulfillment of the requirements for the degree of Master of Applied Science in Electrical and Computer Engineering Examining Committee: Dr. Philippe Kruchten, Electrical and Computer Engineering Supervisor Dr. Ali Mesbah, Electrical and Computer Engineering Supervisory Committee Member Dr. Julia Rubin, Electrical and Computer Engineering Supervisory Committee Member Additional Examiner Additional Supervisory Committee Members: Supervisory Committee Member Supervisory Committee Member iii Abstract Technical debt is a figurative expression to describe a phenomenon where software development organizations compromise some quality attributes of their products (e.g., maintainability and evolvability) in order to achieve some business benefits in the software development lifecycle. Technical debt may also be incurred unintentionally due to inconsiderate design decisions, poor programming practices or technological gaps. Different from bugs or defects, technical debt is mostly invisible to customers or end users as the software often works well from their perspective and even developers are often unconscious of the existence of technical debt. The invisibility of technical debt increases the risk of high maintenance and evolution cost in the future. Thus, it is crucial to manage technical debt effectively to assure the health of the software system. The f…
has type: Thesis/Dissertation
date issued: 2019-02
is shown at: 10.14288/1.0374920
language: eng
degree discipline: Electrical and Computer Engineering
provider: Vancouver : University of British Columbia Library
publisher: University of British Columbia
rights: Attribution-NonCommercial-NoDerivatives 4.0 International
rights URI: http://creativecommons.org/licenses/by-nc-nd/4.0/
scholar level: Graduate
type: Text
identifier URI: http://hdl.handle.net/2429/67947