跳到主要內容區

【資訊工程學系】專題演講-軟體產業升級的利器:敏捷方法

【資訊工程學系】專題演講

軟體產業升級的利器--敏捷方法

資訊工程學系請到中央大學資工系陳振炎教授,針對軟體產業升級開發做專題演講,如何敏捷開發設計歷程,程序上可以如何修正改進。

學子出國打工換宿、遊學,出走的情形暴露台灣產業未升級、員工薪資低的窘境,各行業都須升級了。以軟體業而言,傳統各自負責、拼命加班、求快交差、不求品質的工作文化已落伍。過量文件導致文件與程式不吻合,也屬不智。陳教授說:套句Martin Fowler的話;前者是No Methodology,後者是Too Much Methodology。正確做法是: 採用敏捷方法 (Agile Method) 強化團隊的面對面溝通,共同負責,文件減量,流程敏捷,因應快速變動的環境,享受高品質帶來的高利潤。

敏捷方法重點是:在開發流程中安排多個溝通週期 (communication cycles),於開發中不斷檢查或測試 (統稱test) 開發內容,發現不對就立刻修正,這叫測試帶動的開發 (test-driven development, TDD),可見綿密溝通是敏捷方法的特色。為獲軟體精品,myAgile在XP之上增加三道工序:1) 資料結構設計、2) 演算法設計、及3) 逆向工程工具。 1) 資料結構設計是 class 的核心。XP在CRC會議後得到class interface (即Java interface),於class interface之上設計高階的資料結構 ,可使 class 內的 method洗鍊簡約,陳教授提到,要撰寫高抽象層次的標頭 來註解class interface 及 method interface以增可讀性。2) 演算法設計則採用英詞中句,來分層撰寫method的虛擬碼 (pseudo-code),最下層的虛擬碼就是演算法,這使開發者思路流暢,易於開發,更易於維修 (嚴格說,程式是不斷演化(evolve),即不斷維修的)。另外,3) 逆向工程工具可用於CRC會議後任何時間,使開發者隨時可自動取得保證與程式一致的設計圖,又可免去耗時耗工的繪圖之苦。

陳教授逐一舉例說明上軟體開發上便捷的方法,希望讓學生有更多發想,在學習的路上更能舉一反三。

瀏覽數: