版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
軟件體系結構電子教案第6章文檔化體系結構蔣哲遠
2/197第6章內容摘要6.1軟件體系結構編檔概述6.2視圖類型與風格6.3軟件體系結構編檔的實施《軟件體系結構》電子教案3/1976.1軟件體系結構編檔概述(1)、軟件文檔類型(2)、SA文檔的作用(3)、SA文檔化的內容(4)、合理文檔化的規(guī)則(5)、編檔標準結構《軟件體系結構》電子教案4/197(1)、軟件文檔類型系統(tǒng)文檔
為設計和開發(fā)人員提供相關信息,來維護系統(tǒng)或對系統(tǒng)進行重新設置多數(shù)或者所有的文檔是隨著軟件生命周期的過程而產(chǎn)生的用戶文檔
為最終的用戶提供系統(tǒng)運行支持。它主要描述系統(tǒng)的操作規(guī)程,諸如一些功能,數(shù)據(jù)的錄入,產(chǎn)生的結果和定期維護等6.1軟件體系結構編檔概述《軟件體系結構》電子教案5/197系統(tǒng)文檔(1)、軟件文檔類型生命周期階段系統(tǒng)文檔分析傳統(tǒng)方法面向對象方法E-R圖,數(shù)據(jù)流圖過程描述,數(shù)據(jù)字典類圖,用例圖交互圖,狀態(tài)圖設計事件列表系統(tǒng)流程圖,結構圖設計類圖,軟件包圖模塊或方法的偽代碼,數(shù)據(jù)庫模式圖實現(xiàn)程序源代碼,數(shù)據(jù)庫模式源代碼,測試數(shù)據(jù)6.1軟件體系結構編檔概述6/197(2)、SA文檔的作用SA文檔的3種用途:教育工具。特別是新的團隊成員、外部分析人員和新的構架師。是涉眾間的首要通訊工具。涉眾包括諸如:代表客戶的構架師和需求工程師、組成部分構架師和設計人員、實現(xiàn)者、測試者和集成者、維護者、必須與系統(tǒng)進行交互操作的其它系統(tǒng)設計者、管理者、產(chǎn)品線管理者、質量保證小組等。支持系統(tǒng)分析。也就是必須包含系統(tǒng)分析的必要信息,諸如對各種屬性(安全性、性能、可用性和可維護性等)進行評估的必要信息6.1軟件體系結構編檔概述《軟件體系結構》電子教案7/197(3)、SA文檔化的內容接口:指兩個獨立的實體相互接觸、交互和通訊的邊界視圖:是對一組系統(tǒng)元素及其關系的描述。PhilippeKruchten的4+1視圖RM-ODP視點Hofmeister視圖基于UML的RUP視圖本章主講的視圖(PaulClements等)幾種著名的視圖/視點:6.1軟件體系結構編檔概述8/197(3)、SA文檔化的內容(續(xù))PhilippeKruchten的4+1視圖邏輯視圖—系統(tǒng)設計時子系統(tǒng)或關鍵包的邏輯表示。它忽略任何實現(xiàn)和物理細節(jié)進程視圖—定義不同的OS的線程、任務和進程是如何相互通訊的部署視圖—定義在硬件上是如何被實例化和部署的實現(xiàn)視圖—描述實際軟件是如何被實現(xiàn)的,包括實際源代碼、代碼的目錄結構及數(shù)據(jù)庫的結構等用例視圖—包括為理解系統(tǒng)行為而必須定義的用例6.1軟件體系結構編檔概述《軟件體系結構》電子教案9/197(3)、SA文檔化的內容(續(xù))RM-ODP視點企業(yè)視點—商業(yè)需求和策略、以及系統(tǒng)的范圍和目標。RM-ODP可能會影響系統(tǒng)中可能與企業(yè)相關的信息,如組織結構信息視點—指信息的結構,它的變化、流程,以及在不同功能間的邏輯劃分計算視點—重點在于把系統(tǒng)分解為實體和實體間的接口工程視點—處理分布式系統(tǒng)對象之間的交互,以及交互是如何得到支持的技術視點—定義構成系統(tǒng)的硬件和軟件構件6.1軟件體系結構編檔概述10/197(3)、SA文檔化的內容(續(xù))Hofmeister視圖概念視圖—包括主要設計元素和它們之間的主要關系模塊視圖—將構件及其接口映射到子系統(tǒng)和模塊執(zhí)行視圖—描述模塊是如何映射到執(zhí)行線程上的代碼視圖—將實現(xiàn)階段的實體,諸如源文件等映射到構件6.1軟件體系結構編檔概述《軟件體系結構》電子教案11/197(3)、SA文檔化的內容(續(xù))基于UML的RUP視圖設計視圖(Designview)過程視圖(Processview)實現(xiàn)視圖(Implementationview)實施視圖(Deploymentview)UseCase視圖(UseCaseview)功能描述類、接口和協(xié)作,主要支持功能需求針對系統(tǒng)的性能、可收縮性和吞吐量軟件系統(tǒng)的物理分布6.1軟件體系結構編檔概述《軟件體系結構》電子教案12/197(3)、SA文檔化的內容(續(xù))視圖類型:從特定的角度定義那些描述SA的元素類型和關系類型①模塊(module)視圖類型:軟件作為一個實現(xiàn)單元集,它是如何構造的。模塊視圖能為系統(tǒng)的實現(xiàn)單元編檔②構件-連接件(C&C)視圖類型:軟件作為一個運行時行為和交互作用的元素集,它是如何構造的。C&C視圖能為系統(tǒng)的執(zhí)行單元編檔③分配(allocation)視圖類型:軟件是如何在它所處的環(huán)境中與非軟件結構產(chǎn)生聯(lián)系的。能為系統(tǒng)軟件與其開發(fā)和執(zhí)行環(huán)境之間的關系編檔本章主講的視圖(PaulClements等)6.1軟件體系結構編檔概述《軟件體系結構》電子教案13/197(3)、SA文檔化的內容(續(xù))SA文檔包:
(下圖)SA編檔其實是對相關的視圖編檔,然后添加適應于多個視圖的文檔。6.1軟件體系結構編檔概述《軟件體系結構》電子教案14/197(3)、SA文檔化的內容(續(xù))風格:是對元素和關系類型的特化,以及如何使用這些元素和關系的一組限制條件視圖類型、風格和視圖的關系實例C&C管道-過濾器C-S……共享數(shù)據(jù)你的風格管道-過濾器視圖C-S……共享數(shù)據(jù)視圖你的視圖視圖類型風格視圖視圖包6.1軟件體系結構編檔概述《軟件體系結構》電子教案15/197(3)、SA文檔化的內容(續(xù))視圖類型與其包含的風格模塊視圖類型C&C視圖類型分配視圖類型風格分解風格使用風格泛化風格分層風格管道-過濾器共享數(shù)據(jù)風格發(fā)布-訂閱風格C/S風格對等關系風格通訊進程風格部署風格實現(xiàn)風格工作任務風格6.1軟件體系結構編檔概述《軟件體系結構》電子教案16/197(3)、SA文檔化的內容(續(xù))模塊與構件(聯(lián)系與區(qū)別)模塊傾向于指向設計時的實體;構件傾向于指運行時的實體模塊不太強調交付媒介在運行時發(fā)生的情況;構件意指獨立部署的軟件單元。已交付的二進制構件將在整個執(zhí)行過程中維持其獨立性模塊被復用的可能性遠遠小于構件模塊視圖類型包含主要反應設計時因素的風格:向設計和實現(xiàn)單元指派問題各個部分的分解過程6.1軟件體系結構編檔概述《軟件體系結構》電子教案17/197(3)、SA文檔化的內容(續(xù))模塊與構件(聯(lián)系與區(qū)別)C&C視圖類型包含的風格強調執(zhí)行期間進程的交互方式和數(shù)據(jù)在系統(tǒng)中的流動方式在模塊視圖中編檔的元素可能會在C&C視圖中得到良好的展現(xiàn),這就是設計時的元素在運行時的展現(xiàn)模塊和構件代表著當前軟件工程快速組建和輕松更改軟件系統(tǒng)的基本原則,它們都成為了創(chuàng)建和記錄SA的基本要素6.1軟件體系結構編檔概述《軟件體系結構》電子教案18/197對任何軟件編檔(包括SA編檔)的規(guī)則:
(4)、合理文檔化的規(guī)則①從讀者的角度編寫文檔:避免意識流,采用執(zhí)行流寫作風格②避免出現(xiàn)不必要的重復③避免歧義。語義精確,定義明確;應該慎用箭頭④使用標準結構⑤記錄基本原理⑥使文檔保持更新,但更新頻度不要過高⑦針對目標的適應性對文檔進行評審6.1軟件體系結構編檔概述《軟件體系結構》電子教案19/197(5)、編檔標準結構主題名稱內容概述1概述解釋視圖類型/風格為什么有益于SA編檔,并討論支持系統(tǒng)的那些方面,以及如何支持系統(tǒng)的推斷和分析2元素、關系和特性元素:視圖/風格的固有構架組成塊關系:元素之間的協(xié)作方式特性:元素,關系的附加信息3支持什么和不支持什么支持和不支持的推斷類型。幫助構架師了解視圖/風格的意圖4表示法圖形和/或文字表示法5與其它視圖的關系視圖之間的關聯(lián);其它視圖的警告信息;有利于建立這一視圖與其它視圖之間映射的建議6范例介紹指定風格編檔的范例6.1軟件體系結構編檔概述《軟件體系結構》電子教案20/197第6章內容摘要6.1軟件體系結構編檔概述6.2視圖類型與風格6.3軟件體系結構編檔的實施《軟件體系結構》電子教案21/1976.2視圖類型與風格6.2.1模塊視圖類型與風格6.2.2C&C視圖類型與風格6.2.3分配視圖類型與風格《軟件體系結構》電子教案22/197
模塊是能提供內聚功能單元的軟件實現(xiàn)單元。模塊產(chǎn)生于20世紀60-70年代,基于軟件單元的思想,這些軟件單元具有良好的接口,并能提供一組服務(一般為過程或函數(shù)),實現(xiàn)了完全或部分隱藏自身內部數(shù)據(jù)結構和算法。這些概念在面向對象的編程語言和建模表示法中得到了廣泛的應用。(1)模塊視圖類型---概述6.2.1模塊視圖類型與風格《軟件體系結構》電子教案23/197
目前,系統(tǒng)軟件分解成可管理單元的方式仍然是重要的系統(tǒng)結構形式之一。它確定了系統(tǒng)源代碼是如何劃分成可分離的部分的,每一部分對其它部分作出了什么樣的假設,以及這些部分是如何聚集成更大的集合體的。模塊化的選擇通常能確定系統(tǒng)的某一部分將如何影響其它部分,因此,系統(tǒng)具有支持可修改性、可移植性和復用的能力(1)模塊視圖類型---概述6.2.1模塊視圖類型與風格《軟件體系結構》電子教案24/197(1)模塊視圖類型---元素、關系和特性描述元素模塊,提供內聚功能單元的軟件實現(xiàn)單元關系部分關系、依賴關系、特化關系元素特性名稱、模塊責任、實現(xiàn)信息關系特性部分關系:擁有相關的可見性特性依賴關系:擁有分配的約束條件特化關系:擁有實現(xiàn)特性布局沒有繼承布局的約束條件6.2.1模塊視圖類型與風格25/197(1)模塊視圖類型---支持/不支持什么描述支持使用模塊視圖類型應針對:構造:模塊視圖提供源代碼的藍圖,因此,模塊和物理結構之間通常會進行詳細映射分析:模塊能劃分系統(tǒng),因而可以確定模塊責任,高層需求往往通過一組調用序列得到滿足。實現(xiàn)需求跟蹤和影響分析通訊:模塊為要了解系統(tǒng)的人說明系統(tǒng)的功能,主要通過系統(tǒng)責任的自頂向下的分解來展示不支持一般不能用于分析性能、可靠性以及其它運行屬性。即對運行時的行為無法推斷。6.2.1模塊視圖類型與風格《軟件體系結構》電子教案26/197(1)模塊視圖類型---表示法描述非正規(guī)表示發(fā)圖形表示文本列表表示(參見下頁:A-7E航空電子系統(tǒng))UML
模塊與關系示范6.2.1模塊視圖類型與風格《軟件體系結構》電子教案27/197(1)模塊視圖類型---表示法(文本列表示例)6.2.1模塊視圖類型與風格28/197(1)模塊視圖類型---與其它視圖的關系模塊通常會映射到C&C視圖類型中的視圖:模塊視圖中展示的實現(xiàn)單元能映射到運行時執(zhí)行的構件單一的模塊通常會在多個構件中復制當模塊片段與構件片段對應時,情況可能會比較復雜模塊視圖表示的是軟件的劃分,因此,不能展示多個對象的實例6.2.1模塊視圖類型與風格29/197(1)模塊視圖類型---總結模塊遵循某種方式將系統(tǒng)軟件分解成可管理的單元,這種功能單元是一種重要的系統(tǒng)結構形式模塊以“部分關系”、“依賴關系”和“特化關系”的形式相互聯(lián)系模塊視圖能為源代碼提供藍圖不應依賴模塊名稱定義模塊的功能:應該使用責任特性定義模塊功能應該使用接口文檔確立模塊在系統(tǒng)中角色模塊通常映射到構件和連接件視圖類型的視圖6.2.1模塊視圖類型與風格30/197(2)模塊視圖類型的風格---分解風格---概述分解風格是一種頗受歡迎的溝通工具在模塊視圖類型中,當強調“部分關系”時即可獲得模塊分解風格幾乎所有的SA開始都采用模塊分解風格實現(xiàn)可修改性,即通過在SA中特定的位置分配功能而將可修改性嵌入SA中6.2.1模塊視圖類型與風格《軟件體系結構》電子教案31/197(2)模塊視圖類型的風格---分解風格---元素、關系和特性描述元素模塊,子系統(tǒng)(聚集成其它模塊的模塊)關系分解關系(“部分關系”的細化)文檔義務(規(guī)定用來定義分解的標準)元素特性由模塊視圖類型定義關系特性可見性(除了父模塊之外,其它模塊對該模塊的了解程度和對其功能的可用程度)布局
分解圖中不允許出現(xiàn)循環(huán)在一個視圖中,一個模塊不能屬于多個模塊6.2.1模塊視圖類型與風格32/197(2)模塊視圖類型的風格---分解風格---支持/不支持什么描述支持分解的工作任務可映射到組織單位和團隊,有利于這些工作任務的實現(xiàn)和測試分解視圖還能在軟件實現(xiàn)層為更改效果進行分析提供某些支持不支持由于分解視圖不能模擬時間的所有依賴,因此無法對更改效果進行全面的影響分析,必須采用對依賴關系更為詳細描述的視圖6.2.1模塊視圖類型與風格33/197(2)模塊視圖類型的風格---分解風格---表示法描述非正規(guī)表示法圖形表示文本列表表示(參見:A-7E航空電子系統(tǒng))UML6.2.1模塊視圖類型與風格《軟件體系結構》電子教案34/197(2)模塊視圖類型的風格---分解風格---與其它風格的關系分解視圖與C&C視圖之間可以進行相互映射,其目的是將軟件的實現(xiàn)結構映射成運行時的結構同一模塊可能會實現(xiàn)若干構件和連接件,一個構件可能需要若干模塊才能實現(xiàn)分解風格與工作任務風格密切相關,后者是分配視圖類型中的一員6.2.1模塊視圖類型與風格《軟件體系結構》電子教案35/197(2)模塊視圖類型的風格---使用風格---概述在使用“依賴關系”時,就應該考慮模塊視圖類型的使用風格對于開發(fā)者來說,要使自己負責的部分能正常工作,必須具備那些模塊此風格允許系統(tǒng)中的有用子集以增量的方式開發(fā)和部署6.2.1模塊視圖類型與風格《軟件體系結構》電子教案36/197(2)模塊視圖類型的風格---使用風格---元素、關系和特性描述元素模塊(由模塊視圖類型定義)關系使用關系(“依賴關系”的細化)元素特性由模塊視圖類型定義關系特性使用關系是一種描述特性,詳細描述了一個模塊使用另外一個模塊的方式布局使用不存在布局限制。但是,如果這種關系中的循環(huán)包含許多元素,那么,以增量方式產(chǎn)生SA的能力會被削弱6.2.1模塊視圖類型與風格37/197(2)模塊視圖類型的風格---使用風格---支持/不支持什么描述支持適用于計劃增量開發(fā)、系統(tǒng)的擴展和子集的擴展調試和測試效果評估不支持6.2.1模塊視圖類型與風格《軟件體系結構》電子教案38/197(2)模塊視圖類型的風格---使用風格---表示法描述非正規(guī)表示法矩陣表示(行模塊使用了列模塊)使用雙列表格的形式(使用元素位于左列,被使用元素位于右列)UML此圖中的數(shù)據(jù)庫具有兩個接口,它們分別由用戶接口模塊和管理系統(tǒng)模塊使用6.2.1模塊視圖類型與風格《軟件體系結構》電子教案39/197(2)模塊視圖類型的風格---使用風格---與其它風格的關系使用風格能與分層風格密切配合區(qū)分使用和調用的關系:程序P1使用P2,而不必調用P2:如P1可以假設P2在結束對某個設備的使用后使設備保持可用狀態(tài);程序P1可以調用程序P2,但不使用P2:如P2是P1在檢測到某個錯誤時調用的異常處理程序,那么P1通常就不關心P2會做什么6.2.1模塊視圖類型與風格《軟件體系結構》電子教案40/197(2)模塊視圖類型的風格---泛化風格---概念當打算支持SA和單個元素的擴展和演化時,就會使用泛化風格模塊必須能捕捉共性和差異性:父模塊擁有共性,子模塊表現(xiàn)出差異性通過添加、刪除或更改子模塊來達到擴展的目的對父模塊的修改,要保持繼承它的子模塊的自動更新泛化意味著同時繼承接口和實現(xiàn)方案:子模塊將繼承父模塊的結構、行為和約束條件6.2.1模塊視圖類型與風格41/197(2)模塊視圖類型的風格---泛化風格---元素、關系和特性描述元素模塊(由模塊視圖類型定義)關系泛化(模塊視圖類型中的“特化關系”)元素特性除了模塊視圖類型中為模塊定義的特性外,模塊還擁有“抽象”特性,抽象特性能定義擁有接口,但沒有實現(xiàn)方案的模塊關系特性泛化關系能擁有一種區(qū)別接口和實現(xiàn)繼承的特性布局
模塊能擁有多個父模塊泛化關系中不允許出現(xiàn)循環(huán)6.2.1模塊視圖類型與風格《軟件體系結構》電子教案42/197(2)模塊視圖類型的風格---泛化風格---支持/不支持什么描述支持面向對象設計擴展和演化局部更改或變化復用不支持6.2.1模塊視圖類型與風格《軟件體系結構》電子教案43/197(2)模塊視圖類型的風格---泛化風格---表示法UML表示法:6.2.1模塊視圖類型與風格《軟件體系結構》電子教案44/197(2)模塊視圖類型的風格---泛化風格---與其它風格的關系繼承關系是其它模塊使用類型關系的補充在復雜的設計方案中,應該將繼承關系與分解關系與其它類型的關系分開展示,繼承關系更多的用于描述模型、風格、框架和引用模型,而不是用于對單一系統(tǒng)的描述繼承可以引出類型和子類型的概念,子類型關系能用來演化指定的類型,以滿足新的需求泛化是元素之間的分類關系;繼承則是將共享增量描述組合起來,形成對元素的全面描述的一種機制泛化意味著對接口和實現(xiàn)的繼承,子模塊將繼承父模塊的結構、行為和約束條件6.2.1模塊視圖類型與風格《軟件體系結構》電子教案45/197(2)模塊視圖類型的風格---分層風格---概述每個層表示一個虛擬機;對虛擬機之間關系的約束條件;虛擬機定義了一種“序”關系,說B在A的下面意味著:在實現(xiàn)A層時可以使用B層提供的虛擬機中的任何基礎設施;層次越低,允許使用的的設施越少;虛擬機增強了可移植性和維護性;分層的實質在于較低的層不能毫無限制地訪問較高層。6.2.1模塊視圖類型與風格《軟件體系結構》電子教案46/197(2)模塊視圖類型的風格---分層風格---元素、關系和特性描述元素層關系“允許使用”是模塊視圖類型“依賴關系”的特化元素特性層的名稱層包容的軟件單元允許層使用的軟件,包括(1)提供層間和層內的使用規(guī)則;(2)列出這些規(guī)則可容許的所有例外情況關系特性與層內和層間有關布局每個部分軟件只能分配到一個層中6.2.1模塊視圖類型與風格《軟件體系結構》電子教案47/197(2)模塊視圖類型的風格---分層風格---支持/不支持什么6.2.1模塊視圖類型與風格描述支持有助于提供可修改性和可移植性虛擬機對于較低層的更改可以隱藏在接口之下,且不會對上面各層產(chǎn)生影響層可以部分地扮演系統(tǒng)的藍圖,但不總是有效的層可以扮演一部分通訊角色,特別是在大型復雜系統(tǒng)中,將模塊組織成具有接口的層來管理,是向開發(fā)者傳達結構的重要手段不支持影響性能的較低層的更改會影響該層的接口,進而影響較高層48/197(2)模塊視圖類型的風格---分層風格---表示法描述非正規(guī)表示法堆棧分段層環(huán)型分段層,3維烤箱模型帶邊車結構的層內容接口大小和顏色UMLUML沒有層的內置元素,但可用“包”表示。見下頁6.2.1模塊視圖類型與風格《軟件體系結構》電子教案49/197(2)模塊視圖類型的風格---分層風格---表示法描述UML分段層6.2.1模塊視圖類型與風格50/197(2)模塊視圖類型的風格---分層風格---與其它風格的關系層與模塊:層可以是模塊;雖然模塊被分解成其它的模塊,但層并未分解成更小的層,引入分段層目的是為了實現(xiàn)與模塊之間的映射。層和模塊之間的映射不是一一對應的(如下圖)6.2.1模塊視圖類型與風格51/197(2)模塊視圖類型的風格---分層風格---與其它風格的關系層與級(tier):在分布式環(huán)境下,給機器分配資源、元素間的數(shù)據(jù)流、以及通訊信道的存在和使用,都傾向于用“級”表示(如下圖)。注意圖中的雙向箭頭和對稱性是與層不同的6.2.1模塊視圖類型與風格《軟件體系結構》電子教案52/197(2)模塊視圖類型的風格---分層風格---與其它風格的關系模塊“使用”風格:由于層能表達“允許使用”關系,因此非常適合使用風格子系統(tǒng):如下圖,子系統(tǒng)由頂層段和任何它可使用的任何較低層的段構成6.2.1模塊視圖類型與風格《軟件體系結構》電子教案53/197(2)模塊視圖類型的風格---總結分解風格能展示向模塊分配任務的方式。分解風格特別適應于新成員,也適應于對更改影響進行分析使用風格能展示模塊相互依賴的方式。使用風格有助于實現(xiàn)增量開發(fā)和系統(tǒng)有用子集的建立泛化風格能展示一個模塊將如何成為另一個模塊的泛化或特化;也能展示繼承性,并能用來使用模塊之間的共性;從而使模塊之間產(chǎn)生關聯(lián)。泛化風格廣泛應用于面向對象系統(tǒng)6.2.1模塊視圖類型與風格《軟件體系結構》電子教案54/197(2)模塊視圖類型的風格---總結分層風格能將系統(tǒng)風割成一組虛擬機,這些虛擬機通過“允許使用”關系相互關聯(lián)。分層風格能幫助系統(tǒng)實現(xiàn)可移植性和可修改性針對使用視圖和分層視圖采用UML構造型的“依賴關系”;針對分解視圖采用“部分關系”;針對泛化視圖采用“繼承關系”等。6.2.1模塊視圖類型與風格《軟件體系結構》電子教案55/1976.2視圖類型與風格6.2.1模塊視圖類型與風格6.2.2C&C視圖類型與風格6.2.3分配視圖類型與風格《軟件體系結構》電子教案56/197(1)、C&C視圖類型—概述C&C視圖是實際操作中的常見視圖,用線框圖表示,并用于對SA進行主要的初步說明C&C視圖能定義由進程、對象、客戶機、服務器和數(shù)據(jù)存儲等元素構成的模型C&C視圖給出了一幅運行時的實體和可能的交互圖6.2.2C&C視圖類型與風格《軟件體系結構》電子教案57/197(1)、C&C視圖類型—概述上圖展示了系統(tǒng)在運行時可能呈現(xiàn)的狀態(tài)。它是不同風格的混合:C/S風格、數(shù)據(jù)共享風格和發(fā)布-訂閱風格6.2.2C&C視圖類型與風格58/197(1)、C&C視圖類型—元素、關系和特性描述元素構件類型:主要處理單元和數(shù)據(jù)存儲器連接件類型:交互機制關系連接:構件端口(接口)和特定的連接件角色相關聯(lián)元素特性構件:名稱:應該能反應構件功能類型:定義一般功能、端口數(shù)量及類型和所需特性其它特性:取決于構件類型,包括性能和可靠性值連接件名稱:能反應連接件的交互性質類型:定義交互性質、角色數(shù)量和類型以及所需特性其它特性:取決于連接件類型,包括性能和可靠性值布局不存在固有的布局限制6.2.2C&C視圖類型與風格59/197(1)、C&C視圖類型—元素、關系和特性選擇連接件的指導方針:連接件可以是多于二元的連接件如果某一構件是用作一組構件之間進行交互操作的中間構件,就應該考慮將它表示為連接件連接件通常能表示復雜的交互形式,如CORBA連接件體現(xiàn)交互協(xié)議。當兩個或更多的構件進行交互時,它們必須遵守有關的交互順序、控制軌跡、錯誤狀態(tài)處理和超時處理的約定6.2.2C&C視圖類型與風格《軟件體系結構》電子教案60/197(1)、C&C視圖類型—支持/不支持什么描述支持C&C能用來推斷運行時系統(tǒng)的質量屬性,如性能、可靠性和有效性主要回答以下問題系統(tǒng)的主要執(zhí)行構件是什么,它們如何交互主要的共享存儲器是什么系統(tǒng)的哪些部分被復制,次數(shù)如何系統(tǒng)執(zhí)行時,數(shù)據(jù)是如何經(jīng)過系統(tǒng)的通訊實體使用了什么交互協(xié)議系統(tǒng)的哪些部分會以并行的方式運行在執(zhí)行過程中,系統(tǒng)結構可能會發(fā)生什么樣的變化不支持并不適合于表示沒有運行時存在的設計元素6.2.2C&C視圖類型與風格《軟件體系結構》電子教案61/197(1)、C&C視圖類型—表示法描述非正規(guī)表示法線框圖正規(guī)表示法ADL:參見以前內容UML:(1)將構件類型作為類,構件實例作為對象(2)將構件類型表示為UML子系統(tǒng),將構件實例表示為子系統(tǒng)的實例(利用包和包的實例)(3)基于UML的擴展機制,形成UML-profile(變體的UML框架)來表示構件和連接件類型6.2.2C&C視圖類型與風格《軟件體系結構》電子教案62/197(1)、C&C視圖類型—與其它視圖類型的關系一般情況下,系統(tǒng)的C&C視圖和模塊視圖之間的關系可能非常的復雜:同樣的代碼模塊可由C&C視圖的許多元素執(zhí)行;反之,C&C視圖的單一構件可執(zhí)行由許多模塊執(zhí)行的代碼6.2.2C&C視圖類型與風格《軟件體系結構》電子教案63/197(1)、C&C視圖類型—與其它視圖類型的關系應該將C&C視圖元素和模塊視圖元素之間的關系進行編檔C&C構件可能擁有許多與環(huán)境進行交互的點,每個交互點由同一模塊接口定義6.2.2C&C視圖類型與風格《軟件體系結構》電子教案64/197(1)、C&C視圖類型—總結C&C視圖能定義由具有某種運行時存在的元素構成的模型。這些元素包括進程、對象、客戶機、服務器和數(shù)據(jù)庫存儲等;此外,構件和連接件模型還包含作為元素的交互路徑,諸如通訊鏈路和協(xié)議、信息流和共享存儲器訪問等構件具有接口,它是端口的劃分;連接件具有接口,稱為角色連接件可以是多于二元的,在某些SA中采用n元連接件是非常有用的6.2.2C&C視圖類型與風格《軟件體系結構》電子教案65/197(1)、C&C視圖類型—總結如果某些構件主要是一組構件之間進行交互操作的中間構件,就應該考慮將它表示為連接件,而不是構件連接件能夠而且通常應該表示復雜的交互形式。能體現(xiàn)交互協(xié)議通過引用合適的風格指南說明自己當前使用的是哪種風格說明將構件連接到連接件時會使用什么端口6.2.2C&C視圖類型與風格《軟件體系結構》電子教案66/197(1)、C&C視圖類型—總結如果將給定的端口和給定的角色連接起來,其合法性不是一目了然的,就應該在視圖的基本原理部分提供合理性說明說明哪些端口用于將系統(tǒng)連接到外部環(huán)境數(shù)據(jù)流和控制流是C&C模型的投影。在創(chuàng)建類圖時,應該闡明箭頭走向的語義準則。數(shù)據(jù)流和控制流至多只能被近似地定義成連接件6.2.2C&C視圖類型與風格《軟件體系結構》電子教案67/197(2)、C&C風格—概述C&C風格是C&C視圖類型的特化。也就是一組特定的構件和連接件的集合、以及對這個集合中的元素進行組合的約束規(guī)則被選來表示C&C視圖的風格通常取決于系統(tǒng)內運行時結構的性質和用途C&C視圖類型能捕捉到系統(tǒng)運行時的各個方面,所以,C&C風格通常也會與交互模式相關聯(lián)6種風格:管道-過濾器、共享數(shù)據(jù)、發(fā)布-訂閱、C-S、對等連接和進程通訊6.2.2C&C視圖類型與風格《軟件體系結構》電子教案68/197(2)、C&C風格—管道-過濾器風格---概述其交互模式表現(xiàn)出數(shù)據(jù)流連續(xù)變換的特征數(shù)據(jù)流到達過濾器并經(jīng)過轉換后由管道傳遞給下一個過濾器單個過濾器能通過多個端口傳送數(shù)據(jù)一般用在信號處理系統(tǒng)和UNIX管道構建的系統(tǒng)中在編檔時,對管道:是否得到緩沖,它們如何處理數(shù)據(jù)結尾,以及它們向已滿的緩沖管道寫入數(shù)據(jù)或讀取管道數(shù)據(jù)時的阻塞行為。在編檔時,對過濾器:是否屬于一個單獨的進程,每個過濾器實現(xiàn)的流變換6.2.2C&C視圖類型與風格《軟件體系結構》電子教案69/197(2)、C&C風格—管道-過濾器風格---元素、關系和特性描述元素構件類型:過濾器。過濾器端口必須是輸入端口和輸出端口連接件類型:管道。擁有數(shù)據(jù)輸入/出角色關系連接關系能使過濾器輸出端口與某個管道的數(shù)據(jù)輸入角色相關聯(lián),使過濾器的輸入端口與多個管道的數(shù)據(jù)輸出角色相關聯(lián),并能確定交互過濾器的圖形計算模型過濾器從其輸入端口讀取數(shù)據(jù)流,并將數(shù)據(jù)流寫入其輸出端口的數(shù)據(jù)轉換器特性與C&C視圖類型定義的特性相同布局管道能將過濾器輸出端口連接到過濾器輸入端口。這種風格的特化可限制構件和非循環(huán)圖或線形順序的關聯(lián)6.2.2C&C視圖類型與風格70/197(2)、C&C風格—管道-過濾器風格---支持/不支持什么描述支持在很大程度上傾向于數(shù)據(jù)變換過濾器一般用在接收來自傳感器的大量數(shù)據(jù),并通過初步處理后傳給相應的諸如可視化等工具或系統(tǒng)可以用來推斷系統(tǒng)性能,如輸入/出流等待時間、可調度性等不支持6.2.2C&C視圖類型與風格《軟件體系結構》電子教案71/197(2)、C&C風格—管道-過濾器風格---與其它風格的關系在管道過濾器風格中,構件之間的“連線”表示具有特定計算含義的連接器,它們能將數(shù)據(jù)流能從一個過濾器傳送到另一個過濾器在數(shù)據(jù)流投影或數(shù)據(jù)流視圖中,這些線條表示構件間數(shù)據(jù)通訊的關系,沒計算含義,僅僅表示數(shù)據(jù)從一個元素流向下一個元素6.2.2C&C視圖類型與風格《軟件體系結構》電子教案72/197(2)、C&C風格—共享數(shù)據(jù)風格---概述交互模式由持久數(shù)據(jù)的交換所支配,這種數(shù)據(jù)有多個存取器和至少一個用來保留持久數(shù)據(jù)的共享數(shù)據(jù)存儲器數(shù)據(jù)庫系統(tǒng)和基于知識的系統(tǒng)均屬于這一風格的系統(tǒng)如果共享數(shù)據(jù)存儲器能通知數(shù)據(jù)消費者其感興趣的數(shù)據(jù)已經(jīng)到達,則共享數(shù)據(jù)風格稱為“黑板”如果數(shù)據(jù)消費者負責數(shù)據(jù)檢查,則共享數(shù)據(jù)風格成為“存儲庫”目前,許多的“存儲庫”能提供“黑板”的觸發(fā)機制6.2.2C&C視圖類型與風格《軟件體系結構》電子教案73/197(2)、C&C風格—共享數(shù)據(jù)風格---關系、元素和特性描述元素構件類型:共享數(shù)據(jù)存儲庫或數(shù)據(jù)存儲器連接件類型:數(shù)據(jù)讀寫關系連接關系能確定哪些數(shù)據(jù)存取器將連接到哪些數(shù)據(jù)儲存庫計算模型數(shù)據(jù)存取器之間的通訊經(jīng)由共享數(shù)據(jù)存儲器來完成??刂七^程由數(shù)據(jù)存取器或數(shù)據(jù)存儲器來啟動特性與C&C視圖類型定義的特性相同布局數(shù)據(jù)存取器與連接到數(shù)據(jù)存儲器的連接器連接6.2.2C&C視圖類型與風格《軟件體系結構》電子教案74/197(2)、C&C風格—共享數(shù)據(jù)風格---支持/不支持什么只要各個數(shù)據(jù)項擁有多個存儲器,并具有持久性,就能使用共享數(shù)據(jù)風格能將數(shù)據(jù)產(chǎn)生者和消費者分離開來,支持可修改性與這種風格相關的性能分析通常集中在性能、安全性、保密性、可靠性和兼容性等方面6.2.2C&C視圖類型與風格《軟件體系結構》電子教案75/197(2)、C&C風格—共享數(shù)據(jù)風格---與其它風格的關系與n級C-S形式存在一些共同的特征。在使用這種風格的信息管理應用程序中,數(shù)據(jù)存儲器通常是一個關系數(shù)據(jù)庫,它利用客戶-服務器的交互提供關系查詢和關系更新黑板風格類似于發(fā)布-訂閱風格,只是發(fā)布-訂閱風格缺乏數(shù)據(jù)持久性6.2.2C&C視圖類型與風格《軟件體系結構》電子教案76/197(2)、C&C風格—發(fā)布-訂閱風格---概述構件通過宣布事件進行交互,構件可以訂閱一組事件在這種風格中,連接件的主要形式是一種事件總線發(fā)布-訂閱基礎設施的任務是:確保每項發(fā)布的事件均傳遞給所有訂閱這一事件者構件通過宣布事件,將事件置于總線上,然后連接件將這些事件傳遞給適當?shù)臉嫾ǔ#@種風格用于消息生產(chǎn)者和消費者6.2.2C&C視圖類型與風格《軟件體系結構》電子教案77/197(2)、C&C風格—發(fā)布-訂閱風格---元素、關系和特性宣布事件并能對其它已宣布事件作出反應的獨立構件系統(tǒng)計算模型描述所有的構件連接到一個事件分配器,可將該分配器視為總線(連接器)或構件布局與C&C視圖類型定義的特性相同。但可以精化為:哪些事件由哪些構件宣布,哪些事件由哪些構件訂閱,什么時候應許構件訂閱事件特性連接關系能將構件與發(fā)布-訂閱連接器關聯(lián)起來關系構件類型:任何具有發(fā)布和(或)訂閱事件的接口的C&C構件類型連接件類型:發(fā)布-訂閱元素6.2.2C&C視圖類型與風格《軟件體系結構》電子教案78/197(2)、C&C風格—發(fā)布-訂閱風格---支持/不支持什么
能為一組未知的接收者發(fā)送事件和消息。由于該接收者是未知的,因此,可以在不修改產(chǎn)生者的情況下添加新的接收者6.2.2C&C視圖類型與風格《軟件體系結構》電子教案79/197(2)、C&C風格—發(fā)布-訂閱風格---與其它風格的關系如果利用發(fā)布-訂閱風格來向一組未知的接受者發(fā)送事件和消息,就能將這種風格看成沒有持久性的共享黑板當構件擁有獨立的控制線程時,發(fā)布-訂閱風格就是通訊-進程風格的精化隱式調用通常與對等連接風格聯(lián)合使用,在這種情況下,構件能利用過程調用或函數(shù)調用進行顯式交互,也能通過事件宣布進行隱式交互。6.2.2C&C視圖類型與風格《軟件體系結構》電子教案80/197(2)、C&C風格—C-S風格---概述在C-S風格中,構件通過請求其它構件的服務進行交互服務器能夠通過一個或更多接口提供一組服務,而客戶機則使用該系統(tǒng)其它服務器提供的零個或多個服務可以采用一個中心服務器,也可以采用若干個分布式服務器常見的C-S風格的實例有:6.2.2C&C視圖類型與風格《軟件體系結構》電子教案81/197(2)、C&C風格—C-S風格---概述常見的C-S風格的實例有:窗口系統(tǒng):根據(jù)客戶應用和屏幕服務器劃分的系統(tǒng)目錄服務:根據(jù)名稱解析器和名稱服務器劃分的系統(tǒng)兩級服務器系統(tǒng):根據(jù)客戶機和數(shù)據(jù)劃分的系統(tǒng)Web分布式信息系統(tǒng):根據(jù)客戶應用、商業(yè)邏輯和數(shù)據(jù)管理服務等因素劃分的系統(tǒng)等。6.2.2C&C視圖類型與風格《軟件體系結構》電子教案82/197(2)、C&C風格—C-S風格---元素、關系和特性描述元素構件類型:請求其它構件服務的客戶機和向其它構件提供服務的服務器連接件類型:請求/應答,即客戶機對服務器的非對稱調用關系連接關系使客戶機與連接件的請求角色關聯(lián),使服務器和連接器的應答角色相關聯(lián),并確定哪些服務能由那些客戶機請求計算模型客戶機能啟動各項活動,向服務器請求所需服務,并等待這些請求的結果特性與C&C視圖類型定義的特性相同,但能根據(jù)服務器精化為:可以連接的客戶機的數(shù)量和類型以及性能特性,諸如每秒處理的事務等布局一般沒有限制,特化可施加如下限制:(1)與給定端口或角色的連接數(shù)量;(2)服務器之間允許存在的關系;(3)級6.2.2C&C視圖類型與風格83/197(2)、C&C風格—C-S風格---支持/不支持什么用于將客戶應用程序和它們使用的服務分離開來,從而達到對系統(tǒng)的理解將功能劃分成客戶機和服務器后,可將它們單獨分配給各級,以便支持系統(tǒng)的可收縮性和可靠性C-S分析包括:6.2.2C&C視圖類型與風格《軟件體系結構》電子教案84/197(2)、C&C風格—C-S風格---支持/不支持什么C-S分析包括:確定服務器是否提供客戶機要求的服務客戶機使用服務的方式是否適當依賴性分析:如,了解系統(tǒng)是否從服務故障中恢復過來安全性分析:如,確定服務器提供的信息是否被限制在擁有適當權限的客戶機的范圍內性能分析:如確定服務器能否保持預期服務器請求的規(guī)模和速度。6.2.2C&C視圖類型與風格《軟件體系結構》電子教案85/197(2)、C&C風格—C-S風格---與其它風格的關系C-S風格是編程語言中的過程/函數(shù)/方法調用的一種泛化通常將客戶機與服務器分組,并將它們部署在分布式環(huán)境中的不同機器上,以便形成包含n級的分層結構層(layer)和級(tier)不同:分層是模塊視圖類型中的特定風格,是“允許使用”關系n級客戶機-服務器是C&C視圖類型中客戶機-服務器風格的一種限制形式,交互是一種“請求-應答”連接器6.2.2C&C視圖類型與風格《軟件體系結構》電子教案86/197(2)、C&C風格—對等連接風格---概述對等連接風格具有對等性,構件通過服務交換直接進行交互原則上,任何構件能通過請求其它任何構件的服務與該構件進行交互連接件可能涉及復雜的雙向交互協(xié)議,從而反應對等構件之間的雙向通訊對等連接的常見例子:CORBA等6.2.2C&C視圖類型與風格《軟件體系結構》電子教案87/197(2)、C&C風格—對等連接風格---元素、關系和特性描述元素構件類型:同位體連接件類型:調用過程關系連接關系使同位體與“調用過程”連接器相關聯(lián),并能確定可能的構件交互圖計算模型同位體提供接口和對狀態(tài)進行封裝。計算是通過交互請求服務的同位體協(xié)作完成特性與C&C視圖類型定義的特性相同,但會強調交互協(xié)議和面向性能的特性。連接可能會在運行時出現(xiàn)變化布局可能會限制與任何給定端口或角色的允許連接數(shù)量。6.2.2C&C視圖類型與風格88/197(2)、C&C風格—對等連接風格---支持/不支持什么在對等連接風格中,假設任務同時需要客戶機和服務器兩種角色的話,那么它們即能扮演客戶機也能扮演服務器對等連接計算能用于分布式計算應用程序。6.2.2C&C視圖類型與風格《軟件體系結構》電子教案89/197(2)、C&C風格—對等連接風格---與其它風格的關系缺乏分層結構意味著對等連接系統(tǒng)具有比客戶機-服務器系統(tǒng)更為一般的布局靈活性。6.2.2C&C視圖類型與風格《軟件體系結構》電子教案90/197(2)、C&C風格—通訊進程風格---概述其特征是:并發(fā)執(zhí)行構件將通過各種連接件機制進行交互。連接件機制包括同步、消息傳遞、數(shù)據(jù)交換、啟動和停止,等常用于大型系統(tǒng),在所有的分布式系統(tǒng)中都是必不可少的適應于理解與并發(fā)性相關的任何行為6.2.2C&C視圖類型與風格《軟件體系結構》電子教案91/197(2)、C&C風格—通訊進程風格---元素、關系和特性描述元素構件類型:并發(fā)單元,如任務、進程和線程等連接件類型:數(shù)據(jù)交換、消息傳遞、同步、控制、其它通訊關系連接關系同C&C視圖中定義的連接關系計算模型通過特定連接器機制,進行交互的并發(fā)執(zhí)行構件元素特性并發(fā)單元:“可搶占性”,表示并發(fā)單元的執(zhí)行可被另一個并發(fā)單元搶占,或者并發(fā)單元將繼續(xù)執(zhí)行,直到它自愿終止自己的執(zhí)行;“優(yōu)先性”:它能影響調度“時間參數(shù)”:如周期和最后期限數(shù)據(jù)交換:“緩沖”-如果不能立即處理消息則先把消息保存起來布局任意圖6.2.2C&C視圖類型與風格《軟件體系結構》電子教案92/197(2)、C&C風格—通訊進程風格---支持/不支持什么一般用在設計階段:哪些構件分配給哪些進程可以了解系統(tǒng)的哪些部分能進行并行操作,哪些構件與進程進行捆綁等可以用來分析性能和可靠性其本質是:元素能進行相對獨立的操作,并發(fā)是理解系統(tǒng)如何工作的重要部分。6.2.2C&C視圖類型與風格《軟件體系結構》電子教案93/197(2)、C&C風格—通訊進程風格---與其它風格的關系一般情況下與其它風格相結合應用常被特化,以便提供監(jiān)視器信息,如監(jiān)視其它進程或資源同步的執(zhí)行時間的進程。6.2.2C&C視圖類型與風格《軟件體系結構》電子教案94/197(2)、C&C風格—總結C&C風格能特化C&C視圖類型,方法是引入一個特定的構件和連接件類型集,并確定這些類型的元素將以什么規(guī)則結合在一起。C&C風格通常與某種交互模式相關聯(lián),這種交互模式能規(guī)定計算、數(shù)據(jù)和控制流將如何流過這一風格的系統(tǒng)在管道-過濾器風格中,交互模式的特點是能進行連續(xù)數(shù)據(jù)變換。數(shù)據(jù)抵達過濾器,經(jīng)過變換后通過管道傳遞給管道線中的下一個過濾器或過濾器集6.2.2C&C視圖類型與風格《軟件體系結構》電子教案95/197(2)、C&C風格—總結與管道-過濾器相關的分析包括導出由過濾器圖提供的聚集變換和推斷系統(tǒng)性能在共享數(shù)據(jù)風格中,通過保留持久數(shù)據(jù)即可支配交互模式。持久數(shù)據(jù)由多個數(shù)據(jù)存取器和至少一個儲存庫保留與共享數(shù)據(jù)風格相關的分析通常集中在性能、安全性、保密性、可靠性和兼容性方面6.2.2C&C視圖類型與風格《軟件體系結構》電子教案96/197(2)、C&C風格—總結(續(xù))在發(fā)布-訂閱風格中,構件通過事件發(fā)布進行交互。構件可訂閱一組事件。發(fā)布-訂閱運行時基礎結構的任務是確保每個發(fā)布的事件能傳遞給事件的所有訂閱者由于事件接收者是未知的,因此在不修改事件產(chǎn)生者的情況下可以增加新的接收者。6.2.2C&C視圖類型與風格《軟件體系結構》電子教案97/197(2)、C&C風格—總結(續(xù))客戶機-服務器風格能展示構件通過請求其它構件的服務進行交互的過程。其本質是通訊一般是配對的??蛻魴C-服務器風格可以提供對系統(tǒng)普通服務的劃分。將功能劃分成客戶機和服務器后,即可基于運行時準則把它們單獨分配給各個級。它提供的系統(tǒng)分析包括服務器是否提供客戶機需要的服務、依賴性分析、安全性分析和性能6.2.2C&C視圖類型與風格《軟件體系結構》電子教案98/197(2)、C&C風格—總結(END)對等連接系統(tǒng)通過構件之間的直接交換支持服務交換。對等連接是一種調用返回風格,這種風格不存在客戶機-服務器風格中出現(xiàn)的不對稱性對等連接風格能提供全局系統(tǒng)平臺上部署系統(tǒng)的靈活性通訊-進程風格的特性表現(xiàn)在通過各種連接件機制并發(fā)執(zhí)行構件的交互,如通過同步、消息傳遞、數(shù)據(jù)交換、啟動停止等進行交互6.2.2C&C視圖類型與風格《軟件體系結構》電子教案99/197(2)、C&C風格—總結(END)在大多數(shù)系統(tǒng)來說,通訊-進程風格適應于來理解和并發(fā)相關的任何行為,它尤其適合于性能和可靠性分析非正規(guī)的線框表示法經(jīng)常用來為C&C風格編檔。UML為C&C風格的遍檔提供了若干的策略:(1)使用類和對象;(2)使用子系統(tǒng);(3)使用實時語義框架6.2.2C&C視圖類型與風格《軟件體系結構》電子教案100/1976.2視圖類型與風格6.2.1模塊視圖類型與風格6.2.2C&C視圖類型與風格6.2.3分配視圖類型與風格《軟件體系結構》電子教案101/197(1)、分配(Allocation)視圖類型—概述硬件、文件和團隊都會與SA交互性能系統(tǒng)管理項目活動6.2.3分配視圖類型與風格102/197(1)、分配(Allocation)視圖類型—概述分配視圖類型—SA映射到其環(huán)境的最一般形式。表示從模塊風格或C&C風格的元素映射到環(huán)境元素。分配視圖風格—分配視圖類型的常見3種形式:部署風格:構件-連接件對硬件的映射實現(xiàn)風格:模塊對包含它們的文件系統(tǒng)的映射工作任務風格:模塊對承擔模塊開發(fā)任務的人員、團隊和小組的映射6.2.3分配視圖類型與風格《軟件體系結構》電子教案103/197(1)、分配視圖類型—元素、關系和特性描述元素軟件元素:模塊視圖類型或C&C視圖類型中的某一風格環(huán)境元素:如處理器、特大容量硬盤、配置條目或開發(fā)團隊等關系“分配到…”。即軟件元素被分配到環(huán)境元素元素特性軟件元素擁有“要求的”特性。環(huán)境元素擁有“提供的”特性。前者必須同后者匹配關系特性取決于特定的風格布局因風格而異6.2.3分配視圖類型與風格104/197(2)、分配視圖類型—部署風格—概述在部署風格中,其元素C&C視圖類型的通訊-進程風格,被分配到執(zhí)行平臺限制條件是由軟件元素表達的需求和硬件元素滿足這些需求的方式軟件元素和物理元素的重要特性是那些影響軟件元素分配到物理元素這一過程的特性6.2.3分配視圖類型與風格《軟件體系結構》電子教案105/197(2)、分配視圖類型—部署風格—概述與物理單元相關的環(huán)境元素特性:CPU特性、內存特性、磁盤容量或其它存儲單元容量、帶寬、容錯性與軟件元素相關的特性:資源消耗、必須滿足的資源需求和約束條件、安全臨界值與分配相關的特性:分配能隨著系統(tǒng)的執(zhí)行而發(fā)生變換,這一特性規(guī)定了軟件元素從一個處理移植到另一個處理時必須發(fā)生的事件。6.2.3分配視圖類型與風格《軟件體系結構》電子教案106/197(2)、分配視圖類型—部署風格—元素、關系和特性描述元素軟件元素:通常是C&C視圖類型中的進程環(huán)境元素:計算硬件---處理器、內存、磁盤和網(wǎng)絡等關系“分配到…”。即表示元素駐留到哪些物理單元上如果分配是動態(tài)的,關系就是“移到…”、“副本移植到…”、和(或)“執(zhí)行移植到…”元素特性軟件元素所“要求的”特性:重要硬件特性,如處理、內存、容量需求和容錯性環(huán)境元素所“提供的”特性:影響分配決策的重要硬件特征關系特性“分配到…”布局無限制6.2.3分配視圖類型與風格107/197(2)、分配視圖類型—部署風格—支持/不支持什么描述支持用于性能、可靠性和安全性分析作為成本評估的一部分部署視圖用于展示特定配置的硬件元素及其用途子系統(tǒng)的分配取決于企業(yè)內的某個組織,每個組織都能利用自己的策略和標準對部署進行控制不支持對部署風格的一種錯誤用法:是將它看成系統(tǒng)的SA。這種風格的單一視圖并不是對軟件SA的完整描述。6.2.3分配視圖類型與風格《軟件體系結構》電子教案108/197(2)、分配視圖類型—部署風格—表示法描述非正規(guī)表示法線框圖表格正規(guī)表示法UML:UML的部署視圖6.2.3分配視圖類型與風格《軟件體系結構》電子教案109/197(2)、分配視圖類型—部署風格—與其它風格的關系部署風格與C&C風格(風格集)存在聯(lián)系;C&C風格提供分配到物理環(huán)境的軟件元素。6.2.3分配視圖類型與風格《軟件體系結構》電子教案110/197(2)、分配視圖類型—實現(xiàn)風格—概述實現(xiàn)風格將模塊視圖類型中的模塊映射到開發(fā)基礎設施實現(xiàn)一個模塊總會產(chǎn)生許多獨立的文件需要配置管理系統(tǒng)的支持:配置項(item:文件或目錄)的變化管理實現(xiàn)風格中的軟件元素和環(huán)境元素的重要特性將影響軟件分配到配置項的過程6.2.3分配視圖類型與風格《軟件體系結構》電子教案111/197(2)、分配視圖類型—實現(xiàn)風格—概述實現(xiàn)風格的兩種關系是:(1)“分配到…”:模塊與配置項之間的關系。這種關系使模塊和實現(xiàn)該模塊的配置項聯(lián)系起來,主要是一種一對一的關系。但是,一配置項可由多個項組成。(2)包容:配置項之間的關系。一個配置項能包容在多個其它配置項中,如:目錄結構和版本分支。6.2.3分配視圖類型與風格《軟件體系結構》電子教案112/197(2)、分配視圖類型—實現(xiàn)風格—元素、關系和特性描述元素軟件元素:模塊環(huán)境元素:配置項,如文件和目錄等關系包容關系:規(guī)定一個配置項由另外一個配置項包容“分配到…”關系:描述將模塊分配到配置項元素特性如果存在的話,就是軟件元素所要求的特性:通常是對Java或數(shù)據(jù)庫等開發(fā)環(huán)境的需求環(huán)境元素所提供的特性關系特性無布局分層配置項:“包容在…”6.2.3分配視圖類型與風格113/197(2)、分配視圖類型—實現(xiàn)風格—支持/不支持什么實現(xiàn)風格用于開發(fā)過程和生成階段中,管理和維護軟件元素的文件開發(fā)者利用這種風格,確認他們進行更新、測試或系統(tǒng)生成時所能檢測的文件開發(fā)者利用這種風格,用來指定特定系統(tǒng)的不同版本。并對新版本進行檢測實現(xiàn)風格用來突出用于特殊目的的元素,如測試或分析系統(tǒng)配置管理對它的表示包括模塊、配置項、及其之間的關系6.2.3分配視圖類型與風格《軟件體系結構》電子教案114/197(2)、分配視圖類型—實現(xiàn)風格—表示法非正規(guī)表示法:利用圖標將配置項和模塊區(qū)別開來配置項的分解也應該展示出來6.2.3分配視圖類型與風格《軟件體系結構》電子教案115/197(2)、分配視圖類型—實現(xiàn)風格—與其它風格的關系實現(xiàn)風格與模塊風格關系最為密切;模塊風格能在分配過程中提供軟件元素。6.2.3分配視圖類型與風格《軟件體系結構》電子教案116/197(2)、分配視圖類型—工作任務風格—概述工作任務風格能展示形成一個工作系統(tǒng)而必須存在的重要軟件單元,以及生產(chǎn)這些軟件單元的人員能展示軟件開發(fā)所用的工具和所處的環(huán)境工作任務表示將SA映射到由人組成的團隊之中,因此是一種重要的分配風格6.2.3分配視圖類型與風格《軟件體系結構》電子教案117/197(2)、分配視圖類型—工作任務風格—概述時間和預算估計取決于工作分解結構,而工作分解結構取決于SA軟件元素的特性包含對所需技能集的描述,而人員因素的特性可包含提供的技能集結構良好的工作任務關系具有完整性特性,所有工作均有人負責,但不會重疊,不會將同一工作分配到兩個位置。6.2.3分配視圖類型與風格《軟件體系結構》電子教案118/197(2)、分配視圖類型—工作任務風格—元素、關系和特性描述元素軟件元素:模塊環(huán)境元素:組織單元、如人員、團隊、部門和分包商等關系“分配到…”元素特性技能集:所需要的技能和提供的技能關系特性無布局一般不受限制,但在實際工作中卻不然,以便將某個模塊分配給某個組織單元6.2.3分配視圖類型與風格《軟件體系結構》電子教案119/197(2)、分配視圖類型—工作任務風格—支持/不支持什么描述支持非常適應于團隊資源分配的管理和項目結構的說明該風格是工作分解結構以及詳細預算和進度估計的基礎不支持不能展示運行時的關系,如“調用”或“傳遞數(shù)據(jù)”不能展示模塊間的依賴性關系應該謹慎對待工作任務分解風格和其它風格的組合。如果工作任務是建立在“分解”的基礎上,分解工作任務并不適應與進程、級、層和其它許多SA的元素。6.2.3分配視圖類型與風格120/197(2)、分配視圖類型—工作任務風格—表示法無專門的表示法(2)、分配視圖類型—工作任務風格—與其它風格的關系與模塊分解風格關系密切,并能將模塊分解風格用作分配映射的基礎通常情況下,能通過添加一些工具模塊,如開發(fā)工具、測試工具和配置管理工具等,對模塊分解進行擴展;同時將添加項目后的日常操作分配給個人或團隊6.2.3分配視圖類型與風格《軟件體系結構》電子教案121/197工作任務風格通常與其它風格聯(lián)合使用,如工作任務可以是模塊分解風格中的模塊,也可以是分層圖中的層等是對概念不同的視圖的歸并,能有效發(fā)揮作用團隊之間的信息劃分在很大程度上有助于模塊內的信息劃分。6.2.3分配視圖類型與風格《軟件體系結構》電子教案122/197(2)、分配視圖類型—風格—總結分配視圖類型中的風格能將SA映射到軟件環(huán)境的結構SA與環(huán)境結構相互影響部署風格能描述運行時軟件元素到執(zhí)行這些軟件的硬件的映射部署風格能描述模塊對配置管理方案的映射,并能協(xié)助組織實施模塊的文件工作任務風格能根據(jù)承擔任務模塊開發(fā)任務的人員、小組和團隊描述模塊的聚集6.2.3分配視圖類型與風格《軟件體系結構》電子教案123/197第6章內容摘要6.1軟件體系結構編檔概述6.2視圖類型與風格6.3軟件體系結構編檔的實施《軟件體系結構》電子教案124/1976.3軟件體系結構編檔的實施6.3.1相關概念6.3.2軟件接口編檔6.3.3軟件行為編檔6.3.4視圖的選擇6.3.5制作文檔包6.3.6文檔評審《軟件體系結構》電子教案125/1976.3SA編檔的實施6.3.1相關概念視圖包(viewpacket):是對視圖的內部信息進行分塊的一種方式,提供給涉眾的最小內聚捆綁文件構成同一視圖的視圖包存在兄弟或父子關系:兄弟視圖包:是為同一系統(tǒng)的不同部分編檔。此時,這些視圖包能拼接成一個整體視圖子視圖包:是能為系統(tǒng)的同一部分編檔,但其詳細程度將逐步提高,并能清楚地展示系統(tǒng)的細節(jié)?!盾浖w系結構》電子教案126/197對視圖的理解順序:深度優(yōu)先:選擇一個元素為它的子結構編檔,如此繼續(xù)下去廣度優(yōu)先:為同一層次的元素的所有子結構編檔混合:是深度和廣度優(yōu)先的綜合。6.3SA編檔的實施6.3.1相關概念《軟件體系結構》電子教案127/197構成不同視圖的視圖包之間的關系:系統(tǒng)的不同區(qū)域采用不同的風格:通過橋接元素實現(xiàn)從一個視圖包到另外一個視圖包之間的理解。橋接元素出現(xiàn)在兩種視圖包中過濾器過濾器過濾器數(shù)據(jù)庫構件構件過濾器端口協(xié)作的角色數(shù)據(jù)端口協(xié)作的角色管道管道6.3SA編檔的實施6.3.1相關概念128/197構成不同視圖的視圖包之間的關系(續(xù))
:某種風格的元素由另外一種風格的元素構成:如客戶-服務器風格的服務器由管道-過濾器風格來實施服務器過濾器過濾器過濾器服務器由管道-過濾器實現(xiàn)管道管道客戶機客戶機客戶機6.3SA編檔的實施6.3.1相關概念《軟件體系結構》電子教案129/197構成不同視圖的視圖包之間的關系(續(xù))
:以不同的角度去觀察同一個系統(tǒng):如管道過濾器中的每個過濾器能訪問數(shù)據(jù)庫的情況過濾器過濾器過濾器數(shù)據(jù)庫由管道-過濾器和共享數(shù)據(jù)庫構成的系統(tǒng)管道管道6.3SA編檔的實施6.3.1相關概念《軟件體系結構》電子教案130/197精化:是對視圖包的“放大”,通過一系列的操作來逐步展露信息的過程。分解精化:能詳細描述單一元素,揭示它們的內部結構,然后以遞歸的方式精化這一內在結構的每一個成員實現(xiàn)精化:許多的元素和關系將被具有更多實現(xiàn)細節(jié)的新元素和新關系所取代(參見某種風格的元素由另外一種風格的元素構成)6.3SA編檔的實施6.3.1相關概念《軟件體系結構》電子教案131/197描述完整性:是與精化相關的一種概念,它能描述視圖包之間是如何相互聯(lián)系的按照完整性策略:如果兩個元素之間未表現(xiàn)出任何關系,則這兩個元素之間的關系要么不存在,要么不允許存在按照非完整性策略:通過對該視圖的后續(xù)精化再展示這種關系通過對該視圖的后續(xù)精化或其它描述來展示附加的元素6.3SA編檔的實施6.3.1相關概念《軟件體系結構》電子教案132/197使用上下文圖:能展示被構造的系統(tǒng)內部和外部存在什么東西,以及與它們進行交互的實體頂層上下文圖:當開發(fā)一個大型系統(tǒng)的一部分系統(tǒng)時,頂層上下文圖能對其進行描述頂層上下文圖是讀者了解其SA的第一步6.3SA編檔的實施6.3.1相關概念《軟件體系結構》電子教案133/197上下文圖的內容:對實體(元素或系統(tǒng))的描述,這些實體的SA正在接受編檔,而且區(qū)分于那些外部實體數(shù)據(jù)源和數(shù)據(jù)目的,或由實體產(chǎn)生或處理的刺激或命令。與當前編檔實體交互的其它實體表示法或符號的圖例6.3SA編檔的實施6.3.1相關概念《軟件體系結構》電子教案134/197上下文圖不能支持什么:是視圖包支持文檔的一部分,每個視圖包都擁有一個上下文圖通常用于向更了解應用程序外部實體而不是內部實體的人說明系統(tǒng)不能揭示有關實體的構架細節(jié)不能展示任何時間信息,如交互或數(shù)據(jù)流等不能展示傳遞數(shù)據(jù)、觸發(fā)刺激和發(fā)送消息等條件6.3SA編檔的實施6.3.1相關概念《軟件體系結構》電子教案135/197上下文圖的表示法:非正規(guī)表示法:線框圖:實體位于中間,其它與之交互的外部實體位于周圍UML:“用例圖”或“類圖”(雖然UML沒有明確的機制來支持上下文圖的表示)6.3SA編檔的實施6.3.1相關概念《軟件體系結構》電子教案136/1973種建立獨立風格或視圖之間的映射:為獨立視圖之間的映射編檔:將這種編檔看成適應于視圖之外的文檔集的一部分創(chuàng)建一個覆蓋圖:只有當一個視圖中的元素與另外一個視圖中的元素存在明確的映射,且單獨編檔時會產(chǎn)生過多冗余信息時使用。不會產(chǎn)生新的元素和關系創(chuàng)建混合風格:通過組合兩個現(xiàn)有風格和編寫風格指南來創(chuàng)建。會產(chǎn)生合成元素和關系組合視圖:包含來自兩個或更多其它視圖的元素和關系的視圖6.3SA編檔的實施6.3.1相關概念《軟件體系結構》電子教案137/197產(chǎn)生有用的視圖:取決于對視圖之間關系的理解在進行視圖組合時,應確保視圖之間存在簡單明確的映射越大的系統(tǒng),更應該使視圖保持獨立過多的概念會擾亂組合視圖不同的工作團隊不同類型的信息,對視圖的選擇應滿足涉眾的需要工具會影響視圖的選擇和數(shù)量應該最大限度地減少視圖數(shù)量。系統(tǒng)的視圖集在保持大多數(shù)視圖的明確性和降低成本之間進行權衡組合視圖:包含來自兩個或更多其它視圖的元素和關系的視圖6.3SA編檔的實施6.3.1相關概念《軟件體系結構》電子教案138/197組合視圖:包含來自兩個或更多其它視圖的元素和關系的視圖視圖映射類型:“多對一”(如模塊映射到進程)6.3SA編檔的實施6.3.1相關概念《軟件體系結構》電子教案139/197組合視圖:包含來自兩個或更多其它視圖的元素和關系的視圖視圖映射類型:“一對多”6.3SA編檔的實施6.3.1相關概念《軟件體系結構》電子教案140/197組合視圖:包含來自兩個或更多其它視圖的元素和關系的視圖視圖映射類型:“多對多”:屬于復雜影射。此時,盡量采用使視圖保持分離的原則。如果非要組合,則最好對它們打亂后在細細重新獲得新的視圖,以便降低視圖之間的復雜性6.3SA編檔的實施6.3.1相關概念《軟件體系結構》電子教案141/197組合視圖:包含來自兩個或更多其它視圖的元素和關系的視圖為混合視圖編檔(將一個視圖中的多個元素映射到另外一個視圖的單個元素)6.3SA編檔的實施6.3.1相關概念《軟件體系結構》電子教案142/197組合視圖:包含來自兩個或更多其它視圖的元素和關系的視圖為混合視圖編檔(將一個視圖中的某個元素映射到另外一個視圖的多個元素)元素1成為混合視圖中元素的特性6.3SA編檔的實施6.3.1相關概念《軟件體系結構》電子教案143/197為可變性和動態(tài)性編檔可變性產(chǎn)生的原因:在單個系統(tǒng)的設計過程中,雖然對可選方案進行了探討,但對某些決策無法確定SA針對的一個系統(tǒng)家族,家族中的待構成員的具體情況決定了必須存在可選的方案SA是一個系統(tǒng)集的框架,應該包含該框架的明確的擴展點??勺冃裕菏菍δ硞€系統(tǒng)部署前做出的決策6.3SA編檔的實施6.3.1相關概念《軟件體系結構》電子教案144/197為可變性和動態(tài)性編檔動態(tài)性產(chǎn)生的原因:通過構件和連接件的變更使SA發(fā)生動態(tài)變化,如新用戶的加入和離開等重新分配資源或責任,如構件從一個處理器移動到另外一個處理器等動態(tài)性:指在系統(tǒng)執(zhí)行期間做出或重新考慮的決策6.3SA編檔的實施6.3.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB12T 598.5-2015 天津市建設項目用地控制指標 第5部分:市政基礎設施項目
- 中職校長在新學期教職工大會上的講話稿(8篇)
- 個人自我小結
- 報關實務-教學課件 第四章 海關稅收
- 航空航天用帶沉頭窩的MJ螺紋減小型角形托板自鎖螺母 征求意見稿
- 老師培訓課件教學課件
- 骨科的課件教學課件
- 怎么修改課件教學
- 2025 高考語文總復習 第三部分 語言文字運用(含解析)
- 關于項目工程實測實量質量獎罰辦法的通知g
- 新人教版八年級物理上冊期中考試及答案【可打印】
- 職校開學第一課課件:誰說職業(yè)沒前途
- 行政復議法-形考作業(yè)4-國開(ZJ)-參考資料
- GB/T 5762-2024建材用石灰石、生石灰和熟石灰化學分析方法
- 廣東開放大學(??疲┕ど唐髽I(yè)管理專業(yè) 案例分析報告
- 特種設備鍋爐日管控、周排查、月調度主要項目及內容表
- (完整版)律師事務所律師辦理非訴訟業(yè)務規(guī)則
- 2019統(tǒng)編人教版高中物理必修第一冊第一章《運動的描述》全章節(jié)教案教學設計
- 煤礦開采學第六章采煤工作面礦山壓力規(guī)律
- ProE5.0全套教程(完整版)
- 用鍵盤符號構圖參考課件
評論
0/150
提交評論