“軟件定義汽車”背景下的汽車軟件開發(fā)思考

何為“軟件定義汽車”寡具?每個(gè)人可能都有自己的獨(dú)特見解战秋,毋庸置疑的是軟件在汽車電子中開始占據(jù)主導(dǎo)性地位百侧。


20世紀(jì)80年代初一輛轎車的電子系統(tǒng)只有萬(wàn)行代碼谴供,今天一輛高端豪華汽車電子系統(tǒng)有數(shù)千萬(wàn)行代碼块茁,而未來(lái)一輛智能網(wǎng)聯(lián)汽車電子系統(tǒng)可能會(huì)有上億行代碼,這一現(xiàn)象說(shuō)明了軟件發(fā)展與汽車創(chuàng)新的必然關(guān)聯(lián)趨勢(shì)。

汽車功能由最初的機(jī)械方式實(shí)現(xiàn)数焊,到后來(lái)的電子化方式實(shí)現(xiàn)永淌,未來(lái)可能更多的功能可以在不改變硬件的條件下由軟件來(lái)實(shí)現(xiàn)。根據(jù)福布斯報(bào)道佩耳,估算以后自動(dòng)駕駛汽車60%的價(jià)值將源于軟件遂蛀,而今天汽車軟件的價(jià)值占比只有10%

“軟件定義汽車”將把汽車變得像手機(jī)一樣干厚,只要是一個(gè)智能機(jī)李滴,我們就能在此基礎(chǔ)上方便添加不同的應(yīng)用,實(shí)現(xiàn)不同的功能蛮瞄,并且能夠在線更新升級(jí)軟件所坯。然而汽車與手機(jī)在用途上又有著本質(zhì)的不同,手機(jī)質(zhì)量只影響通訊和娛樂挂捅,而汽車質(zhì)量關(guān)系到人們的生命財(cái)產(chǎn)安全芹助,所以“軟件定義汽車”背景下的汽車軟件質(zhì)量如何保障,如何適應(yīng)新功能闲先、新平臺(tái)的快速軟件開發(fā)状土,是當(dāng)下汽車軟件開發(fā)需要深度思考的問(wèn)題。

關(guān)于快速變化的軟件架構(gòu)思考

隨著智能網(wǎng)聯(lián)汽車的發(fā)展和汽車電子電氣架構(gòu)的演變饵蒂,整車電子電氣架構(gòu)逐漸從分布式架構(gòu)轉(zhuǎn)變?yōu)榧惺降目刂萍軜?gòu)声诸,多個(gè)傳統(tǒng)ECU功能集中在一個(gè)域控制器,甚至還有跨域整合的概念退盯,這種情況下,對(duì)于一個(gè)域控制器中的軟件要求越來(lái)越高泻肯,軟件的規(guī)模也越來(lái)越復(fù)雜渊迁,所以一個(gè)具有強(qiáng)大兼容性、達(dá)到解耦灶挟、可擴(kuò)展的軟件架構(gòu)至關(guān)重要琉朽。

“解耦”分為兩個(gè)層次,一個(gè)是軟硬件之間的解耦稚铣,一個(gè)是軟件架構(gòu)內(nèi)部模塊之間的解耦箱叁。

軟硬件解耦即軟件架構(gòu)設(shè)計(jì)時(shí)考慮跨硬件的目標(biāo)因素,把硬件作為一個(gè)黑盒子惕医,構(gòu)建一個(gè)通用的軟件框架耕漱,對(duì)接口設(shè)備做抽象化處理,并兼容不同的接口抬伺。另外螟够,軟件架構(gòu)應(yīng)是一個(gè)分層化模塊化的設(shè)計(jì),應(yīng)該做到模塊之間的解耦,對(duì)接口進(jìn)行標(biāo)準(zhǔn)化處理妓笙。軟件框架上可以加載不同的算法和軟件模塊若河。

為了應(yīng)對(duì)當(dāng)下汽車軟件需求的快速變化,軟件架構(gòu)設(shè)計(jì)應(yīng)是一個(gè)“種樹”的行為寞宫,而不能是“種草”萧福。也就是說(shuō),要把整體軟件構(gòu)建成一棵大樹辈赋,可以不斷擴(kuò)展或刪減枝葉鲫忍,但不會(huì)對(duì)主干造成影響,而不能設(shè)計(jì)一個(gè)軟件系統(tǒng)就種一棵草炭庙。

為了實(shí)現(xiàn)可擴(kuò)展目標(biāo)饲窿,軟件架構(gòu)設(shè)計(jì)時(shí)要有全局觀,確保軟件架構(gòu)的兼容性設(shè)計(jì)焕蹄。軟件架構(gòu)設(shè)計(jì)時(shí)需要充分分析數(shù)據(jù)流和控制流逾雄,軟件資源占用情況。軟件架構(gòu)就像人體的血管和神經(jīng)網(wǎng)絡(luò)腻脏,連接各部分肢體鸦泳,傳輸信息和營(yíng)養(yǎng),只有保證這些數(shù)據(jù)流和控制流的正確實(shí)施永品,才能實(shí)現(xiàn)一個(gè)健康的架構(gòu)做鹰。

總之,軟件架構(gòu)設(shè)計(jì)時(shí)要秉承一個(gè)目標(biāo):軟件是復(fù)雜的鼎姐,架構(gòu)是簡(jiǎn)單的钾麸,用簡(jiǎn)單明了的架構(gòu)去承載不斷擴(kuò)充的軟件模塊以滿足快速變化的需求。

關(guān)于軟件質(zhì)量挑戰(zhàn)與保障的思考

隨著智能網(wǎng)聯(lián)汽車的發(fā)展炕桨,汽車軟件開發(fā)面臨著巨大挑戰(zhàn)饭尝。新功能新需求的出現(xiàn),沒有過(guò)多的經(jīng)驗(yàn)可以遵循献宫,造成軟件需求不斷迭代钥平;軟件架構(gòu)需要支撐不斷變化的需求;軟件復(fù)雜龐大的代碼量可能引入更多的缺陷姊途;復(fù)雜場(chǎng)景組合與龐大代碼量使得測(cè)試驗(yàn)證的充分性難以保證......

面對(duì)這些挑戰(zhàn)涉瘾,汽車軟件質(zhì)量到底應(yīng)如何保證。軟件的特殊性在于它的質(zhì)量無(wú)法量化捷兰,質(zhì)量缺陷不光是通過(guò)技術(shù)引入立叛,也可能通過(guò)開發(fā)過(guò)程的不規(guī)范性引入,而這些通過(guò)過(guò)程引入的風(fēng)險(xiǎn)看不見摸不著不可預(yù)測(cè)寂殉,所以保障汽車軟件質(zhì)量總結(jié)起來(lái)可以分為三個(gè)方面:流程保障囚巴、方法保障和工具保障

首先,流程上需要建立完善的軟件質(zhì)量管理體系彤叉,例如基于ASPICE的軟件開發(fā)過(guò)程庶柿、質(zhì)量管理過(guò)程、配置管理過(guò)程秽浇、變更管理過(guò)程等浮庐,這些都直接關(guān)系到軟件的質(zhì)量,軟件開發(fā)過(guò)程需要遵循這些質(zhì)量管理要求柬焕。完善的流程也能夠保障需求的穩(wěn)定性审残,例如在建立需求時(shí)需要經(jīng)過(guò)充分的調(diào)研和確認(rèn),需求要經(jīng)過(guò)多方評(píng)審斑举,可以從一定程度減少需求的不合理變動(dòng)搅轿;另一方面,流程上做好需求的基線管理和變更管理富玷,識(shí)別需求變化的影響范圍璧坟,并針對(duì)影響范圍制定相關(guān)的應(yīng)對(duì)措施。

在方法上赎懦,主要是指技術(shù)方法和方法論雀鹃。例如:在制定需求的時(shí)候,可以通過(guò)HAZOP分析補(bǔ)充安全需求励两,識(shí)別需求是否全面黎茎,通過(guò)需求的雙向追溯確保軟件開發(fā)與需求的一致性;在軟件架構(gòu)設(shè)計(jì)階段可以通過(guò)層次化当悔、模塊化設(shè)計(jì)和高內(nèi)聚低耦合的方法降低軟件質(zhì)量風(fēng)險(xiǎn)傅瞻,通過(guò)數(shù)據(jù)流分析、控制流分析來(lái)驗(yàn)證架構(gòu)的完善性盲憎;在軟件編碼階段遵循編碼規(guī)范的方法要求俭正;在測(cè)試時(shí)確保測(cè)試覆蓋率,并采取性能測(cè)試焙畔、雪崩測(cè)試、故障插入測(cè)試來(lái)充分驗(yàn)證軟件功能與性能串远。方法有很多宏多,無(wú)法一一列舉,需要在軟件開發(fā)過(guò)程中充分挖掘澡罚。

另外伸但,工具也是軟件質(zhì)量保障很重要的一個(gè)方面。完善的工具鏈可以讓軟件開發(fā)工作事半功倍留搔。比如自動(dòng)化測(cè)試工具更胖,代碼與詳設(shè)文檔的轉(zhuǎn)化工具,有了這些工具之后,可以對(duì)需求變化帶來(lái)工作量進(jìn)行快速響應(yīng)却妨。從功能安全角度考慮饵逐,軟件工具本身可能會(huì)引入系統(tǒng)性失效問(wèn)題,所以安全可靠的工具是確保軟件質(zhì)量的基礎(chǔ)彪标。

關(guān)于敏捷開發(fā)的思考

雖然當(dāng)下敏捷開發(fā)變成了熱門話題倍权,敏捷或許是個(gè)好的方法,可以讓軟件提前得到驗(yàn)證捞烟,但敏捷不是萬(wàn)能的薄声。

首先,對(duì)于當(dāng)下軟件開發(fā)需求變化快题画、進(jìn)度緊張等問(wèn)題默辨,不是單純靠敏捷開發(fā)就能解決,敏捷方法的使用需要匹配合適的項(xiàng)目苍息,例如可以穿插應(yīng)用于一些小的軟件模塊的開發(fā)過(guò)程中缩幸,并要配合一定的自動(dòng)化測(cè)試方法,否則會(huì)讓測(cè)試驗(yàn)證的工作量劇增档叔。

筆者個(gè)人不建議敏捷作為一個(gè)復(fù)雜軟件系統(tǒng)開發(fā)的主線方式桌粉,對(duì)于越是復(fù)雜的軟件,越是要做好全局規(guī)劃衙四,但是在具體詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)層面可以適當(dāng)運(yùn)用敏捷方法铃肯。

汽車行業(yè)與某些互聯(lián)網(wǎng)開發(fā)思路是不同的,前期還是會(huì)有相對(duì)比較明確的需求传蹈,包括功能和接口押逼,并不是可以完全隨意增減,而互聯(lián)網(wǎng)產(chǎn)品開發(fā)過(guò)程可能突發(fā)靈感惦界,會(huì)加入很多創(chuàng)意的內(nèi)容挑格,從而增加新的需求,這種需求迭代就像滾雪球沾歪,各方面不斷加入新元素漂彤,不斷擴(kuò)充完善,所以應(yīng)用敏捷開發(fā)可能更適合某些互聯(lián)網(wǎng)產(chǎn)品灾搏。而汽車領(lǐng)域挫望,即使是現(xiàn)在的智能網(wǎng)聯(lián)汽車領(lǐng)域,需求框架相對(duì)也是明確穩(wěn)定的狂窑,這個(gè)過(guò)程更像是建房子媳板,是應(yīng)該先建好整體地基,再逐層建高樓泉哈,才能保證質(zhì)量蛉幸。而不能每一層快速蓋一點(diǎn)破讨,靠蓋好后的樓來(lái)驗(yàn)證地基。所以對(duì)于是否采用敏捷開發(fā)奕纫,需要先識(shí)別這是一個(gè)滾雪球的項(xiàng)目還是建房子的項(xiàng)目提陶。

雖然智能網(wǎng)聯(lián)汽車有一些汽車與ICT的融合元素,但是綜合來(lái)看還是更偏向于“建房子”的比重若锁。敏捷適用于“未知的未知”探索性項(xiàng)目搁骑,而智能汽車軟件開放屬于“已知的未知”探索性項(xiàng)目,還是有些差別又固。

并且從軟件質(zhì)量和功能安全角度考慮仲器,敏捷開發(fā)過(guò)程中通過(guò)充分溝通精簡(jiǎn)過(guò)程與文檔這種方式可能會(huì)引入不可評(píng)估的系統(tǒng)性失效,所以針對(duì)汽車行業(yè)新功能仰冠、新平臺(tái)的復(fù)雜軟件開發(fā)至少在架構(gòu)階段以前個(gè)人建議還是采用瀑布式開發(fā)乏冀,在詳細(xì)設(shè)計(jì)以及基線后的需求迭代過(guò)程中可以適當(dāng)考慮敏捷開發(fā)。


關(guān)于軟件測(cè)試的思考

面對(duì)日益膨脹洋只、復(fù)雜化的汽車軟件系統(tǒng)辆沦,傳統(tǒng)的測(cè)試人海戰(zhàn)術(shù)也許在某些時(shí)候有一定作用,但不夠高效识虚。軟件測(cè)試需要“融合”肢扯,即對(duì)于復(fù)雜化的軟件系統(tǒng),要注重人工測(cè)試與自動(dòng)化測(cè)試相融合担锤。用自動(dòng)化來(lái)進(jìn)行持續(xù)集成與交付蔚晨,可以起到事半功倍的效果,但是自動(dòng)化測(cè)試也需要一定的測(cè)試人員來(lái)編寫腳本和人工驗(yàn)證肛循,目前自動(dòng)化測(cè)試并不能完全代替人铭腕,例如現(xiàn)在有一些單元測(cè)試的自動(dòng)化測(cè)試工具,覆蓋率可以達(dá)到百分之百多糠,但是從軟件質(zhì)量角度來(lái)考慮累舷,單純用這個(gè)工具測(cè)試并不足夠,因?yàn)檐浖倪壿嬍欠裾_還是需要人去驗(yàn)證夹孔。但是對(duì)于代碼量巨大的復(fù)雜軟件系統(tǒng)被盈,單純靠人海戰(zhàn)術(shù)也是不可行的,浪費(fèi)人力資源且效率低下搭伤,因此以自動(dòng)化測(cè)試為主害捕,以人工為輔的“融合”化測(cè)試可能才是比較正確高效的途徑。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末闷畸,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子吞滞,更是在濱河造成了極大的恐慌佑菩,老刑警劉巖盾沫,帶你破解...
    沈念sama閱讀 222,807評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異殿漠,居然都是意外死亡赴精,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門绞幌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蕾哟,“玉大人,你說(shuō)我怎么就攤上這事莲蜘√啡罚” “怎么了?”我有些...
    開封第一講書人閱讀 169,589評(píng)論 0 363
  • 文/不壞的土叔 我叫張陵票渠,是天一觀的道長(zhǎng)逐哈。 經(jīng)常有香客問(wèn)我,道長(zhǎng)问顷,這世上最難降的妖魔是什么昂秃? 我笑而不...
    開封第一講書人閱讀 60,188評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮杜窄,結(jié)果婚禮上肠骆,老公的妹妹穿的比我還像新娘。我一直安慰自己塞耕,他們只是感情好蚀腿,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,185評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著荷科,像睡著了一般唯咬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上畏浆,一...
    開封第一講書人閱讀 52,785評(píng)論 1 314
  • 那天胆胰,我揣著相機(jī)與錄音,去河邊找鬼刻获。 笑死蜀涨,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蝎毡。 我是一名探鬼主播厚柳,決...
    沈念sama閱讀 41,220評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼沐兵!你這毒婦竟也來(lái)了别垮?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,167評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤扎谎,失蹤者是張志新(化名)和其女友劉穎碳想,沒想到半個(gè)月后烧董,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,698評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡胧奔,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,767評(píng)論 3 343
  • 正文 我和宋清朗相戀三年逊移,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片龙填。...
    茶點(diǎn)故事閱讀 40,912評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡胳泉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出岩遗,到底是詐尸還是另有隱情扇商,我是刑警寧澤,帶...
    沈念sama閱讀 36,572評(píng)論 5 351
  • 正文 年R本政府宣布喘先,位于F島的核電站钳吟,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏窘拯。R本人自食惡果不足惜红且,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,254評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望涤姊。 院中可真熱鬧暇番,春花似錦、人聲如沸思喊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)恨课。三九已至舆乔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間剂公,已是汗流浹背希俩。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留纲辽,地道東北人颜武。 一個(gè)月前我還...
    沈念sama閱讀 49,359評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像拖吼,于是被迫代替她去往敵國(guó)和親鳞上。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,922評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 引言 又是一個(gè)思緒亂飛的夜晚吊档,花了7個(gè)小時(shí)碼出了下面這些內(nèi)容篙议,今天不講技術(shù),主要談?wù)勚暗囊恍┙?jīng)驗(yàn)教訓(xùn)供大家參考怠硼。...
    leo_huang_閱讀 7,921評(píng)論 1 31
  • 本文謝絕無(wú)授權(quán)轉(zhuǎn)載涡上。 在目前大部分的軟件開發(fā)組織中趾断,敏捷開發(fā)已經(jīng)成為毋庸置疑的標(biāo)配。隨著數(shù)位技術(shù)大神和布道師的宣揚(yáng)...
    馭風(fēng)萬(wàn)里無(wú)垠閱讀 1,196評(píng)論 0 2
  • 一個(gè)軟件生命周期示例 第一年吩愧,新興的業(yè)務(wù)規(guī)劃,用戶體驗(yàn)和軟件的設(shè)計(jì)都非常漂亮增显,我們新增feature與bug fi...
    老貓_jerry閱讀 1,832評(píng)論 0 1
  • 表情是什么雁佳,我認(rèn)為表情就是表現(xiàn)出來(lái)的情緒。表情可以傳達(dá)很多信息同云。高興了當(dāng)然就笑了糖权,難過(guò)就哭了。兩者是相互影響密不可...
    Persistenc_6aea閱讀 125,386評(píng)論 2 7
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險(xiǎn)厭惡者炸站,不喜歡去冒險(xiǎn)星澳,但是人生放棄了冒險(xiǎn),也就放棄了無(wú)數(shù)的可能旱易。 ...
    yichen大刀閱讀 6,059評(píng)論 0 4