作業: Model Subsystem Dependencies
This task extends the traditional RUP subsystem design with details specific to a SOA solution, especially where subsystems were identified from business analysis models. Once we make the transition from the business domain to the IT domain, we map identified functional areas defined by the former to subsystems, their IT counterparts.
目的

To link the business models to their IT counterparts we perform the following:

  • Identify the relationship between Functional Areas (概念: Functional Area Analysis) in the 構件: Business Analysis Model to corresponding 構件: 設計子系統.
  • To define the behaviors specified in the subsystem's interfaces in terms of collaborations of contained design elements and external subsystems/interfaces.
  • To document the internal structure of the subsystem, in terms of 構件: Service Components that realize the Subsystem.
  • To define realizations between the subsystem's interfaces and contained components and classes.
  • To determine the dependencies upon other subsystems.
關係
主要說明

We begin with the determination and documentation of the dependencies between subsystems that correspond to the functional areas that have been identified during 作業: Functional Area Analysis. Usually a functional area will correspond to a single subsystem; that is, the simplifying assumption that has been found to be accurate in many, if not most cases. If we decide to map a functional area to several subsystems, that can also be feasible and valid; but usually means the domain decomposition did not go deep enough and the functional areas are not granular enough.

步驟
說明子系統相依性
目的 產生子系統所依賴之介面的文件。 

當子系統所包含的元素使用另一個子系統所包含之元素的行為時,會在含括子系統之間建立相依性。為了增加重複使用,減少維護相依性,我們想既不透過對於子系統本身的相依性,也不透過對於子系統所包含之元素的相依性,而是透過對於子系統特定介面的相依性來表現這一點。

這有兩方面的原因:

  • 只要兩個模型元素(包括子系統)提供相同的行為,我們想要能夠用一個模型元素來替代另一個模型元素。我們透過介面來指定必要的行為,因此,一個模型元素對於另一個模型元素的任何行為需求,都應該透過介面來表現。
  • 我們想要讓設計者可以完全自由設計子系統的內部行為,只要能提供正確的外部行為即可。如果子系統中的模型元素參照另一個子系統中的模型元素,設計者就無法自由移除這個模型元素,也無法將這個模型元素的行為自由重新分配給其他元素。結果系統會變成更加脆弱。

在建立相依性時,請確定在子系統所包含的模型元素和其他子系統所包含的模型元素之間,沒有直接相依性或關聯。另外,也請確定在子系統和介面之間,沒有循環相依性;子系統不能既實現又依賴同一個介面。

在子系統之間的相依性,以及在子系統和套件之間的相依性,都可以直接依照下列方式來繪製。當如此顯示時,相依性會指出一個子系統(如發票管理)直接相依於另一個子系統(付款排程管理)。


圖解說明詳見隨附的文字。

使用直接相依性的子系統分層範例

當有可能用一個子系統來替代另一個子系統(它們有相同的介面)時,相依性可以畫到子系統所實現的介面,而不是畫到子系統本身。這會使任何其他模型元素(子系統或類別)能夠實現要用的相同介面。使用介面相依性可讓您利用可替換的設計元素來設計彈性的架構。


圖解說明詳見隨附的文字。

使用介面相依性的子系統分層範例

 

內容
多次出現的項目
事件驅動
持續進行中
選用
規劃
可重複的
詳細資訊