<li id="wkceg"></li>
<rt id="wkceg"><delect id="wkceg"></delect></rt>
<bdo id="wkceg"></bdo>
<strike id="wkceg"><acronym id="wkceg"></acronym></strike>

  • 賬號(hào):
    密碼:
    智動(dòng)化 / 文章 /

    Polyspace靜態(tài)程式碼分析 高效遵循多重規(guī)范
    [作者 Ficosa International]   2023年09月23日 星期六 瀏覽人次: [3776]

    當(dāng)軟體品質(zhì)目標(biāo)明確規(guī)定了分析指標(biāo)、編程指南,以及執(zhí)行階段錯(cuò)誤的接受標(biāo)準(zhǔn)和??值,車用軟體系統(tǒng)透過這些標(biāo)準(zhǔn)會(huì)自動(dòng)進(jìn)行評(píng)估,軟體變更時(shí)執(zhí)行,就成為軟體開發(fā)流程中完整的一部分。如何降低程式碼品質(zhì)評(píng)估的主觀性,并改善軟體開發(fā)周期的整體開發(fā)效率,就成為當(dāng)中要點(diǎn)。


    車用軟體系統(tǒng)在現(xiàn)今車輛的安全性、可靠性及效率扮演著愈來愈重要的角色。因此,工程團(tuán)隊(duì)專注於提供先進(jìn)駕駛輔助系統(tǒng)(advanced driver assistance systems;ADAS)、電池管理系統(tǒng)、穩(wěn)定控制及其他類似的創(chuàng)新功能。通常,他們也需要透過證明符合ISO 26262/SAE 21434的規(guī)定,以確保滿足功能安全與網(wǎng)路安全的要求。


    全球頂級(jí)車輛供應(yīng)商Ficosa International正在開發(fā)使用在各式車輛應(yīng)用的軟體。作為確保產(chǎn)品符合產(chǎn)業(yè)標(biāo)準(zhǔn)的其中一部份流程,我們的工程團(tuán)隊(duì)在從實(shí)現(xiàn)到單元驗(yàn)證、整合及監(jiān)定測(cè)試的完整開發(fā)周期,均使用Polyspace靜態(tài)程式碼分析產(chǎn)品來衡量并改進(jìn)程式碼品質(zhì)。許多使用的流程都是基於一套明確定義的軟體品質(zhì)目標(biāo),由諸如所開發(fā)的元件的關(guān)鍵性和專案的成熟度等要素組織而成。


    軟體品質(zhì)目標(biāo)明確規(guī)定了Polyspace靜態(tài)分析指標(biāo)、MISRA和CERT/CWE等編程指南,以及執(zhí)行階段錯(cuò)誤的接受標(biāo)準(zhǔn)和??值。現(xiàn)在這些標(biāo)準(zhǔn)會(huì)自動(dòng)地進(jìn)行評(píng)估,并且在每一次軟體變更時(shí)執(zhí)行,成為軟體開發(fā)流程中完整的一部分。因此,我們盡可能降低程式碼品質(zhì)評(píng)估的主觀性,同時(shí)改善軟體開發(fā)周期的整體開發(fā)效率。


    進(jìn)行Polyspace使用評(píng)估

    2010年,我們開始進(jìn)行車輛通訊模組專案。這項(xiàng)專案的其中一部分要求,客戶指定使用靜態(tài)分析來檢查是否符合MISRA C。經(jīng)過對(duì)市面上的靜態(tài)分析產(chǎn)品進(jìn)行完整評(píng)估之後,我們根據(jù)產(chǎn)品的表現(xiàn)和成本,選擇了Polyspace。同時(shí)間,我們也致力於逐漸符合Automotive SPICE能力等級(jí)2(level 2),并且開始搭配使用Polyspace Bug Finder和Polyspace Code Prover靜態(tài)分析來支援軟體單元驗(yàn)證活動(dòng)。


    很快地,我們的工程團(tuán)隊(duì)開始進(jìn)入ADAS的其他領(lǐng)域,而我們的客戶開始要求符合ASPICE level 3。與此同時(shí),我們還開始幾項(xiàng)需要符合ISO 26262以被視為滿足功能安全要求的專案。不久之後,還有一些客戶開始要求符合CERT C和通用缺陷列表(Common Weakness Enumeration;CWE)的檢查,以確保滿足安全的程式碼編寫標(biāo)準(zhǔn),在這個(gè)案例是需要尋求符合ISO 21434。


    使用Polyspace軟體進(jìn)行靜態(tài)分析幫助我們支援這其中每一項(xiàng)行動(dòng)。然而,從企業(yè)組織的角度來看,缺少了開發(fā)及驗(yàn)證活動(dòng)的全面性計(jì)畫,計(jì)畫里面應(yīng)該要清楚定義會(huì)在何時(shí),以及采用哪些技術(shù)、衡量方式及??值來確保軟體品質(zhì)。


    正式架構(gòu)尚未就位的其中一個(gè)缺點(diǎn),是研發(fā)團(tuán)隊(duì)會(huì)傾向等到專案更後面的階段才執(zhí)行靜態(tài)分析,而不是從專案一開始就系統(tǒng)化地執(zhí)行。可以料想,這些在開發(fā)後期進(jìn)行靜態(tài)分析結(jié)果出現(xiàn)了許多違規(guī)行為,其中包含許多違反MISRA C的違規(guī)行為。由於這些問題是在專案後期才被發(fā)現(xiàn),很難透過問題解決或論證來彌補(bǔ)。


    為了處理這類挑戰(zhàn),我們透徹分析Ficosa International該如何最隹化的符合軟體品質(zhì)目標(biāo),以及我們的客戶跨越多種領(lǐng)域,在可靠性、功能安全和安全防護(hù)等方面的目標(biāo)。這項(xiàng)分析的終端產(chǎn)品是一份軟體品質(zhì)目標(biāo)文件,這份文件現(xiàn)在被我們的團(tuán)隊(duì)視為確保交付的軟體系統(tǒng)品質(zhì)的基礎(chǔ)。


    定義軟體品質(zhì)目標(biāo)

    在Ficosa International的軟體品質(zhì)目標(biāo)文件中,我們定義了在驗(yàn)證所開發(fā)的軟體時(shí)所有生效的指標(biāo)和規(guī)則,包含以MISRA C、CERT C及CWE為基礎(chǔ)的指標(biāo)和規(guī)則,還有諸如循環(huán)復(fù)雜度及注解密度等軟體指標(biāo)。


    下一步,我們依據(jù)待驗(yàn)證的程式碼的源頭、開發(fā)中的元件類型以及其成熟度來定義指標(biāo)和規(guī)則的采用標(biāo)準(zhǔn)。舉例來說,為第三方程式碼、既有程式碼(legacy code)、自動(dòng)產(chǎn)生的程式碼,以及人工編寫的程式碼定義了不同的目標(biāo)(圖1)。



    圖1 : 依據(jù)軟體元件類型和專案成熟度而定義的Ficosa International軟體品質(zhì)目標(biāo)
    圖1 : 依據(jù)軟體元件類型和專案成熟度而定義的Ficosa International軟體品質(zhì)目標(biāo)

    對(duì)於第三方程式碼,僅執(zhí)行強(qiáng)制性的MISRA C規(guī)則,并且假定這類程式碼附有其他相配的品質(zhì)證明。對(duì)於既有程式碼、自動(dòng)產(chǎn)生的程式碼和人工編寫的程式碼,我們采用愈來愈嚴(yán)格的規(guī)則。涉及功能安全或安全防護(hù)的元件還會(huì)進(jìn)行額外的檢查,以符合ISO 26262的汽車安全完整性等級(jí)(Automotive Safety Integrity Level;ASIL)要求和ISO/SAE 21434的網(wǎng)路安全保證等級(jí)(cybersecurity assurance level;CAL)要求。


    此外,隨著元件從早期開發(fā)(A sample)進(jìn)展到中期、倒數(shù)第二個(gè)階段、最終交付(B、C、D samples),我們還會(huì)為專案定義更為嚴(yán)格的目標(biāo)。最終,會(huì)有一個(gè)整合程式碼的獨(dú)立、經(jīng)過縮減的規(guī)則與指標(biāo)子集亦即一組元件之中的每一個(gè)元件均通過各自的軟體品質(zhì)目標(biāo)評(píng)估,而且現(xiàn)在被整合在一起,成為更大系統(tǒng)的一部分。這對(duì)於簡(jiǎn)化復(fù)雜軟體的靜態(tài)分析非常有用。


    將靜態(tài)分析整合至開發(fā)工作流程

    當(dāng)有了明確定義軟體品質(zhì)目標(biāo)的文件,我們便開始使用Polysapce靜態(tài)分析產(chǎn)品,將這些文件整合至開發(fā)及測(cè)試流程(圖2)。



    圖2 : 對(duì)於程式碼實(shí)現(xiàn)和驗(yàn)證的流程,可看見靜態(tài)分析和後續(xù)修正的整合。
    圖2 : 對(duì)於程式碼實(shí)現(xiàn)和驗(yàn)證的流程,可看見靜態(tài)分析和後續(xù)修正的整合。

    這套流程其中的一項(xiàng)關(guān)鍵步驟,在於納入針對(duì)開發(fā)人員向我們的版本控制系統(tǒng)Git發(fā)送收取要求時(shí)的規(guī)定。對(duì)於需要核準(zhǔn)的收取要求,它除了要有單元測(cè)試結(jié)果之外,還必須成功通過Polyspace Bug Finder和Polyspace Code Prover的特定靜態(tài)分析檢查。單是這項(xiàng)改變就為我們整體工作流程帶來重大改善,因?yàn)樗⒘艘粋€(gè)閘門機(jī)制,確保開發(fā)人員只有在他們的程式碼完整通過合適的軟體品質(zhì)目標(biāo),并且解決或證明在靜態(tài)分析找到的任何問題時(shí),才能夠成功完成收取要求。


    在軟體整合及測(cè)試期間,Polyspace產(chǎn)品被使用來執(zhí)行以整合程式碼的軟體品質(zhì)目標(biāo)為基礎(chǔ)的靜態(tài)分析。在此階段, MISRA C的相符及程式碼指標(biāo)的檢查僅限於系統(tǒng)層級(jí)規(guī)則和整合軟體指標(biāo)。有個(gè)重點(diǎn)是整合層級(jí)的問題,像是共用記憶體的協(xié)作存取、無作用程式碼、重大執(zhí)行階段錯(cuò)誤等。


    隨著采用Jenkins進(jìn)行持續(xù)整合持續(xù)部署(continuous integration and continuous delivery,CI/CD)的情況愈來愈多,Polyspace產(chǎn)品支援頻繁的靜態(tài)分析及持續(xù)的反??,確保開發(fā)人員及整合人員能夠維持原始程式碼與設(shè)定的品質(zhì)目標(biāo)的一致性。除此之外,透過Polyspace Access網(wǎng)路介面,我們所有的團(tuán)隊(duì)都可以存取一個(gè)中央資料庫(kù),查看靜態(tài)程式碼分析結(jié)果并且監(jiān)控交付品質(zhì)目標(biāo)等級(jí)的進(jìn)展。


    在開發(fā)功能安全產(chǎn)品的時(shí)候,有另一個(gè)重要的考量點(diǎn)是要確保軟體工具不會(huì)造成、或者沒有發(fā)現(xiàn)在軟體量產(chǎn)階段的錯(cuò)誤。ISO 26262明確要求軟體工具的認(rèn)可流程,依據(jù)軟體的關(guān)鍵性進(jìn)行分類,并且執(zhí)行必要的活動(dòng)來審核。針對(duì)Polyspace產(chǎn)品,MathWorks提供支援Bug Finder和Code Prover在專案范疇的認(rèn)證套件。


    關(guān)鍵優(yōu)勢(shì)

    透過Polyspace產(chǎn)品來運(yùn)用良好定義的軟體品質(zhì)目標(biāo),為Ficosa International須遵循ISO 26262與ISO/SAE 21434標(biāo)準(zhǔn)的車用軟體開發(fā)和交付,帶來幾項(xiàng)重要的優(yōu)勢(shì)。


    優(yōu)勢(shì)之一是穩(wěn)定地提升開發(fā)人員之間的開發(fā)技能。進(jìn)一步來說,他們從Polyspace產(chǎn)品接收到的快速回應(yīng),幫助他們了解其程式碼品質(zhì)哪里需要修改及如何修改,而且因此可以幫助他們成為技術(shù)更隹、更有生產(chǎn)力的開發(fā)人員。事實(shí)上,透過我們建置的流程,他們必須要了解并解決通過靜態(tài)分析偵測(cè)到的問題沒有其他的選項(xiàng)。


    我們還發(fā)現(xiàn)另一個(gè)重要的好處是得以簡(jiǎn)化ASPICE和ISO 26262外部品質(zhì)評(píng)估,或者其他客戶要求須要遵循的目標(biāo)。今天,我們做的每一件事都更易於論證,因?yàn)槲覀冇星宄能涹w品質(zhì)目標(biāo),并且附有報(bào)告呈現(xiàn),舉例來說,MISRA與CERT變異數(shù)量遠(yuǎn)比以往更少,還有證據(jù)顯示我們的程式碼通過了目標(biāo)品質(zhì)標(biāo)準(zhǔn)。


    也許更為重要的是,Polyspace產(chǎn)品幫助我們達(dá)成品質(zhì)目標(biāo),同時(shí)間增加效率,或者至少維持了同樣的效率。通常,在管理團(tuán)隊(duì)或類似的團(tuán)體調(diào)整組織的開發(fā)工作流程來制定執(zhí)行的早期驗(yàn)證步驟型態(tài)時(shí),開發(fā)人員會(huì)將所需要完成的額外步驟視為另外的工作。有了Polyspace產(chǎn)品,我們便能夠向團(tuán)隊(duì)證明,這些為了每一次的收取要求而執(zhí)行的靜態(tài)分析所產(chǎn)生的額外步驟,實(shí)際上讓效率提升了。他們可以更有效率、更具信心地交付高品質(zhì)的程式碼,因?yàn)樗型高^靜態(tài)分析找到的錯(cuò)誤都在較早的階段就已經(jīng)被消滅,而不會(huì)留存到最終階段。


    (本文由??思科技提供;作者David Tuset、Roger Marsal、Yolanda Guasch任職於Ficosa International公司)


    相關(guān)文章
    ? 低功耗通訊模組 滿足物聯(lián)網(wǎng)市場(chǎng)關(guān)鍵需求
    ? 環(huán)境監(jiān)測(cè)技術(shù)可防害于未然
    ? 連接家庭閘道器實(shí)現(xiàn)Wi-SUN環(huán)境普及化新服務(wù)
    comments powered by Disqus
      相關(guān)新聞
    » 法人開放50條試制線撐中小企業(yè) 開發(fā)AI新品及培育實(shí)作人才
    » TrendForce剖析在地自動(dòng)化成關(guān)稅戰(zhàn)避風(fēng)港 美國(guó)智慧工廠成本遠(yuǎn)超陸廠
    » 風(fēng)電就業(yè)與國(guó)際接軌 產(chǎn)訓(xùn)合一為產(chǎn)業(yè)供應(yīng)鏈培育專才
    » 臺(tái)達(dá)支持Economist Impact全球永續(xù)AI報(bào)告發(fā)表 強(qiáng)調(diào)電網(wǎng)韌性為重要挑戰(zhàn)
    » 臺(tái)達(dá)電子公布114年第一季財(cái)務(wù)報(bào)表
      相關(guān)產(chǎn)品
    » 泓格iSN-811C-MTCP紅外線感測(cè)模組 從溫度掌握工業(yè)制造的安全與先機(jī)
    » 凌華科技透過 NVIDIA JetPack 6.1 增強(qiáng)邊緣 AI 解決方案
    » 安勤推出搭載NVIDIA Jetson平臺(tái)邊緣AI方案新系列
    » 臺(tái)達(dá)全新溫度控制器 DTDM系列實(shí)現(xiàn)導(dǎo)體加工精準(zhǔn)控溫
    » 西門子下一代AI增強(qiáng)型電子系統(tǒng)設(shè)計(jì)軟體直觀且安全

    主站蜘蛛池模板: 张家港市| 台州市| 景泰县| 南靖县| 太仓市| 临泉县| 饶平县| 兰考县| 汨罗市| 新兴县| 新安县| 华蓥市| 虹口区| 乡宁县| 永靖县| 鄂州市| 新平| 江孜县| 潍坊市| 惠来县| 道孚县| 姜堰市| 黄浦区| 封开县| 安龙县| 嘉禾县| 会东县| 临城县| 尼勒克县| 财经| 平果县| 玉山县| 饶河县| 钦州市| 馆陶县| 延庆县| 弋阳县| 抚州市| 景洪市| 定州市| 甘南县|