發表文章

目前顯示的是 六月, 2009的文章

分、時、天

今天在研討會中聽到一個不錯的比喻。軟體工程度量在國內一直很難推動,這或許與國內對於工程量化的觀念比較不足有關係。這一點可以日常生活中的用語窺得一二,
西方人說『wait a minute』,以『分』為單位 台灣人稱火車慢了為『慢點』,以『小時』為單位 印度人則說『等天』,以『天』為單位
這讓我想起PSP (personal software process)方法要求以為單位來記錄工時,但對於我們的工程師的確是很大的壓力。以我們逢甲資訊處為例,工時的紀錄幾乎都是以小時為單位。這之間的關聯是否為巧合?有趣。

憑空產生的程式碼

最近學生報告了一篇有趣的論文。研究團隊開發了一個系統 CodeConjurer(程式碼魔術師),說的是可以憑空產生的程式碼。你會想,這怎麼可能?

它的原理很簡單,首先各位都知道 google 搜尋引擎可以去找全世界網頁的資料,其實還有許多是針對程式碼的搜尋引擎。例如 Merobase。研究團隊利用 Merobase 到一些 opensouce 的地方(例如 SourceForge)找程式碼,程式設計者只要寫出你想要用的物件的功能(也就是定義他的介面),CodeConjurer 就幫你找出一些可能的軟體元件,你可以進去看裡面的程式碼檢驗是否這就是你要的元件,如果是的話,可以馬上下載並整合到你的專案中。這無疑的可以幫你節省一些時間。
當然,光是透過介面的定義就認定該原始碼就是你要的可能會有些風險。為了進行 semantic check, CodeConjurer 也與 JUnit 作整合,開發者在使用這些元件前應該先透過 JUnit 確認元件的 semantics。
如果這個東西真的可行的話,第一個要擔心可能是老師們,因為抄襲的問題可能會越來越嚴重,學生可能越來越不寫程式。但從軟體工程的角度來看,這不失為是一種 code reuse 的發展趨勢。在防堵學生抄襲的同時,老師們也需要教導如何在有限的時間內套用正確、合適的元件來增加軟體開發的效率。