SlideShare a Scribd company logo
Predicting Faults Using
the Complexity of Code Changes
Every Battle is Won Before It is Fought
Julian Mason - China 12.04.11
S. LaokokP. Chongpakdee N. Uaphoemkiat
Published in: IEEE 31st International Conference on
Software Engineering, 2009 ICSE
Date: 16 ~ 24 May 2009
DOI: 10.1109/ICSE.2009.5070510
Cited by: 77* Citations,
IEEE Publication ~ 72
Other publication ~ 4
Patent ~ 1
Ahmed E. Hassan
Queen’s University
Retrieved at 21 Feb. 2016 at http://ieeexplore.ieee.org/xpl/abstractCitations.jsp?arnumber=5070510
If you know the enemy and know yourself, you
need not fear the result of a hundred battles. If
you know yourself but not the enemy, for every
victory gained you will also suffer a defeat. If you
know neither the enemy nor yourself, you will
succumb in every battle
—Sun Tzu, The Art of War
Background
Motivation
E = mc2
Error = (modified code)
2
“If debugging is the process of
removing bugs, then
programming must be process
of putting them in
—Edsger Dijkstra
Software Metrics: Paper Presentation
Software Metrics: Paper Presentation
Kristina Alexanderson - Star Wars play in the morning light
Code Change Process
• Basic Code Change (BCC) Model
• Extended Code Change (ECC) Model
• File Code Change (FCC) Model
Code Change Process
Fault Repairing
modifications (FR)How to Decide If You Should Repair or By a New Laptop
General Maintenance
modification (GM)Put your website in the hands of our experts and we can make sure it stays up to date and looking great!
Feature Introduction
modification (FI)Daniel Armanto - P8044749
Information Theory
ถูกต้องศิรินทร์ใช้งาน ไง รุสโซ ไทม์ติวอ่อนด้อยฮิปโปเพียบแปร้ สเตย์ฉลุยแมชชีนเซ็กซี่ ผิดพลาดนิวส์
หมายปองออสซี่ เบิร์ดบร็อกโคลีเอ็นทรานซ์มาร์จิน ฮ็อตด็อกวานิลลาบ็อกซ์เอ็นทรานซ์ปิโตรเคมี
คอนเฟิร์ม โปรเจ็ครุมบ้า ด็อกเตอร์คอร์ปอเรชั่น โกเต็กซ์โอวัลตินคอลเล็กชั่นบริกร เซ็กซี่ดาวน์ออดิทอ
เรียมฟิวเจอร์ฟรังก์ ฮ่องเต้สต๊อกโซน แกงค์เวิลด์ฮิบรู
ล็อตมอคค่า กุนซือ ตี๋ เจ๊เซลส์โบว์มาม่าแทคติค หล่อฮังก้วยสป็อตเมคอัพพลาซ่า คอลัมนิสต์ไคลแมกซ์
เซลส์แมน รีสอร์ทศากยบุตรแลนด์ นิวไลท์ฟาสต์ฟู้ด พูลเป็นไงโหลยโท่ยสจ๊วตโอเปอเรเตอร์ แอร์ไง
เดี้ยงเพียวสมาพันธ์ เดอะเอฟเฟ็กต์รอยัลตี้สตรอว์เบอร์รี หมิง แม็กกาซีนโปรฟิวเจอร์มลภาวะ มาราธอน
หล่อฮังก้วยแลนด์พาร์ซานตาคลอส ซีนฟยอร์ด ซังเต เปราะบางเครปปูอัด กัมมันตะราชานุญาตอัลไซเม
อร์กัมมันตะมอคคา ปิยมิตรแฟล็ตภควัมปติพาสต้า เมาท์ แอโรบิคโปรเจ็ค เซ็นเซอร์มวลชนคอรัปชัน
ฮิปฮอปศึกษาศาสตร์แครอท ร็อคอันเดอร์เช็งเม้ง สงบสุขตู้เซฟสหัชญาณศิลปากร ซานตาคลอสวานิลา
ฮิตซาร์ดีนตุ๊กตุ๊กแอสเตอร์ ซีเนียร์ คาสิโน มัฟฟิน ซีดานอินดอร์ แอลมอนด์สหรัฐแฮนด์ซูฮกเพรียวบาง
ฟลุควานิลา ภคันทลาพาธคอลเล็กชั่นเรต เพนตากอนเบอร์รี เพนกวิน เวิลด์ วิทย์เยอร์บีร่ามิลค์ปัจฉิม
นิเทศ พิซซ่าแหม็บปัจเจกชนโปรเจ็กต์คอรัปชั่น โรลออนเฝอเวิร์กช็อปไคลแม็กซ์ มัฟฟิน เฟรมช็อตแอด
มิสชันเพียบแปร้ ชนะเลิศ พาร์แชมปิยอง เอสเปรสโซบร็อกโคลี สตรอว์เบอร์รีโมหจริตฟิวเจอร์ปูอัด
เบิร์น อุปทานเพนกวินจ๊อกกี้ไคลแมกซ์คองเกรส ลิมิต รีไซเคิลไคลแมกซ์ควิก ซีรีส์สไตรค์บาบูนทาวน์
w f pk
เช่น 103 0.12875
ได้แก่ 91 0.11375
และ 83 0.10375
เป็น 67 0.08375
F=800
1
w
f
w f pk
เช่น 103 0.12875
ได้แก่ 91 0.11375
และ 83 0.10375
เป็น 67 0.08375
1
W f pk
เช่น 103 0.12875
ได้แก่ 200 0.25000
และ 83 0.10375
เป็น 67 0.08375
1
W f pk
เช่น 407 0.50875
ได้แก่ 171 0.21375
และ 31 0.03875
เป็น 201 0.25125
1
f
pk
x
x
x
x
Hn(P) =
nX
k=1
(pk · log2 pk)
where pk > 0
8k 2 {1, 2, 3, ..., n}
nX
k=1
pk = 1
Code Change Model
Basic
p(fileA) =
1
10
= 0.1
p(fileB) =
1
10
= 0.1
p(fileC) =
3
10
= 0.3
p(fileD) =
5
10
= 0.5
X
pi = 1
Files as a Unit of Measurement
Software Metrics: Paper Presentation
Extended
Software Metrics: Paper Presentation
Software Metrics: Paper Presentation
Software Metrics: Paper Presentation
H(P) =
1
Max Entropy for Distribution
Hn(P)
=
1
log2n
Hn(P)
=
1
log2n
nX
k=1
(pk · log2 pk)
=
nX
k=1
(pk · lognpk)
File
History Complexity Metric
(HCM)
T
i
Hi = Entropy
j
Fi
History Complexity Period Factor (HCPF)
HCPFi(j) =
(
cij · Hi, j 2 Fi
0 otherwise
• HCPF1
: cij = 1
• HCPF2
: cij = pk
• HCPF3
: cij = 1
|Fi|
T
i
Hi = Entropy
j
Fi
T
i
HCPFi(j)HCPFi-1(j) HCPFi+1(j)
i-1 i+1
a b
History Complexity Metric (HCM)
HCM{a,..,b}(j) =
X
i2{a,..,b}
HCPFi(j)
History Complexity Metric (HCM)
HCM{a,..,b}(j) =
X
i2{a,..,b}
HCPFi(j)
HCM{a,..,b}(S) =
X
i2{a,..,b}
HCPFi(S)
T
i
HCPFi(j)HCPFi-1(j) HCPFi+1(j)
i-1 i+1
a b
Ti
Current Time
HCM{a,..,b}(j) =
X
i2{a,..,b}
e ·(Ti Current T ime)
HCPF1
i (j)
History Complexity Metric (HCM1d)
History Complexity Metric (HCM)
HCM: HCM1s, HCM2s,
HCM3s, HCM1d
Case Study
• Modifications Vs Faults
• Modifications Vs Entropy
• Faults Vs. Entropy
Application name Application Type Start Date
Subsystem Count
(low level directories)
Prog. Lang.
NetBSD OS March 1993 235 C
FreeBSD OS June 1993 152 C
OpenBSD OS Oct 1995 265 C
Postgres DBMS July 1996 280 C
KDE
Windowing
System
April 1997 108 C++
KOffice
Productivity
Suite
April 1998 158 C++
y = 0 + 1x
Statistical Linear Regression
(SLR Model)dependent
independent
Modifications vs Faults
Modifications vs Entropy
Faults vs Entropy
H0 : µ(eA,i eB,i) = 0
H1 : µ(eA,i eB,i) 6= 0
↵ = 0.05
Student’s T-test
Software Metrics: Paper Presentation
Software Metrics: Paper Presentation
Modificatoin < Faults
Software Metrics: Paper Presentation
Modification < HCM
Software Metrics: Paper Presentation
Mod. < Faults < HCM
Threats to Validity
A. Defects are not mapped to code
B. Faults fixed
Q & A

More Related Content

PDF
The Thunderbird Lodge Restoration; Rose Valley, PA
PDF
CVnov16
PDF
Ley1014
PDF
ФутуриSMM: что дальше
PPT
Team Skills
PPTX
Tarjeta de red
PPT
Brief introdution (thuc 2014)
PPSX
Rankings 2011 - 2012
The Thunderbird Lodge Restoration; Rose Valley, PA
CVnov16
Ley1014
ФутуриSMM: что дальше
Team Skills
Tarjeta de red
Brief introdution (thuc 2014)
Rankings 2011 - 2012

Viewers also liked (11)

TXT
청담동카지노 싸이트 『OX600』。『COM』마작승률 사이트
PPTX
Aprendizaje autonomo
TXT
섯다 싸이트》》》SX797CΟM《《《섯다 생중계
PDF
00-00_Trailer_Transtech_editorial[1]
PPT
Por qué quiero estudiar
PDF
Beneficios de tomar los medicamentos herbarios
PPT
Mobile Reporting Introduction and FAQ v21
PPTX
Café organo gold CATCAFÈ_España
PPTX
hydrosphere and water pollution
PPTX
бюллетень 068
PDF
Relazioni 1
청담동카지노 싸이트 『OX600』。『COM』마작승률 사이트
Aprendizaje autonomo
섯다 싸이트》》》SX797CΟM《《《섯다 생중계
00-00_Trailer_Transtech_editorial[1]
Por qué quiero estudiar
Beneficios de tomar los medicamentos herbarios
Mobile Reporting Introduction and FAQ v21
Café organo gold CATCAFÈ_España
hydrosphere and water pollution
бюллетень 068
Relazioni 1
Ad

Similar to Software Metrics: Paper Presentation (11)

DOC
การพัฒนาเกมคอมพิวเตอร์ 3 มิติ
PPT
04 basic measurement
PDF
Kata:: Open Closed Principle
PDF
PDF
แข่งเขียนโปรแกรม
PDF
เทอม 2 คาบ 11 ตัวอย่าง ผังงาน
PDF
Data analytics for fraud detection 2021 manupat sriboonlue
PDF
(Big One) C Language - 11 เทคนิคอัลกอริทึมแบบ greedy
PDF
การจำลองความคิด
การพัฒนาเกมคอมพิวเตอร์ 3 มิติ
04 basic measurement
Kata:: Open Closed Principle
แข่งเขียนโปรแกรม
เทอม 2 คาบ 11 ตัวอย่าง ผังงาน
Data analytics for fraud detection 2021 manupat sriboonlue
(Big One) C Language - 11 เทคนิคอัลกอริทึมแบบ greedy
การจำลองความคิด
Ad

More from Sitdhibong Laokok (15)

PDF
แม่แบบและแบบบันทึกสำหรับกระบวนการออกแบบรายละเอียดซอฟต์แวร์
PDF
คู่มือประกอบกระบวนการออกแบบรายละเอียดซอฟต์แวร์
PDF
กระบวนการออกแบบรายละเอียดซอฟต์แวร์
PDF
การนิยามและการปรับปรุงกระบวนการออกแบบรายละเอียดซอฟต์แวร์
PDF
ข้อเสนอโครงการ.ระบบจัดการส่งดอกไม้ของฮานะ
PDF
SNA: Information Sharing Behavior
PDF
Seminar Slide: Investigating dependencies in software requirements for change...
PDF
Git installation
PDF
New M-Culture + Elementary WordPress
PDF
WordPress Theme Development Short Manual
PDF
Introduction to WordPress Theme Development
PDF
JAXB: Create, Validate XML Message and Edit XML Schema
PDF
Software Architecture: Test Case Writing
KEY
Introduce to SVN
PDF
พระราชบัญญัติ ว่าด้วยการกระทำความผิดเกี่ยวกับคอมพิวเตอร์ พ.ศ. 2550
แม่แบบและแบบบันทึกสำหรับกระบวนการออกแบบรายละเอียดซอฟต์แวร์
คู่มือประกอบกระบวนการออกแบบรายละเอียดซอฟต์แวร์
กระบวนการออกแบบรายละเอียดซอฟต์แวร์
การนิยามและการปรับปรุงกระบวนการออกแบบรายละเอียดซอฟต์แวร์
ข้อเสนอโครงการ.ระบบจัดการส่งดอกไม้ของฮานะ
SNA: Information Sharing Behavior
Seminar Slide: Investigating dependencies in software requirements for change...
Git installation
New M-Culture + Elementary WordPress
WordPress Theme Development Short Manual
Introduction to WordPress Theme Development
JAXB: Create, Validate XML Message and Edit XML Schema
Software Architecture: Test Case Writing
Introduce to SVN
พระราชบัญญัติ ว่าด้วยการกระทำความผิดเกี่ยวกับคอมพิวเตอร์ พ.ศ. 2550

Software Metrics: Paper Presentation

  • 1. Predicting Faults Using the Complexity of Code Changes Every Battle is Won Before It is Fought Julian Mason - China 12.04.11 S. LaokokP. Chongpakdee N. Uaphoemkiat
  • 2. Published in: IEEE 31st International Conference on Software Engineering, 2009 ICSE Date: 16 ~ 24 May 2009 DOI: 10.1109/ICSE.2009.5070510 Cited by: 77* Citations, IEEE Publication ~ 72 Other publication ~ 4 Patent ~ 1 Ahmed E. Hassan Queen’s University Retrieved at 21 Feb. 2016 at http://ieeexplore.ieee.org/xpl/abstractCitations.jsp?arnumber=5070510
  • 3. If you know the enemy and know yourself, you need not fear the result of a hundred battles. If you know yourself but not the enemy, for every victory gained you will also suffer a defeat. If you know neither the enemy nor yourself, you will succumb in every battle —Sun Tzu, The Art of War
  • 8. “If debugging is the process of removing bugs, then programming must be process of putting them in —Edsger Dijkstra
  • 11. Kristina Alexanderson - Star Wars play in the morning light
  • 13. • Basic Code Change (BCC) Model • Extended Code Change (ECC) Model • File Code Change (FCC) Model
  • 15. Fault Repairing modifications (FR)How to Decide If You Should Repair or By a New Laptop
  • 16. General Maintenance modification (GM)Put your website in the hands of our experts and we can make sure it stays up to date and looking great!
  • 19. ถูกต้องศิรินทร์ใช้งาน ไง รุสโซ ไทม์ติวอ่อนด้อยฮิปโปเพียบแปร้ สเตย์ฉลุยแมชชีนเซ็กซี่ ผิดพลาดนิวส์ หมายปองออสซี่ เบิร์ดบร็อกโคลีเอ็นทรานซ์มาร์จิน ฮ็อตด็อกวานิลลาบ็อกซ์เอ็นทรานซ์ปิโตรเคมี คอนเฟิร์ม โปรเจ็ครุมบ้า ด็อกเตอร์คอร์ปอเรชั่น โกเต็กซ์โอวัลตินคอลเล็กชั่นบริกร เซ็กซี่ดาวน์ออดิทอ เรียมฟิวเจอร์ฟรังก์ ฮ่องเต้สต๊อกโซน แกงค์เวิลด์ฮิบรู ล็อตมอคค่า กุนซือ ตี๋ เจ๊เซลส์โบว์มาม่าแทคติค หล่อฮังก้วยสป็อตเมคอัพพลาซ่า คอลัมนิสต์ไคลแมกซ์ เซลส์แมน รีสอร์ทศากยบุตรแลนด์ นิวไลท์ฟาสต์ฟู้ด พูลเป็นไงโหลยโท่ยสจ๊วตโอเปอเรเตอร์ แอร์ไง เดี้ยงเพียวสมาพันธ์ เดอะเอฟเฟ็กต์รอยัลตี้สตรอว์เบอร์รี หมิง แม็กกาซีนโปรฟิวเจอร์มลภาวะ มาราธอน หล่อฮังก้วยแลนด์พาร์ซานตาคลอส ซีนฟยอร์ด ซังเต เปราะบางเครปปูอัด กัมมันตะราชานุญาตอัลไซเม อร์กัมมันตะมอคคา ปิยมิตรแฟล็ตภควัมปติพาสต้า เมาท์ แอโรบิคโปรเจ็ค เซ็นเซอร์มวลชนคอรัปชัน ฮิปฮอปศึกษาศาสตร์แครอท ร็อคอันเดอร์เช็งเม้ง สงบสุขตู้เซฟสหัชญาณศิลปากร ซานตาคลอสวานิลา ฮิตซาร์ดีนตุ๊กตุ๊กแอสเตอร์ ซีเนียร์ คาสิโน มัฟฟิน ซีดานอินดอร์ แอลมอนด์สหรัฐแฮนด์ซูฮกเพรียวบาง ฟลุควานิลา ภคันทลาพาธคอลเล็กชั่นเรต เพนตากอนเบอร์รี เพนกวิน เวิลด์ วิทย์เยอร์บีร่ามิลค์ปัจฉิม นิเทศ พิซซ่าแหม็บปัจเจกชนโปรเจ็กต์คอรัปชั่น โรลออนเฝอเวิร์กช็อปไคลแม็กซ์ มัฟฟิน เฟรมช็อตแอด มิสชันเพียบแปร้ ชนะเลิศ พาร์แชมปิยอง เอสเปรสโซบร็อกโคลี สตรอว์เบอร์รีโมหจริตฟิวเจอร์ปูอัด เบิร์น อุปทานเพนกวินจ๊อกกี้ไคลแมกซ์คองเกรส ลิมิต รีไซเคิลไคลแมกซ์ควิก ซีรีส์สไตรค์บาบูนทาวน์
  • 20. w f pk เช่น 103 0.12875 ได้แก่ 91 0.11375 และ 83 0.10375 เป็น 67 0.08375 F=800 1
  • 21. w f
  • 22. w f pk เช่น 103 0.12875 ได้แก่ 91 0.11375 และ 83 0.10375 เป็น 67 0.08375 1
  • 23. W f pk เช่น 103 0.12875 ได้แก่ 200 0.25000 และ 83 0.10375 เป็น 67 0.08375 1
  • 24. W f pk เช่น 407 0.50875 ได้แก่ 171 0.21375 และ 31 0.03875 เป็น 201 0.25125 1
  • 26. Hn(P) = nX k=1 (pk · log2 pk) where pk > 0 8k 2 {1, 2, 3, ..., n} nX k=1 pk = 1
  • 28. Basic
  • 29. p(fileA) = 1 10 = 0.1 p(fileB) = 1 10 = 0.1 p(fileC) = 3 10 = 0.3 p(fileD) = 5 10 = 0.5 X pi = 1
  • 30. Files as a Unit of Measurement
  • 36. H(P) = 1 Max Entropy for Distribution Hn(P) = 1 log2n Hn(P) = 1 log2n nX k=1 (pk · log2 pk) = nX k=1 (pk · lognpk)
  • 37. File
  • 40. History Complexity Period Factor (HCPF) HCPFi(j) = ( cij · Hi, j 2 Fi 0 otherwise • HCPF1 : cij = 1 • HCPF2 : cij = pk • HCPF3 : cij = 1 |Fi|
  • 43. History Complexity Metric (HCM) HCM{a,..,b}(j) = X i2{a,..,b} HCPFi(j)
  • 44. History Complexity Metric (HCM) HCM{a,..,b}(j) = X i2{a,..,b} HCPFi(j) HCM{a,..,b}(S) = X i2{a,..,b} HCPFi(S)
  • 46. HCM{a,..,b}(j) = X i2{a,..,b} e ·(Ti Current T ime) HCPF1 i (j) History Complexity Metric (HCM1d)
  • 47. History Complexity Metric (HCM) HCM: HCM1s, HCM2s, HCM3s, HCM1d
  • 49. • Modifications Vs Faults • Modifications Vs Entropy • Faults Vs. Entropy
  • 50. Application name Application Type Start Date Subsystem Count (low level directories) Prog. Lang. NetBSD OS March 1993 235 C FreeBSD OS June 1993 152 C OpenBSD OS Oct 1995 265 C Postgres DBMS July 1996 280 C KDE Windowing System April 1997 108 C++ KOffice Productivity Suite April 1998 158 C++
  • 51. y = 0 + 1x Statistical Linear Regression (SLR Model)dependent independent
  • 52. Modifications vs Faults Modifications vs Entropy Faults vs Entropy
  • 53. H0 : µ(eA,i eB,i) = 0 H1 : µ(eA,i eB,i) 6= 0 ↵ = 0.05 Student’s T-test
  • 60. Mod. < Faults < HCM
  • 62. A. Defects are not mapped to code B. Faults fixed
  • 63. Q & A