2008年2月25日 星期一

L09 系統軟體架構的層次(1)──Package、Class與Method

在我設計的系統裡,軟體架構的堆疊分為三層,由下而上分別是Package、Class、Method;設計的時候是由下而上一層一層堆積起來的。如果設計上面層次時發現要改變下面層次的結構,這多少反應出下層原先的設計帶有缺失。

Package的設計上,我使用Module的概念加以區隔。把系統比喻成公司的話,Module就等於公司組織的部門,每個Module都有自己應該負責的工作範圍。Use Case藉由數個Module的分工來完成,而Module為Use Case而定義的Interface Method集合,就是它應該負責的全部工作。(Component的設計概念與Module相同)

Class的設計是Package裡的物件佈置,在公司部門裡的人員同樣需要分工,有經理負責管理,有人要負責對外窗口,然後每個人都負責不同的業務項目。在Class的設計上也是如此,依不同的目的放置不同功用的Class。Package與Class放置的時候都同時要考慮Interface與繼承的特性。

Method是唯一為如何做事情而設計的,不管是流程控制或是系統動作都是在這裡面完成;我依照這個方式把方法分工為流程與動作兩類,努力不讓一個Method混用這兩類的意義以避免難以拆解與改變。這到SD的章節時再作詳細的說明。

只要依序執行過功能所需要的動作方法就一定能完成它,但是藉由Package、Class的佈置,讓各個方法依特性集合起來,在應付不同需要的時候可以提供群組化後的重用單位(元件化)或是快速地更改進行流程(需求變更),這是彈性設計的主要目的。

沒有留言:

張貼留言