yes,不想說太多,讀完這篇文章給我一個感覺,這個是要去評icse best paper的節奏吧。思路清晰,嚴謹,細節到位,工作有意義充分。
思路簡單粗暴,將Machine Learning的方法應用到Software Engineering的tasks中,經過數據集收集,(特征提取),特征選擇,訓練,測試等。可ML到SE中的套路一般不這么走又如何走呢。關鍵是,做的工作有意義,本身也創新。本文我覺得工作就做的很好。
我要贊美的是,這又是一個比較好的做一整個完整的研究然后陸續圍繞著這個課題根據研究的深入研究成果逐漸發表出來的好例子,就像之前看文章提到的將生物和SE交叉起來研究各種metric的應用一個整體一樣。我很欣賞這樣的,我也希望我將來能做整體的有意義的研究,并逐漸把它研究透徹。該解決的技術問題解決掉,該做出來的東西搞出來。這就是我的希望。
話說回來,本文致力于研究coder在代碼中將相應的key runtime info log下來的log行為。雄心壯志是能通過已有的log數據和unlog數據來預測提出suggestive infomation給developer 告訴他where to log and what to log。當前文章是致力于搞定where to log,what to log估計是要做出來投下一年的icse吧,好可怕。當然,這里where to log并不是指出來說具體去哪兒log,按照一個trick,其實就是對你給定的一段code snippet,它給出need to log還是not log這樣的分類lable而已,這就徹底轉化成了classification 問題了。做起來思路簡單,拿到一些已有的log 和unlog instances,抽取出features,訓練測試。那這里,作者沒有關注所有的log的instances,而是只關注了2類重要的instances,一類是exception,一類是return value-check。然后,features提取的各個都比較給力,有source code本身當文本特征的,code的語法和語義特征的(文章中有個圖很清楚的描述了這些特征),文章對大量的特征還做了個基本的詞頻過濾最后用了IG來做特征選擇,用了各種分類算法分別在微軟的2個project和幾個開源項目上做測試,效果后。最后將其模型搞成了一個log adviser的工具,通過一個study case,很有效的證實了其工具的有效性。
整體來說,我覺得這篇文章很贊!
以上!
zou@Home
2015-07-19