版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
ModifiabilityanditsTactics1軟件體系結(jié)構(gòu)課程組可用性復(fù)習(xí)可用性的關(guān)注點故障提升可用性的策略故障檢測故障恢復(fù)故障避免2目錄可修改性的含義1提升可修改性的策略23目錄可修改性的含義1提升可修改性的策略24可修改性的含義-概述(1/2)關(guān)注點修改的成本系統(tǒng)的哪些部分被修改修改發(fā)生的時間修改由誰來進行5可修改性的含義-概述(2/2)衡量指標修改完成的時間修改所花的人力成本修改所花的經(jīng)濟成本……6可修改性的含義-可修改性場景(1/3)刺激源誰進行的修改(開發(fā)者/管理員/用戶)刺激要進行的具體修改7可修改性的含義-可修改性場景(2/3)制品修改系統(tǒng)的功能orUI
or交互的其他系統(tǒng)?環(huán)境在什么時間進行的修改?設(shè)計期間or開發(fā)期間or運行期間?修改的時間越遲,越不利8可修改性的含義-可修改性場景(3/3)響應(yīng)操作人員要理解如何修改、進行修改操作、測試、部署響應(yīng)衡量指標時間、成本9可修改性的含義-場景實例10本頁圖片來自網(wǎng)絡(luò)目錄可修改性的含義1提升可修改性的策略211提升可修改性的策略-概述目標降低修改的時間和成本方向1:限制修改范圍讓修改所影響的
軟件范圍盡可能的小方向2:延遲綁定時間讓軟件在運行期間仍可進行靈活修改12提升可修改性的策略修改發(fā)生、測試、部署(滿足時間和預(yù)算要求)修改到來提升可修改性的策略-限制修改范圍(1/6)模塊高內(nèi)聚、低耦合盡量把對程序的修改控制在一個模塊內(nèi)可以借助框架、中間件考慮到可能會發(fā)生的修改有助于評估模塊間責(zé)任的劃分讓一個點的修改只影響一個模塊避免完全無關(guān)的多個修改會影響同一個模塊13提升可修改性的策略-限制修改范圍(2/6)讓模塊通用“解釋器”風(fēng)格的思路14本頁圖片來自網(wǎng)絡(luò)提升可修改性的策略-限制修改范圍(3/6)隱藏信息面向?qū)ο髾C制中的可訪問性(public/private)維持接口不變在接口不變的情況下,接口連接的雙方可以獨立變化15本頁圖片來自網(wǎng)絡(luò)提升可修改性的策略-限制修改范圍(4/6)限制通信路徑設(shè)計模式中的Fa?ade模式16提升可修改性的策略-限制修改范圍(5/6)使用中介數(shù)據(jù)中介:共享數(shù)據(jù)的風(fēng)格服務(wù)中介:設(shè)計模式中的bridge、factorymethod等模式17本頁圖片來自網(wǎng)絡(luò)提升可修改性的策略-限制修改范圍(6/6)命名服務(wù)器(nameserver)查詢所需資源/對象的位置,解決位置依賴按需創(chuàng)建實例借助設(shè)計模式中的創(chuàng)建型模式18提升可修改性的策略-延遲綁定時間(1/4)配置文件修改配置文件,而不用修改代碼19[Global]MessageTitle=智能自制內(nèi)容工具Button[0]=確定(&O)Button[1]=取消(&C)Button[2]=關(guān)閉(&C)[Project]Title=新建項目Button[0]=名稱:Button[1]=位置:Button[2]=瀏覽(&B)...Text[0]=當(dāng)前目錄已經(jīng)存在,是否覆蓋此目錄?[PutCode]Title=請輸入相應(yīng)數(shù)字Button[0]=編號:Button[1]=如果存在相同編號直接覆蓋<?xmlversion="1.0"encoding="utf-8"?><!--TheconfigurationfileforSMSvcHost.exe--><configuration><runtime><gcConcurrentenabled="false"/></runtime><system.serviceModel><!--SMSvcHostETWtracesareredirectedbydefaulttoanetwProviderIddifferentfromWCF'sdefault.--><diagnosticsperformanceCounters="Off"etwProviderId="{f18839f5-27ff-4e66-bd2d-639b768cf18b}"/></system.serviceModel></configuration>提升可修改性的策略-延遲綁定時間(2/4)發(fā)布-訂閱模式軟件體系風(fēng)格部分已有介紹(事件系統(tǒng))設(shè)計模式中的“觀察者模式”20本頁圖片來自/langxuanlovehai/article/details/48375919提升可修改性的策略-延遲綁定時間(3/4)發(fā)布-訂閱模式微博的例子21提升可修改性的策略-延遲綁定時間(4/4)多態(tài)用不同的子類,實現(xiàn)不同的功能22本頁代碼修改自/Shaun_Guo/article/details/79460421publicclassTest{publicstaticvoidmain(String[]args){
//定義為狗
Animal
a=newDog();a.eat();//變成貓a=newCat();a.eat();classAnimal{publicvoideat(){System.out.println(“進食");}}classDogextendsAnimal{publicvoideat(){System.out.println("狗吃肉");}}classCatextendsAnimal{publicvoideat(){System.out.println("貓吃魚");}}可修改性總結(jié)可修改性的關(guān)注點修改的成本提升可修改性的策略限制修改范圍延遲綁定時間2324歡迎各位同學(xué)交流討論計算機科學(xué)與技術(shù)學(xué)院微信PerformanceanditsTactics25軟件體系結(jié)構(gòu)課程組可修改性復(fù)習(xí)可修改性的關(guān)注點修改的成本提升可修改性的策略限制修改范圍延遲綁定時間26目錄性能的含義1提升性能的策略227目錄性能的含義1提升性能的策略228性能的含義-概述(1/3)關(guān)注點系統(tǒng)響應(yīng)事件的速度和事件的數(shù)量和到達模式有關(guān)事件的來源用戶的請求、本系統(tǒng)內(nèi)部、本系統(tǒng)外部29性能的含義-概述(2/3)事件到達模式隨機的在特定時間尺度(日、月、學(xué)期、年)有規(guī)律的30性能的含義-概述(2/3)事件到達模式隨機的在特定時間尺度(日、月、學(xué)期、年)有規(guī)律的31性能的含義-概述(3/3)事件到達模式32本頁圖片來自網(wǎng)絡(luò)性能的含義-概述(3/3)事件到達模式33本頁圖片來自網(wǎng)絡(luò)性能的含義-性能場景(1/4)刺激源可能來自系統(tǒng)內(nèi)部或外部刺激事件到來(需要響應(yīng))34性能的含義-性能場景(2/4)制品系統(tǒng)所提供的服務(wù)環(huán)境系統(tǒng)可能處于不同的模式(正常/緊急/超載)35性能的含義-性能場景(3/4)響應(yīng)系統(tǒng)處理到來的事件,可能會導(dǎo)致狀態(tài)的變化
36性能的含義-性能場景(3/4)響應(yīng)系統(tǒng)處理到來的事件,可能會導(dǎo)致狀態(tài)的變化
37性能的含義-性能場景(4/4)響應(yīng)衡量指標處理事件所花的時間單位時間內(nèi)處理事件的數(shù)目處理的錯誤率/丟失率38性能的含義-場景實例39本頁圖片來自網(wǎng)絡(luò)目錄性能的含義1提升性能的策略240提升性能的策略-概述目標在限定時間內(nèi)響應(yīng)事件獲取資源+使用資源方向1:資源的需求方向2:資源的管理方向3:資源的仲裁41提升性能的策略響應(yīng)事件(滿足時間限制)事件到來提升性能的策略-資源的需求(1/3)在要處理的數(shù)據(jù)量不變的情況下,提高計算效率使用更高效率的算法減少處理事件時對資源的占用42提升性能的策略-資源的需求(1/3)在要處理的數(shù)據(jù)量不變的情況下,提高計算效率使用更高效率的算法減少處理事件時對資源的占用43提升性能的策略-資源的需求(2/3)減少要處理的數(shù)據(jù)總量控制事件到來的速率只抽取一部分請求來處理44本頁圖片來自網(wǎng)絡(luò)深圳號導(dǎo)彈驅(qū)逐艦提升性能的策略-資源的需求(2/3)減少要處理的數(shù)據(jù)總量控制事件到來的速率只抽取一部分請求來處理45本頁圖片來自網(wǎng)絡(luò)深圳號導(dǎo)彈驅(qū)逐艦提升性能的策略-資源的需求(3/3)限制執(zhí)行時間在規(guī)定時間內(nèi)得到近似解限制待處理事件隊列長度直接放棄處理一部分事件46本頁圖片來自網(wǎng)絡(luò)故宮節(jié)假日限流廣州地鐵站早晚高峰限流提升性能的策略-資源的管理(1/2)利用并發(fā)機制多線程、多進程、多核、多機……47本頁圖片來自網(wǎng)絡(luò)華為麒麟990配備8核CPU+3核NPU+16核GPU提升性能的策略-資源的管理(1/2)利用并發(fā)機制多線程、多進程、多核、多機……48本頁圖片來自網(wǎng)絡(luò)華為麒麟990配備8核CPU+3核NPU+16核GPU提升性能的策略-資源的管理(2/2)增加可用資源計算資源、存儲資源、帶寬資源……49阿里云的產(chǎn)品列表提升性能的策略-資源的管理(2/2)增加可用資源計算資源、存儲資源、帶寬資源……50阿里云的產(chǎn)品列表提升性能的策略-資源的仲裁(1/2)先來先服務(wù)固定優(yōu)先級調(diào)度機場、車站的軍人綠色通道51本頁圖片來自網(wǎng)絡(luò)宜昌三峽機場的軍人綠色通道提升性能的策略-資源的仲裁(1/2)先來先服務(wù)固定優(yōu)先級調(diào)度機場、車站的軍人綠色通道52本頁圖片來自網(wǎng)絡(luò)宜昌三峽機場的軍人綠色通道提升性能的策略-資源的仲裁(2/2)動態(tài)優(yōu)先級不餓死最早deadline優(yōu)先53本頁圖片來自網(wǎng)絡(luò)餐館通常為每桌輪流上菜急救室根據(jù)新傷者的情況調(diào)整搶救次序提升性能的策略-資源的仲裁(2/2)動態(tài)優(yōu)先級不餓死最早deadline優(yōu)先54本頁圖片來自網(wǎng)絡(luò)餐館通常為每桌輪流上菜急救室根據(jù)新傷者的情況調(diào)整搶救次序性能總結(jié)性能的關(guān)注點處理響應(yīng)的速度提升性能的策略資源的需求資源的管理資源的仲裁5556歡迎各位同學(xué)交流討論計算機科學(xué)與技術(shù)學(xué)院微信SecurityanditsTactics57軟件體系結(jié)構(gòu)課程組性能復(fù)習(xí)性能的關(guān)注點處理響應(yīng)的速度提升性能的策略資源的需求資源的管理資源的仲裁58目錄安全性的含義1提升安全性的策略259我們身邊的安全3目錄安全性的含義1提升安全性的策略260我們身邊的安全3安全性的含義-概述(1/4)關(guān)注點在保證合法用戶使用系統(tǒng)的前提下,抵抗對系統(tǒng)的攻擊攻擊(威脅)試圖突破系統(tǒng)安全性防護的嘗試61安全性的含義-概述(2/4)安全性的不同方面不可否認性私密性62本頁圖片來自網(wǎng)絡(luò)安全性的含義-概述(2/4)安全性的不同方面不可否認性私密性63本頁圖片來自網(wǎng)絡(luò)安全性的含義-概述(2/4)安全性的不同方面不可否認性私密性64本頁圖片來自網(wǎng)絡(luò)安全性的含義-概述(3/4)安全性的不同方面完整性保證性65安全性的含義-概述(4/4)安全性的不同方面可用性審計(為了重建)66本頁圖片來自網(wǎng)絡(luò)安全性的含義-安全性場景(1/4)刺激源攻擊可能由人或其他系統(tǒng)發(fā)起刺激對系統(tǒng)的攻擊(或試圖突破系統(tǒng)安全保護)常見形式:竊取或修改信息、獲取超權(quán)限的服務(wù)、降低系統(tǒng)可用性67安全性的含義-安全性場景(2/4)制品系統(tǒng)所提供的服務(wù)或系統(tǒng)中的數(shù)據(jù)環(huán)境系統(tǒng)可能處于不同的情況下(聯(lián)網(wǎng)/未聯(lián)網(wǎng)、在線/下線、在防火墻內(nèi)/外)68安全性的含義-安全性場景(3/4)響應(yīng)合法用戶正常使用,拒絕非法用戶的使用對攻擊有威懾69本頁圖片來自網(wǎng)絡(luò)安全性的含義-安全性場景(4/4)響應(yīng)衡量指標發(fā)起攻擊的難度從攻擊中恢復(fù)的難度70本頁圖片來自網(wǎng)絡(luò)安全性的含義-場景實例71本頁圖片來自網(wǎng)絡(luò)目錄安全性的含義1提升安全性的策略272我們身邊的安全3提升安全性的策略-概述方向1:抵抗攻擊方向2:檢測攻擊方向3:從攻擊中恢復(fù)73提升安全性的策略-抵抗攻擊(1/5)用戶的證實密碼、驗證碼、生物識別……用戶的授權(quán)確認用戶的操作是在其權(quán)限范圍74本頁圖片來自網(wǎng)絡(luò)提升安全性的策略-抵抗攻擊(2/5)維持數(shù)據(jù)的保密性給數(shù)據(jù)和傳輸過程加密75本頁圖片來自網(wǎng)絡(luò)提升安全性的策略-抵抗攻擊(3/5)維持數(shù)據(jù)的完整性MD5碼校驗76提升安全性的策略-抵抗攻擊(4/5)減少暴露關(guān)閉無用端口、自啟動的服務(wù)、無線路由SSID等77本頁圖片來自網(wǎng)絡(luò)提升安全性的策略-抵抗攻擊(5/5)限制訪問白名單、黑名單78本頁圖片來自網(wǎng)絡(luò)提升安全性的策略-檢測攻擊軟件和人結(jié)合入侵檢測系統(tǒng)安全專家79提升安全性的策略-從攻擊中恢復(fù)恢復(fù)狀態(tài)使用“可用性”中的相關(guān)策略攻擊者的識別也能震懾潛在的攻擊者80目錄安全性的含義1提升安全性的策略281我們身邊的安全3我們身邊的安全-古人智慧兵符、玉璽:認證身份封蠟:防篡改82本頁圖片來自網(wǎng)絡(luò)我們身邊的安全-用戶名+密碼特點革命性意義:區(qū)分開了身份和憑證用戶名保證身份唯一,建立后不可修改密碼保證身份安全,可修改風(fēng)險單用戶名大密碼檔猜測、多用戶常見密碼猜測撞庫、拖庫假Wifi熱點83我們身邊的安全-密???4特點基于“密碼本”,典型的“雙因素”安全思想實體卡無法被監(jiān)聽,刮刮卡防止被分發(fā)渠道翻拍本頁圖片來自網(wǎng)絡(luò)我們身邊的安全-密??L(fēng)險偽“一次一密”,可能遭到位置累計攻擊受卡面大小的約束,只能通過頻繁更換解決實體卡印刷需要專用設(shè)備,成本較高85我們身邊的安全-短信驗證碼特點典型的“雙因素”安全思想只需利用現(xiàn)有電信服務(wù),不需增加用戶成本不適合多人使用同一賬號風(fēng)險滯后、收不到、被屏蔽移動網(wǎng)絡(luò)被監(jiān)聽智能手機中的惡意程序竊聽86我們身邊的安全-動態(tài)口令特點基于隨機數(shù)種子+時間,每隔一段時間(如1分鐘)自動生成動態(tài)密碼風(fēng)險被破解87本頁圖片來自網(wǎng)絡(luò)我們身邊的安全-驗證碼特點區(qū)分真實用戶和軟件風(fēng)險被程序破解、真實用戶難以辨認88本頁圖片來自網(wǎng)絡(luò)我們身邊的安全-驗證碼89本頁圖片來自網(wǎng)絡(luò)我們身邊的安全-生物識別特點更換難度大風(fēng)險偽造90本頁圖片來自網(wǎng)絡(luò)安全性總結(jié)安全性的關(guān)注點盡量避免攻擊對系統(tǒng)的影響提升安全性的策略抵抗攻擊檢測攻擊從攻擊中恢復(fù)9192歡迎各位同學(xué)交流討論計算機科學(xué)與技術(shù)學(xué)院微信TestabilityanditsTactics93軟件體系結(jié)構(gòu)課程組安全性總結(jié)安全性的關(guān)注點盡量避免攻擊對系統(tǒng)的影響提升安全性的策略抵抗攻擊檢測攻擊從攻擊中恢復(fù)94目錄可測試性的含義1提升可測試性的策略295目錄可測試性的含義1提升可測試性的策略296可測試性的含義-概述(1/1)關(guān)注點讓軟件的bug容易被測試出來驗證軟件產(chǎn)品與它的需求規(guī)格是否匹配(存在不符或缺失)使用最小的成本和工作量來驗證軟件的質(zhì)量97軟件測試是為了發(fā)現(xiàn)錯誤可測試性的含義-概述(1/2)測試的重要性一般軟件項目40%的成本花在測試上大型軟件項目出現(xiàn)故障,可能導(dǎo)致嚴重的后果如果能在體系結(jié)構(gòu)層面提高可測試性,收益巨大98可測試性的含義-案例(1/3)軟件bug引發(fā)的重大損失1985年,加拿大的Therac-25放射治療機由于軟件Bug而發(fā)生故障,向患者提供了致命的輻射劑量,造成3人死亡,3人嚴重受傷。1994年,國航空客A300因軟件故障而墜毀,264人喪生1999年,軟件漏洞導(dǎo)致美國12億美元的軍事衛(wèi)星發(fā)射失敗99可測試性的含義-案例(2/3)軟件bug引發(fā)的重大損失2013-2016年,日產(chǎn)汽車由于安全氣囊感應(yīng)探測器的軟件故障(軟件可能探測不到副駕駛座上的乘客,導(dǎo)致發(fā)生事故時安全氣囊無法打開),陸續(xù)在全球召回超過450萬輛汽車2015-2017年,星巴克咖啡多次出現(xiàn)POS系統(tǒng)升級故障無法處理交易,最多時被迫臨時關(guān)閉了北美區(qū)約60%的門店100可測試性的含義-案例(3/3)軟件bug引發(fā)的重大損失2015年,倫敦彭博終端由于軟件漏洞宕機,影響超過30萬交易商,迫使政府推遲30億英鎊的債務(wù)出售2018年6月27日,阿里云出現(xiàn)大規(guī)模故障,原因為上線自動化運維系統(tǒng)觸發(fā)未知Bug,導(dǎo)致部分產(chǎn)品訪問鏈接不通,影響時間約半小時101可測試性的含義-可測試性場景(1/5)刺激源測試可能由不同的角色發(fā)起(開發(fā)者、單元測試人員、集成測試人員、系統(tǒng)管理員、用戶……)刺激系統(tǒng)開發(fā)到達了里程碑可能是分析/設(shè)計/編碼/集成階段的結(jié)束,或系統(tǒng)完成開發(fā)102可測試性的含義-可測試性場景(2/5)制品一個設(shè)計、一段代碼、整個系統(tǒng)……環(huán)境系統(tǒng)可能處于設(shè)計階段/開發(fā)階段/部署階段/正常運行時103可測試性的含義-可測試性場景(3/5)響應(yīng)理想的響應(yīng)是可以進行測試,并且可以觀察到測試結(jié)果當(dāng)測試結(jié)果無法被觀察到時,測試難度很大104本頁圖片來自網(wǎng)絡(luò)可測試性的含義-可測試性場景(4/5)響應(yīng)衡量指標白盒測試中的覆蓋率語句覆蓋判定覆蓋/分支覆蓋(判定可能是多個條件組合)條件覆蓋:覆蓋判定中的每個條件路徑覆蓋、判定條件覆蓋、條件組合覆蓋……未來繼續(xù)發(fā)現(xiàn)bug的概率105本頁圖片來自網(wǎng)絡(luò)可測試性的含義-可測試性場景(5/5)106本頁圖片來自網(wǎng)絡(luò)可測試性的含義-場景實例107本頁圖片來自網(wǎng)絡(luò)目錄可測試性的含義1提升可測試性的策略2108提升可測試性的策略-概述目標讓測試更輕松方向1:黑盒測試方向2:白盒測試109提升可測試性的策略檢測出軟件缺陷軟件進行測試提升可測試性的策略-黑盒測試(1/4)記錄/回放自動化/半自動化測試把接口和實現(xiàn)分離開不同的排序算法,使用相同的接口110總體思路:提供輸入+捕獲輸出提升可測試性的策略-黑盒測試(4/4)提供專用的測試路徑111本頁圖片來自網(wǎng)絡(luò)主板上的DebugLED汽車上的OBD接口提升可測試性的策略-白盒測試內(nèi)部監(jiān)控IDE提供的斷點等調(diào)試工具WinDbg等工具112本頁圖片來自網(wǎng)絡(luò)提升可測試性的策略-常用的測試工具(1/4)Appium(APPUI測試)同時支持Android/iOS支持測試原生APP、WebAPP、混合APP支持Java/Python/PHP等多種語言支持Windows/Mac/Linux113本頁圖片來自網(wǎng)絡(luò)提升可測試性的策略-常用的測試工具(1/4)Selenium(WebUI測試)支持主流的操作系統(tǒng)和瀏覽器模擬chrome瀏覽器操作支持Python自動化114本頁圖片來自網(wǎng)絡(luò)JMeter(接口測試、性能測試)基于Java的測試工具可以測試測試靜態(tài)和動態(tài)資源,如Java對象、數(shù)據(jù)庫、FTP服務(wù)器等115本頁圖片來自網(wǎng)絡(luò)提升可測試性的策略-常用的測試工具(1/4)可測試性總結(jié)可測試性的關(guān)注點讓bug容易被測試出來提升可測試性的策略黑盒白盒116117歡迎各位同學(xué)交流討論計算機科學(xué)與技術(shù)學(xué)院微信UsabilityanditsTactics118軟件體系結(jié)構(gòu)課程組目錄易用性的含義1提升易用性的策略2119質(zhì)量屬性總結(jié)3目錄易用性的含義1提升易用性的策略2120質(zhì)量屬性總結(jié)3易用性的含義-概述關(guān)注點讓用戶使用軟件的難度降低不同方面如何方便用戶入門?如何提高用戶使用軟件的效率?如何降低用戶出錯造成的影響?如何讓軟件適應(yīng)用戶的需求?如何提高用戶的自信和舒適度?121易用性的含義-易用性場景(1/4)刺激源終端用戶刺激終端用戶希望學(xué)習(xí)系統(tǒng)的使用、提高系統(tǒng)使用效率、減少出錯……122易用性的含義-易用性場景(2/4)制品整個系統(tǒng)環(huán)境系統(tǒng)處于運行時或配置時123易用性的含義-易用性場景(3/4)響應(yīng)系統(tǒng)響應(yīng)用戶的要求響應(yīng)衡量指標用戶完成任務(wù)的時間用戶出錯的次數(shù)用戶滿意度用戶操作的成功率124易用性的含義-場景實例125本頁圖片來自網(wǎng)絡(luò)目錄易用性的含義1提升易用性的策略2126質(zhì)量屬性總結(jié)3提升易用性的策略-概述目標讓用戶輕松方向1:運行時策略方向2:設(shè)計時策略127提升易用性的策略給予用戶適當(dāng)?shù)姆答伜椭С钟脩舻恼埱筇嵘子眯缘牟呗?運行時策略(1/5)系統(tǒng)猜測用戶要完成的任務(wù)輸入法聯(lián)想、搜索引擎聯(lián)想128本頁圖片來自網(wǎng)絡(luò)提升易用性的策略-運行時策略(1/5)系統(tǒng)給用戶適當(dāng)?shù)姆答佁崾究截愇募璧氖S鄷r間、瀏覽器打開頁面的進度129本頁圖片來自網(wǎng)絡(luò)提升易用性的策略-運行時策略(1/5)系統(tǒng)給用戶提供一致的體驗鼠標提供DPI調(diào)整,適應(yīng)不同的分辨率130本頁圖片來自網(wǎng)絡(luò)提升易用性的策略-運行時策略(1/5)支持撤銷操作減少誤操作的影響131本頁圖片來自網(wǎng)絡(luò)提升易用性的策略-設(shè)計時策略(1/5)把用戶界面和系統(tǒng)其它部分隔離開MVC模式支持用戶界面的獨立修改(甚至用戶可以自行修改用戶界面)132本頁圖片來自網(wǎng)絡(luò)目錄易用性的含義1提升易用性的策略2133質(zhì)量屬性總結(jié)3質(zhì)量屬性總結(jié)可用性可修改性性能安全性可測試性易用性134質(zhì)量屬性總結(jié)-可用性可用性的關(guān)注點故障提升可用性的策略故障檢測故障恢復(fù)故障避免135質(zhì)量屬性總結(jié)-可修改性可修改性的關(guān)注點修改的成本提升可修改性的策略限制修改范圍延遲綁定時間136質(zhì)量屬性總結(jié)-性能性能的關(guān)注點處理響應(yīng)的速度提升性能的策略資源的需求資源的管理資源的仲裁137質(zhì)量屬性總結(jié)-易用性易用性的關(guān)注點讓用戶“用得舒服”提升易用性的策略運行時策略設(shè)計時策略138質(zhì)量屬性總結(jié)-安全性安全性的關(guān)注點盡量避免攻擊對系統(tǒng)的影響提升安全性的策略抵抗攻擊檢測攻擊從攻擊中恢復(fù)139140歡迎各位同學(xué)交流討論計算機科學(xué)與技術(shù)學(xué)院微信軟件體系結(jié)構(gòu)評估Software
Architecture
Evaluation軟件體系結(jié)構(gòu)課程組目錄體系結(jié)構(gòu)評估1ATAM2Howdoweknowthatourarchitectureisappropriateforitsintendedpurpose?Inalargedevelopmentproject,anenormousamountofmoneymayberidingon(取決于)thearchitecture.Thefutureofcompanymaybeatstake(危險).Weneedtoevaluatethearchitecture(評估體系結(jié)構(gòu)).體系結(jié)構(gòu)評估-Now
what滿足需求開發(fā)成本潛在危機體系結(jié)構(gòu)評估Architectureevaluationisadevelopmentlife-cycleactivitywherebyseveralstakeholders(項目干系人)
analyzethesoftwarearchitecturetogetherinaformalorinformal(正式或非正式)
processusinganassessmenttechniquesuchasscenarios(場景).體系結(jié)構(gòu)評估-定義EarlydetectionofproblemswiththeexistingarchitectureTheearlierinthelifecyclethatproblemsaredetected,thecheaperitistofixthem.ValidationofrequirementsArchitectureevaluationsuncovertheconflictsandtradeoffs,andprovideaforumfortheirnegotiatedresolutionForcedpreparationforthereviewManysystemsdonothaveanarchitecturethatisunderstandabletoalldevelopers.Theprocessofpreparingfortheevaluationwillrevealmanyoftheseproblems.Improved
architectures體系結(jié)構(gòu)評估-whyThiswasprobablythefirstdocumentedsoftwarearchitectureanalysismethodandwasoriginallydevelopedtoanalyzeanarchitectureformodifiability.However,itisusefulforanalyzinganynonfunctionalaspectofanarchitecture.Itisfoundedontheuseofstakeholder-generatedscenariostoassessanarchitecture.Scenario-basedArchitectureAnalysisMethod(SAAM)體系結(jié)構(gòu)評估-評估方法ThisisasuccessorofSAAMandisalsogainingwidespreaduse.Thismethodincorporatesqualityattributeutilitytreesandqualityattributecategoriesintheanalysisofanarchitecture.WhereasSAAMdoesnotexplicitlyaddresstheinteractionsbetweenqualityattributes,ATAMdoes.Thus,thetrade-offsarewithrespecttocompetingqualityattributes.ATAMisaspecializationofSAAM,specificallyfocusingonmodifiability,performance,availability,andsecurity.ArchitectureTrade-offAnalysisMethod(ATAM)體系結(jié)構(gòu)評估-評估方法Thismethodconsidersthecomplexityofevaluationscenariosasthemostimportantriskassessmentfactor.SAAMFoundedonComplexScenarios(SAAMCS)Thismethodfocusesspecificallyonthequalityattributesofevolution(演化)
andreusability.ThismethodintegratesSAAMwithdomain-specific
andreuse-basedsoftwaredevelopmentprocesses.ExtendingSAAMbyIntegrationintheDomain(ESAAMI)SoftwareArchitectureAnalysisMethodforEvolutionandReusability(SAAMER)體系結(jié)構(gòu)評估-評估方法Thismethodutilizesscenarios,simulation(仿真),mathematicalmodeling,andexperience-basedreasoning(基于經(jīng)驗的推理)forassessingqualityattributes.Thismethodalsoincorporatesanarchitecturedesignmethod.Scenario-BasedArchitectureReengineering(SBAR)Thisisanothermethodforanalyzingmaintainabilityusingscenarios,calledchangescenarios,whichrepresentmaintenancetasks.(體系結(jié)構(gòu)級別上的軟件維護預(yù)測)ArchitectureLevelPredictionofSoftwareMaintenance(ALPSM)Thismethodisbasedonformalandrigorous(嚴格精確的)qualityrequirements.SoftwareArchitectureEvaluationModel(SAEM)體系結(jié)構(gòu)評估-評估方法目錄體系結(jié)構(gòu)評估1ATAM2TheATAMisamethodthathelpsstakeholdersasktherightquestionstodiscoverpotentiallyproblematicarchitecturaldecisions.Tradeoffs(折衷)canbeexplicitlyidentifiedanddocumented.Discoveredriskscanthenbemadethefocusofmitigation(減輕)activities:e.g.furtherdesign,furtheranalysis,prototyping.ATAM-概述ThepurposeoftheATAMisNOTtoprovidepreciseanalyses...thepurposeIStodiscoverriskscreatedbyarchitecturaldecisions.Wewanttofindtrends:correlationbetweenarchitecturaldecisionsandpredictionsofsystemproperties.ATAM-目標ThereareanumberofbenefitsfromperformingATAMevaluationsidentifiedrisksclarifiedqualityattributerequirementsimprovedarchitecturedocumentationdocumentedbasisforarchitecturaldecisionsincreasedcommunicationamongstakeholdersTheresultsareimprovedarchitectures.ATAM-BenefitsATAM的參與人員要求以下三類人員的參與和合作
評估小組Eachevaluationteamconsistsofaleaderandatleastthreeotherteammembers.ATAMteammembersmustbeexperiencedarchitects.ATAMleadersmusthaveexcellentcommunicationandfacilitationskills.項目決策者能夠控制程序開發(fā)過程和授權(quán)變更的人員。通常包含項目經(jīng)理,為開發(fā)買單的用戶,和體系結(jié)構(gòu)開發(fā)人員構(gòu)架涉眾涉眾是與要開發(fā)的系統(tǒng)相關(guān)的一切人和事。體系結(jié)構(gòu)對可修改性、安全性等質(zhì)量屬性的支持程度會直接影響到涉眾人員的正常工作的進行。涉眾不等于用戶,通常意義的user是指系統(tǒng)的使用者,這僅是涉眾中的一部分。涉眾通常包括開發(fā)者,測試人員,集成人員,系統(tǒng)維護者,性能工程師,用戶等等。ATAM-評估小組評估小組的角色角色職責(zé)理想的人員素質(zhì)評估小組負責(zé)人準備評估…善于協(xié)調(diào)…評估負責(zé)人負責(zé)評估工作…能在眾人面前表現(xiàn)自如…場景書記員將場景寫到活動掛圖上…未搞清楚某個問題之前堅持要求繼續(xù)進行討論…進展書記員記錄評估進展情況…對構(gòu)架理解透徹,能融會貫通快速理解技術(shù)問題計時員幫助評估負責(zé)人保證評估工作按時進行;…勇于不顧情面中斷討論,宣布時間已到過程觀察員記錄如何改進評估過程或評估如何偏離了原計劃…善于觀察和發(fā)現(xiàn)問題;熟悉評估過程…過程監(jiān)督者幫助評估負責(zé)人記住并執(zhí)行評估方法的各個步驟對評估方法的各個步驟非常熟悉;….提問者提出涉眾或許未曾想到的關(guān)于構(gòu)架的問題對構(gòu)架有出色的見解;對涉眾需要有敏銳的洞察力…ATAM-評估小組ATAMevaluationsareconductedinfourphasesATAM-評估階段Thecustomerandasubsetoftheevaluationteamexchangeunderstandingaboutthemethodandthesystemwhosearchitectureistobeevaluated.Anagreementtoperformtheevaluationisworkedout.Acoreevaluationteamisfielded(登場).Phase0:thisphaseprecedesthetechnicalevaluationATAM-Phase0ATAMevaluationsareconductedinfourphasesATAM-評估階段Phase1:focusedonelicitingdetailedarchitecturalinformationandanalyzingitinvolvesasmallgroupofpredominantlytechnically-orientedstakeholdersarchitecturecentrictopdownanalysisATAM-Phase1ATAM-Phase1ATAMstepsinbriefTechniquesutilitytree(效用樹)generationarchitectureelicitationandanalysisscenariobrainstorming/mappingOutputsarchitecturalapproachesutilitytreeandscenariosrisks,non-risks,sensitivitypoints,andtradeoffs1.
TheevaluationteampresentsanoverviewoftheATAMATAM-Phase1businesscontextforthesystemhigh-levelfunctionalrequirementshigh-levelqualityattributerequirementsarchitecturaldrivers:qualityattributesthat“shape”thearchitecturecriticalrequirements:qualityattributesmostcentraltothesystem’ssuccess2.
Thecustomerdescribesbusinessdriversofthesystem.ATAM-Phase1technical
constraintssuchasanOS,hardware,ormiddlewareprescribedforuseothersystemswithwhichthesystemmustinteractarchitecturalapproachesusedtoaddressqualityattributerequirements3.
Designerpresentsanoverviewofthearchitecturedesign.ATAM-Phase1client-server3-tierEventdispatchermechanismpublish-subscriberedundanthardware4.
Identifycorearchitecturalapproaches.Theevaluatorsbegintoidentifyplacesinthearchitecturethatarekeytorealizingqualityattributegoals.ATAM-Phase15.
Identify,prioritize,andrefinethemostimportantqualityattributegoalsbybuildingautilitytree.Autilitytreeisatop-downvehicleforcharacterizingandprioritizingthe“driving”attribute-specificrequirements.(效用樹是一個自頂向下的工具,用來刻畫重要的需求)UtilityTree?ATAM-Phase1Utility
TreeThedrivingqualityattributesarethehigh-levelnodes(typicallyperformance,modifiability,security,andavailability).Scenariosaretheleavesoftheutilitytree.Output:acharacterizationandaprioritizationofspecificqualityattributePriorityATAM-Phase1ATAMPhase1-PresentArchitecture重要的構(gòu)架信息4~8張幻燈片上下文圖——系統(tǒng)所處的上下文環(huán)境;與系統(tǒng)有交互的人或其他系統(tǒng)模塊或分層視圖——描述系統(tǒng)功能分解的模塊(可能是子系統(tǒng)或分層),加上對象,過程,函數(shù)及其關(guān)系(如過程調(diào)用,方法調(diào)用,回調(diào),包含等)組件-連接件視圖——進程,同步的線程,數(shù)據(jù)流,連接事件等配置視圖——CPUs,存儲,外設(shè),傳感器網(wǎng)絡(luò),通信設(shè)備,及在各處理器上運行的進程ATAMPhase1-PresentArchitecture構(gòu)架方法、模式或采用的戰(zhàn)術(shù),包括它們實現(xiàn)了什么質(zhì)量屬性及這些方法如何實現(xiàn)這些屬性的描述3~6張幻燈片商業(yè)產(chǎn)品(COTS)的使用及其選擇/集成1~2張幻燈片對1~3個最重要的用例場景的介紹,如果可能,包括對每個場景的運行時資源使用情況的介紹1~3張幻燈片對1~3個最重要的變更場景的介紹,如果可能,根據(jù)所變更的模塊或接口來描述變更的影響,即預(yù)計的變更的規(guī)模/難度1~3張幻燈片與實現(xiàn)促使形成該構(gòu)架的需求相關(guān)的構(gòu)架問題/風(fēng)險2~3張幻燈片術(shù)語表1張幻燈片ATAMPhase1-GenerateQualityAttributeUtilityTreeIdentify,prioritize,andrefinethemostimportantqualityattributegoalsbybuildingautilitytree.Autilitytreeisatop-downvehicleforcharacterizingandprioritizingthe“driving”attribute-specificrequirements.(效用樹是一個自頂向下的工具,用來刻畫重要的需求)Thedrivingqualityattributesarethehigh-levelnodes(typicallyperformance,modifiability,security,andavailability).Scenariosaretheleavesoftheutilitytree.Output:acharacterizationandaprioritizationofspecificqualityattributeATAMPhase1-ScenariosScenariosareusedtorepresentstakeholders’interestsunderstandqualityattributerequirementsScenariosshouldcoverarangeofusecasescenarios:anticipatedusesofthesystemgrowthscenarios:anticipatedchangestothesystemexploratoryscenarios:unanticipatedstressestothesystemAgoodscenariomakesclearwhatthestimulusisthatcausesitandwhatresponsesareofinterest.ExampleScenariosUsecasescenarioRemoteuserrequestsadatabasereportviatheWebduringpeakperiodandreceivesitwithin5seconds.GrowthscenarioAddanewdataservertoreducelatencyinscenario1to2.5secondswithin1person-week.ExploratoryscenarioHalfoftheserversgodownduringnormaloperationwithoutaffectingoverallsystemavailability.ScenariosshouldbeasspecificaspossibleStimuli,Environment,ResponsesUseCaseScenarioRemoteuserrequestsadatabasereportviatheWebduringpeakperiodandreceivesitwithin5seconds.GrowthScenarioAddanewdataservertoreducelatencyinscenario1to2.5secondswithin1person-week.ExploratoryScenarioHalfoftheserversgodownduringnormaloperationwithoutaffectingoverallsystemavailability.ATAM-Phase1identifythearchitecturalapproachesaskqualityattributespecificquestionsforhighestpriorityscenariosidentifyandrecordrisksandnon-risks,sensitivitypointsandtradeoffs6.
Evaluationteamprobesarchitecturalapproachesfromthepointofviewofspecificqualityattributestoidentifyrisks.ATAM-Phase1Risks,Tradeoffs,Sensitivities,Non-RisksAsensitivitypointisapropertyofoneormorecomponents(and/orcomponentrelationships)thatiscriticalforachievingaparticularqualityattributeresponse.“Thelevelofconfidentialityinavirtualprivatenetworkmightbesensitivetothenumberofbitsofencryption.”ATAM-敏感點Risks,Tradeoffs,Sensitivities,Non-RisksAtradeoffpointisapropertythataffectsmorethanoneattributeandisasensitivitypointformorethanoneattribute.“Changingthelevelofencryptioncouldhaveasignificantimpactonbothsecurityandperformance.”ATAM-權(quán)衡點Risks,Tradeoffs,Sensitivities,Non-RisksAriskisapotentiallyproblematicarchitecturaldecision.“Thelevelofconfidentialityinavirtualprivatenetworkmightbesensitivetothenumberofbitsofencryption.”ATAM-風(fēng)險決策Risks,Tradeoffs,Sensitivities,Non-RisksNon-risks
aregoodarchitecturaldecisionsthataredeemedsafeuponanalysis.“Assumingmessagearrivalratesofoncepersecond,aprocessingtimeoflessthan30ms,andtheexistenceofonehigherpriorityprocess,a1secondsoftdeadlineseemsreasonable.”(假定消息的到達速率是每秒一次,一次處理的時間小于30ms。如果對一個更高優(yōu)先級的處理的響應(yīng)時間要求是1秒鐘,此系統(tǒng)可行)ATAM-無風(fēng)險決策ATAMevaluationsareconductedinfourphasesATAM-階段ATAM-Phase
2Phase2:involvesalargergroupofstakeholdersPhase2isstakeholdercentricfocusedonelicitingdiversestakeholderpointsofviewandonverificationofthePhase1results.How?Stakeholdersgeneratescenariosusingafacilitatedbrainstormingprocess.Scenariosattheleavesoftheutilitytreeserveasexamplestofacilitatethestep.ATAM-Phase
2Phase2:involvesalargergroupofstakeholdersPhase2isstakeholdercentricfocusedonelicitingdiversestakeholderpointsofviewandonverificationofthePhase1results.Phase
2ATAM-Phase
2Scenariosattheleavesoftheutilitytreeserveasexamplestofacilitatethestep.7.
Stakeholdersgeneratescenariosusingafacilitatedbrainstormingprocess.ATAM-Phase
2Thisstepcontinuestheanalysisstartedinstep6usingthenewscenarios.Continueidentifyingrisksandnon-risks.Continueannotatingarchitecturalinformation.8.
Identifythearchitecturalapproachesimpactedbythescenariosgeneratedinthepreviousstep.ATAM-Phase
2architecturalapproachesutilitytreeScenariosrisksandnon-riskssensitivitypointsandtradeoffsriskthemes9.
Recapitulate(概括)allthestepsoftheATAMandpresenttheATAMoutputs.ATAM-Phase
2ATAMPhase2-BrainstormandPrioritizeScenariosStakeholdersgeneratescenariosusingafacilitatedbrainstormingprocess.Scenariosattheleavesoftheutilitytreeserveasexamplestofacilitatethestep.Inphase2,eachstakeholderisallocatedanumberofvotesroughlyequalto 0.3×#scenariosATAMPhase2-BrainstormandPrioritizeScenariosATAMevaluationsareconductedinfourphasesATAM-階段Phase3:primarilyinvolvesproducingafinalreportforthecustomeraswellasreflectinguponthequalityoftheevaluationandtheATAMmaterials.ExecutivesummaryDescriptionofATAMDescriptionofbusinessdriversandarchitectureListofphase1andphase2scenariosandutilitytreePhase1andphase2analysis:architecturalapproaches,decisions,risks,sensitivities,tradeoffs,andnon-risksRiskthemesNextstepsFinal
reportATAM-Phase
3ConceptualFlowofATAMATAMTheATAMisamethodforevaluatinganarchitecturewithrespecttomultiplequalityattributesaneffectivestrategyfordiscoveringtheconsequencesofarchitecturaldecisionsamethodforidentifyingtrends,notforperformingpreciseanalysesSummaryReference:EvaluatingSoftwareArchitectures:MethodsandCaseStudies,PaulClements,RickKazman,MarkKlein,AddisonWesley2001ATAM191歡迎各位同學(xué)交流討論計算機科學(xué)與技術(shù)學(xué)院微信應(yīng)用案例軟件體系結(jié)構(gòu)課程組本節(jié)內(nèi)容KWIC案例分析1圖書借閱系統(tǒng)案例分析2193In1974,Parnasproposedthefollowingproblem,TheKWIC(keyword-in-context)indexsystem(KWIC索引系統(tǒng))軟件體系結(jié)構(gòu)研究的經(jīng)典案例acceptsanorderedsetoflines(接受一些行)eachlineisanorderedsetofwords(每行有若干詞)eachwordisanorderedsetofcharacters(每個詞由若干字符組成)anylinemaybe“circularlyshifted”byrepeatedlyremovingthefirstwordandappendingitattheendoftheline(每行都可以循環(huán)移位:重復(fù)地把第一個詞刪除,然后接到行末)TheKWICindexsystemoutputsalistingofallcircularshiftsofalllinesinalphabeticalorder.(KWIC把所有行的各種移位情況按照字母表順序輸出)KWIC-Functional
RequirementsMaryShaw,DavidGarlan.SoftwareArchitecture:PerspectivesonanEmergingDiscipline.The3rdChapter.
AthirdwayforstylestobecombinedistoelaborateonelevelofAthirdwayforstylestothirdwayforstylestoAwayforstylestoAthirdforstylestoAthirdwaystylestoAthirdwayfortoAthirdwayforstylesbecombinedistocombinedistobeistobecombinedtobecombinediselaborateonelevelofonelevelofelaboratelevelofelaborateoneofelaborateonelevelAthirdwayforstylestobecombinedistocombinedistobeelaborateonelevelofforstylestoAthirdwayistobecombined
levelofelaborateone
ofelaborateonelevel
onelevelofelaborate
stylestoAthirdwayfor
thirdwayforstylestoAtoAthirdwayforstylestobecombinedis
wayforstylestoAthirdInput(輸入)Circularshifts(循環(huán)移位)Order&Output(排序輸出)KWIC-Functional
RequirementsACaseforKWICModifiability(可修改性)ChangeinAlgorithm(算法的變化):batchvs.incrementalChangeinDataRepresentation(數(shù)據(jù)表示方式的變化)linestorage,explicitvs.implicitshiftsEnhancementtosystemfunction(系統(tǒng)功能的可擴展性)e.g.,eliminatelinesstartingwithtrivialwordse.g.,inputlinesfromadatabaseorfromUIe.g.,delete,modifyoraddtolinesfromtheoriginalshiftedlinesPerformance(性能):Bothspaceandtime(時空復(fù)雜性)Reusability(系統(tǒng)構(gòu)件的可復(fù)用性)Towhatextentcanthecomponentsserveasreusableentities.KWIC-Non-functional
Requirements采用“主程序-子過程”風(fēng)格、對系統(tǒng)進行功能分解,是最自然的想法,也是“面向過程的編程”的主要思路。Decomposestheproblemaccordingtothefourbasicfunctionsperformed:input,shift,alphabetize,andoutput.(分為四個基本功能:輸入、移位、排序、輸出)Thesecomputationalcomponentsarecoordinatedassubroutinesbyamainprogramthatsequencesthroughtheminturn.(主程序按次序調(diào)用這四個模塊)Dataiscommunicatedbetweenthecomponentsthroughsharedstoragewithanunconstrainedread-writeprotocol.(通過共享的數(shù)據(jù)存儲和無約束的讀-寫協(xié)議在模塊之間進行數(shù)據(jù)交換)KWIC-MainProgram/SubroutinewithSharedDataKWIC-MainProgram/SubroutinewithSharedDatachar[]chars_Charactersfromtheinputfilearestoredinacharacterarraynamedchars_.Wordsaredelimitedbyasinglespacecharacter.int[]line_index_Anintegerarray,whichkeepsindicesofcharactersfromthechar
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年賽罕區(qū)第三幼兒園招聘備考題庫有答案詳解
- 吉林大學(xué)附屬中學(xué)2026年公開招聘教師備考題庫及一套參考答案詳解
- 公共交通服務(wù)質(zhì)量評估制度
- 2026年銀聯(lián)國際有限公司招聘備考題庫及參考答案詳解
- 2026年砂子塘街道社區(qū)衛(wèi)生服務(wù)中心公開招聘備考題庫及答案詳解一套
- 中學(xué)學(xué)生社團活動經(jīng)費管理制度
- 中學(xué)教學(xué)質(zhì)量監(jiān)控制度
- 2026年未央?yún)^(qū)大明宮社區(qū)衛(wèi)生服務(wù)中心招聘備考題庫完整參考答案詳解
- 2026年浙商中拓集團股份有限公司社會招聘備考題庫附答案詳解
- 交通設(shè)施報廢更新制度
- 外貿(mào)跟單員年度工作總結(jié)
- 肝癌破裂出血課件
- 《地基處理技術(shù)》課件
- 老年人床上擦浴課件
- 2025年安全教育培訓(xùn)試題及答案
- 地勘合同(標準版)
- 材料租賃經(jīng)營方案(3篇)
- 2025秋季學(xué)期國開電大法律事務(wù)??啤睹穹▽W(xué)(2)》期末紙質(zhì)考試名詞解釋題庫珍藏版
- 超星爾雅學(xué)習(xí)通《科學(xué)與文化的足跡(東南大學(xué))》2025章節(jié)測試附答案
- 女性腫瘤患者生育力保存
- 施工班組獎懲管理辦法
評論
0/150
提交評論