版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、軟件構(gòu)架實踐教案本課程上課時間為16周,每周講解一個主題第一周構(gòu)架商業(yè)周期學生開課的第一周,除了講解專業(yè)知識之外,首先要簡單介紹關(guān)于這本書的背景知識,讓學生對這門課有所了解,增強其學習的興趣;然后說明學習這門功課的意義以及教學安排;最后講解構(gòu)架商業(yè)周期的概念。第一堂課直接涉及的專業(yè)知識不要太多,否則學生會囫圇吞棗,也達不到教學的目的軟件構(gòu)架實踐這本書是CMU/SEI(卡內(nèi)基.梅隆大學/軟件工程研究所)編寫的軟件工程系列叢書之一,SEI(SoftwareEngineeringlnstitute)于1984年由美國國防部岀資建立,其主要工作是研究軟件過程能力成熟度模型(CapabilityMatu
2、rityModel,CMM),其目的使開發(fā)組織開發(fā)“正確的”和“無缺陷”的程序。CMM已經(jīng)成為衡量軟件公司開發(fā)管理水平的重要參考因素,并成為軟件過程改進的事實標準。學習本書的目的是:1、了解構(gòu)架的基本概念2、了解保證軟件構(gòu)架正確的各種質(zhì)量屬性(QualityAttributes)和實現(xiàn)這些質(zhì)量屬性的戰(zhàn)術(shù)(Tactics)3、學會創(chuàng)建軟件構(gòu)架的方法和評估的方法4、把學到的知識運用到將來的開發(fā)中去構(gòu)架商業(yè)周期一一軟件構(gòu)架是技術(shù)、商業(yè)和社會諸多因素作用的結(jié)果,而軟件構(gòu)架的存在反過來又會影響技術(shù)、商業(yè)和社會環(huán)境,從而影響到未來的構(gòu)架。我們把這種相互影響的周期一一從環(huán)境到構(gòu)架又返回環(huán)境稱為構(gòu)架商業(yè)周期(
3、ArchitectureBusinessCycle,ABC),商業(yè)構(gòu)架周期是本書的核心內(nèi)容,所有的例子都圍繞ABC展開。從構(gòu)架商業(yè)周期的概念我們可以看岀,構(gòu)架與之交互的外界環(huán)境之間存在著密切的關(guān)系,他們相互影響,相互作用,相互促進。一方面構(gòu)架受到多種因素的影響:1、涉眾的影響;2、構(gòu)架開發(fā)組織的影響;3、構(gòu)架設(shè)計師素質(zhì)和經(jīng)驗的影響;4、技術(shù)環(huán)境的影響;5、其他影響因素。另一方面,環(huán)境反過來又會對構(gòu)架的形成和發(fā)展產(chǎn)生影響:1、影響著開發(fā)組織的結(jié)構(gòu);2、影響著開發(fā)組織的目標;3、影響客戶對下一個系統(tǒng)的要求;4、影響著構(gòu)架設(shè)計師;5、構(gòu)架影響著軟件工程的發(fā)展第二周什么是軟件構(gòu)架首先簡單介紹軟件構(gòu)架形
4、成的背景和過程,然后通過一個簡單線框圖的例子引入軟件構(gòu)架的概念:某個軟件或計算機系統(tǒng)的軟件構(gòu)架是該系統(tǒng)的一個或多個結(jié)構(gòu),他們由軟件元素,這些元素之間的外部可見屬性和這些元素之間的關(guān)系組成。我們要得到最終的構(gòu)架需要一個循序漸進的過程,在最粗略的線框圖和構(gòu)架之間有很多中間步驟,逐步求精得到真正意義上的構(gòu)架,這些中間步驟包括:1、構(gòu)架模式是對元素和關(guān)系類型以及一組對其使用方式的限制的描述,我們可以把它看作是對構(gòu)架的一組制約條件一一即對各元素類型及其交互模式的限制條件,而這些制約條件確定了一組或一系列能滿足他們要求的構(gòu)架,比如,客戶機/服務(wù)器構(gòu)架模式。構(gòu)架模式最重要的作用是它們展示了已知的質(zhì)量屬性。2
5、、參考模型是一種考慮數(shù)據(jù)流的功能劃分,它對已知問題進行分解,分解得到的各個部分相互協(xié)作,構(gòu)成問題的解決方案3、參考構(gòu)架是映射到軟件元素及元素之間數(shù)據(jù)流上的參考模型三者之間的關(guān)系是:2、軟件構(gòu)架是系統(tǒng)的早期設(shè)計決策3、軟件構(gòu)架是可傳遞的系統(tǒng)抽象為了能夠清晰的表達構(gòu)架,我們引入了如下兩個概念:視圖一一視圖是構(gòu)架元素內(nèi)聚集的表述,由系統(tǒng)涉眾編寫和閱讀,它由一個元素集合表示和元素之間的關(guān)系組成,用于表示構(gòu)架中的某個結(jié)構(gòu)結(jié)構(gòu)一一結(jié)構(gòu)是元素本身的集合,他們存在于軟件和硬件中,比如,模塊結(jié)構(gòu)是系統(tǒng)的模塊和其組織的結(jié)構(gòu),模塊視圖是該結(jié)構(gòu)的表示我們使用視圖和結(jié)構(gòu)來表示系統(tǒng)的構(gòu)架,構(gòu)架結(jié)構(gòu)根據(jù)元素的主要特性可以分
6、為三類:1、模塊結(jié)構(gòu):表示一種考慮系統(tǒng)的基于代碼的表示方法2、組件一連接器結(jié)構(gòu):展示了軟件運行是各個部分之間的交互3、分配結(jié)構(gòu):展示了軟件元素和創(chuàng)建并執(zhí)行軟件的一個或多個外部環(huán)境中的元素之間的關(guān)系模塊第三周A-案例分析各種構(gòu)架結(jié)構(gòu)的1分7e航空模塊常見的軟件構(gòu)架結(jié)構(gòu)中和表述。該項組件-連接旦系統(tǒng)服務(wù)器F打數(shù)據(jù)分配目的目的:通過該項目的開發(fā)證實軟件工程的理論研究成果適用于需求靈活、內(nèi)存占進程亠口部署其指導(dǎo)思想:留下一并發(fā)整的工程模型,把相關(guān)的文檔、設(shè)計方案、代碼、方法電子系統(tǒng)項目的開發(fā)戶要服務(wù)器用少、開發(fā)時間短的軟件系和原則都公之于眾,供相關(guān)人員模仿使用。分層從該項目的開發(fā)中獲得了以下兩條經(jīng)驗:
7、1、信息隱藏是軟件開發(fā)中可行的和明智的設(shè)計準則2、從實現(xiàn)系統(tǒng)質(zhì)量指標的角度看,認真設(shè)計構(gòu)架層次上的各種結(jié)構(gòu)可以達到事半功倍的效果圖A-7E航空電子系統(tǒng)的構(gòu)架商業(yè)周期構(gòu)建A-7E系統(tǒng)構(gòu)架時,設(shè)計并確定了構(gòu)架層次上的3個結(jié)構(gòu)結(jié)構(gòu)元素元素間的關(guān)系影響對象分解結(jié)構(gòu)模塊是一個子模塊,共享秘密更改容易程度使用結(jié)構(gòu)過程要求正確岀現(xiàn)實現(xiàn)子集和增量式開發(fā)的能力進程結(jié)構(gòu)進程、線程同步、互斥,共享CPU可調(diào)度性;可并行實現(xiàn)性能目標A-7E軟件所滿足的質(zhì)量目標包括:1、實時性能,軟件系統(tǒng)每秒鐘顯示內(nèi)容的更新次數(shù)和武器投放的計算速度2、針對期望更改的可修改性,對武器、平臺、顯示屏上符號的變更,以及通過鍵盤數(shù)據(jù)新的內(nèi)容容
8、易更改A-7E軟件的三個結(jié)構(gòu)分解結(jié)構(gòu)將系統(tǒng)的功能劃分為可以獨立實現(xiàn)的模塊,模塊劃分的具體目標:1、每個模塊結(jié)構(gòu)應(yīng)足夠簡單,能夠被充分理解2、應(yīng)該能夠在無需了解其他模塊的具體實現(xiàn),并且不影響其它模塊的行為的情況下修改某個模塊的實現(xiàn)3、對設(shè)計進行修改的容易程度應(yīng)該與該修改可能發(fā)生的程度有合理的對應(yīng)關(guān)系4、應(yīng)該能夠把要對軟件系統(tǒng)做的比較大的改動分解成對各個模塊的一組獨立的修改A-7E軟件的一級模塊結(jié)構(gòu)包括:硬件隱藏模塊、行為隱藏模塊和軟件決策模塊。使用結(jié)構(gòu)的思想是建立在使用關(guān)系的基礎(chǔ)上的。如果過程A的運行必須以過程B的正確運行為前提,則我們說過程A使用過程BFD:功能驅(qū)動模塊圖使用結(jié)構(gòu)的分層圖進程結(jié)
9、構(gòu)是以一組協(xié)同順序的進程來實現(xiàn)的,這些協(xié)同順序進程保持同步關(guān)系、以協(xié)調(diào)對共享資源的使用也SS:共享服務(wù)模塊DI:設(shè)備接口模塊第四周理解構(gòu)架質(zhì)量屬性(上):我們開發(fā)一個系統(tǒng)是為了給用戶使用,因此系統(tǒng)的質(zhì)量好壞最終要由用戶來評判。評判的依據(jù):1、系統(tǒng)是否能夠滿足客戶的功能需求(直接)J2、系統(tǒng)是否能夠滿足一定的質(zhì)量需求AT接應(yīng)長數(shù)據(jù)影響模塊EC:擴展的計算機模塊功能性(functionality)是指系統(tǒng)能夠完成所期望的工作的能力質(zhì)量屬性(qualityattributes)是高于系統(tǒng)功能基本要求的,它是對多種更高層次需求的抽象描述,如安全、可靠、易用及易于修改等,顯然它適用于多個特定系統(tǒng)而非一個
10、。構(gòu)架是實現(xiàn)質(zhì)量需求的軟件創(chuàng)建中的第一階段,軟件構(gòu)架確定了該構(gòu)架對特定質(zhì)量屬性的支持,比如實時性,安全性等。構(gòu)架和質(zhì)量屬性的關(guān)系:1、對我們關(guān)心的許多系統(tǒng)質(zhì)量屬性的實現(xiàn)而言,構(gòu)架具有重要意義2、對一個構(gòu)架而言,往往只支持某些質(zhì)量屬性3、構(gòu)架并不能獨立實現(xiàn)質(zhì)量屬性,它為質(zhì)量屬性的實現(xiàn)提供了基礎(chǔ),但不是全部實際上,構(gòu)架之所以重要,就是因為它能夠保證設(shè)計系統(tǒng)的質(zhì)量屬性。質(zhì)量屬性是一個較為抽象的概念,為了能夠清晰的表達質(zhì)量屬性,我們使用了質(zhì)量屬性場景的概念。質(zhì)量屬性場景(seenarios)是描述質(zhì)量屬性的手段,是一種面向特定的質(zhì)量屬性的需求,質(zhì)量屬性場景由以下6個部分組成:1、刺激源(Sourceo
11、fstimulus):生成刺激的實體(人、計算機或其他)2、刺激(Stimulus):當刺激源產(chǎn)生的刺激達到系統(tǒng)后需要考慮的條件,或指可能對系統(tǒng)的影響3、環(huán)境(Environment):刺激到達時系統(tǒng)的狀態(tài),或指刺激在系統(tǒng)的某些條件內(nèi)發(fā)生4、制品(Artifact):被刺激的部分,可能是整個系統(tǒng),也可能是其中的一部分5、響應(yīng)(Response):刺激到達后系統(tǒng)所采取的措施6、響應(yīng)度量(Responsemeasure):當響應(yīng)發(fā)生時,我們以某種方式對其進行度量,便于我們對需求進行測試一般質(zhì)量屬性場景是指那些獨立于系統(tǒng),很可能適合任何系統(tǒng)的場景,一般場景的集合描述了質(zhì)量屬性具體質(zhì)量屬性場景是指適合
12、正在考慮的某個特定系統(tǒng)的場景質(zhì)量屬性圖質(zhì)量屬性、質(zhì)量屬性場景和系統(tǒng)的關(guān)系本書主要討論可修質(zhì)量屬性及其一般3通性能(系統(tǒng)1、可用性Availability)系統(tǒng)故障及其相關(guān)后果有關(guān)。可用性erformance),4、安全性(性能<場景1一般質(zhì)S量屬性),場景可用性(Availability特定),2、可修改性(Modifiability),5、可測試性系統(tǒng)estabi組合,,寸、易用性|質(zhì)量系統(tǒng)|質(zhì)量屬性當系統(tǒng)不冉提供其規(guī)范中所說明的服務(wù)時,就岀現(xiàn)了系關(guān)注的問題:如何檢測故障,發(fā)生故障的頻度,岀現(xiàn)故障時的現(xiàn)象,系統(tǒng)故障排除Usability)的時限,如何防止故障的發(fā)生以及發(fā)生故障時的處理2
13、、可修改性(Modifiability)可修改性是關(guān)于變更的成本問題,1、可以修改什么?如修改系統(tǒng)功能、系圖可用性的一般場景r制品:-234系統(tǒng)容量、質(zhì)量屬性4IIil.L/錯誤)勿記錄、通知、2、何時進行變更以及由誰進行變更忽修改時環(huán)包括設(shè)計時修改禁止繼續(xù)源代碼)、禰譯時修改(編譯條件),略、崩潰、時禁止、繼續(xù)(正正常、降級操作刺部署時修改(系統(tǒng)配置響等正常、降常/降級)或不修復(fù)時間、可用第五周理解構(gòu)架質(zhì)量屬性(下)級操作性、可獲得/降級的時間間隔3、性能(Performance)性能與事件發(fā)生時,將要耗費系統(tǒng)多長時間做出響應(yīng)有關(guān)。影響性能的因素包括:事件源的數(shù)量和達到模式,到達系統(tǒng)的事件包
14、括:周期性事件、隨機事件或偶然事件性能的一般性場景場景部分可用的值刺激源大量獨立源中的一個,可能來自系統(tǒng)內(nèi)部刺激定期、隨機或偶然事件到達制品環(huán)境正常模式;超載模式響應(yīng)處理刺激;改變服務(wù)級別相應(yīng)度量等待時間、時間期限、吞吐量、抖動、缺失率、數(shù)據(jù)丟失4、安全性(Security)安全性是衡量系統(tǒng)在向合法用戶提供服務(wù)的同時,阻止非授權(quán)使用的能力安全性被刻畫為一個提供認可(交易不能被交易的任何一方拒絕)、機密性(未經(jīng)授權(quán)不能訪問數(shù)據(jù)或服務(wù))、完整性(根據(jù)計劃來提交數(shù)據(jù)或服務(wù))、保證(交易各方是所聲稱的人)、可用性(系統(tǒng)可用于合法用途)和審核(在系統(tǒng)內(nèi)部跟蹤系統(tǒng)活動)的系統(tǒng)安全性的一般性場景場景部分可用
15、的值刺激源授權(quán)或非授權(quán)用戶;訪問了有限的資源/大量資源刺激試圖修改數(shù)據(jù),訪問系統(tǒng)服務(wù)制品系統(tǒng)服務(wù)、系統(tǒng)中的數(shù)據(jù)環(huán)境在線或離線、直接或通過防火墻入網(wǎng)響應(yīng)對用戶驗證,阻止或允許訪問數(shù)據(jù)或服務(wù)相應(yīng)度量避開安全措施所需要的時間或資源;恢復(fù)數(shù)據(jù)/服務(wù)5、可測試性(Testability)可測試性是指通過測試揭示軟件缺陷的容易程度。如果要對系統(tǒng)進行正確的測試,那么必須能夠控制”每個組件的內(nèi)部狀態(tài)及其輸入,然后觀察”其輸岀,測試可以由開發(fā)人員、測試人員、驗證人員或用戶進行;可以對代碼、設(shè)計以及整個系統(tǒng)進行測試可測試性的一般性場景場景部分可用的值刺激源單元開發(fā)人員、系統(tǒng)集成人員、系統(tǒng)驗證人員、測試人員、用戶刺
16、激已完成的一個階段,如分析、構(gòu)架、類和子系統(tǒng)的集成,所交付的系統(tǒng)制品設(shè)計、代碼段、完整的應(yīng)用環(huán)境設(shè)計時、開發(fā)時、編譯時、部署時響應(yīng)可以控制系統(tǒng)執(zhí)行所期望的測試相應(yīng)度量已執(zhí)行的可執(zhí)行語句的百分比;最長測試鏈的長度,執(zhí)行測試的時間,準備測試環(huán)境的時間6、易用性(Usability)易用性關(guān)注的是對用戶來說完成某個期望任務(wù)的容易程度和系統(tǒng)所提供的用戶支持種類。包括如下幾個方面:1學習系統(tǒng)的特性,2、有效地使用系統(tǒng),提高用戶操作效率,3、將錯誤的影響降到最低,4、使系統(tǒng)適應(yīng)用戶的需要,5、提高自信和滿意度。易用性的一般性場景場景部分可用的值刺激源最終用戶刺激想要學習系統(tǒng)特性、有效使用系統(tǒng)、使錯誤的影響
17、最低,適配系統(tǒng)等制品系統(tǒng)環(huán)境在運行時或配置時響應(yīng)上下文相關(guān)的幫助系統(tǒng),導(dǎo)航,撤銷、取消操作,從系統(tǒng)故障中恢復(fù),國際化,定制能力相應(yīng)度量任務(wù)時間,錯誤數(shù)量,用戶滿意度等本章除了講述上面6種質(zhì)量屬性之外,還對商業(yè)質(zhì)量屬性和構(gòu)架本身的質(zhì)量屬性作了介紹,以下是我們所關(guān)心的商業(yè)目標:1、上市時間2、成本和收益3、所希望的系統(tǒng)生命期的長短4、目標市場,通用市場還是專用市場5、推岀計劃6、與老系統(tǒng)的集成構(gòu)架的質(zhì)量屬性包括:1、概念完整性,在各個層次上統(tǒng)一系統(tǒng)設(shè)計的根本指導(dǎo)思想2、正確性和完整性,這是構(gòu)架能夠滿足系統(tǒng)的各種需求及運行時的資源要求的必要條件3、可構(gòu)建性,保證能夠由指定的開發(fā)小組在規(guī)定的時間里及時
18、開發(fā)系統(tǒng),并允許在開發(fā)過程中做某些更改,其目的是最大程度地實現(xiàn)并行開發(fā)第六周實現(xiàn)質(zhì)量屬性(上)質(zhì)量屬性對于一個軟件系統(tǒng)而言至關(guān)重要,那么我們?nèi)绾蝸韺崿F(xiàn)這些質(zhì)量屬性呢?首先我們來了解一些基本概念戰(zhàn)術(shù)(tactics)影響質(zhì)量屬性響應(yīng)的設(shè)計決策構(gòu)架策略(architecturalstrategy)戰(zhàn)術(shù)的集合構(gòu)架模式(architecturalpattern)以某種方式將戰(zhàn)術(shù)打包在一起戰(zhàn)術(shù)是幫助我們實現(xiàn)質(zhì)量屬性的策略,下面我們就對每一種質(zhì)量屬性所采用的戰(zhàn)術(shù)進行討論1、可用性(Availability)可用性戰(zhàn)術(shù)將會阻止錯誤發(fā)展為故障,或者至少能夠把錯誤的影響限制在一定范圍內(nèi),從而使修改成為可能。維持
19、可用性的方法包括:1、錯誤預(yù)防一一某種類型的冗余2、錯誤檢測一一用來檢測故障的某種類型的健康監(jiān)視3、自動恢復(fù)一一檢測到故障時某種類型的恢復(fù)可修1、局2、可修改性(改性戰(zhàn)術(shù)的目標是控制實復(fù)、:測試和部署變更的時間和成本。根據(jù)其實現(xiàn)目標可以分監(jiān)測和修復(fù)重新引入尋部化修改一一目標是減少由某個變更直接影響的模塊的數(shù)量3所屏蔽的錯誤或所作的修改、防止令鎖反應(yīng)到其他模塊異常3、延遲綁定時間目表是限制對局部化的模塊的修改,以防止對主動冗余狀態(tài)再同步被動冗余回滾目備標是控制部署時間并允許非開發(fā)人員進行修改刪除的修改間進程監(jiān)視器接地影響圖可修改性戰(zhàn)術(shù)局部化變更防止連鎖反應(yīng)推遲綁定時間性能戰(zhàn)術(shù)的目標是對一定的時間
20、限制內(nèi)到達系統(tǒng)的事件生成一個響應(yīng),這些事件可以使消息到達、定時器到時,系統(tǒng)狀態(tài)的變化。性能戰(zhàn)術(shù)包括3個分類:1、資源需求一一分析影響性能的資源因素2、資源管理一一提高資源的應(yīng)用效率3、資源仲裁一一解決資源的爭用圖性能戰(zhàn)術(shù)性能4、安全性(Security)安全性戰(zhàn)術(shù)包括抵抗攻擊的戰(zhàn)術(shù)、資源需求資源仲裁5、可estability)可測事件戰(zhàn)達標是發(fā)現(xiàn)錯誤的目標寸個副本增加可用資源安全圖安全性戰(zhàn)術(shù)攻擊6、易用性(Usality開銷管理事件率控制采樣頻率身份驗證用戶授權(quán)數(shù)據(jù)加密入侵檢可測試恢用術(shù)靜識態(tài)調(diào)可測試性軟件進行測試。進/先出定優(yōu)先級動態(tài)優(yōu)先級識別度測試細間限制內(nèi)生成響應(yīng)易用性與用戶戰(zhàn)個増構(gòu)架模
21、成期望任務(wù)I限制理輸入/輸出限制訪問系:余的支持種計類有關(guān)系統(tǒng)檢測、抵抗或從攻擊中恢復(fù)度以及系統(tǒng)為的關(guān)圖易用內(nèi)部監(jiān)視易用性務(wù)完完成于響應(yīng)某個特檢測出錯誤的集合來支持某種構(gòu)戰(zhàn)術(shù)、并發(fā)用術(shù)等等,這架。性;構(gòu)架模式是將用現(xiàn)分離持用戶主動.某種方式進行打用戶模型疋將接分口與實_特化訪戰(zhàn)個系統(tǒng)支持可用性和性能,那么我們可能會考慮包以一個戰(zhàn)術(shù)第八周空中交通管(AirTrafficControl)白冗余戰(zhàn)術(shù)、同步為用戶提供適當?shù)姆答伣楹蛥f(xié)助中交通管制系統(tǒng)些特定于一類系統(tǒng)的戰(zhàn)術(shù)集合我們稱之為構(gòu)架模式取性設(shè)計方案模先撤銷系統(tǒng)模型J背景知識,空中交通管制合(ATC任務(wù)指由人通過一定的設(shè)備來對民航系統(tǒng)的制系統(tǒng)一一高
22、可向同學各航班進行必要的規(guī)劃、指揮和管理;空中交通管制系統(tǒng)是輔助空中交通管制的一整套設(shè)備,包括雷達、雷達顯示,數(shù)據(jù)通訊、數(shù)據(jù)記錄等等,其中最重要的是雷達數(shù)據(jù)處理和雷達顯示終端圖空中交通管制系統(tǒng)的構(gòu)架商業(yè)周期本節(jié)討論的構(gòu)架為初始區(qū)段組系統(tǒng)(InitialSectorSuiteSystem,ISSS),它是對美國22個中途中心的軟硬件升級系統(tǒng)。ISSS系統(tǒng)的質(zhì)量屬性要求:1、極高的可用性:保證系統(tǒng)不能正常工作的狀態(tài)只延續(xù)極短的時間(全年5分鐘)2、高性能:系統(tǒng)必須在不丟失”任何數(shù)據(jù)的情況下對大量數(shù)據(jù)(2440架飛機)進行處理其他需求:1、開放性:系統(tǒng)必須能夠與按商業(yè)運作開發(fā)岀來的其它軟件進行集成,
23、比如航圖顯示系統(tǒng),2、可提交的子系統(tǒng),3、能夠更改功能和處理軟硬件的升級,4、能夠與眾多的外部系統(tǒng)相接并協(xié)同工作為了實現(xiàn)ATC系統(tǒng)極高的可用性,在構(gòu)架中大量的采樣了冗余戰(zhàn)術(shù),包括硬件冗余和軟件冗余。為了實現(xiàn)高性能,采用了并發(fā)和資源調(diào)度等戰(zhàn)術(shù)圖ISSS系統(tǒng)的物理視圖(采用了大量冗余設(shè)計戰(zhàn)術(shù))1、存在一個強大的構(gòu)架構(gòu)想2、應(yīng)用管理良好的迭代式增量開發(fā)周期演變交付生命期模型使開發(fā)的軟件系統(tǒng)具有上述兩個特征功能、質(zhì)量和商業(yè)需求的某個集合塑造了構(gòu)架。我們把這些塑造需求稱為構(gòu)架驅(qū)動因素我們這里講解的構(gòu)架設(shè)計方法就是屬性驅(qū)動的設(shè)計方法(AttributeDrivenDesign,ADD),該方法可以用于設(shè)計
24、一個滿足一定質(zhì)量需求和功能需求的構(gòu)架ADD把一組質(zhì)量屬性場景作為輸入,并使用對質(zhì)量屬性實現(xiàn)和構(gòu)架之間的關(guān)系的了解,對構(gòu)架進行設(shè)計。ADD設(shè)計的結(jié)果是構(gòu)架的模塊分解視圖和其他視圖的最初幾個層次。ADD方法的步驟1、選擇要分解的模塊2、根據(jù)下面的步驟對模塊進行求精a、從具體的質(zhì)量場景和功能需求集合中選擇構(gòu)架驅(qū)動因素b、選擇滿足構(gòu)架驅(qū)動因素的構(gòu)架模式,根據(jù)用來實現(xiàn)驅(qū)動因素的戰(zhàn)術(shù)創(chuàng)建模式c、實例化模塊并根據(jù)用例分配功能,使用多個視圖進行表示d、定義子模塊的接口。該分解提供了模塊和對模塊交互類型的限制e、驗證用例和質(zhì)量屬性場景并對其進行求精,使它們成為子模塊的限制3、對需要進一步分解的每個模塊重復(fù)上述步
25、驟在構(gòu)架的模塊分解結(jié)構(gòu)的最初幾個層次穩(wěn)定后,就可以把這些模塊分配給開發(fā)小組,這就是工作分配視圖,分配任務(wù)的原則:1、開發(fā)小組內(nèi)部是高內(nèi)聚,外部是松耦合2、根據(jù)開發(fā)小組的特長進行分配3、盡量與模塊的分界原則一致在使用ADD方法完成了系統(tǒng)的構(gòu)架設(shè)計之后,就可以構(gòu)建系統(tǒng)的骨架系統(tǒng)了。本章通過一個車庫門系統(tǒng)設(shè)計的例子來加強對ADD構(gòu)架設(shè)計方法的理解。第十周飛行模擬器:構(gòu)架可集成性案例分析飛機飛行訓練模擬器主要用于民用與軍用飛機飛行員的飛行訓練以及飛機制造工程模擬。作為飛行員培養(yǎng)的主要手段。飛行模擬器是當今世界上最復(fù)雜的軟件系統(tǒng)之一。它具有很強的分布性,有嚴格的時間要求,而且還必須能夠經(jīng)常更新,以保持與
26、所模擬的不斷變化的飛行器及環(huán)境的逼真性。飛行模擬器具有以下4個特征:1、實時性能要求嚴格飛行模擬器必須保持非常高的顯示幀頻和響應(yīng)速度,如果響應(yīng)延遲會引發(fā)所謂的模擬厭倦癥2、連續(xù)的開發(fā)和修改采用飛行模擬系統(tǒng)是為了在實際的飛機訓練代價昂貴或非常危險時,用飛行模擬系統(tǒng)提供等效的訓練環(huán)境,因此需要適應(yīng)于不同的飛機和不同的環(huán)境狀態(tài)3、規(guī)模大、復(fù)雜程度高飛行模擬軟件一般需要上百萬行的軟件代碼4、在分散的地理位置上開發(fā)根據(jù)上述特征,這里列舉了飛行模擬器的質(zhì)量屬性要求:1、性能,2、可修改性,3、可集成性使單獨開發(fā)的元素協(xié)同工作,以實現(xiàn)軟件的需求,對于這個屬性可以采用的戰(zhàn)術(shù)有:使接口簡單、穩(wěn)定;遵守已定義的協(xié)
27、議;元素之間的依賴最小;使用組件框架;使用已有版本的接口等圖飛行模擬機的構(gòu)架商業(yè)周期飛行模擬系統(tǒng)中存在的兩個嚴重問題:1、調(diào)試、測試和修改代價很高,2、軟件結(jié)構(gòu)和飛機結(jié)構(gòu)的對應(yīng)關(guān)系不明確為了解決飛行模擬系統(tǒng)中存在的這兩個問題,我們采用結(jié)構(gòu)化的模型構(gòu)架方式,該構(gòu)架方式強調(diào):1、系統(tǒng)子結(jié)構(gòu)的簡單性和相似性,2、將數(shù)據(jù)和控制信息的傳遞策略與運算分離開,3、模塊類型數(shù)量最少,4、較少的系統(tǒng)及協(xié)調(diào)策略(性能),5、設(shè)計的透明性(信息隱藏)飛行模擬器的結(jié)構(gòu)化模型構(gòu)架模式分為兩部分:1、管理部分管理部分處理協(xié)調(diào)問題:子系統(tǒng)的實時調(diào)度、處理器的同步、數(shù)據(jù)共享,數(shù)據(jù)完整性等。管理部分由以下4個部分構(gòu)成:1、時間
28、同步器:它負責維持系統(tǒng)內(nèi)部時鐘2、周期時序器:用于完成模擬子系統(tǒng)所要做的周期性處理的系統(tǒng)級通信3、事件處理器:協(xié)調(diào)子系統(tǒng)所做的所有非周期性處理4、代理:負責完成飛行器模型和環(huán)境模型或教練臺模型之間2、應(yīng)用部分應(yīng)用部分處理飛行模擬系統(tǒng)的運算,對飛行器建模,其功能由子系統(tǒng)和組件兩部分完成。盡管飛行模擬系統(tǒng)規(guī)模很大,但僅用6個模塊類型就可以描述這個系統(tǒng),包括:組件、子系統(tǒng)、時間同步器、周期時序器、事件處理器和代理。這使得構(gòu)架容易構(gòu)建、理解、集成、發(fā)展和修改。飛行模擬器第十一周構(gòu)架編檔我們?yōu)橄到y(tǒng)設(shè)計的圖飛行模擬器的模塊分解視圖y涉眾之間交流的作流,我們需要對設(shè)計的構(gòu)架進行編檔。得到我們的最終構(gòu)架以及方
29、便涉眾之間的交構(gòu)架編檔(DocumentingSoftwareArc一是對構(gòu)架的描述,構(gòu)架必然存在,構(gòu)架編檔不一機身發(fā)動機.定存在;構(gòu)架的建立源于系統(tǒng)的需求,構(gòu)架文檔的編寫源于構(gòu)架描述、交流的需求,構(gòu)架編寫的基燃油本規(guī)則是:從讀者的角度進行編寫+1、視構(gòu)架編檔既然如此重要發(fā)我機該火何對構(gòu)架進行編檔呢?構(gòu)架編檔包括如下三部分內(nèi)容:圖編檔;2、接口編檔;3、視圖的組織F面就分別對這三部分對容進行詳細介紹一、視圖編檔視圖(View)就是構(gòu)架元素的內(nèi)聚集合的表示,由系統(tǒng)涉眾編寫和閱讀;軟件構(gòu)架(SoftwareArchitecture)是由多個視圖構(gòu)成,并且表示了這些視圖之間的關(guān)系。構(gòu)架編檔就是將相關(guān)
30、視圖編成文檔,然后向其中添加適合多個視圖的文件。我們需要對軟件構(gòu)架中的每一個視圖進行編檔,每個編檔視圖通常包含7部分的內(nèi)容:1、展示視圖中的元素和元素間關(guān)系的主要表示2、使用元素目錄描述在主要表示中所描述的元素和他們之間的關(guān)系及其他。在這一部分內(nèi)容中我們將對元素的行為和元素接口進行描述3、展示在視圖中描述的系統(tǒng)的環(huán)境相關(guān)上下文4、可變性指南展示了如何應(yīng)用該視圖中所展示的構(gòu)架的一部分的任何變化點,應(yīng)該包含每個變化點的文檔5、解釋視圖中所反映的設(shè)計合理性的構(gòu)架背景,包括:基本原理,分析結(jié)果,設(shè)計中所反映的假定6、視圖中所使用的術(shù)語表7、其他信息,如管理信息等二、視圖編檔接口(Interface)是
31、兩個獨立的實體相遇并進行交互或通信的邊界,由于接口展示了軟件元素之間的交互關(guān)系,對于軟件構(gòu)架而言非常重要,因此需要對構(gòu)架中的接口單獨編檔,接口編檔屬于視圖編檔的一部分內(nèi)容。對接口進行編檔就是在暴露太少信息和太多信息之間達到一個平衡,經(jīng)驗就是把重點放在元素如何與其操作環(huán)境進行交互上,而非放在其實現(xiàn)方式上。接口文檔的模板包括9個部分的內(nèi)容:1、接口身份,通常是接口命名2、所提供的資源,這是接口文檔的核心,包括資源語法、語義和資源使用的限制3、數(shù)據(jù)類型的定義4、異常定義,描述可以由接口上資源引發(fā)的異常5、該接口提供的可變性,可變性示例包括可見數(shù)據(jù)結(jié)構(gòu)的容量以及基礎(chǔ)算法的性能等6、接口的質(zhì)量屬性特征,
32、可以把接口元素的質(zhì)量屬性特征編成文檔7、元素需求,可能是具體的、由其它元素提供的已命名資源8、基本原理和設(shè)計問題,對整個構(gòu)架的基本原理、設(shè)計的動機、限制和折衷進行描述9、使用指南三、視圖的組織視圖組織是使視圖文檔完整所必需的。盡管我們?yōu)檐浖?gòu)架中的每個視圖和使用到的接口進行了編檔,但是他們是零散的,涉眾不容易從中找岀所需要的信息。那么我們?nèi)绾螌⑦@些分散的視圖通過一定的方式組織起來呢?這就是視圖組織,它由3個主要方面組成:1、如何安排和組織構(gòu)架文檔,以使構(gòu)架的涉眾能夠有效可靠地找到所需要的信息,這部分的內(nèi)容包括對視圖目錄(viewcataloq)與視圖模板(viewtemplate)的介紹視圖目
33、錄(viewcatalog)是對視圖的介紹性信息,它告訴讀者在什么地方找到需要的信息。視圖模板(viewtemplate)是視圖的標準組織結(jié)構(gòu),它定義了視圖文檔的標準部分以及每一部分的內(nèi)容和規(guī)則2、闡述構(gòu)架是什么?它能夠使涉眾從整體上了解系統(tǒng)的目的,視圖的關(guān)聯(lián)方式等,這部分的內(nèi)容包括:系統(tǒng)概述,視圖之間的映射,元素列表和項目司匯3、說明為什么構(gòu)架是這樣的,它闡明了系統(tǒng)的上下文。構(gòu)架實際上是其需求的一個解決方案,包括的內(nèi)容有:關(guān)于滿足需求和限制的設(shè)計決策的含義;當改變現(xiàn)有需求時對該構(gòu)架的影響;在實現(xiàn)解決方案中對開發(fā)人員的限制;拒絕采用的決策方案等第十二周ATAM構(gòu)架評估方法我們設(shè)計的構(gòu)架是否正確
34、,是否滿足設(shè)計目標和要求?要回答這些問題,就需要進行構(gòu)架評估。構(gòu)架評估能夠起到規(guī)避風險的作用,在我們的構(gòu)架設(shè)計完成后需要盡早進行評估。ATAM(ArchitectureTradeoffAnalvsisMethod)構(gòu)架權(quán)衡分析方法:戸種方法不僅可以揭示岀構(gòu)架滿足特定質(zhì)量目標的情況,而且可以使我們更清楚地認識到質(zhì)量目標之間的聯(lián)系,即如何權(quán)衡多個質(zhì)量目標。ATAM構(gòu)架評估包括以下三方面的內(nèi)容一、評估人員組成1、評估小組:該小組是所評估構(gòu)架項目外部的小組,通常由35人組成。該小組的每個成員都要扮演大量的特定角色。他們可能是開發(fā)組織內(nèi)部的,也可能是外部的。任何時候,他們都應(yīng)該是有能力、沒有偏見而且私下
35、沒有其他工作要做的人員2、項目決策者對開發(fā)項目具有發(fā)言權(quán),并有權(quán)要求進行某些改變,他們包括項目管理人員,重要的客戶代表,構(gòu)架設(shè)計師等。構(gòu)架評估的一個基本準則就是構(gòu)架設(shè)計師必須愿意參與評估3、構(gòu)架涉眾完成工作的能力與支持可修改性、安全性、高可靠性等特性的構(gòu)架密切相關(guān)。包括:開發(fā)人員、測試人員、集成人員、用戶等二、ATAM構(gòu)架評估結(jié)果1、一個簡潔的構(gòu)架表述2、表述清楚的業(yè)務(wù)目標3、用場景集合捕獲的質(zhì)量屬性4、所確定的敏感點和權(quán)衡點的集合5、有風險決策和無風險決策6、風險主題的集合敏感點(sensitivitypoints)與某個質(zhì)量屬性相關(guān)的構(gòu)架決策權(quán)衡點(tradeoffpoints)與多個質(zhì)量
36、屬性相關(guān)的構(gòu)架決策有風險決策(riskset)根據(jù)所陳述的質(zhì)量屬性需求,可能導(dǎo)致不期望結(jié)果的構(gòu)架決策無風險決策(nonriskset)根據(jù)分析被認為是安全的構(gòu)架決策三、ATAM構(gòu)架評估的過程1、ATAM評估包括4個階段階段活動參與人員一般需要的時間1關(guān)系和準備評估小組負責人和主要的項目決策者大約需要幾周時間2部分評估評估小組和項目決策者1周,然后中斷2-3周3全體評估評估小組、項目決策者以及涉眾2天4后續(xù)工作評估小組和客戶1周2、ATAM評估的具體步驟包括以下八步:1)、由評估負責人向參加會議的項目代表介紹ATAM評估方法,在這一步,要說明每個人將參與的過程,回答提岀的問題,并為其他活動確定上
37、下文和期望2)、項目決策者從商業(yè)的角度介紹系統(tǒng)的概況,包括:系統(tǒng)最重要的功能;任何相關(guān)的技術(shù)、管理、經(jīng)濟和政治限制;與項目相關(guān)的商業(yè)目標和上下文;主要的涉眾;構(gòu)架的驅(qū)動因素(主要質(zhì)量屬性目標)等3)、設(shè)計師使用各種視圖來介紹構(gòu)架的本質(zhì),促使形成構(gòu)架的需求,構(gòu)架受到的技術(shù)約束條件,以及系統(tǒng)與之交互的系統(tǒng),構(gòu)架方法、模式,采用的戰(zhàn)術(shù)等4)、ATAM評估主要通過理解其構(gòu)架方法來分析構(gòu)架5)、使用質(zhì)量屬性效用樹對質(zhì)量目標進行詳細清晰地闡述。效用樹的作用是使質(zhì)量屬性需求具體化,從而迫使設(shè)計師和客戶代表準確地定義岀他們將要提供的相關(guān)質(zhì)量需求;效用樹實際上就是使用最重要的質(zhì)量屬性場景來對質(zhì)量屬性進行討論和評
38、估。在這一步中還需要確定場景的優(yōu)先級6)、評估小組根據(jù)設(shè)計師的講解分析每一個優(yōu)先級高的場景,確定每個場景的敏感點,權(quán)衡點,有風險和無風險決策等;評估小組為每一個場景生成一個評估表格上面的6個步驟由評估小組和項目決策者參加,下面的評估則增加了涉眾的參與,這樣能夠得到更全面更合理的構(gòu)架設(shè)計方案7)、全體涉眾確定進行評估的優(yōu)先級8)、全體涉眾對每一個重要的質(zhì)量屬性場景進行討論和提問。第十三周CBAM構(gòu)架評估方法及軟件產(chǎn)品線一、CBAM構(gòu)架評估方法ATAM構(gòu)架評估方法保證構(gòu)架滿足了我們設(shè)計目標中性能和質(zhì)量屬性的要求,但是對于商業(yè)軟件系統(tǒng)而言,我們還需要對此構(gòu)架生成系統(tǒng)的經(jīng)濟性進行評估,這就是CBAM評
39、估。CRAM(CcstRenefitAnalysisMethcd)成本收益分析方法是對軟件系統(tǒng)進行經(jīng)濟建模的方法,它提供了對技術(shù)與經(jīng)濟問題以及構(gòu)架決策的評估。相對于ATAM構(gòu)架評估方法而言,CRAM雖然為從經(jīng)濟的角度評估構(gòu)架提供了一種方法原型,但不夠成熟。另外,CRAM評估以ATAM評估為基礎(chǔ),即它利用了ATAM評估方法得到的結(jié)果。CBAM的基本思想:構(gòu)架策略影響系統(tǒng)的質(zhì)量屬性,反過來這些質(zhì)量屬性又會為系統(tǒng)的涉眾帶來一定的收益,我們稱該收益為效用。每個構(gòu)架策略都為涉眾提供了一特定級別的效用,同時,每個策略對應(yīng)一個成本,我們將收益和成本的比值叫做ROI(ReturnonInvestment)投資
40、回報,CBAM方法就是計算各種構(gòu)架策略的ROI,然后協(xié)助涉眾選擇構(gòu)架策略CBAM使用場景來表達具體的質(zhì)量屬性,但是它不是使用一個單獨的場景,而是通過改變響應(yīng)值對某一質(zhì)量屬性生成一組場景,每個場景對應(yīng)一個效用,那么一組響應(yīng)值就對應(yīng)一組效用,這樣就形成了效用響應(yīng)曲線圖幾種不同的效用-響應(yīng)曲線通過以下幾個值就可以描繪出效用-響應(yīng)曲線:1、最壞情況質(zhì)量屬性級別,效用為02、最好情況質(zhì)量屬性級別,效用為1003、當前效用級別,效用為504、所期望的效用級別,效用為905、對不同質(zhì)量屬性不同的響應(yīng)生成不同的效用,這是一個根據(jù)響應(yīng)得到的效用變化值有了效用-響應(yīng)曲線,我們就可以計算各種構(gòu)架策略的ROI,從而為
41、我們的構(gòu)架決策提供一種經(jīng)濟上的依據(jù)。對于每個構(gòu)架策略而言,總收益為Bi,總成本為Ci,每個構(gòu)架策略的ROI為Ri,則:Ri=Bi/CiCBAM評估方法的步驟:1、整理場景:確定場景的優(yōu)先級,然后選擇優(yōu)先級最高的1/3場景2、對場景進行求精:確定該場景的最好情況、最壞情況、當前情況和期望情況的質(zhì)量屬性響應(yīng)級別3、再次確定場景的優(yōu)先級,只保留一半場景4、為每個場景的當前級別和期望級別分配效用5、為每個場景開發(fā)構(gòu)架策略,并確定質(zhì)量響應(yīng)級別6、使用內(nèi)插法確定所期望的構(gòu)架策略效用值7、計算某個構(gòu)架策略的總收益8、計算ROI,根據(jù)ROI選擇構(gòu)架策略9、運用直覺來確認所得到的結(jié)果二、軟件產(chǎn)品線:重用構(gòu)架資產(chǎn)
42、產(chǎn)品線在制造業(yè)中得到廣泛應(yīng)用,包括汽車、飛機等大型設(shè)備的制造往往通過產(chǎn)品線來實現(xiàn)。1969年,McIlroy首先認識到了開創(chuàng)可重用軟件組件行業(yè)的需要,但是,直到今天現(xiàn)在軟件團體也沒有實現(xiàn)這一目標。軟件產(chǎn)品線(SoftwareProductLines)一組軟件密集型系統(tǒng),它們共享一個公共的、可管理的特性集,滿足了某個特定市場或任務(wù)的具體需要,是以規(guī)定的方式用公共的核心資產(chǎn)集開發(fā)岀來的,比如醫(yī)學圖像處理軟件成功采用產(chǎn)品線能夠帶來的生產(chǎn)成本的降低、上市時間的縮短和生產(chǎn)效率的提高產(chǎn)品線的本質(zhì)是在生產(chǎn)產(chǎn)品家族時,以一種規(guī)范的、策略性的方法重用資產(chǎn)產(chǎn)品線之所以有效,是因為可以通過重用充分利用產(chǎn)品的共性,從
43、而實現(xiàn)生產(chǎn)的經(jīng)濟性,可以重用的范圍包括:1、需求:大多數(shù)需求與早期開發(fā)的系統(tǒng)相同,因此不再需要進一步的需求分析2、構(gòu)架設(shè)計:已有成功系統(tǒng)的構(gòu)架證明是合時的,設(shè)計產(chǎn)品線產(chǎn)品利用成功的構(gòu)架可以節(jié)約大量的時間3、元素:軟件產(chǎn)品的元素在產(chǎn)品線中是可重用的,包括元素接口、文檔、測試計劃等4、建模和分析:以前關(guān)于性能分析、可調(diào)度性分析等模型和分析均可重用5、測試:以前的測試計劃、測試過程、測試用例、測試數(shù)據(jù)、測試工具均可重用6、過程、方法和工具等7、人員:開發(fā)相似系統(tǒng)的人員已經(jīng)具有了開發(fā)此類系統(tǒng)的經(jīng)驗和技術(shù)積累8、樣本系統(tǒng):已開發(fā)系統(tǒng)可以作為新開發(fā)系統(tǒng)的樣本9、缺陷消除:產(chǎn)品線可以提高產(chǎn)品質(zhì)量,因為以前的缺陷在新產(chǎn)品設(shè)計時可以避免建立產(chǎn)品線構(gòu)架在產(chǎn)品線的核心資產(chǎn)庫中,軟件構(gòu)架是重中之重。構(gòu)建一個成
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度土地流轉(zhuǎn)與農(nóng)業(yè)觀光旅游合作合同3篇
- 2024門店勞動法執(zhí)行標準勞動合同范本詳解3篇
- 2024門禁系統(tǒng)安裝工程合同
- 多元化溝通知到智慧樹章節(jié)測試課后答案2024年秋棗莊學院
- 2025年度商場裝飾窗簾承包安裝項目合同3篇
- HC3i-醫(yī)院評審回顧與發(fā)展課件
- 2024門面合同范本
- 環(huán)保監(jiān)察新司機勞動合同
- 環(huán)保工程隔斷拆除合同
- 長沙市二手房贈送物業(yè)管理合同
- 2024年酒店式公寓承包合同
- 學校安全存在的問題及整改措施
- 2025年八省聯(lián)考內(nèi)蒙古高考生物試卷真題答案詳解(精校打印)
- 2025年包鋼集團公司招聘筆試參考題庫含答案解析
- 校園公園綠化養(yǎng)護協(xié)議
- 貓抓病的護理
- 2024版城市綠化養(yǎng)護合同補充協(xié)議3篇
- GB/T 19799.2-2024無損檢測超聲檢測試塊第2部分:2號標準試塊
- 內(nèi)蒙古呼和浩特市2024屆九年級上學期期末考試數(shù)學試卷(含答案)
- 建筑材料采購授權(quán)委托書樣本
- 工商企業(yè)管理畢業(yè)論文范文(4篇)
評論
0/150
提交評論