《软件体系结构》第二章 软件体系结构建模
?
? 研究軟件體系結(jié)構(gòu)的首要問題是如何表示軟件體系結(jié)構(gòu),即如何對(duì)軟件體系結(jié)構(gòu)建模。可以將軟件體系結(jié)構(gòu)的模型分為5種:結(jié)構(gòu)模型、框架模型、動(dòng)態(tài)模型、過程模型、功能模型。
一、4+1視圖模型
1.定義
“4+1”視圖模型從5個(gè)不同的視角包括邏輯視圖、進(jìn)程視圖、物理視圖、開發(fā)視圖和場(chǎng)景視圖來描述軟件體系結(jié)構(gòu)。
2.邏輯視圖 logic view
? ? ? ?邏輯視圖主要支持系統(tǒng)的功能需求,即系統(tǒng)提供給最終用戶的服務(wù)。在邏輯視圖中,系統(tǒng)分解成一系列的功能抽象,這些抽象主要來自問題領(lǐng)域。這種分解不但可以用來進(jìn)行功能分析,而且可用作標(biāo)識(shí)在整個(gè)系統(tǒng)的各個(gè)不同部分的通用機(jī)制和設(shè)計(jì)元素。
? ? ? ?在面向?qū)ο蠹夹g(shù)中,通過抽象、封裝和繼承,可以用對(duì)象模型來代表邏輯視圖,用類圖(class?diagram)來描述邏輯視圖。
3.開發(fā)視圖 development?view?又稱模塊視圖(module?view)
? ? ? ??開發(fā)視圖也稱模塊視圖,主要側(cè)重于軟件模塊的組織和管理。
????????開發(fā)視圖要考慮軟件內(nèi)部的需求,如軟件開發(fā)的容易性、軟件的重用和軟件的通用性,要充分考慮由于具體開發(fā)工具的不同而帶來的局限性。
????????開發(fā)視圖通過系統(tǒng)輸入輸出關(guān)系的模型圖和子系統(tǒng)圖來描述。
? ?在開發(fā)視圖中,最好采用4-6層子系統(tǒng),而且每個(gè)子系統(tǒng)僅僅能與同層或更低層的子系統(tǒng)通訊
4.進(jìn)程視圖 process?view
????? ?進(jìn)程視圖側(cè)重于系統(tǒng)的運(yùn)行特性,主要關(guān)注一些非功能性的需求。例如系統(tǒng)的性能和可用性。
?? ????進(jìn)程視圖強(qiáng)調(diào)并發(fā)性、分布性、系統(tǒng)集成性和容錯(cuò)能力,以及從邏輯視圖中的主要抽象如何適合進(jìn)程結(jié)構(gòu)。它也定義邏輯視圖中的各個(gè)類的操作具體是在哪一個(gè)線程中被執(zhí)行的。
5.物理視圖 physical?view
????????物理視圖主要考慮如何把軟件映射到硬件上,它通常要考慮到系統(tǒng)性能、規(guī)模、可靠性等。解決系統(tǒng)拓?fù)浣Y(jié)構(gòu)、系統(tǒng)安裝、通訊等問題。
6.場(chǎng)景視圖 scenarios
????????場(chǎng)景可以看作是那些重要系統(tǒng)活動(dòng)的抽象,它使四個(gè)視圖有機(jī)聯(lián)系起來,從某種意義上說場(chǎng)景是最重要的需求抽象。在開發(fā)體系結(jié)構(gòu)時(shí),它可以幫助設(shè)計(jì)者找到體系結(jié)構(gòu)的構(gòu)件和它們之間的作用關(guān)系。同時(shí),也可以用場(chǎng)景來分析一個(gè)特定的視圖,或描述不同視圖構(gòu)件間是如何相互作用的。
????????場(chǎng)景可以用文本表示,也可以用圖形表示。
7.總結(jié)
????????邏輯視圖和開發(fā)視圖描述系統(tǒng)的靜態(tài)結(jié)構(gòu),而進(jìn)程視圖和物理視圖描述系統(tǒng)的動(dòng)態(tài)結(jié)構(gòu)。
????????對(duì)于不同的軟件系統(tǒng)來說,側(cè)重的角度也有所不同。例如,對(duì)于管理信息系統(tǒng)來說,比較側(cè)重于從邏輯視圖和開發(fā)視圖來描述系統(tǒng),而對(duì)于實(shí)時(shí)控制系統(tǒng)來說,則比較注重于從進(jìn)程視圖和物理視圖來描述系統(tǒng)。
二、軟件體系結(jié)構(gòu)的核心模型
??體系結(jié)構(gòu)的核心模型由5中元素組成:構(gòu)件、連接件、配置(configuration)、端口(port)、角色(role)。其中構(gòu)件、連接件、配置是最基本的元素。
?
(1)構(gòu)件:具有某種功能的可重用的軟件模板單元,表示系統(tǒng)中主要的計(jì)算元素和數(shù)據(jù)存儲(chǔ)。
(2)連接件:表示構(gòu)件之間的交互,如:管道、過程調(diào)用、事件廣播、客戶-服務(wù)器通信協(xié)議、數(shù)據(jù)庫(kù)和應(yīng)用之間的SQL連接等。
(3)配置:表示構(gòu)件和連接件的拓?fù)溥壿嫼图s束。
(4)端口:構(gòu)件的接口由一組端口組成,每個(gè)端口表示構(gòu)件和外部環(huán)境的交互點(diǎn)。
(5)角色:連接件的接口由一組角色組成,每一個(gè)角色定義了該連接件表示的交互的參與者。
?
總結(jié)
以上是生活随笔為你收集整理的《软件体系结构》第二章 软件体系结构建模的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 第几周 时间戳_php时间戳
- 下一篇: Magento--判断checkout中