2007年8月13日 星期一

D02 垂直設計有兩層──需求邏輯與動作邏輯

需求的收集是針對使用者對於系統的要求,這些都是使用者在商業領域裡的要求;作架構設計的目的是根據使用者的功能需求,去分析並設計出符合功能需求的操作流程與結果的對應程式。當然,架構設計時可以決定所有的程式都在這個層次實作,但是這樣一來所有的程式碼都與這次系統的需求綁在一起,未來需要拆離時又會是一件浩大的工程。

抽取共用的部分是設計者都有的習慣,從最底層開始是把共用程式碼抽出成共用API,同時將一些特定意義的動作封裝成元件,元件再經由系統的設計使用在Use Case裡,最後所有的Use Case集合成為系統。在系統每一小格裡的程式,在使用的層面上同樣有很多層次需要設計。

對一個公司而言,元件不是針對特定系統設計而應該是通用型態的,平時應受到管理並且可以很快地查詢到所有元件的定義。在設計系統的時候根據功能需求的內容挑選適用的元件,如果應該屬於元件的動作而找不到的話,就應該依照通用原則定義元件的Interface並在這個階段作細部設計。

無論是元件還是API,如果只是對應到系統的商業領域而沒有辦法做成其他系統通用的時候,他們應該存在於通用元件庫之上的系統元件庫,未來設計要應用在這個商業領域的系統都可以優先在這裡尋找看有沒有更適用的元件。

這個概念的垂直架構大略如圖所示,最上面的專案是之前架構設計階段的產出,使用時上層可使用下方任一層裡的元件或API,下層則不得使用上面層次的物件以免造成迴圈式的關聯。

沒有留言:

張貼留言