<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 汽車(chē)電子 > 設計應用 > Polyspace靜態(tài)程序代碼分析 高效遵循多重規范

Polyspace靜態(tài)程序代碼分析 高效遵循多重規范

作者: 時(shí)間:2023-09-25 來(lái)源:CTIMES 收藏

當軟件質(zhì)量目標明確規定了分析指針、編程指南,以及運行時(shí)錯誤的接受標準和閾值,系統透過(guò)這些標準會(huì )自動(dòng)進(jìn)行評估,軟件變更時(shí)執行,就成為軟件開(kāi)發(fā)流程中完整的一部分。如何降低程序代碼質(zhì)量評估的主觀(guān)性,并改善軟件開(kāi)發(fā)周期的整體開(kāi)發(fā)效率,就成為當中要點(diǎn)。
系統在現今車(chē)輛的安全性、可靠性及效率扮演著(zhù)愈來(lái)愈重要的角色。因此,工程團隊專(zhuān)注于提供先進(jìn)駕駛輔助系統(advanced driver assistance systems;ADAS)、電池管理系統、穩定控制及其他類(lèi)似的創(chuàng )新功能。通常,他們也需要透過(guò)證明符合ISO 26262/SAE 21434的規定,以確保滿(mǎn)足功能安全與網(wǎng)絡(luò )安全的要求。
全球頂級車(chē)輛供貨商Ficosa International正在開(kāi)發(fā)使用在各式車(chē)輛應用的軟件。作為確保產(chǎn)品符合產(chǎn)業(yè)標準的其中一部份流程,我們的工程團隊在從實(shí)現到單元驗證、整合及鑒定測試的完整開(kāi)發(fā)周期,均使用產(chǎn)品來(lái)衡量并改進(jìn)程序代碼質(zhì)量。許多使用的流程都是基于一套明確定義的軟件質(zhì)量目標,由諸如所開(kāi)發(fā)的組件的關(guān)鍵性和項目的成熟度等要素組織而成。
軟件質(zhì)量目標明確規定了靜態(tài)分析指針、MISRA和CERT/CWE等編程指南,以及運行時(shí)錯誤的接受標準和閾值?,F在這些標準會(huì )自動(dòng)地進(jìn)行評估,并且在每一次軟件變更時(shí)執行,成為軟件開(kāi)發(fā)流程中完整的一部分。因此,我們盡可能降低程序代碼質(zhì)量評估的主觀(guān)性,同時(shí)改善軟件開(kāi)發(fā)周期的整體開(kāi)發(fā)效率。

進(jìn)行使用評估
2010年,我們開(kāi)始進(jìn)行車(chē)輛通訊模塊項目。這項項目的其中一部分要求,客戶(hù)指定使用靜態(tài)分析來(lái)檢查是否符合MISRA C。經(jīng)過(guò)對市面上的靜態(tài)分析產(chǎn)品進(jìn)行完整評估之后,我們根據產(chǎn)品的表現和成本,選擇了Polyspace。同時(shí)間,我們也致力于逐漸符合Automotive SPICE能力等級2(level 2),并且開(kāi)始搭配使用Polyspace Bug Finder和Polyspace Code Prover靜態(tài)分析來(lái)支持軟件單元驗證活動(dòng)。
很快地,我們的工程團隊開(kāi)始進(jìn)入ADAS的其他領(lǐng)域,而我們的客戶(hù)開(kāi)始要求符合ASPICE level 3。與此同時(shí),我們還開(kāi)始幾項需要符合ISO 26262以被視為滿(mǎn)足功能安全要求的項目。不久之后,還有一些客戶(hù)開(kāi)始要求符合CERT C和通用缺陷列表(Common Weakness Enumeration;CWE)的檢查,以確保滿(mǎn)足安全的程序代碼編寫(xiě)標準,在這個(gè)案例是需要尋求符合ISO 21434。
使用Polyspace軟件進(jìn)行靜態(tài)分析幫助我們支持這其中每一項行動(dòng)。然而,從企業(yè)組織的角度來(lái)看,缺少了開(kāi)發(fā)及驗證活動(dòng)的全面性計劃,計劃里面應該要清楚定義會(huì )在何時(shí),以及采用哪些技術(shù)、衡量方式及閾值來(lái)確保軟件質(zhì)量。
正式架構尚未就位的其中一個(gè)缺點(diǎn),是研發(fā)團隊會(huì )傾向等到項目更后面的階段才執行靜態(tài)分析,而不是從項目一開(kāi)始就系統化地執行??梢粤舷?,這些在開(kāi)發(fā)后期進(jìn)行靜態(tài)分析結果出現了許多違規行為,其中包含許多違反MISRA C的違規行為。由于這些問(wèn)題是在項目后期才被發(fā)現,很難透過(guò)問(wèn)題解決或論證來(lái)彌補。
為了處理這類(lèi)挑戰,我們透徹分析Ficosa International該如何優(yōu)化的符合軟件質(zhì)量目標,以及我們的客戶(hù)跨越多種領(lǐng)域,在可靠性、功能安全和安全防護等方面的目標。這項分析的終端產(chǎn)品是一份軟件質(zhì)量目標文件,這份文件現在被我們的團隊視為確保交付的軟件系統質(zhì)量的基礎。

定義軟件質(zhì)量目標
在Ficosa International的軟件質(zhì)量目標文件中,我們定義了在驗證所開(kāi)發(fā)的軟件時(shí)所有生效的指針和規則,包含以MISRA C、CERT C及CWE為基礎的指針和規則,還有諸如循環(huán)復雜度及批注密度等軟件指針。
下一步,我們依據待驗證的程序代碼的源頭、開(kāi)發(fā)中的組件類(lèi)型以及其成熟度來(lái)定義指針和規則的采用標準。舉例來(lái)說(shuō),為第三方程式碼、既有程序代碼(legacy code)、自動(dòng)產(chǎn)生的程序代碼,以及人工編寫(xiě)的程序代碼定義了不同的目標(圖1)。

圖片.png 
圖1 : 依據軟件組件類(lèi)型和項目成熟度而定義的Ficosa International軟件質(zhì)量目標

對于第三方程式碼,僅執行強制性的MISRA C規則,并且假定這類(lèi)程序代碼附有其他相配的質(zhì)量證明。對于既有程序代碼、自動(dòng)產(chǎn)生的程序代碼和人工編寫(xiě)的程序代碼,我們采用愈來(lái)愈嚴格的規則。涉及功能安全或安全防護的組件還會(huì )進(jìn)行額外的檢查,以符合ISO 26262的汽車(chē)安全完整性等級(Automotive Safety Integrity Level;ASIL)要求和ISO/SAE 21434的網(wǎng)絡(luò )安全保證等級(cybersecurity assurance level;CAL)要求。
此外,隨著(zhù)組件從早期開(kāi)發(fā)(A sample)進(jìn)展到中期、倒數第二個(gè)階段、最終交付(B、C、D samples),我們還會(huì )為項目定義更為嚴格的目標。最終,會(huì )有一個(gè)整合程序代碼的獨立、經(jīng)過(guò)縮減的規則與指針子集—亦即一組組件之中的每一個(gè)組件均通過(guò)各自的軟件質(zhì)量目標評估,而且現在被整合在一起,成為更大系統的一部分。這對于簡(jiǎn)化復雜軟件的靜態(tài)分析非常有用。

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

圖片.png 
圖2 : 對于程序代碼實(shí)現和驗證的流程,可看見(jiàn)靜態(tài)分析和后續修正的整合。

這套流程其中的一項關(guān)鍵步驟,在于納入針對開(kāi)發(fā)人員向我們的版本控制系統Git發(fā)送收取要求時(shí)的規定。對于需要核準的收取要求,它除了要有單元測試結果之外,還必須成功通過(guò)Polyspace Bug Finder和Polyspace Code Prover的特定靜態(tài)分析檢查。單是這項改變就為我們整體工作流程帶來(lái)重大改善,因為它建立了一個(gè)閘門(mén)機制,確保開(kāi)發(fā)人員只有在他們的程序代碼完整通過(guò)合適的軟件質(zhì)量目標,并且解決或證明在靜態(tài)分析找到的任何問(wèn)題時(shí),才能夠成功完成收取要求。
在軟件整合及測試期間,Polyspace產(chǎn)品被使用來(lái)執行以整合程序代碼的軟件質(zhì)量目標為基礎的靜態(tài)分析。在此階段, MISRA C的相符及程序代碼指針的檢查僅限于系統層級規則和整合軟件指針。有個(gè)重點(diǎn)是整合層級的問(wèn)題,像是共享內存的協(xié)作存取、無(wú)作用程序代碼、重大運行時(shí)錯誤等。
隨著(zhù)采用Jenkins進(jìn)行持續整合持續部署(continuous integration and continuous delivery,CI/CD)的情況愈來(lái)愈多,Polyspace產(chǎn)品支持頻繁的靜態(tài)分析及持續的反饋,確保開(kāi)發(fā)人員及整合人員能夠維持源代碼與設定的質(zhì)量目標的一致性。除此之外,透過(guò)Polyspace Access網(wǎng)絡(luò )接口,我們所有的團隊都可以存取一個(gè)中央數據庫,查看結果并且監控交付質(zhì)量目標等級的進(jìn)展。
在開(kāi)發(fā)功能安全產(chǎn)品的時(shí)候,有另一個(gè)重要的考慮點(diǎn)是要確保軟件工具不會(huì )造成、或者沒(méi)有發(fā)現在軟件量產(chǎn)階段的錯誤。ISO 26262明確要求軟件工具的認可流程,依據軟件的關(guān)鍵性進(jìn)行分類(lèi),并且執行必要的活動(dòng)來(lái)審核。針對Polyspace產(chǎn)品,MathWorks提供支持Bug Finder和Code Prover在項目范疇的認證套件。

關(guān)鍵優(yōu)勢
透過(guò)Polyspace產(chǎn)品來(lái)運用良好定義的軟件質(zhì)量目標,為Ficosa International須遵循ISO 26262與ISO/SAE 21434標準的開(kāi)發(fā)和交付,帶來(lái)幾項重要的優(yōu)勢。
優(yōu)勢之一是穩定地提升開(kāi)發(fā)人員之間的開(kāi)發(fā)技能。進(jìn)一步來(lái)說(shuō),他們從Polyspace產(chǎn)品接收到的快速響應,幫助他們了解其程序代碼質(zhì)量哪里需要修改及如何修改,而且因此可以幫助他們成為技術(shù)更佳、更有生產(chǎn)力的開(kāi)發(fā)人員。事實(shí)上,透過(guò)我們建置的流程,他們必須要了解并解決通過(guò)靜態(tài)分析偵測到的問(wèn)題—沒(méi)有其他的選項。
我們還發(fā)現另一個(gè)重要的好處是得以簡(jiǎn)化ASPICE和ISO 26262外部質(zhì)量評估,或者其他客戶(hù)要求須要遵循的目標。今天,我們做的每一件事都更易于論證,因為我們有清楚的軟件質(zhì)量目標,并且附有報告呈現,舉例來(lái)說(shuō),MISRA與CERT變異數量遠比以往更少,還有證據顯示我們的程序代碼通過(guò)了目標質(zhì)量標準。
也許更為重要的是,Polyspace產(chǎn)品幫助我們達成質(zhì)量目標,同時(shí)間增加效率,或者至少維持了同樣的效率。通常,在管理團隊或類(lèi)似的團體調整組織的開(kāi)發(fā)工作流程來(lái)制定執行的早期驗證步驟型態(tài)時(shí),開(kāi)發(fā)人員會(huì )將所需要完成的額外步驟視為另外的工作。有了Polyspace產(chǎn)品,我們便能夠向團隊證明,這些為了每一次的收取要求而執行的靜態(tài)分析所產(chǎn)生的額外步驟,實(shí)際上讓效率提升了。他們可以更有效率、更具信心地交付高質(zhì)量的程序代碼,因為所有透過(guò)靜態(tài)分析找到的錯誤都在較早的階段就已經(jīng)被消滅,而不會(huì )留存到最終階段。
(本文由鈦思科技提供;作者David Tuset、Roger Marsal、Yolanda Guasch任職于Ficosa International公司)

本文引用地址:http://dyxdggzs.com/article/202309/450902.htm


評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>