




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1第6章 體系結構設計Architectural Design學習引導軟件的體系結構設計為什么很重要軟件的體系結構設計為什么很重要;在體系結構設計階段對系統體系結構必須做出在體系結構設計階段對系統體系結構必須做出的決策的決策;介紹體系結構的模式思想介紹體系結構的模式思想,介紹經驗證明有效的、介紹經驗證明有效的、并且能夠在系統設計中復用的組織系統體系結并且能夠在系統設計中復用的組織系統體系結構的方法構的方法;了解經常在不同的應用系統類型中使用的體系了解經常在不同的應用系統類型中使用的體系結構模式結構模式,包括事務處理系統和語言處理系統。包括事務處理系統和語言處理系統。2要點6-1: 體系結構模型
2、描述了這構成軟件的組件,及組件之間的關聯。3還記得下面的話嗎?一個建筑的架構設計有兩個重要職責:一個建筑的架構設計有兩個重要職責:一是要繪制藍圖并設計建筑竣工后應該是什么樣子;一是要繪制藍圖并設計建筑竣工后應該是什么樣子;同時還要負責按照設計藍圖中的樣子把它建造出來。同時還要負責按照設計藍圖中的樣子把它建造出來。 “一個軟件系統的架構師是一個要擔負起軟件系一個軟件系統的架構師是一個要擔負起軟件系統的定義、架構的實現、系統的實施、系統架構演統的定義、架構的實現、系統的實施、系統架構演化和系統演化的人。換句話說,是一個要為系統整化和系統演化的人。換句話說,是一個要為系統整個生命周期負責的人。個生命
3、周期負責的人。”4邏輯結構的設計決策,只能用建模語言將邏輯構邏輯結構的設計決策,只能用建模語言將邏輯構成表示成模型成表示成模型建模初期可以使用非正規的符號系統和草圖來表建模初期可以使用非正規的符號系統和草圖來表達設計。但使用正規的(如達設計。但使用正規的(如UML)則是克服描述復)則是克服描述復雜性的有效方法雜性的有效方法56體系結構模型舉例這個機器人系統能夠對不同類型的對象進行打包。它使用了一個視覺子系統來拾取傳送帶上的對象,識別對象類型并選擇正確的打包方式,然后從傳送帶上移下對象、打包,最后將其送到另一個傳送帶上。體系結構模型描述了這些組件以及它們之間的關聯。要點6-2: 軟件設計很重要,
4、十分重要!是各信息持有者之間的交流平臺,也是軟件質量的基礎。8軟件體系結構的重要性信息系統建設的需要,以及長期的關于體系結構的研信息系統建設的需要,以及長期的關于體系結構的研究表明:究表明:軟件的質量基礎,在于體系結構對軟件質量的容量軟件的質量基礎,在于體系結構對軟件質量的容量盡管提高軟件系統的質量是一個很復雜的話題,但是從根本上說,軟件的質量,是設計出來的,而測試只能提供最終的質量。軟件體系結構文檔化的好處:信息持有者之間的溝通;軟件體系結構文檔化的好處:信息持有者之間的溝通;利于系統分析;利于大規模的復用。利于系統分析;利于大規模的復用。9體系結構設計決策包括對應用類型的決策、系統分布的決
5、策、所使用的體系結構類型的決策以及對體系結構應該如何記錄和評估的決策。10要點6-3:體系結構設計決策決策什么?1.對于所要開發的系統,是否存在一個一般性的對于所要開發的系統,是否存在一個一般性的應用體系結構可以拿來當做模板?應用體系結構可以拿來當做模板?希望該軟件的體系結構具有通用性,這樣可以提高軟件的復用性。2.系統將如何分配到多個處理器上?系統將如何分配到多個處理器上?該軟件是一個網絡式軟件,需要部署在分布于不同地理空間上的多臺設備上。3.有哪個或哪幾個體系結構模式或者風格適合本有哪個或哪幾個體系結構模式或者風格適合本系統?系統? 希望復用已有的體系結構。4.有哪些基本方法可以用來構成該
6、系統?有哪些基本方法可以用來構成該系統?希望簡化后續的開發工作。5.如何將系統中的結構單元分解為模塊?如何將系統中的結構單元分解為模塊?希望提出一個便于開發團隊分工協作、并行開發來完成的體系結構6.應該使用什么樣的策略來控制系統中單元的操應該使用什么樣的策略來控制系統中單元的操作?作?希望得到一個靈活、有效的系統控制流程(特別是簡化界面的遷移和用戶接口)。7.如何評估體系結構設計?如何評估體系結構設計?追求完整性和一致性,希望體系結構既能滿足你的功能需求,也能滿足可能要求的可依賴性。8.如何記錄系統體系結構?如何記錄系統體系結構?希望在體系結構的表述上不太困難。 軟件體系結構是構造系統的基本框
7、架。系統的性質,比如性能、信息安全性和可用性都受到所使用的體系結構的影響。13要點6-4:非功能屬性對體系結構影響記住:軟件系統的特性,主要取決于系統的非功能需求如果性能很關鍵,體系結構的設計就要定位在少如果性能很關鍵,體系結構的設計就要定位在少數幾個子系統上的一些關鍵性操作上,要在最大限數幾個子系統上的一些關鍵性操作上,要在最大限度內使這些子系統與其他子系統減少通信。度內使這些子系統與其他子系統減少通信。如果信息安全性是一個關鍵性的需求,那么體系如果信息安全性是一個關鍵性的需求,那么體系結構的設計就要采用分層結構,把重要資源放在內結構的設計就要采用分層結構,把重要資源放在內層,并且在每層中采
8、用更加嚴格的信息安全性驗證。層,并且在每層中采用更加嚴格的信息安全性驗證。14如果安全是一個關鍵性的需求,那么系統體系結構的如果安全是一個關鍵性的需求,那么系統體系結構的設計就要將與安全相關的操作集中在一個或少數幾個子設計就要將與安全相關的操作集中在一個或少數幾個子系統中。這樣做會降低成本和減少安全有效性驗證方面系統中。這樣做會降低成本和減少安全有效性驗證方面的問題。的問題。如果可用性是一個關鍵性需求,那么系統體系結構設如果可用性是一個關鍵性需求,那么系統體系結構設計就要采用冗余性組件,以便能在無需系統停止運行的計就要采用冗余性組件,以便能在無需系統停止運行的情況下更新和替換組件。情況下更新和
9、替換組件。如果可維護性是一個關鍵性需求,那么系統體系結構如果可維護性是一個關鍵性需求,那么系統體系結構設計就要使用小粒度的自包含組件以便于更換。數據的設計就要使用小粒度的自包含組件以便于更換。數據的生產者和數據的消費者應該分開,盡量避免它們之間的生產者和數據的消費者應該分開,盡量避免它們之間的數據共享。數據共享。15所以,先有體系結構,再有模塊劃分這樣的軟件要這樣的軟件要“先進行戰略設計,再進行戰術設先進行戰略設計,再進行戰術設計計”。這就需要一個支持軟件生命周期的邏輯這就需要一個支持軟件生命周期的邏輯“框架框架”,識別出系統的主要組件以及它們之間的通信關系;識別出系統的主要組件以及它們之間的
10、通信關系;據此,我們可以來在初期較小的系統中,將精力集據此,我們可以來在初期較小的系統中,將精力集中在功能的正確性和完整性上;中在功能的正確性和完整性上;16在隨后不斷增長的系統中,需要滿足諸如可移植性、在隨后不斷增長的系統中,需要滿足諸如可移植性、安全性、可靠性和可修改性等屬性。安全性、可靠性和可修改性等屬性。17軟件體系結構(軟件體系結構( software architecture ),是描述),是描述軟件系統基本結構和組成的模型。軟件系統基本結構和組成的模型。體系結構設計是一個充滿創造性的過程,設法建體系結構設計是一個充滿創造性的過程,設法建立一個系統組成來滿足功能性和非功能性需求。立
11、一個系統組成來滿足功能性和非功能性需求。18 Rational公司的Philippe Kruchten在1995年提出了用于體系結構描述的“4十l”模型。該模型采用多視圖模型的方法描述軟件體系結構。該模型由4個視圖構成和一個場景組成。即邏輯視圖;進程視圖;物理視圖;開發視圖;加用例場景。19要點6-5:體系結構視圖邏輯視圖邏輯視圖 當采用面向對象的設計方法時,邏輯視圖即是對象模型,當采用面向對象的設計方法時,邏輯視圖即是對象模型, 支持系統的功能需求的描述。支持系統的功能需求的描述。進程視圖進程視圖 描述系統的動態行為,系統如何組織為一組交互的進程,描述系統的動態行為,系統如何組織為一組交互的
12、進程, 對于非功能系統特征的判斷非常有效,比如可靠性,容錯性。對于非功能系統特征的判斷非常有效,比如可靠性,容錯性。物理視圖物理視圖 描述軟件到硬件之間的映射關系,反映系統在分布方面的設計。描述軟件到硬件之間的映射關系,反映系統在分布方面的設計。開發視圖開發視圖 描述軟件如何分解成可以由單獨的開發人員或開發團隊實現的描述軟件如何分解成可以由單獨的開發人員或開發團隊實現的組件組件關于體系結構建模的觀點:4+1模型多角度,全面的給出了系統體系結構全貌;系統體系結構可以用UML來進行描述;一般情況下,體系結構的建模主要是有利于溝通,而不在于詳細的體系結構描述;關鍵性系統則要求詳細的文檔;體系結構設計
13、內容應詳列其中。軟件體系結構風格是描述某一特定應用領域中系統組織方式的慣用模式。也稱之為體系結構模式。作為一種表示、共享和復用軟件系統知識的方法。22要點 6-6軟件體系結構風格類型1 mvc2 分層模型3容器模型4 客戶機-服務器模型5管道-過濾器模型1 MVC模式MVC的全名是Model View Controller,是模型(model)視圖(view)控制器(controller)的縮寫,一種軟件設計典范。使用MVC的目的是將M和V的實現代碼分離,從而使同一個程序可以使用不同的表現形式。比如一批統計數據可以分別用柱狀圖、餅圖來表示。C存在的目的則是確保M和V的同步,一旦M改變,V應該同
14、步更新。MVC模式的組成mvc特點MVC的web應用體系結構MVC舉例在這個計算器程序中,外部的那些按鈕和最上面的顯示條,就是視圖層,那些需要運算的數字就是數據層,執行加減乘除的那些內部運算步驟就是控制層。每一層執行不同的功能,整個程序的結構非常清楚。 以家用微波爐為例,可以將它也理解成三層結構。最簡單的情況下,微波爐的操作用兩個轉盤實現,一個控制溫度,另一個控制時間。這兩個轉盤就是視圖層(view),而其內部的微波產生裝置則是數據層(Model),這里的數據需要理解成核心功能。至于將用戶通過轉盤輸入的信息,轉換成對微波產生器的操作,則用控制層來實現。如果每一層都是獨立的,那么微波爐外部更換一
15、個新潮的外殼,或者內部更換更大功率的微波產生器,完全可以在不更改其他層的情況下實現。這就是MVC模式的優勢。MVC舉例2.分層模型體系結構的分層模型,模擬了計算機工作原理,把軟件系體系結構的分層模型,模擬了計算機工作原理,把軟件系統看作一個抽象的機器(也稱之為抽象機模型)統看作一個抽象的機器(也稱之為抽象機模型)把系統組織成一系列的層次,每一層都向上提供一組把系統組織成一系列的層次,每一層都向上提供一組服務,并使用該層下面一層提供的服務。服務,并使用該層下面一層提供的服務。每一層都是一組模塊,提供一組內聚的服務集合,并每一層都是一組模塊,提供一組內聚的服務集合,并有一個定義明確的接口。有一個定
16、義明確的接口。30示例:分層系統 無處不在的層分層系統體系結構描述分層體系結構特點名稱分層體系結構描述將系統組織成分層結構,每一層中包含一組相關的功能。每一層提供服務給緊鄰的上一層,因此,最底層是有可能被整個系統所使用的核心服務。使用時機在已有系統的基礎上構建新的設施時使用;當開發團隊由多個分散的小團隊組成,且每個小團隊負責一層的功能時使用;或者是當系統存在多層信息安全性需求時使用。優點允許在接口保持不變的條件下更換整個一層。在每一層中可以提供冗余服務(例如身份驗證)以增加系統的可靠性。缺點在具體實踐中,在各層之間提供一個干凈的分離通常是困難的,高層可能不得不直接與低層進行直接交互而不是間接通
17、過緊鄰的下一層進行交互。性能可能是個問題,因為服務請求會在每一層中被處理,所以會需要多層解釋。3 容器體系結構(Repository)把整個系統看作是基于數據庫(把整個系統看作是基于數據庫(容器容器)的組成)的組成方式,描述交互組件共享信息。方式,描述交互組件共享信息。 全部共享數據放在一個中央數據庫中,所有子系統全部共享數據放在一個中央數據庫中,所有子系統都能從中存取數據。這個共享的數據庫或者文件就都能從中存取數據。這個共享的數據庫或者文件就是系統的是系統的“容器容器”。共享數據共享數據一致的數據模型一致的數據模型容器容器 數據庫數據庫 文件文件容器不能分布存儲容器不能分布存儲例例:基于一個
18、共享容器的基于一個共享容器的CASE工具集的體工具集的體系結構系結構名稱容器描述系統的所有數據在一個中央容器中管理,該中央容器可以被所有系統組件訪問。組件間不是直接進行交互,它們只通過容器進行交互。使用時機當一個系統中所生成的大量信息需要持久保存時,可以使用該模式。也可以在數據驅動系統中使用該模式,每當在容器中收入數據時將觸發一個動作或工具優點組件是獨立的,它們無需知道其他組件的存在。個組件的變更可以傳播到所有的組件。所有的數據可以得到一致的管理(例如,在同一時間進行備份),因為它們是存放在同一個地方。缺點容器是一個單個失敗點,因而容器中的問題會影響整個系統。在組織所有通過容器進行的通信時會比
19、較低效。將容器分布到多個計算機上會很困難。4 客戶機-服務器體系結構(Client/Server)1.用一組單機服務器給其他子系統提供服務。如打用一組單機服務器給其他子系統提供服務。如打印服務,文件服務;編譯服務等。印服務,文件服務;編譯服務等。2.需要得到服務器提供服務的客戶機子系統。他們需要得到服務器提供服務的客戶機子系統。他們可以在某個時間里并發執行自己的客戶機程序。可以在某個時間里并發執行自己的客戶機程序。3.通信網絡。即一個連接客戶機和服務器的網絡。通信網絡。即一個連接客戶機和服務器的網絡。示例38圖圖6-11 客戶機客戶機/服務器體系結構示例服務器體系結構示例名稱客戶機-服務器描述
20、在客戶機-服務器體系結構中,系統的功能是以服務的形態存在的,每一個服務來自于某個單獨的服務器。客戶機是那些使用服務和訪問服務器的用戶。使用時機當需要從很多地點訪問共享數據時使用。因為服務器可以復制,所以也可以在系統負載經常變化時使用。優點該模型的主要優點是服務器可以分布到網絡上。一般性的功能(例如打印服務)可以被所有的客戶機使用,但并不需要被所有的客戶機所實現。缺點每個服務是單個失敗點,所以對阻止拒絕服務攻擊或服務器失敗缺乏免疫性。性能也可能是無法預知的,因為它依賴于網絡也依賴于系統。當服務器屬于不同的機構時,也存在管理方面的問題。管道-過濾器體系結構管道-過濾器模型是一個系統運行時組織的模型
21、。在這個模型中,函數轉換處理輸入并產生輸出。數據從一個處理單元流到另一個處理單元,每經過一個單元就做一次變換。輸入數據流經過這些變換直到轉換為輸出。這些轉換可能順序地或并行地執行,數據加工可以是一項一項地處理,也可以成批處理。類似于批處理,復雜的交互式系統(對于圖形化用戶界面,有復雜的輸入輸出)很難用管道-過濾器模型來描述,因為有需要處理的數據流的要求(數據驅動,比如工資單)管道和過濾器體系結構的實例一個機構給其客戶開出賬單。每星期將付款與賬單核對一次,若賬單已經支付,則開出收據;若在規定的時間內尚未支付,則發出支付提醒。名稱管道和過濾器描述系統中的數據是這樣組織的,每個處理組件(過濾器)都是
22、分離的,并執行某個類型的數據轉換,數據流(如在一個管道中)從一個組件流向另外的一個組件。使用時機一般應用在數據處理應用中(批處理和事務處理),一些不同的階段處理輸人數據,并產生相應的輸出。優點易于理解并支持變換的復用。工作流風格與很多業務處理體系結構很匹配。通過添加變換進行進化是很顯然的。可以實現為順序的系統,也可以實現為并發的系統的方式。缺點在通信變換間所傳輸的數據格必須協商好,每個變換必須解析它的輸入,并寫成約定的格式輸出。這增加了系統的負荷,意味著不可能復用使用不兼容的數據結構的函數變換。應用體系結構模型是討論應用領域相關體系結構模型,封裝了一類系統的基本特征。目的是要滿足某些商業和機構
23、的需要。43要點6-7應用體系結構類型有很多種類的應用系統有時看起來是很不一樣的。但是,我們發現很多表面上看風格炯異的兩種應用本質上卻是基本相同的。例子如下:事務處理應用:以事務處理為中心的系統。如交互式銀行系統、電子商務系統、信息系統和預訂系統。語言處理系統:如各種類型的編譯器等。1 事務處理系統(TP) 事務處理系統(TP)是設計用來處理用戶對數據庫信息查詢或者請求對數據庫更新的。從技術角度講,數據庫事務是一個操作序列,每個這樣的操作可以看成是一個單元(原子單元)。事務中的所有操作都必須在數據庫永久改變之前完成。這確保在事務中操作失敗不會導致數據庫的不一致性。 (1)事務處理系統總是交互式系統;(2)事務處理系統可以組織成“管道和過濾器”的結構,分別由系統組件負責輸入、處理和輸出。ATM機系統的軟件體系結構2信息系
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 致密砂巖油藏油井堵塞機理及解堵配方研究
- 地鐵換乘站火災煙氣移動與人員疏散研究
- 2025至2030中國石膏板行業市場產業運行態勢及投資規劃深度研究報告
- 校園安全不良事件報告制度及流程
- 2025至2030中國滅菌指標行業發展趨勢分析與未來投資戰略咨詢研究報告
- 2025至2030中國液體分配系統行業發展趨勢分析與未來投資戰略咨詢研究報告
- 2025至2030中國浴室防滑地巾行業市場運行態勢分析及發展前景與投資報告
- 2025至2030中國海洋電子裝備行業發展分析及發展趨勢分析與未來投資戰略咨詢研究報告
- 2025至2030中國泳裝行業產業運行態勢及投資規劃深度研究報告
- 2025至2030中國沿海化學品船行業發展趨勢分析與未來投資戰略咨詢研究報告
- 2023年鍍層和化學覆蓋層技術要求規范(鋁合金化學導電氧化)
- 南寧市信息化大樓工程建設項目可行性研究報告
- 管 制 刀 具課件
- 生物多樣性保護與建設項目可行性研究報告
- 健康減肥調脂降糖
- LaTeX科技排版課件
- 2023年河北交通投資集團有限公司招聘筆試題庫及答案解析
- 反向傳播算法課件
- 企業質量安全主體責任
- 南模自招試卷-2012年自主招生
- 數據倉庫開發規范
評論
0/150
提交評論