近幾年,汽車行業(yè)一直朝著軟件定義汽車發(fā)展,更多的特性和功能主要通過軟件實(shí)現(xiàn),這些軟件可以快速、輕松的進(jìn)行遠(yuǎn)程更新。
當(dāng)前一輛車上的代碼量達(dá)到數(shù)以千萬計(jì),但是在車輛網(wǎng)聯(lián)、自動(dòng)駕駛、用戶體驗(yàn)方面還僅僅是初級(jí)階段,這其中每項(xiàng)創(chuàng)新都需要復(fù)雜的軟件來支撐。
確保開發(fā)人員擁有更好的工具、流程和結(jié)構(gòu)來高效地創(chuàng)建、測(cè)試和更新軟件,這是整個(gè)行業(yè)的首要任務(wù)。
答案在于持續(xù)集成和持續(xù)部署 (CI/CD),但平臺(tái)必須具有足夠強(qiáng)大的云原生開發(fā)和編譯環(huán)境,以實(shí)現(xiàn)實(shí)時(shí)、全球協(xié)作并執(zhí)行嚴(yán)格、廣泛的測(cè)試 汽車應(yīng)用。
1.一個(gè)更好的方法
隨著軟件將車輛的安全性、舒適性和便利性提升到新的水平,開發(fā)人員現(xiàn)在需要比傳統(tǒng)系統(tǒng)更現(xiàn)代、更強(qiáng)大的軟件開發(fā)環(huán)境。
過去,軟件開發(fā)遵循僵化、緩慢的瀑布方法,并使用高度分散的工具鏈。開發(fā)將經(jīng)歷離散的階段,每個(gè)階段都在下一個(gè)階段開始之前完成。許多開發(fā)過程是手動(dòng)的,從工具鏈的一個(gè)部分到下一個(gè)部分的切換也是如此。以這種方法一版軟件需要六到八個(gè)月的時(shí)間的開發(fā)時(shí)間。
如今,汽車領(lǐng)域的軟件越來越從硬件中抽象出來,開發(fā)人員有機(jī)會(huì)利用這種架構(gòu)轉(zhuǎn)變,他們可以使用敏捷和DevOps 方法按自己的時(shí)間表來更新軟件,并且不受硬件更改或其他物理更新的影響。這種方法提供了前所未有的速度、可擴(kuò)展性、質(zhì)量和安全水平。
在持續(xù)集成 (CI) 中,構(gòu)建軟件的工作是自動(dòng)化的,軟件生產(chǎn)的所有步驟都包含在 CI 鏈中,因?yàn)橐粋€(gè)部分的輸出成為下一個(gè)部分的輸入。持續(xù)部署 (CD) 是在現(xiàn)場(chǎng)自動(dòng)部署新版本軟件。CI/CD 以及連續(xù)測(cè)試 (CT) 現(xiàn)在可以在汽車中進(jìn)行,但測(cè)試新的高級(jí)應(yīng)用程序在汽車行業(yè)提出了一個(gè)獨(dú)特的問題,因?yàn)闇y(cè)試需要在物理車輛上或在試驗(yàn)臺(tái)上進(jìn)行復(fù)雜的模擬測(cè)試。
理想的方法是通過基于云的集中式平臺(tái)消除開發(fā)和測(cè)試過程中的瓶頸,使開發(fā)人員能夠在位于世界任何測(cè)試中心的相關(guān)測(cè)試臺(tái)上執(zhí)行任何測(cè)試。這些測(cè)試可以將軟件在環(huán) (SIL)、硬件在環(huán) (HIL) 甚至車輛在環(huán) (VIL) 置于更真實(shí)的測(cè)試中。這種方法允許使用全球資源來應(yīng)對(duì)當(dāng)今最嚴(yán)峻的挑戰(zhàn)所需的規(guī)模。
02.傳統(tǒng)方法的問題
當(dāng)開發(fā)人員每天編寫數(shù)百萬行代碼時(shí),傳統(tǒng)的開發(fā)、測(cè)試、集成和部署軟件的方法是不可持續(xù)的。對(duì)HIL測(cè)試的需求意味著,由于在CI期間代碼更改已經(jīng)集成到軟件中,CI系統(tǒng)必須在物理上位于HIL工作臺(tái)的旁邊。這種方法有許多缺點(diǎn):
1.單個(gè)構(gòu)建可能需要數(shù)小時(shí),而它需要在幾分鐘或更短的時(shí)間內(nèi)完成。這是影響上市速度和質(zhì)量的一個(gè)重大瓶頸,因?yàn)楦L的構(gòu)建通常會(huì)導(dǎo)致執(zhí)行自動(dòng)化測(cè)試的時(shí)間更少。當(dāng)構(gòu)建時(shí)間過長時(shí),它會(huì)消耗寶貴的時(shí)間,這些時(shí)間可以更好地用于額外的測(cè)試或功能開發(fā)。
2.如果沒有普遍接受的軟件方法,影子 IT 不可避免地會(huì)出現(xiàn),這意味著開發(fā)人員有時(shí)會(huì)使用自己喜歡的工具。這不僅會(huì)造成效率低下,而且還可能成為安全風(fēng)險(xiǎn),因?yàn)?IT 缺乏對(duì)開發(fā)過程的可見性。當(dāng)開發(fā)人員使用不同的工具集時(shí),他們更難與客戶或彼此協(xié)作。
3.為同一軟件項(xiàng)目貢獻(xiàn)的CI鏈已經(jīng)分布在世界各地的多個(gè)技術(shù)中心,每個(gè)中心都有自己的HIL測(cè)試臺(tái)。如果沒有標(biāo)準(zhǔn)的方法,企業(yè)就無法在云中進(jìn)行開發(fā),也無法實(shí)現(xiàn)全球標(biāo)準(zhǔn)化所帶來的一致性和可重復(fù)性。
4.隨著多個(gè)團(tuán)隊(duì)甚至供應(yīng)商為當(dāng)今的移動(dòng)軟件產(chǎn)品做出貢獻(xiàn),集成點(diǎn)的增加推動(dòng)了質(zhì)量、交付和時(shí)間問題的增加。最佳實(shí)踐是盡早且經(jīng)常地集成代碼,但傳統(tǒng)方法在開發(fā)過程中創(chuàng)建了不靈活的閘,導(dǎo)致在下一個(gè)合并門之前無法測(cè)試的問題。這會(huì)導(dǎo)致整個(gè)項(xiàng)目出現(xiàn)不必要的延誤。
03.云端
由于車輛是生命安全系統(tǒng),汽車公司長期以來一直采用以需求為中心的方法來設(shè)計(jì)和測(cè)試它們。他們根據(jù)一系列的要求來驗(yàn)證系統(tǒng),以確保安全和法律方面的考慮得到了適當(dāng)?shù)慕鉀Q,事實(shí)上,行業(yè)的ISO 26262功能安全標(biāo)準(zhǔn)導(dǎo)致了需要測(cè)試功能的每一個(gè)需求。簡(jiǎn)而言之,制造商必須證明他們的解決方案在第一天就符合規(guī)格,并且在發(fā)布后的每次更新中,他們必須確保所有昨天能用的東西今天仍然能用。
在過去的 10 年里,汽車行業(yè)應(yīng)用中的軟件需求數(shù)量已從數(shù)百增長到數(shù)萬。其中許多要求必須使用運(yùn)行在與車輛相同的電子控制單元 (ECU) 硬件上的嵌入式軟件進(jìn)行測(cè)試。測(cè)試還必須實(shí)時(shí)執(zhí)行,以確保響應(yīng)時(shí)間是可預(yù)測(cè)的,這意味著每個(gè)測(cè)試平均需要幾分鐘。最重要的是,軟件通常分布在多個(gè) ECU、傳感器和其他設(shè)備上,并且由不同公司的同等分布的團(tuán)隊(duì)開發(fā)。
這些因素導(dǎo)致公司在多個(gè)地點(diǎn)使用多個(gè)CI鏈,都有自己的HIL測(cè)試平臺(tái),并且都為同一個(gè)項(xiàng)目做出貢獻(xiàn)。
更好的方法是為每個(gè)程序創(chuàng)建一個(gè)單一的、統(tǒng)一的工具鏈。這個(gè)工具鏈應(yīng)該是基于云的,并且可以在全球范圍內(nèi)使用。而且應(yīng)該有一種機(jī)制來快速和輕松地部署新的工具鏈。
基于云的工具鏈具有可伸縮性,可以確保CI構(gòu)建時(shí)間不會(huì)成為瓶頸,這一點(diǎn)很重要,因?yàn)槠款i會(huì)壓縮可用的測(cè)試時(shí)間,并可能導(dǎo)致軟件延遲發(fā)布。
使用基于云的方法,開發(fā)是順暢的,因?yàn)榇a更新在開發(fā)團(tuán)隊(duì)之間共享,因此每個(gè)人都在同一頁面上了解項(xiàng)目的狀態(tài)。這可以提高自動(dòng)化、遠(yuǎn)程故障排除、快速反饋、明確的團(tuán)隊(duì)分配和明確的產(chǎn)品所有權(quán)。
使用基于云的CI意味著開發(fā)團(tuán)隊(duì)創(chuàng)建的新代碼可以自動(dòng)集成到代碼庫中,而使用OTA更新的基于云的CD可以確保成功構(gòu)建的代碼自動(dòng)部署到測(cè)試或生產(chǎn)環(huán)境中,無論它們?cè)谀睦铩H绻幚淼卯?dāng),云方法還可以在整個(gè)過程中構(gòu)建安全性,包括災(zāi)難恢復(fù)。而且,托管在云中的集中式基礎(chǔ)設(shè)施允許使用單一的管理視圖來查看所有這些高度安全和彈性的CI鏈。
此外,靈活性允許開發(fā)人員在開發(fā)周期的后期改進(jìn)產(chǎn)品。開發(fā)人員可以在前一年定義需求,對(duì)它們進(jìn)行測(cè)試,從而構(gòu)建更接近消費(fèi)者期望的系統(tǒng),而不是今天決定消費(fèi)者在幾年內(nèi)想要什么。
然后,他們可以在未來幾年根據(jù)需要部署 OTA 軟件更新,從而降低保修成本并確保軟件繼續(xù)滿足消費(fèi)者的期望。
04.測(cè)試
在汽車工業(yè)中,為了確保軟件在各種駕駛條件下都能正常工作,試駕可能需要數(shù)十萬英里。
仿真程序使軟件供應(yīng)商能夠降低成本,同時(shí)提供靈活性和可重復(fù)性。此外,通過模擬可以在復(fù)雜解決方案的開發(fā)過程中測(cè)試代碼片段或組件,而不是等待整個(gè)產(chǎn)品完成然后進(jìn)行測(cè)試,然后返回并進(jìn)行修復(fù),重復(fù)測(cè)試和修復(fù)。
借助仿真技術(shù),結(jié)合 SIL 或 HIL,可以測(cè)試和驗(yàn)證日常構(gòu)建。并且多線程 SIL 或 HIL 可以同時(shí)進(jìn)行多個(gè)測(cè)試而不是順序進(jìn)行,這也節(jié)省了時(shí)間并提高了效率。
SIL 測(cè)試完全在軟件生成的建模環(huán)境中進(jìn)行。SIL 測(cè)試的優(yōu)點(diǎn)是不需要特殊硬件(幾乎可以在任何筆記本電腦或其他計(jì)算平臺(tái)上進(jìn)行),并且最適合在早期階段測(cè)試設(shè)計(jì)。
在HIL測(cè)試中,系統(tǒng)會(huì)模擬車輛和ECU的環(huán)境輸入,使其誤以為與真實(shí)車輛相連。HIL工作臺(tái)包含所有相關(guān)的車輛組件。模擬器向?qū)嶋H的攝像機(jī)和雷達(dá)系統(tǒng)提供輸入信號(hào),然后向被測(cè)系統(tǒng)發(fā)送信號(hào),以查看系統(tǒng)是否對(duì)輸入信號(hào)作出正確響應(yīng)。
例如,測(cè)試腳本可以創(chuàng)建一個(gè)場(chǎng)景,在這個(gè)場(chǎng)景中,一輛在雨中以60km/h的速度繞著彎道行駛的汽車在路上遇到一個(gè)未知的物體,或者一輛迎面駛來的汽車在中線上急轉(zhuǎn)彎。連接在HIL試驗(yàn)臺(tái)上的攝像機(jī)和雷達(dá)將圖像發(fā)送到ECU,被測(cè)系統(tǒng)必須實(shí)時(shí)處理這些數(shù)據(jù),并決定采取何種行動(dòng)。
模擬還允許測(cè)試人員快速測(cè)試罕見或潛在危險(xiǎn)的用例。通常為了嘗試重現(xiàn)特定的駕駛條件或部件問題,不得不駕駛數(shù)百公里。模擬允許按需測(cè)試,通過重新模擬特別具有挑戰(zhàn)性的場(chǎng)景來顯示不同版本的軟件如何對(duì)相同的輸入做出反應(yīng)。
05.基于云的CI/CD/CT的優(yōu)勢(shì)
持續(xù)測(cè)試(來源APTIV)
基于開放標(biāo)準(zhǔn)和敏捷軟件開發(fā)原則的全球集成云原生架構(gòu)消除了傳統(tǒng)瓶頸,并為汽車行業(yè)開發(fā)先進(jìn)軟件的公司帶來了關(guān)鍵優(yōu)勢(shì)。這些包括 :
性能: 基于云的、全球可用的體系結(jié)構(gòu)可以在世界任何地方遠(yuǎn)程控制測(cè)試平臺(tái)。這增加了可擴(kuò)展性和靈活性。
速度:自動(dòng)化可以將構(gòu)建時(shí)間縮短多達(dá) 80%。公司可以通過基于容器的架構(gòu)和代碼合并的方法來消除瓶頸。他們可以僅重建和測(cè)試更改的部分,從而將部署速度提高 60%。
聯(lián)合開發(fā):當(dāng)多個(gè)合作伙伴實(shí)時(shí)測(cè)試彼此的代碼時(shí),開發(fā)人員都可以在合作伙伴提交代碼的同一天進(jìn)行集成、測(cè)試和問題修復(fù)。其結(jié)果是為 OEM 提供快速、高質(zhì)量、低風(fēng)險(xiǎn)的復(fù)雜軟件功能,在成本效益、維護(hù)和后期迭代上也具有明顯優(yōu)勢(shì)。
質(zhì)量: 與遠(yuǎn)程SIL/ HIL測(cè)試平臺(tái)的完全集成可以提高產(chǎn)品質(zhì)量,因?yàn)殚_發(fā)人員可以在任何地方進(jìn)行測(cè)試,并且并行進(jìn)行無限的測(cè)試。
透明度:整個(gè)團(tuán)隊(duì)可以全面了解所有軟件開發(fā)鏈的最新狀態(tài),無論程序大小、復(fù)雜性或修改的內(nèi)容。CI最佳實(shí)踐可以得到實(shí)施和支持,并且可以在提前識(shí)別出問題。這也極大地簡(jiǎn)化了安全策略的執(zhí)行。
審核編輯 :李倩
-
軟件開發(fā)
+關(guān)注
關(guān)注
0文章
619瀏覽量
27381 -
汽車行業(yè)
+關(guān)注
關(guān)注
0文章
308瀏覽量
15384 -
應(yīng)用程序
+關(guān)注
關(guān)注
37文章
3283瀏覽量
57749
原文標(biāo)題:汽車軟件開發(fā)的下一個(gè)階段是什么樣的?
文章出處:【微信號(hào):智能汽車電子與軟件,微信公眾號(hào):智能汽車電子與軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論