yes,不想說太多股耽,讀完這篇文章給我一個(gè)感覺根盒,這個(gè)是要去評(píng)icse best paper的節(jié)奏吧。思路清晰物蝙,嚴(yán)謹(jǐn)炎滞,細(xì)節(jié)到位,工作有意義充分诬乞。
思路簡(jiǎn)單粗暴册赛,將Machine Learning的方法應(yīng)用到Software Engineering的tasks中,經(jīng)過數(shù)據(jù)集收集震嫉,(特征提壬瘛),特征選擇票堵,訓(xùn)練扼睬,測(cè)試等°彩疲可ML到SE中的套路一般不這么走又如何走呢窗宇。關(guān)鍵是,做的工作有意義瞳浦,本身也創(chuàng)新担映。本文我覺得工作就做的很好。
我要贊美的是叫潦,這又是一個(gè)比較好的做一整個(gè)完整的研究然后陸續(xù)圍繞著這個(gè)課題根據(jù)研究的深入研究成果逐漸發(fā)表出來的好例子蝇完,就像之前看文章提到的將生物和SE交叉起來研究各種metric的應(yīng)用一個(gè)整體一樣。我很欣賞這樣的,我也希望我將來能做整體的有意義的研究短蜕,并逐漸把它研究透徹氢架。該解決的技術(shù)問題解決掉,該做出來的東西搞出來朋魔。這就是我的希望岖研。
話說回來,本文致力于研究coder在代碼中將相應(yīng)的key runtime info log下來的log行為警检。雄心壯志是能通過已有的log數(shù)據(jù)和unlog數(shù)據(jù)來預(yù)測(cè)提出suggestive infomation給developer 告訴他where to log and what to log孙援。當(dāng)前文章是致力于搞定where to log,what to log估計(jì)是要做出來投下一年的icse吧扇雕,好可怕拓售。當(dāng)然,這里where to log并不是指出來說具體去哪兒log镶奉,按照一個(gè)trick础淤,其實(shí)就是對(duì)你給定的一段code snippet,它給出need to log還是not log這樣的分類lable而已哨苛,這就徹底轉(zhuǎn)化成了classification 問題了鸽凶。做起來思路簡(jiǎn)單,拿到一些已有的log 和unlog instances建峭,抽取出features玻侥,訓(xùn)練測(cè)試。那這里迹缀,作者沒有關(guān)注所有的log的instances使碾,而是只關(guān)注了2類重要的instances,一類是exception祝懂,一類是return value-check票摇。然后,features提取的各個(gè)都比較給力砚蓬,有source code本身當(dāng)文本特征的矢门,code的語法和語義特征的(文章中有個(gè)圖很清楚的描述了這些特征),文章對(duì)大量的特征還做了個(gè)基本的詞頻過濾最后用了IG來做特征選擇灰蛙,用了各種分類算法分別在微軟的2個(gè)project和幾個(gè)開源項(xiàng)目上做測(cè)試祟剔,效果后。最后將其模型搞成了一個(gè)log adviser的工具摩梧,通過一個(gè)study case物延,很有效的證實(shí)了其工具的有效性。
整體來說仅父,我覺得這篇文章很贊叛薯!
以上浑吟!
zou@Home
2015-07-19