<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Toward Measuring Defect Debt and Developing a Recommender system for their prioritization</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Figure 1: Project Triangle</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Shirin Akbarinasaji Data Science Lab Ryerson University Toronto</institution>
          ,
          <country country="CA">Canada</country>
        </aff>
      </contrib-group>
      <fpage>15</fpage>
      <lpage>20</lpage>
      <abstract>
        <p>Software development managers make a release decision without fully resolving the defects from current and previous releases due to tight deadlines. Deferring the defects would accumulate a tremendous amount of technical debt in the system. Typically, the defect debts are de ned as the type of defect that should be xed. However, due to competing priorities and the limited amount of time and resources, they would be postponed to the next release. In order to aid practitioners ,who make release decisions, to observe the amount of debt, there is a need for quantifying the defect debt. Software bug repositories roughly provide us with information about the amount of time the defect debt exist in the system, the time the defects are resolved and the severity of the defect. We suggest categorizing the defect into the regular defect and debt prone defect by analyzing this information. Afterwards, we compare the regular defect and debt-prone defect to determine the principal, interest and interest probability of defect debt. We also propose the reinforcement learning for scheduling which defect debt needs to be paid and when they need to be paid.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Technical Debt Measurement</kwd>
        <kwd>Defect Debt</kwd>
        <kwd>Reinforcement Learning</kwd>
        <kwd>Software Maintainability</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>Copyright '2015 for this paper by its authors. Copying
permitted for private and academic purposes.</p>
      <p>
        Every project requires to be completed and delivered under
certain constraints. Project management body of
knowledge modeled these constraints as the iron triangle of time,
cost and quality (scope). Figure 1 illustrates the project
management triangle. Typically, changing one side of the
triangle has an e ect on the other side of the triangle. For
instance, increasing the quality (scope) leads to the growth
in time and cost. Similarly, tight time (budget) constraints
may cause increasing of the budget (time) and reducing the
quality. Complex software projects certainly need to tackle
the triple project constraints as well. The quality of
software often diminished over time since the software
maintenance projects are performed under tight time and resource
constraints. The project managers need to make balance
between time and cost properties and the required quality
level. To achieve the system equilibrium, they might delay
some maintenance activities such as documentation, testing
or even xing bugs. The consequence of delaying these
technical development activities can be interpreted as a type of
debt and it will a ect the long term maintenance and
development activities. The trade-o between short term bene ts
of delaying these activities and long-term e ect of
postponing them is articulated as \technical debt".
Generally, the technical debt describes the delayed
development activity due to the time and resource constraints.
Likewise the nancial debt, principal is an amount of e ort
in terms of time or cost require paying o the debt (i.e
complete the task). Interests are the potential penalty in terms
of extra amount of e ort required to pay as a compensation
for what is borrowed [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. Accumulation of technical debt in
the system has tremendous e ect on the quality of the
system [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. There is always a choice between paying down the
whole principal or continuing to pay o the interest. And,
in small software projects, the managers may implicitly
decide on the amount of the debt to be paid o and payment
schedule. However, in the large projects, there is a need for
a comprehensive system that is able to track and manage
the technical debt [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
      </p>
      <p>
        Additionally, technical debts may occur intentionally or
unintentionally [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Intentional debts are the kind of debts
that the developers and managers are aware of their
existence and they occur deliberately due to the strategic and
tactical mission. Unintentional debts occur due to the
developers’lack of attention or understanding and the team is
not aware of their existence and their location.
Furthermore, the debts may also be classi ed according to its type.
According to Li et al. technical debts are classi ed into 10
types of debts including: requirement, architectural, design,
code, test, build, documentation, infrastructure, versioning
and defect debt[
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. In this study we particularly focus on
defect debts which refer to the defects, bugs or failures found
but not xed in the current release[
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
      </p>
      <p>Since, quantifying the technical debt is a key factor in
making decision about incurring, paying o and deferring
technical debt, we will initially propose a new approach for
measuring the principals and interests of defect debt. Most of the
quantifying approaches in the literature are based on the
distance between the violation of the code from the ideal code.
However, our approach di erentiates from the existing
approaches since it concentrates on mining of bug repositories
and collecting data from issue tracking system.</p>
      <p>On the other hand, software development team always faces
the high volume of defect reports and change requests in
every cycle of release. The challenge is to gure out which
instance of defects should be addressed in this release and
in which order they are required to be xed. Therefore, an
important next step is recommending a system to the
developers and managers to prioritize instances of defect debt
in the current release. Our proposed solution for scheduling
of the defect debt is based on reinforcement learning. Our
ultimate goal is nding an optimal action-selection policy
for paying o the defect debt in limited time in such a way
that minimizing the amount of interest. We can summarize
our contribution as follows:</p>
      <sec id="sec-1-1">
        <title>Proposing a new approach for quantifying the defect debt,</title>
      </sec>
      <sec id="sec-1-2">
        <title>Developing an automated framework for prioritization</title>
        <p>of defect debt
The remainder of the paper is as follows: in section 2, we
will brie y explain the current research issues and what we
would like to get advice on. Section 3 will review the related
work. In section 4, we will speci cally discuss our research
objectives. Section 5 is a brief explanation of research
approach. Finally, section 6 will review next step and section
7 is conclusion and summary.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>2. CURRENT RESEARCH ISSUES</title>
      <p>Although the technical debt attracts interests of many
researchers in recent years, most of the work only capture the
theoretical aspect of the technical debt and there is still a
lack of empirically based studies in the literate. In this
research, we would like to propose an empirical approach for
quantifying the defect debt and we seek feedback on our
research approach and our proposed solution.</p>
    </sec>
    <sec id="sec-3">
      <title>3. RELATED WORK</title>
      <p>
        The technical debt was rst introduced two decades ago by
Ward Cunningham [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. He described that \Shipping rst
time code is like going into debt. A little debt speeds
development so long as it is paid back promptly with a rewrite".
Although it is a fairly recent metaphor in software
engineering, it is highly related to well-researched issue like software
decay by Lehman and Belady [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] and software aging by
Parnas [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] . Software decay is a complexity of software
due to continuous changes and software aging is a disability
of software to meet required changes. The introduction of
technical debt facilitates managing these concepts.
Martin Fowler [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] suggested the quadrilateral categorization
of technical debt considering intention (deliberate or
inadvertent) versus awareness (reckless or prudent). Brown et al.
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] extended the concept of technical debt from the code level
metaphor to architectural and detailed design. Since then,
many practitioners and researchers relied on the de nition
of the technical debt in order to explain various cost-drive
issues in software engineering. Tom et al. [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] explored
the technical debt concept focusing on dimension of
technical debt, the advantages and drawbacks of allowing them
in a system and its origins. In another study, Tom et al.
[
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] did a systematic literature review focusing on the state
of academic research for technical debt. Li et al. [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] did a
systematic mapping study on technical debt and its
management. Seaman and Guo [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] reviewed some issues associated
with technical debt and proposed the framework for
measuring and monitoring the debt based on risk management
approaches. Their framework for managing technical debt
was identifying debt, measuring debt and monitoring debt.
For identifying debt, especially code-based debt, there are
various tools. They are designed to detect code smell [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ],
modularity violation [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], grime buildup [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] and potential
defect. Zazworka et al. [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] found that di erent tools did
not reveal overlapping results, rather they each pointed out
a di erent problem.
      </p>
      <p>
        Letouzney [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] proposed the SQALE (Software Quality
Assessment based on Lifecycle of Expectations) for
evaluating the technical debt. Sonar tool1 is a popular tool for
evaluating the technical debt but it is not perfect as it is
widely discussed in technical debt literature [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Sonar
applied quality heuristic for identifying code duplication,
violation of code standard, lack of testing, and potential latent
bugs. Nord et al. [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] presented a metrics based on
architecture and measurement approach for managing the technical
debt. Nugroho et al. [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] rede ned the technical debt as
xing cost of the technical issue. They performed static
analysis to identify debt and estimated the debt principle
based on the percentage of changed line code, code
duplication, dependency and parameter count and also complexity
metric. They calculated the interest estimation by assigning
these metrics to risk categories. Guo et al. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] investigated
the e ect of technical debt in a real software project by
estimating the principal debt according to e ort estimation.
Zazworka [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] applied cost-bene t analysis for prioritizing
1http://www.sonarsource.org/)
the God class debt. He ranked the cost of paying debt and
the impact of debt on quality to determine which refactoring
activities need to be performed initially. Singh et al. [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]
monitored developer activities to estimate the debt interest.
Several studies proposed considering interest probability for
interest estimation [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. This is the probability of debt, if
not paid, how it would a ect other tasks in a negative way
[
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. There are also several studies that are presented and
classi ed the technical debt by mapping study by [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
Xuan et al. proposed the concept of debt-prone bugs and
identi ed three types of debt :tag bugs, reopen bugs and
duplicate bugs. Tag bugs are the bugs which \ xme, todo, xxx"
tags annotated to them. Reopened bugs are the bugs which
are solved by developers but reopen later, and duplicate bugs
are the bugs with the same root as existing ones.They
conducted a case study on Mozilla to investigate e ect of debt
prone bugs on software quality. [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ].Snipes et al. identi ed
and categorized cost related to xing the defects or deferring
the defects. They stated that decision factor for managing
defects from the technical debt perspective are: severity, an
existence of a workaround, an urgency of x required by
customer, the e ort to implement the x, the risk of the
proposed x and the scope of testing required[
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
In this study,we particularly concentrate on defect debts and
we propose how to measure the principal and interest and
interest probability of defect debts. However, the main
concern of development team is how to prioritize defect debts in
order to minimize the total amount of interest. We propose
reinforcement learning to schedule debt prone bugs pay o .
For future step, we plan to collect data from bug
repository of a real project to show the feasibility of our proposed
model.
      </p>
    </sec>
    <sec id="sec-4">
      <title>4. RESEARCH OBJECTIVE</title>
      <p>The general objective of this study is to propose an approach
that provides the developers and practitioners to make a
decision under uncertainty during project management
regarding the defect debt. In particular, the goals of this proposal
can be summarized as following:</p>
      <p>To propose a simple and straightforward approach for
measuring the principal and interest of any defect prone
bug instance: In most of the previous studies, the
technical debt has been measured by comparing the current
state of the code and the ideal target for the code. In
this study, we would like to propose a new approach to
measure the technical debt by mining the bug
repository.</p>
      <p>To develop a framework for automating the
prioritization of defect debt: Once technical debt is measured,
the next step is to provide a guide to practitioners a
decision technique and approach to determine whether
or not to pay o the debt at a particular point of time.</p>
    </sec>
    <sec id="sec-5">
      <title>5. RESEARCH APPROACH</title>
    </sec>
    <sec id="sec-6">
      <title>5.1 Definition of Defect Debt</title>
      <p>
        Defect debts refer to the defects, bugs or failures found but
not xed in the current release, because there are higher
priority bugs to x or there are limited resources to x them.
Jifeng et al. referred to the defect debt by another
terminology as \debt prone bugs" and described it as any software
bugs which remain in the system because of any immature,
incomplete process of xing the bugs[
        <xref ref-type="bibr" rid="ref26">26</xref>
        ].
      </p>
      <p>From the perspective of defect debt de nition, the bugs are
divided into the bugs which constitute the technical debt
and the bugs which do not form any debt. Hereafter, we
refer to the latter as regular bugs. Therefore, two type of
bugs exist in any bug repositories:</p>
      <sec id="sec-6-1">
        <title>Regular bugs which refer to the bugs that are submitted and resolved in the same release</title>
      </sec>
      <sec id="sec-6-2">
        <title>Debt prone bugs which refer to the bugs that are submitted in one release but are not resolved in that release</title>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>5.2 Measuring defect debt principal and interest</title>
      <p>
        In management level of any software organization, they are
interested in achieving a quantitative understanding of time
constraints for xing the bugs. However, the time
constraints that debt prone bugs may impose to the system
is totally di erent from the regular bug xing time. The
xing time for debt prone bugs is the summation of the
standard amount of time required for xing the bugs and
an extra amount of time required to x them as a penalty
of deferring the process. In other word, this xing process
for debt prone bugs may exceed the standard xing time for
regular bugs because the accumulation of unresolved bugs
in the system would make it more complicated to repair the
defects. Will Snipes et al. identi ed the following type of
time (cost) for xing defects[
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]:
      </p>
      <sec id="sec-7-1">
        <title>Investigation time or the time of diagnosing, verifying and nding the alternative solution for defects.</title>
      </sec>
      <sec id="sec-7-2">
        <title>Modi cation time which refers to the time of applying the solution to x defects</title>
      </sec>
      <sec id="sec-7-3">
        <title>Work around time that deals with providing the bypass for defects which are not resolved immediately</title>
      </sec>
      <sec id="sec-7-4">
        <title>Customer support time is the time of providing support for the customer because of the defect that exists in the current release</title>
      </sec>
      <sec id="sec-7-5">
        <title>Patch time or the time of nding temporary solution for xing the bugs</title>
      </sec>
      <sec id="sec-7-6">
        <title>Validation time that refers to the time of testing the</title>
        <p>systems.</p>
        <p>
          Investigation, modi cation and validation time are incurred
for xing the regular bugs. However, postponing the
xing process of the bugs may impose additional time such as
workaround, customer support time and patch time to the
system as well. Besides, the investigation cost may increase
because of the accumulation of more defects make the
diagnosis process more complicated[
          <xref ref-type="bibr" rid="ref21">21</xref>
          ]. As mentioned earlier,
technical debt principal is the amount of e ort in terms of
time that are required for xing bugs. And the interest is
an extra amount of time as a type of penalties which are
required for xing the defect. Consequently, principal value
for debt prone bugs may include three components:
investigation, modi cation and validation time. The interest value
may compromise additional workaround, customer support
time and patch time.
        </p>
        <p>
          In order to help software development team to better
estimate if the defect debt can be absorbed in current release or
not, a fair approximation for principal and interest are
required. Suppose that two similar bugs with the same
characteristic such as severity, same assignment, and same product
exist in bug repositories. One bug is treated as a regular bug
and one is treated as debt prone bug. For any regular bug,
we can easily estimate the regular xing time by
retrieving the historical data from bug tracking system. In any
bug tracking system, the bugs are submitted by
developers and testers with an ID, description of bugs, its version,
the reported date and its severity. The developers who are
interested in working on those bugs may assign di erent
labels to bugs such as new, uncon rmed, reopened and etc.
They also contain an adequate information regarding the
last time the bugs are modi ed and the history of modi
cation. The xing time for regular bugs is equivalent to the
di erence between reporting time of the bugs and the
resolving time of the bugs. Therefore, we are able to build a
prediction model based on the data from regular bug xing
time to predict the principal for debt prone bugs. The
potential input features for feeding the prediction model would
be severity, submitter, owner, priority, the indicator if the
bug internally discovered or externally discovered, etc.
In order to evaluate the interest for debt prone bugs,
initially the variance between the xing time and the estimated
principal needs to be calculated. The interest amount is
proportional to this variance. The weighting factor for
adjusting that is called severity. Severity is the potential e ect
of defect in the functionality of the system and customer
requirement[
          <xref ref-type="bibr" rid="ref21">21</xref>
          ]. For instance, one reason for deferring the
bugs xation to the next release is that the bug is very
trivial. Suppose the customer is requesting changes related to
background color of the system. In this case, the impact
of the defect is a minor irritation. Therefore, the severity
of the bug is very low and postponing the defect for many
years may not a ect the functionality of the system.
Therefore, the interest amount for this particular bug is the
variance between the regular xing time and estimated principal
times the severity of the bugs. From this point of view, we
can conclude that the interest amount is the time di erence
between principal and real xing time multiplying the
coe cient based on severity. Fundamentally, the more severe
bugs pose more interests to the system if they are not xed
in the same release as they reported. Therefore, an interest
amount can be calculated as below:
InterestAmount = (RealF ixingT ime EstimatedP rincipal)
        </p>
        <p>
          Severity
Another component of the interest is the interest probability
which refers to the probability that defect debt, if not xed,
will negatively a ect the xing time of other defects[
          <xref ref-type="bibr" rid="ref19">19</xref>
          ].For
the sake of estimating interest probability, all the bugs that
are dependent to current bugs need to be divided by the
number of all existing bugs in the current release.
        </p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>5.3 Applying Reinforcement Learning for Prioritization of Defect Debt</title>
      <p>
        Reinforcement learning is a machine learning task of
nding an optimal action-selection behavior of an agent in
order to maximize the total amount of reward[
        <xref ref-type="bibr" rid="ref22">22</xref>
        ].
Reinforcement learning is inspired by a concept in psychology
\reinforcement". In behavioral psychology, reinforcement is a
consequence that will motivate the agent behavior by
offering speci c stimulus followed by the behavior. Basically,
reinforcement learning is a problem of an agent who
interacts with the environment and tries to achieve an optimal
goal. Reinforcement learning has many applications in
different domains: robotic control, scheduling, chess playing,
backgammon, etc. [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Reinforcement learning is based
on Markov Decision Process (MDP) and the components of
basic reinforcement learning model are as following:[
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]:
a set of actions a 2 A
a set of states in the environment s 2 S
a set of transactions between the states
      </p>
      <sec id="sec-8-1">
        <title>The rules that determine an immediate reward for any transition (r)</title>
      </sec>
      <sec id="sec-8-2">
        <title>The rules that determine what the agent are able to</title>
        <p>
          observe from an environment
The agent interacts with an environment over potentially
in nitive discrete time steps of t = 1; 2; 3; . The time step
is not necessarily xed interval time, it can be determined
based on point of time that the state change or new action
has been performed[
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. At each time, the agent based on
state of an environment chooses an action at. Then, the
agent receives a reward based on chosen action and will be
transferred to new state st+1. The agent can evaluate its
performance based on the received reward. The reward
denes the goal in the learning problem. The Policy is the
rule agent uses to select actions and for each state it assigns
a probability to each possible action. The agent tries to
adjust policy in order to maximize the accumulated reward
[
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. Figure (2) depicts a standard framework of
reinforcement learning.
Prioritization of defect debt can be modeled as a
reinforcement learning. The main reason is that in scheduling of
defect debt, we are facing a changing environment and,
therefore, a traditional xed policy schedule would not work in
such a uctuating environment. Additionally, we are not
able to anticipate the long-term consequence of debt prone
bugs in the system. In software defect detection,
practitioners are looking for recommendations beyond classi cation.
Identifying and recommending a course of action for defect
debt is a complex task that traditional classi cation
algorithms may not su ce. A classi cation algorithm takes a
given data to learn and build a model for making a single
prediction or decision. However, human learning takes place
in three phases, classi cation, memorization and procedural
by interacting with the environment in making decisions.
When building recommender systems in complex
environments such as software defect debt prediction, we need to
use learning techniques such as reinforcement learning where
an algorithm considers the e ect of actions by trying things
to learn. It is di erent than dynamic programming as we do
not know the e ects of actions in the case of prioritization
of defect debts. Since technical debt is hidden in the code
and we do not know its future e ect, we need a learning
algorithm that considers this uncertainty and learns from its
environment by interacting with it. Such learning is more
realistic and closer to how humans learn, but it is di cult
to implement as a learning algorithm.
        </p>
        <p>The potential framework for prioritization of debt is as
follows: Suppose that the developer is the agent in the model
that should adjust policy in order to maximize the amount
of interest we could save. A set of states in environment
might be the amount of time remaining before upcoming
release. A set of actions is whether to pay debt i in the
upcoming release or not. Reward is equal to amount of
interest we save if we pay the debt i at current time instead
of postponing it to the next release. Note that after xing
a defect debt bugs, the target is achieving zero (minimum)
amount of debt before the release or maximizing amount of
interest that we saved. We assume that the developers are
fully aware of the current state of the model. They have
all the required information about how much debt is in the
system and how much time they have to work on debt prone
bugs.</p>
        <p>Assume that in each release the developer team decides to
assign a speci c amount of time T to x some defect debts.
At t = 1 the developer face totally N defect debts to be
xed. He needs to decide which debt to pay at time t = 1.
Suppose that the developer decides to x defect debt i and
it would take x1 minutes to x it. He would save an interest
of r(s1). At t = 2, the remaining time is equal to T x1.
As, defect debt i has been xed in the system, it would
e ect the number of defect debt we may face in the system
since it will facilitate xing of some other bugs which are
dependent in defect debt i. For instance, the number of
defects may change to N + m 1. Suppose, at time t = 2
the developer decides to x defect debt j and it would take
x2. The remaining time would be T x1 x2 and he would
save r(s2). The developer will continue till he reaches time
T . He needs to make the decision based on the long-term
reward the system would return to him. The expected
longterm rewards at each state s for policy , , would be:
B (s) = Exp[r(st) +
r(st+1) + 2
r(st+2) + :::jst = s]</p>
        <p>Where B is the long-term reward in the system, is the
action (policy) the developers decide to take. r is a reward
at each state and 0 &lt; &lt; 1 is the discount factor which
needs to be determined initially. The optimum decision is
to optimize the long-term reward:</p>
        <p>(s) = argmaxB (s)
The optimal would return the sequence of the defect debt
that developers should x to save the maximized amount of
interest.</p>
      </sec>
    </sec>
    <sec id="sec-9">
      <title>6. PLANNED NEXT STEPS</title>
      <p>In order to check the feasibility of our approach, we need
to apply it in real world projects and analyze the results.
Therefore, we plan our next steps of this research as below:
The initial next step is collecting data from both open source
projects and also commercial software companies and
applying our proposed techniques for quantifying their defect
debt. We also need to consult with developers in each
domain to assess our approach. The second step is
determining which reinforcement learning method is best situated for
our model such as temporal di erence learning, Q-learning,
SARSA , etc. The last step is to extend our approach to
other types of technical debt.</p>
    </sec>
    <sec id="sec-10">
      <title>7. CONCLUSION</title>
      <p>In this study, we described a new procedure for
measuring the principal, interest and interest probability for defect
debt. Despite most of the existing approaches which are
based on the violation of the program from the right code
practice, our proposed method is based on mining the bug
repository and standardizing the measurement based on the
actual status of the system. Our proposed approach presents
a simple heuristic for practitioners with limited knowledge
about the architecture of the code in quantifying the defect
debt. Typically, we concentrate on the bugs that are opened
and resolved in the same release and use them as an original
required xing time. Then, by comparing the defect debt
prone to the regular defect, we calculate the interest.
Furthermore, we would like to develop a novel learning
framework for scheduling of the defect debt. Our proposed method
is reinforcement learning because of the dynamic nature of
the defect debt environment. We believe that determining
which defect debt to work on is a very complicated problem
and developers need an automated framework that suggest
them a sequence of defect debt they can x in limited time
that can return the maximum amount of reward to them.</p>
    </sec>
    <sec id="sec-11">
      <title>8. ACKNOWLEDGMENT</title>
      <p>I would like to express my sincere thanks to Dr. Ayse Bener
and Dr. Bora Caglayan for providing me with their valuable
advice and guidance. I am very grateful for their support
and feedback that help me to improve my proposal.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>N.</given-names>
            <surname>Brown</surname>
          </string-name>
          , Y. Cai,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Guo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kazman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Kruchten</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Lim</surname>
          </string-name>
          ,
          <string-name>
            <surname>A. MacCormack</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Nord</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            <surname>Ozkaya</surname>
          </string-name>
          , et al.
          <article-title>Managing technical debt in software-reliant systems</article-title>
          .
          <source>In Proceedings of the FSE/SDP workshop on Future of software engineering research</source>
          , pages
          <volume>47</volume>
          {
          <fpage>52</fpage>
          . ACM,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Cai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kazman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Silva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Xiao</surname>
          </string-name>
          , and H.
          <string-name>
            <surname>-M. Chen</surname>
          </string-name>
          .
          <article-title>A decision-support system approach to economics-driven modularity evaluation</article-title>
          .
          <source>Economics-Driven Software Architecture</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>W.</given-names>
            <surname>Cunningham</surname>
          </string-name>
          .
          <article-title>The wycash portfolio management system</article-title>
          .
          <source>ACM SIGPLAN OOPS Messenger</source>
          ,
          <volume>4</volume>
          (
          <issue>2</issue>
          ):
          <volume>29</volume>
          {
          <fpage>30</fpage>
          ,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M. K. P.</given-names>
            <surname>DARSINI</surname>
          </string-name>
          .
          <article-title>Application of Reinforcement learning algorithms to software veri cation</article-title>
          .
          <source>PhD thesis</source>
          , M.
          <source>Sc. Thesis</source>
          , Universite Laval,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>R. J.</given-names>
            <surname>Eisenberg</surname>
          </string-name>
          .
          <article-title>A threshold based approach to technical debt</article-title>
          .
          <source>ACM SIGSOFT Software Engineering Notes</source>
          ,
          <volume>37</volume>
          (
          <issue>2</issue>
          ):1{
          <issue>6</issue>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>C.</given-names>
            <surname>Fernandez-Sanchez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. D</given-names>
            <surname>az</surname>
          </string-name>
          , J. Perez, and
          <string-name>
            <given-names>J.</given-names>
            <surname>Garbajosa</surname>
          </string-name>
          .
          <article-title>Guiding exibility investment in agile architecting</article-title>
          .
          <source>In System Sciences (HICSS)</source>
          ,
          <year>2014</year>
          47th Hawaii International Conference on, pages
          <volume>4807</volume>
          {
          <fpage>4816</fpage>
          . IEEE,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>M.</given-names>
            <surname>Fowler</surname>
          </string-name>
          .
          <article-title>Technical debt quadrant</article-title>
          . Bliki [Blog]. Available from: http://www. martinfowler. com/bliki/TechnicalDebtQuadrant. html,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Guo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Seaman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Gomes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cavalcanti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Tonin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F. Q.</given-names>
            <surname>Da Silva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. L.</given-names>
            <surname>Santos</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Siebra</surname>
          </string-name>
          .
          <article-title>Tracking technical debta^ATan exploratory case study</article-title>
          .
          <source>In Software Maintenance (ICSM)</source>
          ,
          <year>2011</year>
          27th IEEE International Conference on, pages
          <volume>528</volume>
          {
          <fpage>531</fpage>
          . IEEE,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>C.</given-names>
            <surname>Izurieta</surname>
          </string-name>
          and
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Bieman</surname>
          </string-name>
          .
          <article-title>How software designs decay: A pilot study of pattern evolution</article-title>
          .
          <source>In Empirical Software Engineering and Measurement</source>
          ,
          <year>2007</year>
          .
          <article-title>ESEM 2007</article-title>
          . First International Symposium on, pages
          <volume>449</volume>
          {
          <fpage>451</fpage>
          . IEEE,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>L. P.</given-names>
            <surname>Kaelbling</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. L.</given-names>
            <surname>Littman</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A. W.</given-names>
            <surname>Moore</surname>
          </string-name>
          .
          <article-title>Reinforcement learning: A survey</article-title>
          .
          <source>Journal of arti cial intelligence research</source>
          , pages
          <volume>237</volume>
          {
          <fpage>285</fpage>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>M. M. Lehman</surname>
            and
            <given-names>L. A.</given-names>
          </string-name>
          <string-name>
            <surname>Belady</surname>
          </string-name>
          .
          <article-title>Program evolution: processes of software change</article-title>
          . Academic Press Professional, Inc.,
          <year>1985</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>J.-L.</given-names>
            <surname>Letouzey</surname>
          </string-name>
          .
          <article-title>The sqale method for evaluating technical debt</article-title>
          .
          <source>In Proceedings of the Third International Workshop on Managing Technical Debt</source>
          , pages
          <volume>31</volume>
          {
          <fpage>36</fpage>
          . IEEE Press,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Avgeriou</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Liang</surname>
          </string-name>
          .
          <article-title>A systematic mapping study on technical debt and its management</article-title>
          .
          <source>Journal of Systems and Software</source>
          ,
          <volume>101</volume>
          :
          <fpage>193</fpage>
          {
          <fpage>220</fpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>S.</given-names>
            <surname>McConnell</surname>
          </string-name>
          .
          <source>Technical debt. 10x software development. Blog]</source>
          . Available at: http://blogs. construx. com/blogs/stevemcc/archive/2007/11/01/technicaldebt2. aspx,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>R. L.</given-names>
            <surname>Nord</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Ozkaya</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Kruchten</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Gonzalez-Rojas</surname>
          </string-name>
          .
          <article-title>In search of a metric for managing architectural technical debt</article-title>
          .
          <source>In Software Architecture (WICSA) and European Conference on Software Architecture (ECSA)</source>
          ,
          <year>2012</year>
          Joint Working IEEE/IFIP Conference on, pages
          <volume>91</volume>
          {
          <fpage>100</fpage>
          . IEEE,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>A.</given-names>
            <surname>Nugroho</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Visser</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Kuipers</surname>
          </string-name>
          .
          <article-title>An empirical model of technical debt and interest</article-title>
          .
          <source>In Proceedings of the 2nd Workshop on Managing Technical Debt</source>
          , pages
          <fpage>1</fpage>
          <article-title>{8</article-title>
          . ACM,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>D. L.</given-names>
            <surname>Parnas</surname>
          </string-name>
          .
          <article-title>Software aging</article-title>
          .
          <source>In Proceedings of the 16th international conference on Software engineering</source>
          , pages
          <volume>279</volume>
          {
          <fpage>287</fpage>
          . IEEE Computer Society Press,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>J.</given-names>
            <surname>Schumacher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Zazworka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Shull</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Seaman</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Shaw</surname>
          </string-name>
          .
          <article-title>Building empirical support for automated code smell detection</article-title>
          .
          <source>In Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, page 8. ACM</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>C.</given-names>
            <surname>Seaman</surname>
          </string-name>
          and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Guo</surname>
          </string-name>
          .
          <article-title>Measuring and monitoring technical debt</article-title>
          .
          <source>Advances in Computers</source>
          ,
          <volume>82</volume>
          :
          <fpage>25</fpage>
          {
          <fpage>46</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>V.</given-names>
            <surname>Singh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Snipes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Kraft</surname>
          </string-name>
          , et al.
          <article-title>A framework for estimating interest on technical debt by monitoring developer activity related to code comprehension</article-title>
          .
          <source>In Managing Technical Debt (MTD)</source>
          ,
          <source>2014 Sixth International Workshop on</source>
          , pages
          <volume>27</volume>
          {
          <fpage>30</fpage>
          . IEEE,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>W.</given-names>
            <surname>Snipes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Robinson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Guo</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Seaman</surname>
          </string-name>
          .
          <article-title>De ning the decision factors for managing defects: A technical debt perspective</article-title>
          .
          <source>In Managing Technical Debt (MTD)</source>
          ,
          <source>2012 Third International Workshop on</source>
          , pages
          <volume>54</volume>
          {
          <fpage>60</fpage>
          . IEEE,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>R. S.</given-names>
            <surname>Sutton</surname>
          </string-name>
          and
          <string-name>
            <given-names>A. G.</given-names>
            <surname>Barto</surname>
          </string-name>
          .
          <article-title>Reinforcement learning: An introduction</article-title>
          , volume
          <volume>1</volume>
          . MIT press Cambridge,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>E.</given-names>
            <surname>Tom</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Aurum</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Vidgen</surname>
          </string-name>
          .
          <article-title>A consolidated understanding of technical debt</article-title>
          .
          <source>In ECIS, page 16</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>E.</given-names>
            <surname>Tom</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Aurum</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Vidgen</surname>
          </string-name>
          .
          <article-title>An exploration of technical debt</article-title>
          .
          <source>Journal of Systems and Software</source>
          ,
          <volume>86</volume>
          (
          <issue>6</issue>
          ):
          <volume>1498</volume>
          {
          <fpage>1516</fpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>S.</given-names>
            <surname>Wong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Cai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kim</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Dalton</surname>
          </string-name>
          .
          <article-title>Detecting software modularity violations</article-title>
          .
          <source>In Proceedings of the 33rd International Conference on Software Engineering</source>
          , pages
          <volume>411</volume>
          {
          <fpage>420</fpage>
          . ACM,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>J.</given-names>
            <surname>Xuan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Hu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Jiang</surname>
          </string-name>
          .
          <article-title>Debt-prone bugs: technical debt in software maintenance</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>N.</given-names>
            <surname>Zazworka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Izurieta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Wong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Cai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Seaman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Shull</surname>
          </string-name>
          , et al.
          <article-title>Comparing four approaches for technical debt identi cation</article-title>
          .
          <source>Software Quality Journal</source>
          ,
          <volume>22</volume>
          (
          <issue>3</issue>
          ):
          <volume>403</volume>
          {
          <fpage>426</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>N.</given-names>
            <surname>Zazworka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Seaman</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Shull</surname>
          </string-name>
          .
          <article-title>Prioritizing design debt investment opportunities</article-title>
          .
          <source>In Proceedings of the 2nd Workshop on Managing Technical Debt</source>
          , pages
          <volume>39</volume>
          {
          <fpage>42</fpage>
          . ACM,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>