一些類型的需求依賴于基礎架構,就像錯誤!未找到引用源。錯誤!未找到引用源。中“錯誤!未找到引用源?!爸杏懻摰?。需求模式使我們有機會確定一種類型的需求所依賴的基礎架構,而不必為某一個需求考慮。而且我們可以進一步討論每一個基礎架構——也就是當為系統(tǒng)需要的基礎架構定義需求時必須記住的。但是它不可能非常詳細,也不可能針對實際的需求,因為每個組織,每個系統(tǒng)的不同要求,會使需求差別極大。為了清楚起見,它們被稱作基礎架構概述。
不能指望讓每一個需求模式描述它需要的任何基礎架構,這個解釋的責任被給予了模式所屬的領域。這是因為每個基礎架構一般都會被領域中的多個模式使用。為了避免重復,每種基礎架構只在一個領域中描述。本書中的每一章的模式中包含一節(jié)關于該領域的基礎架構。本書討論了三個基礎架構:信息存儲(錯誤!未找到引用源。錯誤!未找到引用源。),用戶界面,以及報表(都在錯誤!未找到引用源。錯誤!未找到引用源。)。這幾個關鍵概念的相互關系如圖所示。

Domain: 領域
Infrastructure: 基礎架構
Requirement Pattern: 需求模式
Depends Upon: 依賴
圖 3‑2領域,需求模式,以及基礎架構之間的關系
需求模式可以自由使用其他領域中的基礎架構。但是避免相互依賴,所以如果一個領域依賴另一個領域,那么后一個領域就不應該依賴前一個領域——如果可以避免的話。一個基礎架構也可以依賴另一個基礎架構。
基礎架構概述應該說些什么呢?它的角色是指導和建議如何定義一個特定系統(tǒng)的基礎架構的需求,提出需求需要覆蓋的主題。最少,它應該陳述系統(tǒng)需要基礎架構提供什么:它存在的目的是什么,它的主要功能。有些問題有很明顯的替代解決方案,概述應該避免做判斷。
每個基礎架構概述分成下列小節(jié):
1. 目的解釋基礎架構存在的理由,以及扮演的角色。
2. 調(diào)用需求關于系統(tǒng)與基礎架構如何交互的需求定義的建議——基礎架構必須提供這些功能給系統(tǒng)——以及系統(tǒng)期望的其他的能力(比如訪問控制)。需要的功能可以被看作是基礎架構提供給調(diào)用者的接口。
3. 實現(xiàn)需求為了使基礎架構站得住腳所需要的一些特性的想法(例如,查詢,維護和配置功能)。這些是比較簡短的,只是在定義基礎架構時提醒一些需要考慮的可能的主要功能域。
例如,對于報表基礎架構,調(diào)用需求可能是很簡單:只是讓系統(tǒng)請求運行一個選定的報表的功能。而另一方面,實現(xiàn)需求則相當多,包括交付報告給用戶的各種方式的復雜性,其他請求報告的方式,設計報告,等等。(這些主題在錯誤!未找到引用源。錯誤!未找到引用源。進一步討論。)以建造房屋類推,我們需要的基礎架構之一是電力供應。這種情況下,調(diào)用需求是每個屋子需要多少插座,實現(xiàn)需求處理的是看不見的部分,像是與電網(wǎng)的連線,遵守建筑質(zhì)量法
不能指望讓每一個需求模式描述它需要的任何基礎架構,這個解釋的責任被給予了模式所屬的領域。這是因為每個基礎架構一般都會被領域中的多個模式使用。為了避免重復,每種基礎架構只在一個領域中描述。本書中的每一章的模式中包含一節(jié)關于該領域的基礎架構。本書討論了三個基礎架構:信息存儲(錯誤!未找到引用源。錯誤!未找到引用源。),用戶界面,以及報表(都在錯誤!未找到引用源。錯誤!未找到引用源。)。這幾個關鍵概念的相互關系如圖所示。

Domain: 領域
Infrastructure: 基礎架構
Requirement Pattern: 需求模式
Depends Upon: 依賴
圖 3‑2領域,需求模式,以及基礎架構之間的關系
需求模式可以自由使用其他領域中的基礎架構。但是避免相互依賴,所以如果一個領域依賴另一個領域,那么后一個領域就不應該依賴前一個領域——如果可以避免的話。一個基礎架構也可以依賴另一個基礎架構。
基礎架構概述應該說些什么呢?它的角色是指導和建議如何定義一個特定系統(tǒng)的基礎架構的需求,提出需求需要覆蓋的主題。最少,它應該陳述系統(tǒng)需要基礎架構提供什么:它存在的目的是什么,它的主要功能。有些問題有很明顯的替代解決方案,概述應該避免做判斷。
每個基礎架構概述分成下列小節(jié):
1. 目的解釋基礎架構存在的理由,以及扮演的角色。
2. 調(diào)用需求關于系統(tǒng)與基礎架構如何交互的需求定義的建議——基礎架構必須提供這些功能給系統(tǒng)——以及系統(tǒng)期望的其他的能力(比如訪問控制)。需要的功能可以被看作是基礎架構提供給調(diào)用者的接口。
3. 實現(xiàn)需求為了使基礎架構站得住腳所需要的一些特性的想法(例如,查詢,維護和配置功能)。這些是比較簡短的,只是在定義基礎架構時提醒一些需要考慮的可能的主要功能域。
例如,對于報表基礎架構,調(diào)用需求可能是很簡單:只是讓系統(tǒng)請求運行一個選定的報表的功能。而另一方面,實現(xiàn)需求則相當多,包括交付報告給用戶的各種方式的復雜性,其他請求報告的方式,設計報告,等等。(這些主題在錯誤!未找到引用源。錯誤!未找到引用源。進一步討論。)以建造房屋類推,我們需要的基礎架構之一是電力供應。這種情況下,調(diào)用需求是每個屋子需要多少插座,實現(xiàn)需求處理的是看不見的部分,像是與電網(wǎng)的連線,遵守建筑質(zhì)量法

