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 ¡ Code ¡Comments ¡ can ¡be ¡used ¡to ¡detect ¡TD ¡ Comment ¡Pa2erns ¡ “ hack ” ¡ “probably ¡a ¡bug” ¡ ¡ “ fix ¡this ¡crap ” ¡ “ duct-‑tape ” ¡ Self-‑Admi;ed ¡Technical ¡Debt ¡
Examples of Self-admitted Technical Debt ¡
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? ¡
Case ¡Study ¡ 5 ¡open ¡source ¡Java ¡projects ¡ ( Ant, ¡ArgoUML, ¡Columba, ¡JFreeChart ¡and ¡Jmeter ) ¡ 606K ¡ + ¡ ¡SLOC ¡ 39K ¡ ¡ ¡+ ¡ ¡Extracted ¡comments ¡ 8k ¡ + ¡ ¡ ¡ ¡ ¡ ¡Classes ¡ 5 ¡
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. ¡
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 ¡
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 ¡
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 ¡
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