《《軟件體系結(jié)構(gòu)》課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《《軟件體系結(jié)構(gòu)》課件(33頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、課 程 內(nèi) 容 軟件體系結(jié)構(gòu)概論 軟件體系結(jié)構(gòu)建模 軟件體系結(jié)構(gòu)風(fēng)格 軟件體系結(jié)構(gòu)描述 動(dòng)態(tài)軟件體系結(jié)構(gòu) Web服務(wù)體系結(jié)構(gòu) 基于體系結(jié)構(gòu)的軟件開(kāi)發(fā) 軟件體系結(jié)構(gòu)的分析與測(cè)試 軟件體系結(jié)構(gòu)評(píng)估 軟件產(chǎn)品線體系結(jié)構(gòu) 軟件體系結(jié)構(gòu)建模的種類(lèi) 第 2章 軟件體系結(jié)構(gòu)建模 2.1 軟件體系結(jié)構(gòu)建模概述 結(jié)構(gòu)模型 框架模型 動(dòng)態(tài)模型 過(guò)程模型 功能模型 軟件體系結(jié)構(gòu)建模的種類(lèi) 第 2章 軟件體系結(jié)構(gòu)建模 2.1 軟件體系結(jié)構(gòu)建模概述 結(jié)構(gòu)模型 這是一個(gè)最直觀 、 最普遍的建模方法 。 這種方法 以體系結(jié)構(gòu)的構(gòu)件 、 連接件和其他概念來(lái)刻畫(huà)結(jié)構(gòu) , 并力圖通過(guò)結(jié)構(gòu)來(lái)反映系統(tǒng)的重要語(yǔ)義內(nèi)容 , 包括系 統(tǒng)的
2、配置 、 約束 、 隱含的假設(shè)條件 、 風(fēng)格 、 性質(zhì)等 。 研究結(jié)構(gòu)模型的核心是體系結(jié)構(gòu)描述語(yǔ)言 。 軟件體系結(jié)構(gòu)建模的種類(lèi) 第 2章 軟件體系結(jié)構(gòu)建模 2.1 軟件體系結(jié)構(gòu)建模概述 框架模型 框架模型與結(jié)構(gòu)模型類(lèi)似 , 但它不太側(cè)重描述結(jié)構(gòu) 的細(xì)節(jié)而更側(cè)重于整體的結(jié)構(gòu) 。 框架模型主要以一些特殊的問(wèn)題為目標(biāo)建立只針對(duì) 和適應(yīng)該問(wèn)題的結(jié)構(gòu) 。 軟件體系結(jié)構(gòu)建模的種類(lèi) 第 2章 軟件體系結(jié)構(gòu)建模 2.1 軟件體系結(jié)構(gòu)建模概述 動(dòng)態(tài)模型 動(dòng)態(tài)模型是對(duì)結(jié)構(gòu)或框架模型的補(bǔ)充 , 研究系統(tǒng)的 “ 大顆粒 ” 的行為性質(zhì) 。 例如 , 描述系統(tǒng)的重新配置 或演化 。 動(dòng)態(tài)可以指系統(tǒng)總體結(jié)構(gòu)的配置 、 建
3、立或拆 除通信通道或計(jì)算的過(guò)程 。 軟件體系結(jié)構(gòu)建模的種類(lèi) 第 2章 軟件體系結(jié)構(gòu)建模 2.1 軟件體系結(jié)構(gòu)建模概述 過(guò)程模型 過(guò)程模型研究構(gòu)造系統(tǒng)的步驟和過(guò)程 。 結(jié)構(gòu)是遵循某些過(guò)程腳本的結(jié)果 。 軟件體系結(jié)構(gòu)建模的種類(lèi) 第 2章 軟件體系結(jié)構(gòu)建模 2.1 軟件體系結(jié)構(gòu)建模概述 功能模型 功能模型認(rèn)為體系結(jié)構(gòu)是由一組功能構(gòu)件按層次組 成 , 下層向上層提供服務(wù) 。 功能模型可以看作是一種特殊的框架模型 。 “4+1”模型概述 第 2章 軟件體系結(jié)構(gòu)建模 2.2 “4+1”視圖模型 Kruchten在 1995年提出了 “ 4+1”的視圖模型。 “ 4+1”視圖模型從 5個(gè)不同的視角包括邏輯視
4、圖 、 進(jìn) 程視圖 、 物理視圖 、 開(kāi)發(fā)視圖和場(chǎng)景視圖來(lái)描述軟件 體系結(jié)構(gòu) 。 每一個(gè)視圖只關(guān)心系統(tǒng)的一個(gè)側(cè)面 , 5個(gè)視圖結(jié)合在 一起才能反映系統(tǒng)的軟件體系結(jié)構(gòu)的全部?jī)?nèi)容 。 “4+1”模型概述 第 2章 軟件體系結(jié)構(gòu)建模 2.2 “4+1”視圖模型 邏輯視圖 進(jìn)程視圖 開(kāi)發(fā)視圖 物理視圖 最終用戶:功能需求 場(chǎng)景 編程人員:軟件管理 系統(tǒng)集成人員:性能 可擴(kuò)充性 、 吞吐量等 系統(tǒng)工程人員:系統(tǒng) 拓?fù)?、 安裝 、 通信等 邏輯視圖 第 2章 軟件體系結(jié)構(gòu)建模 2.2 “4+1”視圖模型 邏輯視圖主要支持系統(tǒng)的功能需求 , 即系統(tǒng)提供給 最終用戶的服務(wù) 。 在邏輯視圖中 , 系統(tǒng)分解成一
5、系列 的功能抽象 , 這些抽象主要來(lái)自問(wèn)題領(lǐng)域 。 這種分解 不但可以用來(lái)進(jìn)行功能分析 , 而且可用作標(biāo)識(shí)在整個(gè) 系統(tǒng)的各個(gè)不同部分的通用機(jī)制和設(shè)計(jì)元素 。 在面向?qū)ο蠹夹g(shù)中 , 通過(guò)抽象 、 封裝和繼承 , 可以 用對(duì)象模型來(lái)代表邏輯視圖 , 用類(lèi)圖來(lái)描述邏輯視圖 。 邏輯視圖 第 2章 軟件體系結(jié)構(gòu)建模 2.2 “4+1”視圖模型 可以從 Booch標(biāo)記法中導(dǎo)出邏輯視圖的標(biāo)記法 , 只是從體系結(jié) 構(gòu)級(jí)的范疇來(lái)考慮這些符號(hào) , 用 Rational Rose進(jìn)行體系結(jié)構(gòu)設(shè) 計(jì) 。 構(gòu)件 實(shí)例 繼承 使用 包含 , 聚集 關(guān)聯(lián) 類(lèi)層次 參數(shù)化類(lèi) 類(lèi)服務(wù) 類(lèi) 連接件 邏輯視圖 第 2章 軟件體系
6、結(jié)構(gòu)建模 2.2 “4+1”視圖模型 邏輯視圖中使用的風(fēng)格為面向?qū)ο蟮娘L(fēng)格 , 邏輯視圖設(shè)計(jì)中要 注意的主要問(wèn)題是要保持一個(gè)單一的 、 內(nèi)聚的對(duì)象模型貫穿整個(gè) 系統(tǒng) 。 會(huì)話 終端 控制器 轉(zhuǎn)換服務(wù) 連接服務(wù) 編號(hào)計(jì)劃 邏輯視圖 第 2章 軟件體系結(jié)構(gòu)建模 2.2 “4+1”視圖模型 對(duì)于規(guī)模更大的系統(tǒng)來(lái)說(shuō) , 體系結(jié)構(gòu)級(jí)中包含數(shù)十甚至數(shù)百個(gè) 類(lèi) 。 顯示及用戶 接口 機(jī)械服務(wù) 基本元素 航空信息 空中交通管 理 飛行管理 外部接口網(wǎng) 關(guān) 仿真和培訓(xùn) 開(kāi)發(fā)視圖 第 2章 軟件體系結(jié)構(gòu)建模 2.2 “4+1”視圖模型 開(kāi)發(fā)視圖也稱(chēng)模塊視圖 , 主要側(cè)重于軟件模塊的組 織和管理 。 開(kāi)發(fā)視圖要考慮
7、軟件內(nèi)部的需求 , 如軟件開(kāi)發(fā)的容 易性 、 軟件的重用和軟件的通用性 , 要充分考慮由于 具體開(kāi)發(fā)工具的不同而帶來(lái)的局限性 。 開(kāi)發(fā)視圖通過(guò)系統(tǒng)輸入輸出關(guān)系的模型圖和子系統(tǒng)圖 來(lái)描述 。 開(kāi)發(fā)視圖 第 2章 軟件體系結(jié)構(gòu)建模 2.2 “4+1”視圖模型 與邏輯視圖一樣 , 可以使用 Booch標(biāo)記法中某些符號(hào)來(lái) 表示開(kāi)發(fā)視圖 。 構(gòu)件 參照相關(guān)性模塊 連接件 子系統(tǒng) 層 開(kāi)發(fā)視圖 第 2章 軟件體系結(jié)構(gòu)建模 2.2 “4+1”視圖模型 在開(kāi)發(fā)視圖中 , 最好采用 4-6層子系統(tǒng) , 而且每個(gè)子 系統(tǒng)僅僅能與同層或更低層的子系統(tǒng)通訊 , 這樣可以 使每個(gè)層次的接口既完備又精練 , 避免了各個(gè)模
8、塊之 間很復(fù)雜的依賴(lài)關(guān)系 。 設(shè)計(jì)時(shí)要充分考慮 , 對(duì)于各個(gè)層次 , 層次越低 , 通 用性越強(qiáng) , 這樣 , 可以保證應(yīng)用程序的需求發(fā)生改變 時(shí) , 所做的改動(dòng)最小 。 開(kāi)發(fā)視圖所用的風(fēng)格通常是層 次結(jié)構(gòu)風(fēng)格 。 開(kāi)發(fā)視圖 第 2章 軟件體系結(jié)構(gòu)建模 2.2 “4+1”視圖模型 公用構(gòu)件 1 低層服務(wù) 支撐機(jī)制:通信、時(shí)間、儲(chǔ)存、資源管理等 2 航空類(lèi)、空中交通管制類(lèi) 3 空中交通管制功能區(qū):飛行管理、雷達(dá)管理等 4 人機(jī)接口 外部系統(tǒng) 5 離線工具 測(cè)試工具 各種各樣的空中 交通管制系統(tǒng) 特定的空中交通 管制系統(tǒng)構(gòu)件 空中交通管制 系統(tǒng)框架 分布式虛擬機(jī) 基本元素 硬件、操作系 統(tǒng)、數(shù)據(jù)庫(kù)
9、 領(lǐng) 域 特 定 領(lǐng) 域 無(wú) 關(guān) 通 用 空 中 交 通 管 制 代 碼 客 戶 定 制 進(jìn)程視圖 第 2章 軟件體系結(jié)構(gòu)建模 2.2 “4+1”視圖模型 進(jìn)程視圖側(cè)重于系統(tǒng)的運(yùn)行特性 , 主要關(guān)注一些非 功能性的需求 。 進(jìn)程視圖強(qiáng)調(diào)并發(fā)性 、 分布性 、 系統(tǒng)集成性和容錯(cuò) 能力 , 以及從邏輯視圖中的主要抽象如何適合進(jìn)程結(jié) 構(gòu) 。 它也定義邏輯視圖中的各個(gè)類(lèi)的操作具體是在哪 一個(gè)線程中被執(zhí)行的 。 進(jìn)程視圖可以描述成多層抽象 , 每個(gè)級(jí)別分別關(guān)注 不同的方面 。 在最高層抽象中 , 進(jìn)程結(jié)構(gòu)可以看作是 構(gòu)成一個(gè)執(zhí)行單元的一組任務(wù) 。 它可看成一系列獨(dú)立 的 , 通過(guò)邏輯網(wǎng)絡(luò)相互通信的程序
10、。 它們是分布的 , 通過(guò)總線或局域網(wǎng) 、 廣域網(wǎng)等硬件資源連接起來(lái) 。 進(jìn)程視圖 第 2章 軟件體系結(jié)構(gòu)建模 2.2 “4+1”視圖模型 通過(guò)擴(kuò)展 Booch對(duì) Ada任務(wù)的表示法 , 來(lái)表示進(jìn)程視 圖 。 構(gòu)件 事件廣播 雙向消息 遠(yuǎn)程過(guò)程調(diào)用 消息 未指定 連接件 循環(huán)進(jìn)程 簡(jiǎn)化進(jìn)程 進(jìn)程 進(jìn)程視圖 第 2章 軟件體系結(jié)構(gòu)建模 2.2 “4+1”視圖模型 控制器進(jìn)程 慢周期控 制器任務(wù) 快周期控 制器任務(wù) 主控制 器任務(wù) 終端進(jìn)程 物理視圖 第 2章 軟件體系結(jié)構(gòu)建模 2.2 “4+1”視圖模型 物理視圖主要考慮如何把軟件映射到硬件上 , 它通 常要考慮到系統(tǒng)性能 、 規(guī)模 、 可靠性等
11、 。 解決系統(tǒng)拓 撲結(jié)構(gòu) 、 系統(tǒng)安裝 、 通訊等問(wèn)題 。 當(dāng)軟件運(yùn)行于不同的節(jié)點(diǎn)上時(shí) , 各視圖中的構(gòu)件都 直接或間接地對(duì)應(yīng)于系統(tǒng)的不同節(jié)點(diǎn)上 。 因此 , 從軟 件到節(jié)點(diǎn)的映射要有較高的靈活性 , 當(dāng)環(huán)境改變時(shí) , 對(duì)系統(tǒng)其他視圖的影響最小 。 物理視圖 第 2章 軟件體系結(jié)構(gòu)建模 2.2 “4+1”視圖模型 大型系統(tǒng)的物理視圖可能會(huì)變得十分混亂 , 因此可 以與進(jìn)程視圖的映射一道 , 以多種形式出現(xiàn) , 也可單 獨(dú)出現(xiàn) 。 構(gòu)件 寬帶或總線 雙向通信 單向通信 臨時(shí)通信 通信 其他設(shè)備 處理器 連接件 物理視圖 第 2章 軟件體系結(jié)構(gòu)建模 2.2 “4+1”視圖模型 ACS系統(tǒng)的物理視圖
12、 C 主 KKKKKKKK F 備份 F 主 F 備份 F 主 C 備份 物理視圖 第 2章 軟件體系結(jié)構(gòu)建模 2.2 “4+1”視圖模型 具有進(jìn)程分配 的小型 ACS系統(tǒng) 的物理視圖 K 會(huì)話進(jìn)程 F 終端進(jìn)程 控制器進(jìn)程 物理視圖 第 2章 軟件體系結(jié)構(gòu)建模 2.2 “4+1”視圖模型 具有進(jìn)程分 配的大型 ACS系統(tǒng)的 物理視圖 C 中心進(jìn)程 備份節(jié)點(diǎn) 偽中心進(jìn)程 F 會(huì)話進(jìn)程 終端進(jìn)程 偽中心進(jìn)程 F 會(huì)話進(jìn)程 終端進(jìn)程 K 控制器進(jìn)程 K 控制器進(jìn)程 K 控制器進(jìn)程 更多的K 類(lèi) 處理器 線路接口卡 線路接口卡線路接口卡 場(chǎng)景 第 2章 軟件體系結(jié)構(gòu)建模 2.2 “4+1”視圖模型
13、場(chǎng)景可以看作是那些重要系統(tǒng)活動(dòng)的抽象,它使四 個(gè)視圖有機(jī)聯(lián)系起來(lái),從某種意義上說(shuō)場(chǎng)景是最重要的 需求抽象。在開(kāi)發(fā)體系結(jié)構(gòu)時(shí),它可以幫助設(shè)計(jì)者找到 體系結(jié)構(gòu)的構(gòu)件和它們之間的作用關(guān)系。同時(shí),也可以 用場(chǎng)景來(lái)分析一個(gè)特定的視圖,或描述不同視圖構(gòu)件間 是如何相互作用的。 場(chǎng)景可以用文本表示,也可以用圖形表示。 場(chǎng)景 第 2章 軟件體系結(jié)構(gòu)建模 2.2 “4+1”視圖模型 本地呼叫場(chǎng)景的一個(gè)原型 (1 )摘機(jī) 小王: 控制器 編號(hào)計(jì)劃小王: 終端 小王: 會(huì)話 (2 )撥號(hào)音 (3 )號(hào)碼 (4 )號(hào)碼 (5 )打 開(kāi)會(huì)話 小結(jié) 第 2章 軟件體系結(jié)構(gòu)建模 2.2 “4+1”視圖模型 邏輯視圖和開(kāi)發(fā)視
14、圖描述系統(tǒng)的靜態(tài)結(jié)構(gòu),而進(jìn)程 視圖和物理視圖描述系統(tǒng)的動(dòng)態(tài)結(jié)構(gòu)。 對(duì)于不同的軟件系統(tǒng)來(lái)說(shuō),側(cè)重的角度也有所不同。 例如,對(duì)于管理信息系統(tǒng)來(lái)說(shuō),比較側(cè)重于從邏輯視圖 和開(kāi)發(fā)視圖來(lái)描述系統(tǒng),而對(duì)于實(shí)時(shí)控制系統(tǒng)來(lái)說(shuō),則 比較注重于從進(jìn)程視圖和物理視圖來(lái)描述系統(tǒng)。 第 2章 軟件體系結(jié)構(gòu)建模 2.3 體系結(jié)構(gòu)的核心模型 軟件體系結(jié)構(gòu) 配置 連接件 構(gòu)件 端口 角色 1:N 1:N 1:N 軟件過(guò)程 第 2章 軟件體系結(jié)構(gòu)建模 2.4 體系結(jié)構(gòu)的生命周期模型 需求分析 建立體系結(jié)構(gòu) 測(cè)試 實(shí)現(xiàn) 設(shè)計(jì) 生命周期模型 第 2章 軟件體系結(jié)構(gòu)建模 2.4 體系結(jié)構(gòu)的生命周期模型 體系結(jié)構(gòu)的非 形式化描述 體系結(jié)構(gòu)的形式化 基礎(chǔ)(數(shù)學(xué)模型) 體系結(jié)構(gòu)的 規(guī)范描述 體系結(jié)構(gòu)演化 體系結(jié)構(gòu)提供、 評(píng)價(jià)和度量 體系結(jié)構(gòu)的終結(jié) 體系結(jié)構(gòu)實(shí)施 體系結(jié)構(gòu)求精的驗(yàn)證 體系結(jié)構(gòu)求精 體系結(jié)構(gòu)的 性質(zhì)分析 需要演化 或擴(kuò)展否 否 是 需要求精 否 是 否 第 2章 軟件體系結(jié)構(gòu)建模 2.5 軟件體系結(jié)構(gòu)抽象模型 選讀 第 2章 軟件體系結(jié)構(gòu)建模 本章作業(yè)與思考題 1、選擇一個(gè)規(guī)模合適的系統(tǒng),為其建立 “ 4+1”模型。 2、引入了軟件體系結(jié)構(gòu)以后,傳統(tǒng)軟件過(guò)程發(fā)生了哪 些變化?這種變化有什么好處? 3、軟件體系結(jié)構(gòu)的生命周期模型與軟件生命周期模型 有什么關(guān)系?