軟件體系結(jié)構(gòu)3-軟件體系結(jié)構(gòu)的層次性word版本_第1頁
軟件體系結(jié)構(gòu)3-軟件體系結(jié)構(gòu)的層次性word版本_第2頁
軟件體系結(jié)構(gòu)3-軟件體系結(jié)構(gòu)的層次性word版本_第3頁
軟件體系結(jié)構(gòu)3-軟件體系結(jié)構(gòu)的層次性word版本_第4頁
軟件體系結(jié)構(gòu)3-軟件體系結(jié)構(gòu)的層次性word版本_第5頁
已閱讀5頁,還剩54頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)3-軟件體系結(jié)構(gòu)的層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性2/64 體系結(jié)構(gòu)需要基礎(chǔ):從建筑的基礎(chǔ)性看軟件構(gòu)成 地基、材料、材料構(gòu)成三個方面從根本上決定了建筑物的結(jié)構(gòu)、性能、功用、建造方法,形成了建筑的基礎(chǔ)。 構(gòu)造軟件同樣需要基礎(chǔ)。計算機硬件結(jié)構(gòu)、軟件的基本組成、構(gòu)成軟件的可用組塊三個方面。 討論軟件的體系結(jié)構(gòu)必須首先建立一個基礎(chǔ):一旦確立了基礎(chǔ),各種觀點的比較就有了共同的標準語言。3.1 從建筑學(xué)看軟件的構(gòu)成從建筑學(xué)看軟件的

2、構(gòu)成3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3/64 體系結(jié)構(gòu)需要層次:從建筑的層次性看軟件構(gòu)成。 建筑是由基本材料到基礎(chǔ)構(gòu)件再到整體框架逐層次發(fā)展和構(gòu)成的歷程。 軟件的體系結(jié)構(gòu)也是由使用最基本的材料開始,到認識常用基礎(chǔ)構(gòu)件再到組裝和構(gòu)造整體框架的發(fā)展過程。3.1 從建筑學(xué)看軟件的構(gòu)成從建筑學(xué)看軟件的構(gòu)成3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性4/64 體系結(jié)構(gòu)需要模式:從建筑的組合性看軟件構(gòu)成 形態(tài)和構(gòu)件組成了建筑模式。20多年建立了現(xiàn)代建筑學(xué)的250余種“場景問題解決方案”模式,

3、涵蓋不同的規(guī)模和形態(tài) 這些建筑學(xué)的思想再軟件結(jié)構(gòu)的研究中也得到了重視,提出并發(fā)展了軟件“軟件設(shè)計模式”的概念,進而又提出了“軟件體系結(jié)構(gòu)模式”的概念。3.1 從建筑學(xué)看軟件的構(gòu)成從建筑學(xué)看軟件的構(gòu)成3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性5/64 體系結(jié)構(gòu)需要清晰的角色劃分:從建筑業(yè)看各個角色的劃分。3.1 從建筑學(xué)看軟件的構(gòu)成從建筑學(xué)看軟件的構(gòu)成3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性6/64 軟件設(shè)計的物質(zhì)基礎(chǔ)是當前的計算機硬件,它決定了軟件設(shè)計和實現(xiàn)的出發(fā)點。 當前硬件的變革表

4、現(xiàn)在兩個方面 非馮.諾依曼運行機制的產(chǎn)生 并行處理為特征的高性能計算機結(jié)構(gòu)3.2 軟件的物質(zhì)基礎(chǔ)軟件的物質(zhì)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性7/64 計算機硬件體系結(jié)構(gòu) 軟件是對一組數(shù)據(jù)進行處理的一串指令。 根據(jù)處理指令流和數(shù)據(jù)流的數(shù)量,計算機分為: SISD SIMD MISD MIMD3.2 軟件的物質(zhì)基礎(chǔ)軟件的物質(zhì)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性8/64 多處理機系統(tǒng) 屬于MIMD系統(tǒng) 多處理機系統(tǒng)分為 共享存儲器 分布存儲器 工作在統(tǒng)一的操作系統(tǒng)下進行資

5、源管理 挑戰(zhàn):并行算法和軟件的設(shè)計3.2 軟件的物質(zhì)基礎(chǔ)軟件的物質(zhì)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性9/64 分布計算系統(tǒng) 多臺計算機通過網(wǎng)絡(luò)連接起來的大系統(tǒng) 分布存儲的多處理機系統(tǒng) 但各自運行獨立的操作系統(tǒng)3.2 軟件的物質(zhì)基礎(chǔ)軟件的物質(zhì)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性10/64 結(jié)論 多處理機需要并行處理(解決并行任務(wù)的調(diào)度和自動分解),對軟件設(shè)計提出了復(fù)雜的要求,使軟件設(shè)計的復(fù)雜度大大提高 我們以討論串行計算機環(huán)境下的軟件體系結(jié)構(gòu)為主3.2 軟件的物質(zhì)基礎(chǔ)

6、軟件的物質(zhì)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性11/64 任何具有固定組成形式的數(shù)據(jù)、代碼、數(shù)據(jù)集合、代碼序列、數(shù)據(jù)和代碼的結(jié)合體都可以稱作結(jié)構(gòu)。 無論多么高層的結(jié)構(gòu),都是建立在基礎(chǔ)結(jié)構(gòu)之上的。 軟件結(jié)構(gòu)的問題從最初的最基本、最底層的描述過渡到越來越高、越來越抽象的層次上。 作為軟件結(jié)構(gòu)基礎(chǔ)的思想和概念,包括四個方面: 結(jié)構(gòu)化控制流 結(jié)構(gòu)化連接模式 數(shù)據(jù)結(jié)構(gòu) 抽象數(shù)據(jù)類型越來越抽象3.3 軟件的結(jié)構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性12/64 結(jié)構(gòu)化控

7、制流 順序序列 轉(zhuǎn)向語句 goto 過程調(diào)用 3.3 軟件的結(jié)構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性13/64 結(jié)構(gòu)化控制流 條件語句 if then if then else 開關(guān)語句 Swithch Case value 1 Case value n 3.3 軟件的結(jié)構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性14/64 結(jié)構(gòu)化控制流 循環(huán)語句 For While do Repeat until Break Continue 3.3 軟件的結(jié)

8、構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性15/64 結(jié)構(gòu)化控制流 事件/異常語句 On goto 中斷/事件控制 Set to Set on/off3.3 軟件的結(jié)構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性16/64 部件連接方式 部件連接器:完成部件與部件之間的連接 部件:數(shù)據(jù)、外部設(shè)備、程序段 實現(xiàn)部件連接的四種方式 過程調(diào)用 遠程過程調(diào)用 事件觸發(fā) 服務(wù)連接3.3 軟件的結(jié)構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性

9、3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性17/64 部件連接方式 過程調(diào)用方式 部件之間通過過程、函數(shù)或方法實現(xiàn)連接 必須知道對方部件的標識、對外提供的操作過程標識、參數(shù)設(shè)置 遠程過程調(diào)用 RPC 網(wǎng)絡(luò)分布環(huán)境下的過程調(diào)用 通過代理部件完成部件之間的連接3.3 軟件的結(jié)構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性18/64 部件連接方式 中斷/事件觸發(fā)方式 通過硬件提供的中斷及其控制機制實現(xiàn)部件連接的方式 用特定名稱標識中斷號碼就形成事件觸發(fā)的部件連接方式 服務(wù)連接方式 服務(wù)連接方式由接口、分析器、執(zhí)行器構(gòu)成 請求

10、部件 接口 分析器 執(zhí)行器 請求部件 各類解釋器、功能服務(wù)器采用的就是這種連接方式3.3 軟件的結(jié)構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性19/64 任何具有固定組成形式的數(shù)據(jù)、代碼、數(shù)據(jù)集合、代碼序列、數(shù)據(jù)和代碼的結(jié)合體都可以稱作結(jié)構(gòu)。 無論多么高層的結(jié)構(gòu),都是建立在基礎(chǔ)結(jié)構(gòu)之上的,作為軟件結(jié)構(gòu)基礎(chǔ)的思想和概念,包括四個方面: 結(jié)構(gòu)化控制流 結(jié)構(gòu)化連接模式 數(shù)據(jù)結(jié)構(gòu) 抽象數(shù)據(jù)類型3.3 軟件的結(jié)構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性20/6

11、4 結(jié)構(gòu)化連接模式:建立在基本控制流之上的高層次抽象,屬于控制模式。 指部件與部件連接關(guān)系的構(gòu)成形式。 條件連接 循環(huán)連接 查詢連接 中斷/事件方式 共享信息方式3.3 軟件的結(jié)構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性21/64 結(jié)構(gòu)化連接模式 條件連接 部件A部件 1部件 n條件3.3 軟件的結(jié)構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性22/64 結(jié)構(gòu)化連接模式 循環(huán)連接 例如編譯系統(tǒng)中:調(diào)用詞法分析、語法分析、語義分析、目標代碼生成、代碼優(yōu)化

12、、鏈接等模塊 部件A部件 1部件 n3.3 軟件的結(jié)構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性23/64 結(jié)構(gòu)化連接模式 查詢方式 兩個部件 信息源:負責(zé)信息的采集 信息處理部件:周期性地對信息源進行信息查詢 對于隨機發(fā)生的信息源事件無法達到快速的實時處理 信息獲取和處理構(gòu)件信息源 1信息源 n3.3 軟件的結(jié)構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性24/64 結(jié)構(gòu)化連接模式 中斷/事件觸發(fā)方式 處理構(gòu)件不主動關(guān)心信息源的情況 信息處理部件在信息

13、源中斷事件觸發(fā)下啟動工作 可以對隨機發(fā)生的信息源事件進行快速的實時處理 處理構(gòu)件信息源 1信息源 n3.3 軟件的結(jié)構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性25/64 結(jié)構(gòu)化連接模式 共享信息模式 共享信息區(qū)構(gòu)件進行信息源和信息處理構(gòu)件的信息交換和傳遞 需要考慮信息存取的同步和互斥問題 信息源 1信息源 n 共享信息交換區(qū)信息處理構(gòu)件3.3 軟件的結(jié)構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性26/64 任何具有固定組成形式的數(shù)據(jù)、代碼、數(shù)據(jù)集合、

14、代碼序列、數(shù)據(jù)和代碼的結(jié)合體都可以稱作結(jié)構(gòu)。 無論多么高層的結(jié)構(gòu),都是建立在基礎(chǔ)結(jié)構(gòu)之上的,作為軟件結(jié)構(gòu)基礎(chǔ)的思想和概念,包括四個方面: 結(jié)構(gòu)化控制流 結(jié)構(gòu)化連接模式 數(shù)據(jù)結(jié)構(gòu) 抽象數(shù)據(jù)類型3.3 軟件的結(jié)構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性27/64 基本數(shù)據(jù)類型(數(shù)據(jù)結(jié)構(gòu)) 是繼規(guī)范控制和結(jié)構(gòu)化設(shè)計后在軟件研究和設(shè)計中發(fā)揮巨大促進作用的軟件結(jié)構(gòu)概念 在表達軟件體系結(jié)構(gòu)的時候離不開基本的數(shù)據(jù)結(jié)構(gòu),是體系結(jié)構(gòu)的基本和重要方面 Java 10的雜質(zhì) 已經(jīng)讓位與體系結(jié)構(gòu)和更高層的結(jié)構(gòu) 常見的數(shù)據(jù)結(jié)構(gòu) 線性結(jié)構(gòu) 樹形結(jié)構(gòu)

15、 復(fù)雜結(jié)構(gòu) 文件結(jié)構(gòu)3.3 軟件的結(jié)構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性28/64 任何具有固定組成形式的數(shù)據(jù)、代碼、數(shù)據(jù)集合、代碼序列、數(shù)據(jù)和代碼的結(jié)合體都可以稱作結(jié)構(gòu)。 無論多么高層的結(jié)構(gòu),都是建立在基礎(chǔ)結(jié)構(gòu)之上的,作為軟件結(jié)構(gòu)基礎(chǔ)的思想和概念,包括四個方面: 結(jié)構(gòu)化控制流 結(jié)構(gòu)化連接模式 數(shù)據(jù)結(jié)構(gòu) 抽象數(shù)據(jù)類型3.3 軟件的結(jié)構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性29/64 抽象數(shù)據(jù)結(jié)構(gòu) 是一個關(guān)于軟件分塊或者部件的數(shù)學(xué)模型 定義了

16、所描述的部件的構(gòu)成和構(gòu)成成員之間的關(guān)系以及作用在部件構(gòu)成之上的合法的操作和操作的性質(zhì) 與其在計算機內(nèi)的具體的表示和實現(xiàn)無關(guān) 定義了由一個值域和定義在該值域上的一組操作組成 從類型的概念把握部件 抽象數(shù)據(jù)類型的定義,四元組(D,R,P,S)表示3.3 軟件的結(jié)構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性30/64 任何具有固定組成形式的數(shù)據(jù)、代碼、數(shù)據(jù)集合、代碼序列、數(shù)據(jù)和代碼的結(jié)合體都可以稱作結(jié)構(gòu)。 無論多么高層的結(jié)構(gòu),都是建立在基礎(chǔ)結(jié)構(gòu)之上的,作為軟件結(jié)構(gòu)基礎(chǔ)的思想和概念,包括四個方面: 結(jié)構(gòu)化控制流 結(jié)構(gòu)化連接模式 數(shù)

17、據(jù)結(jié)構(gòu) 抽象數(shù)據(jù)類型 補充 面向?qū)ο?進程及其運行環(huán)境 分時并發(fā)計算 資源共享/并行同步 實時系統(tǒng)3.3 軟件的結(jié)構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性31/64 面向?qū)ο?20世紀60年代提出的 Simula67,Smalltalk80 建立在抽象數(shù)據(jù)類型基礎(chǔ)之上 基本概念:對象、類、封裝、繼承、多態(tài)、方法 類的層次性增加了代碼的復(fù)用 信息隱藏保證的對象行為的可靠性 封裝提高了對象作為一種模塊的內(nèi)聚力3.3 軟件的結(jié)構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件

18、體系結(jié)構(gòu)和層次性32/64 進程 60年代初引入的概念 定義 進程是可以并行執(zhí)行的計算部分,是一個獨立的可以調(diào)度的活動 進程執(zhí)行某個任務(wù)時,需要分配和釋放各種資源 行為的規(guī)范構(gòu)成程序,程序在處理機上的執(zhí)行活動叫進程 程序是進程的腳本,進程是程序的動態(tài)執(zhí)行過程 一個進程可以執(zhí)行一個或者幾個程序 不同的進程可以包含同一個程序 進程具有并行特征 進程必須建立獨立的數(shù)據(jù)環(huán)境(確保進程間不發(fā)生干擾) 在串行計算機上,進程處理是實現(xiàn)程序并行和分時運行的必不可少的機制 進程概念的進一步發(fā)展,提出和實現(xiàn)了線程等概念3.3 軟件的結(jié)構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件

19、體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性33/64 分時并發(fā)計算 對分時系統(tǒng)的需求 引入基于進程的多道程序技術(shù)后使機器的利用率得到的改善,但仍然不能滿足用戶的需求。 對任務(wù)控制能力的失去(小計算量的長事件等待)、希望多個操作能同時進行 分時系統(tǒng)的基本特征 同時性 獨立性 及時性 交互作用性 實現(xiàn)分時的方法 時間片3.3 軟件的結(jié)構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性34/64 資源共享/并行同步 并行執(zhí)行的任務(wù)同時需要同一個硬件和軟件資源資源共享、競爭的問題 并行執(zhí)行的任務(wù)之間可能存在某種受限的邏輯或時序關(guān)系進程同步問題

20、 解決辦法:信號量 互斥信號:用于資源共享 同步信號:用于任務(wù)同步3.3 軟件的結(jié)構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性35/64 實時系統(tǒng) 實時是指對于特定事件處理響應(yīng)的高速度特性,或者指所提供的計算或服務(wù)反映最新信息狀態(tài)的現(xiàn)實特性。 實時是相對于用戶容許的響應(yīng)時間或容許的滯后時間,只要滿足用戶對時間的要求,皆可稱作實時的 分時與實時 分時的目標是提供多個用戶可同時使用同一臺機器或多個程序可在同一臺機器上運行的軟件環(huán)境 實時強調(diào)的是系統(tǒng)對特殊時間或請求的及時響應(yīng)性 實時系統(tǒng)的實現(xiàn) 在分時控制下的循環(huán)查詢模式和事件/

21、中斷模式 實時系統(tǒng)的特性 實時時鐘管理 負載控制能力 高可靠性3.3 軟件的結(jié)構(gòu)基礎(chǔ)軟件的結(jié)構(gòu)基礎(chǔ)3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性36/64 分而治之的思想 橫向 縱向 層次性一直都是軟件的問題分析和設(shè)計實施的基本和具有普遍適用的思想方法 OS Network 層次系統(tǒng)(Layered Systems)是一種體系結(jié)構(gòu)風(fēng)格3.4 3.4 軟件的層次結(jié)構(gòu)模型軟件的層次結(jié)構(gòu)模型3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性37/64 計算機網(wǎng)絡(luò)的體系結(jié)構(gòu)應(yīng)用層表示層會話層傳輸層網(wǎng)絡(luò)層鏈路

22、層物理層應(yīng)用層表示層會話層傳輸層網(wǎng)絡(luò)層鏈路層物理層第1層協(xié)議第2層協(xié)議第3層協(xié)議第4層協(xié)議第5層協(xié)議第6層協(xié)議第7層協(xié)議3.4 軟件的層次結(jié)構(gòu)模型軟件的層次結(jié)構(gòu)模型3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性38/64 計算機操作系統(tǒng)的體系結(jié)構(gòu)計算機硬件(CPU、內(nèi)存、I/O)基本輸入輸出操作系統(tǒng)內(nèi)核系統(tǒng)調(diào)用語言處理、系統(tǒng)工具、系統(tǒng)應(yīng)用、應(yīng)用程序Shell解釋運行3.4 3.4 軟件的層次結(jié)構(gòu)模型軟件的層次結(jié)構(gòu)模型3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性39/64 層次體系結(jié)構(gòu)的對比、總

23、結(jié) 都是從硬件的構(gòu)成和連接的基礎(chǔ)開始 系統(tǒng)設(shè)計中都考慮道了系統(tǒng)的升級和擴展性、兼容性 建立在各基礎(chǔ)層服務(wù)之上的系統(tǒng),對于性能可以建立可追蹤的分析估計 以上兩個體系結(jié)構(gòu)的不同點 上層對下層的隔層之間是否發(fā)生直接連接或調(diào)用關(guān)系 以上體系結(jié)構(gòu)為復(fù)雜軟件的分層設(shè)計提供了典范,體系結(jié)構(gòu)的層次風(fēng)格主要因此而得到認識的。3.4 3.4 軟件的層次結(jié)構(gòu)模型軟件的層次結(jié)構(gòu)模型3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性40/64 建筑的發(fā)展經(jīng)歷了從認識建筑材料到采用基礎(chǔ)構(gòu)件、到建立整體結(jié)構(gòu)的過程。 軟件的發(fā)展和構(gòu)造也具有類似建筑的性質(zhì)。 任何軟件的完整結(jié)構(gòu)都具

24、有層次關(guān)系: 特定的軟件需要特定的硬件環(huán)境運行 不存在不需要下層支持的抽象的上層結(jié)構(gòu)或框架 層次性是軟件體系結(jié)構(gòu)的不變性質(zhì),是軟件構(gòu)成的共同規(guī)律3.5 軟件體系結(jié)構(gòu)的層次模型軟件體系結(jié)構(gòu)的層次模型3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3.5 軟件體系結(jié)構(gòu)的層次模型軟件體系結(jié)構(gòu)的層次模型第6層 應(yīng)用層第5層 系統(tǒng)結(jié)構(gòu)模式層第4層 資源和管理調(diào)度層第3層 基礎(chǔ)控制描述層第2層 軟化的硬件層第1層 計算機硬件軟件體系結(jié)構(gòu)的層次模型3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性42/64 硬件基

25、礎(chǔ)層 軟件運行的物質(zhì)基礎(chǔ) 軟化的硬件層 對硬件結(jié)構(gòu)和性能抽象的基礎(chǔ)上,實現(xiàn)硬件的操作和控制描述軟化的硬件層 處理器:狀態(tài)和指令集合 中斷:狀態(tài)和中斷服務(wù)3.5 3.5 軟件體系結(jié)構(gòu)的層次模型軟件體系結(jié)構(gòu)的層次模型3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性43/64 基礎(chǔ)控制描述層 建立在高級程序語言描述上的純粹軟件描述層,包括了高級語言所支持的所有程序控制和數(shù)據(jù)描述概念 程序控制概念:順序、條件、選擇、循環(huán)、變量、參數(shù)、過程、函數(shù)、模塊 數(shù)據(jù)描述的概念:數(shù)組、隊列、鏈表、堆棧、樹、圖、指針、記錄 支持該層面的軟件系統(tǒng)模型 主程序/子程序、結(jié)

26、構(gòu)化程序、模塊化程序、面向?qū)ο蟪绦?支持該層面的設(shè)計工具 程序設(shè)計語言、結(jié)構(gòu)化分析、面向?qū)ο蠓治鲈O(shè)計3.5 3.5 軟件體系結(jié)構(gòu)的層次模型軟件體系結(jié)構(gòu)的層次模型3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性44/64 資源和管理層 作用:在基礎(chǔ)控制描述層建立的一切數(shù)據(jù)對象和操作,都需要在操作系統(tǒng)的協(xié)調(diào)和控制下才能實際的實現(xiàn)其設(shè)計的作用和功能。 進程管理、消息處理、I/O etc. 該層考慮的設(shè)計模式 共享資源、同步、分時系統(tǒng)、異常處理、并行、進程、線程、消息、遠程調(diào)用 etc. 該層的軟件系統(tǒng)模型 進程控制、分時系統(tǒng)、消息機制 etc .3.5

27、 3.5 軟件體系結(jié)構(gòu)的層次模型軟件體系結(jié)構(gòu)的層次模型3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性45/64 系統(tǒng)結(jié)構(gòu)模式層 最高層次的軟件結(jié)構(gòu)概念 屬于體系結(jié)構(gòu)風(fēng)格或系統(tǒng)級別的設(shè)計模式 最高的抽象描述層 該層包含的概念有: 解釋器、編譯器、編輯器、管道/過濾器、黑板、C/S 、B/S、框架 etc.3.5 3.5 軟件體系結(jié)構(gòu)的層次模型軟件體系結(jié)構(gòu)的層次模型3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性46/64 應(yīng)用層 從純粹應(yīng)用領(lǐng)域出發(fā)所建立的系統(tǒng)結(jié)構(gòu)概念 是系統(tǒng)結(jié)構(gòu)模式層的概念經(jīng)過領(lǐng)域

28、應(yīng)用命名的直接引用 企業(yè)管理、公文處理、控制系統(tǒng)、CAD系統(tǒng)、ERP系統(tǒng) etc.3.5 3.5 軟件體系結(jié)構(gòu)的層次模型軟件體系結(jié)構(gòu)的層次模型3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性47/64層次設(shè)計概念系統(tǒng)模型設(shè)計環(huán)境1、硬件層次時鐘、中斷控制、I/O、通道、處理器、存儲器2、軟化的硬件層部件控制連接代碼匯編語言處理器、時鐘、中斷、存儲器、堆棧、I/O、端口、通道順序、條件、循環(huán)、過程、轉(zhuǎn)移循環(huán)掃描、中斷請求過程、代碼塊3.5 3.5 軟件體系結(jié)構(gòu)的層次模型軟件體系結(jié)構(gòu)的層次模型3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟

29、件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性48/64層次設(shè)計概念系統(tǒng)模型設(shè)計環(huán)境3、基礎(chǔ)控制描述層部件抽象控制抽象連接代碼、設(shè)計模式主/子程序、結(jié)構(gòu)化程序、模塊化程序、OOP、ER、UML程序語言、結(jié)構(gòu)化分析設(shè)計OOA/OOD數(shù)組、隊列、鏈表、堆棧、樹、圖、指針、文件、記錄、類、對象 etc.順序、條件、循環(huán)、變量、參數(shù)、中斷調(diào)用、中斷流、通訊協(xié)議、繼承、文件輸入輸出過程、函數(shù)、庫、包、etc.4、資源及管理調(diào)度層控制服務(wù)連接運行控制人機交互消息機制、可視化程序結(jié)構(gòu)可視化程序設(shè)計ODBC、動態(tài)連接庫、剪貼板 etc.事件 消息 異常 RPC DLL 應(yīng)用程序接口共享、同步、分時、并行、進程、線程、

30、實時WIMP、多媒體、控件3.5 3.5 軟件體系結(jié)構(gòu)的層次模型軟件體系結(jié)構(gòu)的層次模型3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性49/64層次設(shè)計概念系統(tǒng)模型設(shè)計環(huán)境5、系統(tǒng)結(jié)構(gòu)模式層控制服務(wù)解釋轉(zhuǎn)換分布計算結(jié)構(gòu)模式分布計算程序組裝組件設(shè)計數(shù)據(jù)庫服務(wù)、域名服務(wù)、組件服務(wù)管道、解釋器、瀏覽器組件、中間件、C/S、B/S、MutilTiers框架,6、應(yīng)用層控制系統(tǒng)CAD系統(tǒng)事務(wù)處理其他領(lǐng)域領(lǐng)域模型領(lǐng)域應(yīng)用設(shè)計環(huán)境實時、生產(chǎn)線機械、建筑、電器、自動化計劃、倉庫、財務(wù)、檔案信息服務(wù)、航空、金融3.5 3.5 軟件體系結(jié)構(gòu)的層次模型軟件體系結(jié)構(gòu)的層

31、次模型3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性50/64 體系結(jié)構(gòu)的層次模型構(gòu)成了SA的結(jié)構(gòu)體系、知識體系。原因如下: 軟件研究的過程就是SA從基礎(chǔ)到高層逐步發(fā)展的過程 SA的概念是建立在軟件研究和技術(shù)成果之上,是軟件發(fā)展過至今的產(chǎn)物3.6 3.6 軟件體系結(jié)構(gòu)的體系軟件體系結(jié)構(gòu)的體系3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性51/64 層次模型對軟件體系結(jié)構(gòu)的認識 體系結(jié)構(gòu)是關(guān)于軟件的構(gòu)成部件及其連接的分層的結(jié)構(gòu)框架 體系結(jié)構(gòu)包括軟件的內(nèi)在概念和外在操作結(jié)構(gòu) 體系結(jié)構(gòu)分析與設(shè)計涵蓋并

32、指導(dǎo)著從邏輯結(jié)構(gòu)設(shè)計到運行實現(xiàn)的軟件工程的全部過程3.6 3.6 軟件體系結(jié)構(gòu)的體系軟件體系結(jié)構(gòu)的體系3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性52/64 體系結(jié)構(gòu)的構(gòu)成基礎(chǔ) 體系結(jié)構(gòu)是計算機技術(shù)發(fā)展成熟的必然產(chǎn)物 基礎(chǔ)包括:對硬件的軟件抽象、基礎(chǔ)控制描述、資源管理調(diào)度、系統(tǒng)結(jié)構(gòu)模式、領(lǐng)域知識 SA研究是整個軟件領(lǐng)域幾十年研究的繼承、概括和發(fā)展3.6 3.6 軟件體系結(jié)構(gòu)的體系軟件體系結(jié)構(gòu)的體系3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性3 3 軟件體系結(jié)構(gòu)和層次性軟件體系結(jié)構(gòu)和層次性53/64 體系結(jié)構(gòu)的描述抽象 抽象在軟件技術(shù)研究中一直發(fā)揮著重要的作用,每次抽象都標志著技術(shù)發(fā)展從經(jīng)驗向理論的轉(zhuǎn)折,每次抽象都在前一次抽象基礎(chǔ)上建立的 語言(01,匯編高級);ADT(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論