軟件系統(tǒng)架構(gòu)的選擇對于軟件系統(tǒng)開發(fā)的成敗至關(guān)重要,軟件架構(gòu)各種風(fēng)格各種方法,,光分層架構(gòu)方法就很多,,如何評估哪個軟件系統(tǒng)架構(gòu)方法更合適。CMU/SEI(卡梅隆大學(xué)軟件工程協(xié)會)提出了一套架構(gòu)權(quán)衡分析方法,,Architecture Tradeoff Analysis Method,,簡稱ATAM,。傳統(tǒng)軟件架構(gòu)評估方法按評估形式,,一般分為三種。一是調(diào)查問卷法,,即直接請對系統(tǒng)架構(gòu)了解的專家學(xué)者對系統(tǒng)架構(gòu)做出主觀評估,。二是度量法,即將軟件系統(tǒng)架構(gòu)完全量化,,通過一些客觀的數(shù)字指標(biāo)來評估架構(gòu)的好壞,。三是場景評估法,即挑選出重要的系統(tǒng)使用場景,,根據(jù)不同場景中各架構(gòu)的表現(xiàn)分別作評估,,ATAM屬于場景評估法,主客觀程度介于前面兩種方法之間,。軟件質(zhì)量屬性說的是我們評估軟件架構(gòu),,到底評估它的什么特性,,一般有如下幾個,- 性能:指系統(tǒng)的響應(yīng)能力,,即系統(tǒng)執(zhí)行某個特定事務(wù)所需要的時間,。
- 可靠性:即在意外或錯誤使用的情況下,維持軟件系統(tǒng)的功能特性的能力,。一般包括容錯和健壯性兩個方面的能力,。
- 可用性:是系統(tǒng)能夠正常運行的時間比例,和可靠性相比,,可用性除了體現(xiàn)出錯概率外,,還體現(xiàn)出錯后恢復(fù)正常的速度上,。
- 安全性:是指阻止非授權(quán)用戶使用的企圖或拒絕服務(wù)的能力。又可分為機密性,、完整性,、不可否認性及可控性。
- 可修改性:是指能夠快速地以較高的性價比對系統(tǒng)進行變更的能力,。包括可維護性,,可擴展性,結(jié)構(gòu)重組和可移植性,。
敏感點和權(quán)衡點都是在軟件架構(gòu)中所做的關(guān)鍵決策,不同的是,,敏感點決策只影響一個軟件質(zhì)量屬性,,而權(quán)衡點則同時影響多個質(zhì)量屬性,有時不同屬性間還會互相沖突,,比如選擇不同的加密方式同時影響性能和安全性,,所以需要權(quán)衡。風(fēng)險承擔(dān)者是指那些關(guān)心軟件架構(gòu),,個人利益受軟件架構(gòu)好壞影響的人,在項目管理領(lǐng)域也稱為項目干系人或涉眾,。這照些人整體上又可以分為系統(tǒng)的生產(chǎn)者和系統(tǒng)的消費者,。生產(chǎn)者包括架構(gòu)師,開發(fā)人員,,維護人員,,測試人員等;消費者包括客戶,,最終用戶等,。ATAM通過理解體系結(jié)構(gòu)方法來分析體系結(jié)構(gòu),評估過程分9個步驟:即評估小組負責(zé)人向參加會議的風(fēng)險承擔(dān)者介紹ATAM評估方法,,負責(zé)人將解釋評估的原則、評估的方案及目標(biāo)(例如:那些質(zhì)量特性應(yīng)該優(yōu)先考慮),。從業(yè)務(wù)角度介紹系統(tǒng)的概況,一般包括業(yè)務(wù)環(huán)境,,背景,,業(yè)務(wù)約束條件,技術(shù)約束,,質(zhì)量屬性需求等內(nèi)容,。設(shè)計師或設(shè)計小組對體系結(jié)構(gòu)進行詳略適當(dāng)?shù)慕榻B。包括技術(shù)約束,,與本系統(tǒng)交互的其他系統(tǒng),,用以滿足質(zhì)量屬性要求的體系結(jié)構(gòu)方法(功能,模塊,,進程,,硬件)。由設(shè)計師確定體系結(jié)構(gòu)方法,,由分析小組捕獲,但不進行分析,。評估小組,設(shè)計小組,,管理人員和客戶代表一起確定系統(tǒng)最重要的質(zhì)量屬性目標(biāo),,并對這些目標(biāo)設(shè)置優(yōu)先級和細化。7,、頭腦風(fēng)暴并確定場景的優(yōu)先級下面通過汽車后保險杠上加裝后視攝像頭案例介紹下ATAM在汽車軟件中的應(yīng)用。汽車后保險杠上加裝后視攝像頭,。目前大部分汽車都有尾部攝像頭,倒車時通過中控顯示倒車影像,。 當(dāng)在原有的電氣系統(tǒng)中加入攝像頭后,,從汽車尾部傳輸?shù)狡囶^部的數(shù)據(jù)量會急劇增加。同時,,為確保倒車期間的安全性,,倒車影像數(shù)據(jù)必須保證實時傳輸。而在總線上,,還有其他安全關(guān)鍵信號也需要保證實時傳輸,,這意味著通信總線不得不持續(xù)地在視頻信號反饋和諸如駐車輔助等安全關(guān)鍵性傳感器之問調(diào)整傳輸?shù)膬?yōu)先級。在這一場景下,,架構(gòu)師需要回答一個問題:如何保證攝像頭的加人不會對車上原有的安全關(guān)鍵性功能造成負面影響,?相比實際車輛的軟件架構(gòu),該案例有一定的簡化和修改,,僅作為ATAM的說明,,這里充當(dāng)“描述ATAM方法,。”該架構(gòu)的主要業(yè)務(wù)動機是使車輛達到高度安全性,。通過示例圖來描述該架構(gòu)。首先展示的是汽車的功能架構(gòu),。因為關(guān)注的是攝像頭功能,,我們只選取了架構(gòu)中與之相關(guān)的主動安全域、底盤域和車載娛樂域的功能,,主動安全域包括緊急制動,、制動防抱死(ABS)功能,底盤域包括轉(zhuǎn)向燈,、近光燈和刮水器,,車載娛樂域包括中控屏和抬頭顯示設(shè)備(Head-up Display,HUD)中的信息顯示功能,。
架構(gòu)中的功能從屬示例 在介紹下汽車的EEA架構(gòu),,這個案例中簡化的物理視圖。
架構(gòu)的物理視圖示例 在物理視圖中,,存在兩條總線: ·CAN總線:連接車載娛樂域中的控制單元,。 ·FlexRay總線:連接安全域和底盤域中的控制單元。 除此之外,,視圖中還有如下控制單元節(jié)點: ·主控制單元:汽車的中樞控制單元,,控制車輛配置,負責(zé)整個電子電氣系統(tǒng)的初始化和診斷,。該單元是車輛上計算能力最強的控制器,。 ·制動防抱死控制單元(ABS):該控制單元負責(zé)車輛的制動和相關(guān)功能。這是一個高度安全關(guān)鍵的系統(tǒng),,具有車輛上最高的軟件安全等級,。 ·高級駕駛輔助系統(tǒng)(ADAS):該控制單元負責(zé)主動安全領(lǐng)域更高級別的決策,例如制動防碰撞,、緊急制動,、防滑等功能。它也負責(zé)駐車輔助等功能,。 ·轉(zhuǎn)向:該控制單元負責(zé)車輛的轉(zhuǎn)向功能,,例如電子轉(zhuǎn)向系統(tǒng);駐車輔助等功能的一部分也通過該控制單元實現(xiàn),。 ·尾部控制單元(Back Body Controller,,簡稱BBC):該控制單元負責(zé)與車輛尾部相關(guān)的非安全關(guān)鍵功能,例如:調(diào)節(jié)后視鏡、行李艙電子開關(guān),、后窗除霧等功能,。 接下來,是架構(gòu)的邏輯視圖,,在該視圖中,,聚焦在車載娛樂系統(tǒng)顯示的主要功能組件,以及它對攝像頭控制單元的信號輸人的處理,。
架構(gòu)的邏輯視圖示例 還有一種增加了攝像頭后架構(gòu)的潛在布置方案,。在這種方案中,信號處理的主要工作在尾部控制器節(jié)點完成,。
潛在方案示例 3,、確定架構(gòu)方法 我們關(guān)注的是目標(biāo)控制單元上的軟件組件的劃分。無論采用何種軟件架構(gòu),,系統(tǒng)的物理架構(gòu)(硬件)都沒有變化,。因此,架構(gòu)方法的確定應(yīng)僅依賴于汽車的電子電氣系統(tǒng),。有另一種架構(gòu)的替代方案,,不同于將攝像頭功能的軟件組件劃分至主控制器和尾部控制器的方式,所有的信號處理工作都在主控制器中進行,。因為系統(tǒng)的主要功能是對圖像信號的處理,,因此我們采用了常見的管道過濾器(pipe-and-filter)風(fēng)格來設(shè)計架構(gòu)。汽車的電氣系統(tǒng)應(yīng)該支持主動安全的先進機制(通過軟件控制),,并且確保這些機制之間不會互相干擾,,從而危及車輛安全。
另一種替代方案示例 對這兩種替代方案都進行研究,,最終決定選擇何種架構(gòu)來支持最初期望的質(zhì)量目標(biāo),,基于它們的各自生成的質(zhì)量屬性效用樹來完成架構(gòu)的選型,。 4,、生成質(zhì)量屬性效用樹 在這個案例中,讓我們考慮兩個互補的場景,,雖然可以為上文提到的每個質(zhì)量屬性都找到多個場景,,這里我們只關(guān)注安全性:場景一,當(dāng)車輛倒車,、倒車影像激活后,,CAN總線出現(xiàn)了信號擁擠;場景二,,當(dāng)惡劣氣候下主控制器單元已經(jīng)過載時,,影像信號的計算會對雨刮器、近光燈等功能的性能造成于擾。 場景多方面描述 方面 | 詳細含義 | 源 | 后攝像頭 | 刺激 | 影像信號 | 構(gòu)件 | 主控制單元,,尾部控制單元,,CAN總線 | 環(huán)境 | 倒車過程中 | 響應(yīng) | 處理彩像數(shù)據(jù)并顯示在中控屏上 | 度量 | 視頻影像可以實時顯示,同時來自駐車傳感器的安全關(guān)鍵信號不會丟失 |
在第一個場最中,,我們所關(guān)注的是倒車影像對安全性的影響,。需要了解視頻信號的數(shù)據(jù)傳輸會對連找主控制器和尾部控制器的CAN總線造成何種影響。因此,,我們設(shè)計的兩種架構(gòu)布置方視頻信號處理布置在主控制器單元或布置在尾部控制器中,,都需要被納入分析。假設(shè)兩種架構(gòu)方案都不會導(dǎo)致硬件的增加,,因此對電氣系統(tǒng)的整體性能沒有影響,。通過這一簡化我們將不必分析物理架構(gòu),而將關(guān)注點全部放在架構(gòu)的邏輯視圖和布置方案上,。 通信總線占用 場景編號 | 場景1:倒車過程中的總線信號擁擠阻止了安全關(guān)鍵信號的傳輸 | 剌激 | 該場景中,,當(dāng)車輛倒車時,來自尾部攝像頭的倒車視頻影像占用了過多的總線容量,,導(dǎo)致總線信號無法傳播由制動傳感器發(fā)來的信號,。 對該場景評估的關(guān)鍵問題是,哪種布置方案會對汽車軟件的安全性造成最小的影響,。 | 響應(yīng) | —分析兩種架構(gòu)布置方案中潛在的信號擁擠 —列舉每種架構(gòu)方案對功能的限制因素 | 需求 | 該架構(gòu)應(yīng)該能讓安全關(guān)鍵信號在任何時刻被發(fā)出,、被接收 | 質(zhì)量屬性 | 安全性:在該場景中,需要找到不會造成總線信號擁擠并造成潛在信號丟失的架構(gòu),。 | 文本(可選) | 當(dāng)?shù)管嚂r,,車尾攝像頭發(fā)出的視頻信號削減了制動傳感器向主控制單元發(fā)送信號的能力,從而導(dǎo)致在潛在碰撞即將發(fā)生時,,駕駛員沒有得到預(yù)警提醒 |
主控制單元的過載 場景編號 | 場景2:在氣候惡劣的情況下,,已經(jīng)滿負載的主控制器單元會削減倒車影像信號的質(zhì)量 | 剌激 | 當(dāng)車輛倒車且遇到下雨/下雪等路況時,主控制單元需要同時負責(zé)驅(qū)動雨刮器工作,、點亮近光燈以及處理視頻信號,,ECU的工作負載可能過大,而不足以同時完成所有的計算工作 對該場景評估的關(guān)鍵問題時:哪種布置方案會對汽車軟件的性能造成最小的影響 | 響應(yīng) | —分析兩種架構(gòu)布置方案中各類信號計算需要占用的ECU資源 —列舉每種架構(gòu)方案對功能的限制因素 | 需求 | 在任何氣候條件下,,車輛在倒車時都應(yīng)該穩(wěn)定地提供來自尾部攝像頭的影像信號 | 質(zhì)量屬性 | 性能:在該場景中,,我們需要找到不會造成車輛控制器計算過載并削減視頻信號傳輸質(zhì)量的架構(gòu)方案 | 文本(可行) | 當(dāng)在惡劣氣候條件下倒車時,汽車的控制單元可能會出現(xiàn)計算量過載,,從而無法充分應(yīng)對視頻信號傳輸?shù)娜蝿?wù) |
在上述分析中,,之所以要同時考慮兩種方案,是因為它們展示了功能在節(jié)點上分布方案背后的不同邏輯可能性,。在這個的案例中,,基于場景分析得到的質(zhì)量效用樹包含著兩種質(zhì)量屬性安全性和性能,。兩種場景在效用樹中的評級都是高。當(dāng)生成了效用樹后,,就可以對兩種架構(gòu)進行分析,,并找到它們各自的權(quán)衡點和敏感點。
對架構(gòu)及其兩種部署方案進行深入分析,。在分析過程中,會發(fā)現(xiàn)了很多風(fēng)險,,這里以一個風(fēng)險為例:信號無法傳輸?shù)搅硪粋€控制器的風(fēng)險,。可以使用風(fēng)險模板來完成描述??梢钥吹皆擄L(fēng)險會影響到乘客的安全,,因此需要被消除。進一步分析,,消除該風(fēng)險意味著總線通信不能對安全關(guān)鍵信號造成影響,。因此,應(yīng)該優(yōu)先考慮第一種架構(gòu)方案—在尾部控制單元完成視頻信號的處理,。這一方案意味著尾部控制器需要有足夠的計算能力完成對視頻信號的實時處理,,這可能會導(dǎo)致車輛電氣系統(tǒng)的成本增加。但既然安全性是業(yè)務(wù)動機,,單車成本的增加應(yīng)該可以被車型銷量的增加所平衡,。風(fēng)險編號 | R1_S1 | 描述 | 來自制動傳感器的信號無法通過總線傳輸。造成的風(fēng)險,,當(dāng)車輛遇到障礙物時將無法有效制動,,從而發(fā)生碰撞。 | 危險源/敏感點 | 該風(fēng)險發(fā)生在連接主控器單元和尾部控制器單元之間的FlexRay總線上,,如下圖(SP1):
| 風(fēng)險影響 | 功能安全ASIL等級C要求: RQ1:車輛需要在檢測到前方障礙物后,,在2m之內(nèi)制動停車。 該風(fēng)險對用戶的影響是,,車輛無法制動停車,,從而對系統(tǒng)造成危險。同時也會對乘客的健康造成輕微危害,。 | 風(fēng)險嚴重性 | 3 | 風(fēng)險概率 | 5—該現(xiàn)象非常容易在倒車過程中發(fā)生(只要安全信號和視頻信號影響信號需要同時傳播) | 在實踐中,架構(gòu)和評估團隊會執(zhí)行與上述類似的完整討論和展示工作,,包括問題的發(fā)現(xiàn),場景,、場景優(yōu)先級的排定以區(qū)頭腦風(fēng)暴等,。ATAM評估總結(jié) 場景 | 在倒車過程中捕獲來自尾部的倒車影像信號并將其顯示在中控屏上 | 屬性 | 安全性 | 環(huán)境 | 車輛處于倒車狀態(tài) | 刺激 | 倒車影像信號在中控屏顯示 | 響應(yīng) | 處理視頻數(shù)據(jù)并在中控屏顯示 | 架構(gòu)決策 | 敏感點 | 權(quán)衡點 | 風(fēng)險 | 將視頻信號處理任務(wù)放在主控制單元進行 | S1 | T1 | R1 | 將視頻信號處理任務(wù)放在尾部處理單元進行 |
| T2 | R2 | 推理 | 主控制器單元的功能對系統(tǒng)至關(guān)重要(敏感點S1) 安全性的提升造成成本提升(權(quán)衡點T1) 由于主控制器的信號處理負荷過高,安全需求可能存在風(fēng)險(風(fēng)險R1) | 架構(gòu)視圖 |
| ATAM方法是為軟件架構(gòu)的設(shè)計而開發(fā)的。但是在汽車領(lǐng)域,,汽車軟件架構(gòu)和物理硬件的架構(gòu)是緊密聯(lián)系的,。建議在對汽車領(lǐng)域的軟件架構(gòu)進行ATAM評估時,將硬件也納入評估團隊,,只有這樣才能確保所設(shè)計的軟件架構(gòu)完全滿足系統(tǒng)的要求,。
|