Feature driven and Use case driven development

設計軟體事先處理整體系統輪廓,將大系統切成多個較小的問題,再逐一反覆處理每個小問題直到完成整個系統。

Feature Driven Development 及 Use Case Driven Development 是「將系統切成小問題再逐一反覆處理」的方式。

Feature Driven Development

以 feature 為主軸,以功能為切入角度。

挑出特定功能,規劃、分析及開發該功能直到完成。

看系統的角度比較 granular。

適合功能較個別獨立、未密切相連的系統。

Use Case Driven Development

以 use case diagram 為主軸,以 scenario(使用情境)及流程為切入角度。從 use diagram 拿出一個個 use case 做,挑出 use case 的 scenraio,寫 code 支援該 scenario,直到完成 use case 的所有 scenario 以及完成所有 use case。

看系統的角度比較整體。

適合由一堆流程構成的系統,例如差勤請假系統。

碎念時間

實際上開發軟體會混合多種方式,例如從 use case driven 開始,接著在 use case 挑出小功能進行設計(這是 feature driven),最後在實作階段用 test driven 來思考如何 implement。

開發軟體的方式很多,各有其適用之所在,重點不在於哪個方法最好,而是哪些方法的搭配使用能較好的解決所面對的問題。