軟體架構用來處理軟體高層次結構的設計與實施,它以精心選擇的形式將若干結構元素進行裝配,從而滿足系統的主要功能和效能需求。軟體架構設計的首要問題是如何表示軟體架構,即如何對軟體架構建模。根據建模的側重點不同,可以將軟體架構模型分為結構模型、框架模型、動態模型、過程模型和功能模型。Kruchten在1995年提出了“4+1”檢視模型,將5種模型有機的統一在一起。

“4+1”檢視模型從5個不同的視角來描述軟體架構,每個檢視只關心繫統的一個側面,所有檢視結合在一起才能反映系統的軟體結構的全部內容。這5個不同的視角包括邏輯檢視、開發檢視、程序檢視、物理檢視和場景。

1,邏輯檢視:邏輯檢視主要支援系統的功能需求,即系統提供給終端使用者的服務。在該檢視中,系統分解成一系列功能的抽象,這些抽象主要來自問題領域。在面向物件技術中,透過抽象、繼承和封裝,可以用物件模型來代表邏輯檢視,用類圖來描述邏輯檢視。

2,開發檢視:該檢視也稱為模組檢視,在UML中被稱為實現檢視。它主要側重於軟體模組的組織和管理,要考慮軟體內部的需求。

3,程序檢視:該檢視側重於系統的執行特性,主要關注一些非功能性需求,並且強調併發性、分佈性、系統整合性和容錯能力,以及邏輯檢視中功能抽象如何適應程序結構等,並定義了邏輯檢視中的各個類的操作具體是在哪一個執行緒中被執行。程序檢視可以描述成多層抽象,每個級別分別關注不同的方面。

4,物理檢視:該檢視在UML中被稱為部署檢視,主要考慮如何把軟體對映到硬體上,它通常要考慮解決系統拓撲結構、系統安裝和通訊問題。

5,場景:場景可以看做是那些重要系統活動的抽象,使4個檢視有機聯絡起來,它對應UML中的用例檢視。