無論是企業運作或是IT技術,其變化的週期愈來愈短,在這種現況中,許多冗長、龐大、複雜的古典軟體開發程序(software development process)逐漸沒落,取而代之的是能夠提供短小精簡的開發程序,而「特徵驅動開發」(Feature-Driven Development,FDD)正打著相同的旗號,標榜為變化迅速的環境所生。
簡單來說,特徵驅動開發一開始會先花約一成的專案時間,建構出整體的領域模式雛型;接著也是花費大約一成左右的專案時間進行跟「特徵」(feature)有關的計畫;最後八成的專案時間,以每兩週為一個循環,發展出一系列以特徵為主的設計與編碼。領域模式雛型的模樣,長得就像前述所提及的現金銷售期間之類別結構。
接下來,我想討論下列兩個問題:
1.什麼是「特徵」?
2.特徵驅動開發的開發程序為何?
特徵
什麼是「特徵」?特徵是一個對客戶有價值的功能(a client-values function),並且它可以在兩週、甚至少於兩週的時間內被實作出來。特徵是一個極小的建構單元(building block),使用者用一句簡短的話就可以表達出來。Peter Coad甚至對這句描繪特徵的話,設計了一個樣版,如圖 1 所示。
|
|
| 圖1:特徵樣版 |
文句中所指的物件,就是前面提到的時間片段、角色、人(組織)地物、敘述這幾種物件。Peter Coad在書中舉了一個套用這個句型的例子——計算銷售總和(calculate the total of a sale)。
由於,特徵是個極小的功能,並且是由使用者的角度為出發點,尋求使用者能夠認知的字句。因此,不會出現像「建立一個銷售交易系統」這樣的特徵短句,因為這個功能太大了;也不會出現「建立一個用例物件來控制購物流程」的特徵短句,因為在使用者的認知中,可能沒有「用例」這樣的字彙。
開發程序
簡單的開發程序,不僅可以讓團隊成員專注在產出上,而非繁雜的執行步驟上,同時也讓新進的團隊成員可以迅速融入專案。因此,特徵驅動開發只有簡單的五個步驟。請看圖 2,這是Peter Coad書上的圖,我重新繪製的。
|
|
| 圖2:特徵驅動開發的五個步驟 |
在我看來,特徵驅動開發的五個步驟化成白話文來說的話,其實就是下述五個步驟:
1. 建立結構 —— 參考前述的四色原型以及領域特定元件的類別結構,建構出整體的模式雛型,產出類別圖。這個步驟初始約花費專案10%的時間,後面陸續還會花費約4%的時間。
2. 列出特徵 —— 使用前述的特徵短句寫出詳細的特徵,同時還要訂出每個特徵的優先順序及重要性,產出特徵清單。這個步驟初始約花費專案4%的時間,後面陸續還會花費約1%的時間。
3. 規劃進度 —— 依據特徵清單產出專案的細部時程表。這個步驟初始約花費專案2%的時間,後面陸續還會花費約2%的時間。
4. 設計行為 —— 設計出動態行為,產出循序圖。此處的「設計行為」與接續的「按圖編碼」步驟,兩個步驟組成一個循環(iteration),專案約莫77%的時間都花費在一個又一個的循環上,每次循環大約花費兩週時間。
5. 按圖編碼 —— 依據上述的產出編寫程式碼,以及進行測試。
以我輔導臺灣專案的經驗來說,最難的是在第一和第四步驟,特別是在第一步驟,一開始就要建構出整體的領域模式,即便只是雛型,都需要對建構領域模式相當有經驗的成員才做的出來,這個步驟也通常是我輔導專案的重點。
至於第四步驟,則相對於第一步驟,如果第一步驟有高品質的產出的話,第四步驟的產出也會容易些,同時品質也會優些。所以,這兩個步驟的關鍵都在第一步驟所產出的領域模式,當然這也是Peter Coad書中花了九成的篇幅用力說明的部份。
結語
老實說,如果以使用的角度來看,直接讀Peter Coad《Object Models: Strategies, Patterns, and Applications》書中的交易樣式,可能會比較容易理解,上手所需要的時間也比較短。因為相較之下,我個人是覺得《Java Modeling In Color With UML: Enterprise Components and Process》書中四色原型的概念比較抽象,需要更多的時間理解、消化與練習,才能在實務上派上用場。
不過,話又說回來,書中所提到的61組領域特定元件其實非常值得參考,不妨將它們視為參考資料,以後遇到相同領域時,可以回過頭來查看專家的建議。
至於特徵驅動開發,除了「特徵」這個辭彙比較新鮮外,其實整體的開發程序並沒有獨特的創新處。此外,我個人是認為,任何一套開發程序都是聽起來簡單,但是執行起來問題多多呢!
最後,我到底買了這本書沒?本來打算代購了,也問好價錢了,結果UML互助會的夥伴來信告訴我他服務的機構有這本書,可以幫我代借,一個月後歸還即可。真是好消息,我心中大喜,趕忙請他代借,不僅省了1000大洋,更省了大半個月的國際郵寄時間。﹝編按:沒時間讀UML/OOAD書之挑讀筆記的下一本書,邱郁惠將介紹Scott W. Ambler在2005年出版的《The Elements of UML 2.0 Style》,本書詳細介紹了UML 2的13款圖,邱郁惠認為開發團隊共同讀完本書,能統一溝通語言,可以大量減少開會時間,敬請期待。)
作者簡介:
邱郁惠
研究OOAD、UML、MDA十餘年,經歷過顧問、專案、教學及寫作工作。離職後創辦UML Blog推廣UML,組織《UML互助會》社群定期舉辦軟體技術講座,出版多本UML專業書籍與電子書。目前擁有OCUP/UML三級認證、PMP認證。
相關連結─
沒時間讀 UML/OOAD 書之挑讀筆記 第1回 四色原型(1)
沒時間讀 UML/OOAD 書之挑讀筆記 第2回 四色原型(2)
沒時間讀 UML/OOAD 書之挑讀筆記 第3回 四色原型(3)
沒時間讀 UML/OOAD 書之挑讀筆記 第4回 四色原型(4)
熱門新聞
2025-12-12
2025-12-16
2025-12-17
2025-12-15
2025-12-15
2025-12-16

