Chapter 2 軟件體系結構建模
1. 軟件體系結構的模型:
結構模型、框架模型、動態模型、過程模型、功能模型
●最常用的是結構模型和動態模型。
2. “4+1”視圖模型:
(1)邏輯視圖:
●主要支持系統的功能需求,即系統提供給最終用戶的服務。在邏輯視圖中,系統分解成一系列的功能抽象,這些抽象主要來自問題領域。
●在面向對象技術中,通過抽象、封裝和繼承,可以用對象模型來代表邏輯視圖,用類圖來描述邏輯視圖。
(2)開發視圖:
●主要側重於軟件模塊的組織和管理。軟件可通過程序庫或子系統進行組織,這樣對於一個子系統就可以由不同的人進行開發。開發視圖要考慮軟件內部的需求,如軟件開發的容易性、軟件的重用和軟件的通用性,要充分考慮由於具體開發工具的不同而帶來的侷限性。
●開發視圖通過系統輸入輸出關係的模型圖和子系統圖來描述。
●最好採用4-6層子系統,而且每個子系統僅僅能與同層或更底層的子系統通信,這樣可使每個層次的接口既完備又精煉,避免了各個模塊之間很複雜的依賴關係。對於各個層次,層次越低,通用性越強,需求變動時所作的改動最小。
(3)進程視圖:
●側重於系統的運行特性,主要關注一些非功能性的需求,例如系統的性能和可用性。進程視圖強調併發性、分佈性、系統集成性和容錯能力,以及從邏輯視圖中的主要抽象如何適合進程結構。它也定義邏輯視圖中的各個類的操作具體是在哪一個線程中被執行的。
●通過擴展Booch對Ada任務的表示法,來表示進程視圖。
(4)物理視圖:
●側主要考慮如何把軟件映射到硬件上,它通常要考慮系統性能規模、可靠性等。解決系統拓撲結構、系統安裝、通信等問題。
(5)場景:
●可以看做是那些重要系統活動的抽象,它使四個視圖有機聯合起來,從某種意義上說場景是最重要的需求抽象。在開發體系結構時,它可以幫助設計者找到體系結構的構件和它們之間的作用關係。同時,也可以用場景來分析一個特定的視圖,或描述不同視圖構件間是如何相互作用的。
●場景可以用文本表示,也可以用圖形表示。
●邏輯視圖和開發視圖描述系統的靜態結構,而進程視圖和物理視圖描述系統的動態結構。對於不同的軟件系統來說,側重的角度也有所不同。
3. 軟件體系結構的核心模型:
構建、連接件、配置、端口、角色、
●最基本的元素:構建、連接件、配置。
4. 軟件體系結構的生命模型:
●軟件體系結構的建立應位於需求分析之後,軟件設計之前。在建立軟件體系結構時,設計者主要從結構的角度對整個系統進行分析。
●需求分析階段
●建立軟件體系結構階段
●設計階段
●實現階段