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