Intelligent Database Systems Lab 國立雲林科技大學 National Yunlin University of Science and Technology Mining Software History to Improve Software Maintenance Quality Presenter : Li Shu-Ya Authors : 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? Update Bug? Upate Bug? Update Alex 專長: 把 bug 越 De 越多 … 專長: Debug Oh! Software Regressions?! Oh! Software Regressions?! I must improve it! I must improve it! A story in Micosoft … King of Garbage 我最會 Debug 了 ( 叫我 king..) 我最會 Debug 了 ( 叫我 king..) King of Destruction 我是破壞王 ( 我也是 king.. 怎樣 ~) 我是破壞王 ( 我也是 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 tracking databases (BTDs) Check-in IDs in VCS Relate BCT Bugs check-ins Developers Binaries source files functions code complexity Coupling OO metrics MaX
Intelligent Database Systems Lab N.Y.U.S.T. I. M. Experiments 7 the best indicators of regression risk source files affected by the fix All functions change a new functionality
Intelligent Database Systems Lab N.Y.U.S.T. I. M. Conclusion This model is useful for risk prediction 年 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