Mining Software History to Improve Software Maintenance Quality
description
Transcript of Mining Software History to Improve Software Maintenance Quality
Intelligent Database Systems Lab
國立雲林科技大學National Yunlin University of Science and Technology
Mining Software History to Improve Software Maintenance Quality
Presenter : Li Shu-YaAuthors : Alexander Tarvo, Microsoft
Software, 2009
Intelligent Database Systems Lab
N.Y.U.S.T.
I. M.
2
Outline
Motivation Objective Methodology Experiments and Results Conclusion Comments
Intelligent Database Systems Lab
N.Y.U.S.T.
I. M.Motivation
3
Bug? UpdateBug? Update
Bug? UpateBug? UpdateBug? UpdateBug? Update
Bug? UpdateBug? Update
Alex
專長:把 bug 越 De 越多…專長: Debug
Oh! SoftwareRegressions?!
I must improve it!
A story in Micosoft …
King of Garbage
我最會 Debug 了(叫我 king..)
King of Destruction
我是破壞王(我也是 king..怎樣~)
Intelligent Database Systems Lab
N.Y.U.S.T.
I. M.Objectives
The best method to avoid regressions’ consequences extensive testing of all fixes.
Need a tool or a method that can predict the amount of risk for each fix.
4
Intelligent Database Systems Lab
N.Y.U.S.T.
I. M.Methodology – System Overview
5
Binary Change Tracer (BCT)
Intelligent Database Systems Lab
N.Y.U.S.T.
I. M.Binary Change Tracer (BCT)
6
1. Dividing the binary into components.2. Extracting the history of code changes
3. Associating code changes with bugs. 4. Storing the extracted data
Bug trackingdatabases
(BTDs)
Check-in IDs in VCS
Relate
BCT
Bugscheck-insDevelopersBinariessource filesfunctions
code complexityCouplingOO metrics
MaX
Intelligent Database Systems Lab
N.Y.U.S.T.
I. M.Experiments
7
the best indicators of regression risksource files affected by the fixAll functions changea new functionality
Intelligent Database Systems Lab
N.Y.U.S.T.
I. M.Conclusion
This model is useful for risk prediction.
82009 年 Micosoft 最佳員工獎
還好有這個系統讓我沒有被裁員
Intelligent Database Systems Lab
N.Y.U.S.T.
I. M.Comments
Advantage It really improve software maintenance quality
Drawback …
Application Software Maintenance
9