detec ng and quan fying different types of self admi ed
play

Detec%ng and Quan%fying Different Types of Self-Admi;ed - PowerPoint PPT Presentation

Detec%ng and Quan%fying Different Types of Self-Admi;ed Technical Debt Everton da S. Maldonado and Emad Shihab Self-Admi;ed Technical Debt Iden%fica%on


  1. Detec%ng ¡and ¡Quan%fying ¡Different ¡ Types ¡of ¡Self-­‑Admi;ed ¡Technical ¡Debt ¡ Everton ¡da ¡S. ¡Maldonado ¡and ¡ Emad ¡Shihab ¡

  2. Self-­‑Admi;ed ¡Technical ¡Debt ¡ Iden%fica%on ¡ Code ¡Comments ¡ can ¡be ¡used ¡to ¡detect ¡TD ¡ Comment ¡Pa2erns ¡ “ hack ” ¡ “probably ¡a ¡bug” ¡ ¡ “ fix ¡this ¡crap ” ¡ “ duct-­‑tape ” ¡ Self-­‑Admi;ed ¡Technical ¡Debt ¡

  3. Examples of Self-admitted Technical Debt ¡

  4. Different ¡Types ¡of ¡Technical ¡Debt ¡ ¡ Technical ¡debt ¡is ¡a ¡broad ¡concept: ¡ ¡ Design ¡debt ¡, ¡ ¡ DocumentaBon ¡debt, ¡ ¡ Requirement ¡debt ¡… ¡ ¡ What ¡types ¡of ¡TD ¡are ¡Self-­‑Admi;ed? ¡

  5. Case ¡Study ¡ 5 ¡open ¡source ¡Java ¡projects ¡ ( Ant, ¡ArgoUML, ¡Columba, ¡JFreeChart ¡and ¡Jmeter ) ¡ 606K ¡ + ¡ ¡SLOC ¡ 39K ¡ ¡ ¡+ ¡ ¡Extracted ¡comments ¡ 8k ¡ + ¡ ¡ ¡ ¡ ¡ ¡Classes ¡ 5 ¡

  6. Manual ¡Classifica%on ¡of ¡Comments ¡ The ¡manual ¡classifica%on ¡took ¡about ¡ ¡95 ¡hours ¡ Can ¡a ¡comment ¡have ¡more ¡than ¡one ¡ ¡ classifica%on? ¡ There ¡is ¡a ¡possibility. ¡

  7. Quan%fying ¡Self-­‑Admi;ed ¡TD ¡ Comments ¡ Project ¡ # ¡of ¡analyzed ¡ # ¡of ¡self-­‑ % ¡of ¡self-­‑ comments ¡ admi;ed ¡ ¡ admi;ed ¡TD ¡ TD ¡comments ¡ per ¡project ¡ Ant ¡ 4,140 ¡ 134 ¡ 3.2 ¡ ArgoUML ¡ 9,788 ¡ 1,653 ¡ 16.8 ¡ Columba ¡ 6,569 ¡ 295 ¡ 4.4 ¡ JFreeChart ¡ 4,433 ¡ 219 ¡ 4.9 ¡ Jmeter ¡ 8,163 ¡ 375 ¡ 4.6 ¡ TOTAL ¡ 33,093 ¡ 2,676 ¡ -­‑ ¡ 7 ¡

  8. Types ¡of ¡Self-­‑Admi;ed ¡TD ¡ 100 Design debt Design debt Requirement debt 60 Requirement debt Defect debt 80 Test debt Defect debt Documentation debt Percentage Test debt Documentation debt 60 Percentage 40 40 20 0 Ant Jmeter ArgoUml JFreeChart Columba Ant Jmeter Columba ArgoUml JFreeChart 8 ¡

  9. Examples ¡of ¡Self-­‑Admi;ed ¡TD ¡ Design ¡Debt: ¡ “quick ¡& ¡dirty, ¡to ¡make ¡nested ¡mapped ¡p-­‑sets ¡work:” ¡ ¡ ¡[from ¡Ant] ¡ ¡ Requirement ¡Debt: ¡ “TODO: ¡no ¡methods ¡yet ¡for ¡getClassname” ¡[from ¡Ant] ¡ Defect ¡Debt: ¡ “Bug ¡in ¡above ¡method” ¡-­‑ ¡[from ¡Jmeter] ¡ 9 ¡

  10. Take ¡Home ¡Messages ¡ 1. ¡ We ¡found ¡ 5 ¡types ¡of ¡self-­‑admi2ed ¡TD . ¡ 2. ¡ 3.2% ¡ -­‑ ¡16.8% ¡ of ¡the ¡comments ¡contains ¡ some ¡type ¡of ¡technical ¡debt . ¡ 3. ¡ Design ¡and ¡ Requirement ¡debt ¡are ¡the ¡ most ¡common ¡types ¡of ¡self-­‑admi2ed ¡TD. ¡ 10 ¡

Recommend


More recommend