軟件體系結構-3軟件體系結構的層次性.ppt
《軟件體系結構-3軟件體系結構的層次性.ppt》由會員分享,可在線閱讀,更多相關《軟件體系結構-3軟件體系結構的層次性.ppt(60頁珍藏版)》請在裝配圖網上搜索。
1、Software Architecture Perspective on an Emerging Discipline,By 王備戰(zhàn) 13959238599(M) 05922580589(O) 海韻園行政樓A座506,Chapter 3 軟件體系結構的層次性,Contents: 體系結構的基礎和層次特性 軟件體系結構的層次結構模型 從層次模型看軟件體系結構,2/64,3/64,在構建一幢建筑物和構建一個軟件系統(tǒng)之間存在著驚人的相似性。(From 軟件架構師導讀) 簡單而易于掌握的思想具有改變思想和認識的力量。 牛頓與萬有引力 弗洛伊
2、德:潛意識的存在是行為的動機。 如果把軟件和信息技術系統(tǒng)都想象成物理建筑,則:我們會看到什么? 廢棄的房屋 不開心的住戶 空房,3.1 從建筑學看軟件的構成,4/64,體系結構需要基礎:從建筑的基礎性看軟件構成 地基、材料、材料構成三個方面從根本上決定了建筑物的結構、性能、功用、建造方法,形成了建筑的基礎。 構造軟件同樣需要基礎。計算機硬件結構、軟件的基本組成、構成軟件的可用組塊三個方面。 討論軟件的體系結構必須首先建立一個基礎:一旦確立了基礎,各種觀點的比較就有了共同的標準語言。,3.1 從建筑學看軟件的構成,5/64,體系結構需要層次:從建筑的層次性看軟件構成。 建筑是由基本材料到基礎構件
3、再到整體框架逐層次發(fā)展和構成的歷程。 軟件的體系結構也是由使用最基本的材料開始,到認識常用基礎構件再到組裝和構造整體框架的發(fā)展過程。,3.1 從建筑學看軟件的構成,6/64,體系結構需要模式:從建筑的組合性看軟件構成 形態(tài)和構件組成了建筑模式。20多年建立了現(xiàn)代建筑學的250余種“場景問題解決方案”模式,涵蓋不同的規(guī)模和形態(tài) 這些建筑學的思想再軟件結構的研究中也得到了重視,提出并發(fā)展了軟件“軟件設計模式”的概念,進而又提出了“軟件體系結構模式”的概念。,3.1 從建筑學看軟件的構成,7/64,體系結構需要清晰的角色劃分:從建筑業(yè)看各個角色的劃分。,3.1 從建筑學看軟件的構成,8/64,軟件設
4、計的物質基礎是當前的計算機硬件,它決定了軟件設計和實現(xiàn)的出發(fā)點。 當前硬件的變革表現(xiàn)在兩個方面 非馮.諾依曼運行機制的產生 并行處理為特征的高性能計算機結構,3.2 軟件的物質基礎,9/64,計算機硬件體系結構 軟件是對一組數(shù)據(jù)進行處理的一串指令。 根據(jù)處理指令流和數(shù)據(jù)流的數(shù)量,計算機分為: SISD SIMD MISD MIMD,3.2 軟件的物質基礎,10/64,多處理機系統(tǒng) 屬于MIMD系統(tǒng) 多處理機系統(tǒng)分為 共享存儲器 分布存儲器 工作在統(tǒng)一的操作系統(tǒng)下進行資源管理 挑戰(zhàn):并行算法和軟件的設計,3.2 軟件的物質基礎,11/64,分布計算系統(tǒng) 多臺計算機通過網絡連接起來的大系統(tǒng) 分布
5、存儲的多處理機系統(tǒng) 但各自運行獨立的操作系統(tǒng),3.2 軟件的物質基礎,12/64,結論 多處理機需要并行處理(解決并行任務的調度和自動分解),對軟件設計提出了復雜的要求,使軟件設計的復雜度大大提高 我們以討論串行計算機環(huán)境下的軟件體系結構為主,3.2 軟件的物質基礎,13/64,,任何具有固定組成形式的數(shù)據(jù)、代碼、數(shù)據(jù)集合、代碼序列、數(shù)據(jù)和代碼的結合體都可以稱作結構。 無論多么高層的結構,都是建立在基礎結構之上的。 軟件結構的問題從最初的最基本、最底層的描述過渡到越來越高、越來越抽象的層次上。 作為軟件結構基礎的思想和概念,包括四個方面: 結構化控制流 結構化連接模式 數(shù)據(jù)結構 抽象數(shù)
6、據(jù)類型,越 來 越 抽 象,3.3 軟件的結構基礎,14/64,結構化控制流 順序序列 轉向語句 goto 過程調用 ,3.3 軟件的結構基礎,15/64,結構化控制流 條件語句 if then if then else 開關語句 Swithch Case value 1 Case value n ,3.3 軟件的結構基礎,16/64,結構化控制流 循環(huán)語句 For While do Repeat until Break Continue,3.3 軟件的結構基礎,17/64,結構化控制流 事件/異常語句 On goto 中斷/事件控制 Set to Set on/off,3.3 軟件的結構基礎
7、,18/64,部件連接方式 部件連接器:完成部件與部件之間的連接 部件:數(shù)據(jù)、外部設備、程序段 實現(xiàn)部件連接的四種方式 過程調用 遠程過程調用 事件觸發(fā) 服務連接,3.3 軟件的結構基礎,19/64,部件連接方式 過程調用方式 部件之間通過過程、函數(shù)或方法實現(xiàn)連接 必須知道對方部件的標識、對外提供的操作過程標識、參數(shù)設置 遠程過程調用 RPC 網絡分布環(huán)境下的過程調用 通過代理部件完成部件之間的連接,3.3 軟件的結構基礎,20/64,部件連接方式 中斷/事件觸發(fā)方式 通過硬件提供的中斷及其控制機制實現(xiàn)部件連接的方式 用特定名稱標識中斷號碼就形成事件觸發(fā)的部件連接方式 服務連接方式 服務連接方
8、式由接口、分析器、執(zhí)行器構成 請求部件 接口 分析器 執(zhí)行器 請求部件 各類解釋器、功能服務器采用的就是這種連接方式,,,,,3.3 軟件的結構基礎,21/64,,任何具有固定組成形式的數(shù)據(jù)、代碼、數(shù)據(jù)集合、代碼序列、數(shù)據(jù)和代碼的結合體都可以稱作結構。 無論多么高層的結構,都是建立在基礎結構之上的,作為軟件結構基礎的思想和概念,包括四個方面: 結構化控制流 結構化連接模式 數(shù)據(jù)結構 抽象數(shù)據(jù)類型,3.3 軟件的結構基礎,22/64,結構化連接模式:建立在基本控制流之上的高層次抽象,屬于控制模式。 指部件與部件連接關系的構成形式。 條件連接 循環(huán)連接 查詢連接 中斷/事件方式 共
9、享信息方式,3.3 軟件的結構基礎,23/64,結構化連接模式 條件連接 ,部件A,部件 1,部件 n,條件,,,,3.3 軟件的結構基礎,24/64,結構化連接模式 循環(huán)連接 例如編譯系統(tǒng)中:調用詞法分析、語法分析、語義分析、目標代碼生成、代碼優(yōu)化、鏈接等模塊 ,部件A,部件 1,部件 n,,,,,3.3 軟件的結構基礎,25/64,結構化連接模式 查詢方式 兩個部件 信息源:負責信息的采集 信息處理部件:周期性地對信息源進行信息查詢 對于隨機發(fā)生的信息源事件無法達到快速的實時處理 ,信息獲取和處理構件,信息源 1,信息源 n,,,
10、,3.3 軟件的結構基礎,26/64,結構化連接模式 中斷/事件觸發(fā)方式 處理構件不主動關心信息源的情況 信息處理部件在信息源中斷事件觸發(fā)下啟動工作 可以對隨機發(fā)生的信息源事件進行快速的實時處理,處理構件,信息源 1,信息源 n,,,,,3.3 軟件的結構基礎,27/64,結構化連接模式 共享信息模式 共享信息區(qū)構件進行信息源和信息處理構件的信息交換和傳遞 需要考慮信息存取的同步和互斥問題,信息源 1,,,信息源 n,共享信息交換區(qū),信息處理構件,,,,3.3 軟件的結構基礎,28/64,,任何具有固定組成形式的數(shù)據(jù)、代碼、數(shù)據(jù)集合、代碼序列、數(shù)據(jù)和代碼的結合體都可以稱作結構。 無論多么
11、高層的結構,都是建立在基礎結構之上的,作為軟件結構基礎的思想和概念,包括四個方面: 結構化控制流 結構化連接模式 數(shù)據(jù)結構 抽象數(shù)據(jù)類型,3.3 軟件的結構基礎,29/64,基本數(shù)據(jù)類型(數(shù)據(jù)結構) 是繼規(guī)范控制和結構化設計后在軟件研究和設計中發(fā)揮巨大促進作用的軟件結構概念 在表達軟件體系結構的時候離不開基本的數(shù)據(jù)結構,是體系結構的基本和重要方面 Java 10的雜質 已經讓位與體系結構和更高層的結構 常見的數(shù)據(jù)結構 線性結構 樹形結構 復雜結構 文件結構,3.3 軟件的結構基礎,30/64,,任何具有固定組成形式的數(shù)據(jù)、代碼、數(shù)據(jù)集合、代碼序列、數(shù)據(jù)和代碼的結合體都可以稱作結構。 無論
12、多么高層的結構,都是建立在基礎結構之上的,作為軟件結構基礎的思想和概念,包括四個方面: 結構化控制流 結構化連接模式 數(shù)據(jù)結構 抽象數(shù)據(jù)類型,3.3 軟件的結構基礎,31/64,抽象數(shù)據(jù)結構 是一個關于軟件分塊或者部件的數(shù)學模型 定義了所描述的部件的構成和構成成員之間的關系以及作用在部件構成之上的合法的操作和操作的性質 與其在計算機內的具體的表示和實現(xiàn)無關 定義了由一個值域和定義在該值域上的一組操作組成 從類型的概念把握部件 抽象數(shù)據(jù)類型的定義,四元組(D,R,P,S)表示,3.3 軟件的結構基礎,32/64,,任何具有固定組成形式的數(shù)據(jù)、代碼、數(shù)據(jù)集合、代碼序列、數(shù)據(jù)和代碼的結合體都可以稱作
13、結構。 無論多么高層的結構,都是建立在基礎結構之上的,作為軟件結構基礎的思想和概念,包括四個方面: 結構化控制流 結構化連接模式 數(shù)據(jù)結構 抽象數(shù)據(jù)類型 補充 面向對象 進程及其運行環(huán)境 分時并發(fā)計算 資源共享/并行同步 實時系統(tǒng),3.3 軟件的結構基礎,33/64,面向對象 20世紀60年代提出的 Simula67,Smalltalk80 建立在抽象數(shù)據(jù)類型基礎之上 基本概念:對象、類、封裝、繼承、多態(tài)、方法 類的層次性增加了代碼的復用 信息隱藏保證的對象行為的可靠性 封裝提高了對象作為一種模塊的內聚力,3.3 軟件的結構基礎,34/64,進程 60年代初引入的概念 定義 進程是可以并
14、行執(zhí)行的計算部分,是一個獨立的可以調度的活動 進程執(zhí)行某個任務時,需要分配和釋放各種資源 行為的規(guī)范構成程序,程序在處理機上的執(zhí)行活動叫進程 程序是進程的腳本,進程是程序的動態(tài)執(zhí)行過程 一個進程可以執(zhí)行一個或者幾個程序 不同的進程可以包含同一個程序 進程具有并行特征 進程必須建立獨立的數(shù)據(jù)環(huán)境(確保進程間不發(fā)生干擾) 在串行計算機上,進程處理是實現(xiàn)程序并行和分時運行的必不可少的機制 進程概念的進一步發(fā)展,提出和實現(xiàn)了線程等概念,3.3 軟件的結構基礎,35/64,分時并發(fā)計算 對分時系統(tǒng)的需求 引入基于進程的多道程序技術后使機器的利用率得到的改善,但仍然不能滿足用戶的需求。 對任務控制能力的失
15、去(小計算量的長事件等待)、希望多個操作能同時進行 分時系統(tǒng)的基本特征 同時性 獨立性 及時性 交互作用性 實現(xiàn)分時的方法 時間片,3.3 軟件的結構基礎,36/64,資源共享/并行同步 并行執(zhí)行的任務同時需要同一個硬件和軟件資源資源共享、競爭的問題 并行執(zhí)行的任務之間可能存在某種受限的邏輯或時序關系進程同步問題 解決辦法:信號量 互斥信號:用于資源共享 同步信號:用于任務同步,3.3 軟件的結構基礎,37/64,實時系統(tǒng) 實時是指對于特定事件處理響應的高速度特性,或者指所提供的計算或服務反映最新信息狀態(tài)的現(xiàn)實特性。 實時是相對于用戶容許的響應時間或容許的滯后時間,只要滿足用戶對時間的要求,皆
16、可稱作實時的 分時與實時 分時的目標是提供多個用戶可同時使用同一臺機器或多個程序可在同一臺機器上運行的軟件環(huán)境 實時強調的是系統(tǒng)對特殊時間或請求的及時響應性 實時系統(tǒng)的實現(xiàn) 在分時控制下的循環(huán)查詢模式和事件/中斷模式 實時系統(tǒng)的特性 實時時鐘管理 負載控制能力 高可靠性,3.3 軟件的結構基礎,38/64,分而治之的思想 橫向 縱向 層次性一直都是軟件的問題分析和設計實施的基本和具有普遍適用的思想方法 OS Network 層次系統(tǒng)(Layered Systems)是一種體系結構風格,3.4 軟件的層次結構模型,39/64,計算機網絡的體系結構,應用層,表示層,會話層,傳輸層,網絡層,鏈路層,
17、物理層,,,,,,,,,,,,,,應用層,表示層,會話層,傳輸層,網絡層,鏈路層,物理層,,,,,,,第1層協(xié)議,第2層協(xié)議,第3層協(xié)議,第4層協(xié)議,第5層協(xié)議,第6層協(xié)議,第7層協(xié)議,3.4 軟件的層次結構模型,40/64,計算機操作系統(tǒng)的體系結構,計算機硬件(CPU、內存、I/O),基本輸入輸出,操作系統(tǒng)內核,系統(tǒng)調用,語言處理、系統(tǒng)工具、系統(tǒng)應用、應用程序,Shell解釋運行,,,,,,3.4 軟件的層次結構模型,41/64,層次體系結構的對比、總結 都是從硬件的構成和連接的基礎開始 系統(tǒng)設計中都考慮道了系統(tǒng)的升級和擴展性、兼容性 建立在各基礎層服務之上的系統(tǒng),對于性能可以建立可追蹤的分
18、析估計 以上兩個體系結構的不同點 上層對下層的隔層之間是否發(fā)生直接連接或調用關系 以上體系結構為復雜軟件的分層設計提供了典范,體系結構的層次風格主要因此而得到認識的。,3.4 軟件的層次結構模型,42/64,建筑的發(fā)展經歷了從認識建筑材料到采用基礎構件、到建立整體結構的過程。 軟件的發(fā)展和構造也具有類似建筑的性質。 任何軟件的完整結構都具有層次關系: 特定的軟件需要特定的硬件環(huán)境運行 不存在不需要下層支持的抽象的上層結構或框架 層次性是軟件體系結構的不變性質,是軟件構成的共同規(guī)律,3.5 軟件體系結構的層次模型,3.5 軟件體系結構的層次模型,第6層 應用層,第5層 系統(tǒng)結構模式層,第
19、4層 資源和管理調度層,第3層 基礎控制描述層,第2層 軟化的硬件層,第1層 計算機硬件,,,,,,,,,,,軟件體系結構的層次模型,44/64,硬件基礎層 軟件運行的物質基礎 軟化的硬件層 對硬件結構和性能抽象的基礎上,實現(xiàn)硬件的操作和控制描述軟化的硬件層 處理器:狀態(tài)和指令集合 中斷:狀態(tài)和中斷服務,3.5 軟件體系結構的層次模型,45/64,基礎控制描述層 建立在高級程序語言描述上的純粹軟件描述層,包括了高級語言所支持的所有程序控制和數(shù)據(jù)描述概念 程序控制概念:順序、條件、選擇、循環(huán)、變量、參數(shù)、過程、函數(shù)、模塊 數(shù)據(jù)描述的概念:數(shù)組、隊列、鏈表、堆棧、樹、圖、指針、記錄 支持該層面的軟
20、件系統(tǒng)模型 主程序/子程序、結構化程序、模塊化程序、面向對象程序 支持該層面的設計工具 程序設計語言、結構化分析、面向對象分析設計,3.5 軟件體系結構的層次模型,46/64,資源和管理層 作用:在基礎控制描述層建立的一切數(shù)據(jù)對象和操作,都需要在操作系統(tǒng)的協(xié)調和控制下才能實際的實現(xiàn)其設計的作用和功能。 進程管理、消息處理、I/O etc. 該層考慮的設計模式 共享資源、同步、分時系統(tǒng)、異常處理、并行、進程、線程、消息、遠程調用 etc. 該層的軟件系統(tǒng)模型 進程控制、分時系統(tǒng)、消息機制 etc .,3.5 軟件體系結構的層次模型,47/64,系統(tǒng)結構模式層 最高層次的軟件結構概念 屬于體系結構
21、風格或系統(tǒng)級別的設計模式 最高的抽象描述層 該層包含的概念有: 解釋器、編譯器、編輯器、管道/過濾器、黑板、C/S 、B/S、框架 etc.,3.5 軟件體系結構的層次模型,48/64,應用層 從純粹應用領域出發(fā)所建立的系統(tǒng)結構概念 是系統(tǒng)結構模式層的概念經過領域應用命名的直接引用 企業(yè)管理、公文處理、控制系統(tǒng)、CAD系統(tǒng)、ERP系統(tǒng) etc.,3.5 軟件體系結構的層次模型,49/64,3.5 軟件體系結構的層次模型,50/64,3.5 軟件體系結構的層次模型,51/64,3.5 軟件體系結構的層次模型,52/64,體系結構的層次模型構成了SA的結構體系、知識體系。原因如下: 軟件研究的過程
22、就是SA從基礎到高層逐步發(fā)展的過程 SA的概念是建立在軟件研究和技術成果之上,是軟件發(fā)展過至今的產物,3.6 軟件體系結構的體系,53/64,層次模型對軟件體系結構的認識 體系結構是關于軟件的構成部件及其連接的分層的結構框架 體系結構包括軟件的內在概念和外在操作結構 體系結構分析與設計涵蓋并指導著從邏輯結構設計到運行實現(xiàn)的軟件工程的全部過程,3.6 軟件體系結構的體系,54/64,體系結構的構成基礎 體系結構是計算機技術發(fā)展成熟的必然產物 基礎包括:對硬件的軟件抽象、基礎控制描述、資源管理調度、系統(tǒng)結構模式、領域知識 SA研究是整個軟件領域幾十年研究的繼承、概括和發(fā)展,3.6 軟件體系結構的體
23、系,55/64,體系結構的描述抽象 抽象在軟件技術研究中一直發(fā)揮著重要的作用,每次抽象都標志著技術發(fā)展從經驗向理論的轉折,每次抽象都在前一次抽象基礎上建立的 語言(01,匯編高級);ADT(data,operation);進程(并行和任務調度);事件和消息(中斷);虛擬機、微內核(OS);分布式 (network);領域模型(特定應用問題);SP、OO、UML(軟件結構) etc. SA是目前對軟件結構的最高級抽象,該抽象建立在當強所有關于軟件的研究成果之上的,3.6 軟件體系結構的體系,56/64,體系結構的語法和語義 體系結構的組成需要使用特定的語言進行描述 詞匯、語法、語義、語用 SA的
24、層次性反映了幾十年軟件描述的基礎詞匯、語法集合、使用方法規(guī)范化、形式化,3.6 軟件體系結構的體系,57/64,體系結構的性能分析 軟件的性能 功能特性(Functional Properties) 非功能特性(NonFunctional Properties) 只有最上層結構關系而無深層次實現(xiàn)描述是無法實現(xiàn)非功能性分析 體系結構層次模型的資源及管理調度和基礎控制描述層為研究非功能特性提供了支持,3.6 軟件體系結構的體系,58/64,體系結構代碼生成 軟件設計的目的是建立正確高效運行的軟件代碼系統(tǒng) SA應該支持代碼的生成,提供對各個層次的部件和連接器的深層分析和表達 目前,SA研究重點在: 體系結構風格 體系結構形式化 體系結構描述語言 代碼的生成,3.6 軟件體系結構的體系,59/64,體系結構的知識體系 軟件體系結構的層次模型說明了軟件的構成和設計知識貫穿散布在計算機各領域中 軟化的硬件層:組成、匯編、接口 基礎控制描述層:語言、DS、OO、DB 資源及管理調度層:OS 系統(tǒng)結構模式層:DB、SE、DC 應用層:Background 建立統(tǒng)一、系統(tǒng)的軟件知識體系,3.6 軟件體系結構的體系,Thank You !,
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。