• <menu id="w2i4a"></menu>
  • logo Parasoft C/C++test 使用教程

    文檔首頁>>Parasoft C/C++test 使用教程>>自動駕駛軟件的靜態(tài)分析和編碼標(biāo)準(zhǔn)合規(guī)性

    自動駕駛軟件的靜態(tài)分析和編碼標(biāo)準(zhǔn)合規(guī)性


    為諸如自動駕駛之類的復(fù)雜功能編寫代碼需要龐大的有才能的團(tuán)隊,這些團(tuán)隊通常對如何確保高質(zhì)量的代碼有自己的看法。但是,要構(gòu)建一個有效的軟件開發(fā)流程并非易事,該流程包括諸如靜態(tài)分析和編碼標(biāo)準(zhǔn)合規(guī)性之類的質(zhì)量計劃,以使自動駕駛汽車獲得成功的認(rèn)證。

    自動駕駛是一個非常有競爭性的空間,而開發(fā)人員的速度則是口頭禪。誰先將經(jīng)過認(rèn)證的產(chǎn)品推向市場,將比競爭對手更具優(yōu)勢,因此,開發(fā)人員很容易將靜態(tài)分析和其他質(zhì)量措施視為障礙。尤其是因為自動駕駛領(lǐng)域渴望人才,因此即使他們沒有安全背景,組織也在雇用精明的開發(fā)人員。但是,來自無功能安全文化背景的開發(fā)人員并不了解安全關(guān)鍵軟件開發(fā)所需的所有質(zhì)量流程。這可能使文化認(rèn)同成為一個挑戰(zhàn)。



    獲得內(nèi)部支持


    有時感覺要建立內(nèi)部共識,以質(zhì)量為導(dǎo)向的實踐需要心理學(xué)碩士學(xué)位或受過培訓(xùn)的談判員的技能……在過去的項目中,我負(fù)責(zé)引入靜態(tài)分析和AUTOSAR C++ 14編碼標(biāo)準(zhǔn)合規(guī)性,以實現(xiàn)可持續(xù)發(fā)展。自動駕駛軟件非常創(chuàng)新,并且使用現(xiàn)代C++開發(fā)了用于自動駕駛軟件的軟件組件。考慮到這一點,AUTOSAR C++ 14編碼標(biāo)準(zhǔn)是自動駕駛軟件最合適的標(biāo)準(zhǔn),因為它支持現(xiàn)代C++,并且是為面向安全性開發(fā)而創(chuàng)建的。

    為了說服不信服的人,我作了多次演講,討論了多個不同方面。但是,即使進(jìn)行了所有這些討論和協(xié)議,一些開發(fā)人員仍然拒絕分析他們創(chuàng)建的所有代碼。以下是我重點關(guān)注的一些要點,以確保正確的流程到位:


    • 認(rèn)證——大規(guī)模生產(chǎn)之前,必須先對自動駕駛汽車軟件進(jìn)行批準(zhǔn)和認(rèn)證。在世界不同地區(qū),此過程看起來有所不同,但是所有汽車組織都將ISO 26262視為簡化批準(zhǔn)和認(rèn)證的主要功能安全標(biāo)準(zhǔn)。ISO 26262要求靜態(tài)分析和編碼標(biāo)準(zhǔn)符合性,并且對源代碼的編碼標(biāo)準(zhǔn)缺乏合規(guī)性將成為批準(zhǔn)過程中的巨大障礙。沒有認(rèn)真的業(yè)務(wù)組織會允許這種風(fēng)險。
    • 以較低的成本提供更好的質(zhì)量——從一開始就構(gòu)建高質(zhì)量、合規(guī)的代碼,并盡早進(jìn)行測試,則可以更輕松(即更快)地解決問題,并且避免了常見的陷阱,因為開發(fā)人員將開始采用從開始。開發(fā)人員(甚至是對安全至關(guān)重要的文化不熟悉的開發(fā)人員)將學(xué)習(xí),并且違反靜態(tài)分析的情況將更少。必須在編寫代碼時進(jìn)行測試,以快速創(chuàng)建復(fù)雜的軟件。靜態(tài)分析是非常適合此情況的一種方法,它通過消除可能導(dǎo)致不可預(yù)測行為的問題類別,為安全性和安全性奠定了重要基礎(chǔ)。為開發(fā)人員提供一種可以在較短的反饋循環(huán)中產(chǎn)生結(jié)果并減少誤報的工具,可以提高對該測試技術(shù)的接受度。隨著時間的流逝,開發(fā)人員確實開始將其視為安全網(wǎng),即可以幫助他們創(chuàng)建可靠代碼的東西。更不用說這對于Agile/DevOps至關(guān)重要,因為如果您在發(fā)布前等待進(jìn)行掃描,則將花費(fèi)數(shù)月的時間來修復(fù)代碼。
    • 法律問題——遵守編碼標(biāo)準(zhǔn)是潛在法律問題的盾牌。隨著數(shù)以百萬計的汽車在道路上行駛,事故將會發(fā)生。其中一些將追溯到不可避免的軟件錯誤。組織必須能夠證明他們已經(jīng)做了一切可能的事以防止安全隱患。如果軟件缺陷導(dǎo)致悲劇,那么沒有文件化的編碼標(biāo)準(zhǔn)合規(guī)性流程當(dāng)然會成為問題。因此,在與開發(fā)人員討論此方面時,為了增強(qiáng)效果,我希望包括一些由軟件缺陷引起的實際事故,例如臭名昭著的Toyota意外加速。



    說服最有抵抗力的開發(fā)商......


    自動駕駛技術(shù)還處于早期階段。創(chuàng)建的許多源代碼僅僅是測試新想法的原型。一些開發(fā)人員不想“浪費(fèi)”時間使其符合編碼標(biāo)準(zhǔn),而只是想快速編寫并進(jìn)行測試。我聽到的一個典型故事是:“我只想測試這個新算法,如果它可以工作,我將重寫代碼以使其變得干凈?!边@聽起來很無辜,但事實是,這只是在增加技術(shù)債務(wù)。

    當(dāng)我們從一個原型過渡到另一個原型時,通常會帶走很多代碼,從統(tǒng)計上講,它可能占代碼的80%。因此,我們無法使用錯誤的代碼來制作原型,然后再進(jìn)行修復(fù),因為從一開始,我們就知道我們沒有時間這樣做。因此,即使某樣?xùn)|西是原型,該代碼也必須合規(guī),因為最終產(chǎn)品將包含大量最初作為原型創(chuàng)建的代碼。

    如果不是現(xiàn)在就專注于現(xiàn)在而不是稍后再做,而是可以現(xiàn)在就專注于避免最終花費(fèi)未知的時間,則開發(fā)人員開始將其視為增強(qiáng)流程而不是放慢進(jìn)度。如果您可以在不降低速度或創(chuàng)造力的情況下有效地使流程適應(yīng)開發(fā)人員的工作流程,則使用起來會變得更加容易。最后,保持物品整潔干凈比最后清理一團(tuán)糟容易得多。建立一致,可維護(hù)的做法來編寫兼容的代碼,將有助于您日后發(fā)現(xiàn)更多麻煩。


    該死的遺留代碼......


    但是,即使您能夠盡早成功地引入編碼標(biāo)準(zhǔn)合規(guī)性流程,也不可避免地已經(jīng)有一些(大量)代碼已經(jīng)由團(tuán)隊創(chuàng)建,并且已經(jīng)被繼承。當(dāng)您選擇靜態(tài)分析工具(Parasoft C/C++test)并選擇標(biāo)準(zhǔn)(AUTOSAR)時,同時,該團(tuán)隊正在創(chuàng)建大量沒有任何合規(guī)性政策的代碼!因此,還必須為舊代碼創(chuàng)建策略。兩項重要的政策是:


    • “零新違規(guī)”——您必須先完成新的代碼合規(guī)性
    • “隨時清理”——如果您觸摸文件,則必須對其進(jìn)行清理


    通過這些策略,您可以處理舊代碼,引入新代碼并繼續(xù)保持整潔。


    總結(jié)


    為了在整個開發(fā)組織中成功采用靜態(tài)分析和編碼標(biāo)準(zhǔn)合規(guī)性流程,您將受益于以下各項:


    1. 確保每個人都知道您為什么這樣做(如果不花時間,您就無法通過認(rèn)證,也無法在汽車市場上取得成功)
    2. 如果您不重視質(zhì)量,則解決延遲發(fā)布的成本,并向團(tuán)隊展示當(dāng)您將質(zhì)量放到最后時會發(fā)生什么
    3. 使采用盡可能相關(guān)且毫不費(fèi)力。在實施靜態(tài)分析工具時,請務(wù)必謹(jǐn)慎,確保選擇正確的規(guī)則和檢查器,并確保工作流集成到開發(fā)人員的現(xiàn)有工作流中。



    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();