創(chuàng)建最高質(zhì)量的嵌入式軟件
汽車軟件工程:A-SPICE 和軟件質(zhì)量挑戰(zhàn)
本文引用地址:http://www.ex-cimer.com/article/202101/422494.htm汽車行業(yè)正朝著互聯(lián)、日益自動(dòng)化、高度定制化、電動(dòng)和聯(lián)網(wǎng)的市場(chǎng)趨勢(shì)發(fā)展,新一代車輛給大眾的印象是 “有輪子的平板電腦”,而非傳統(tǒng)汽車。在使用壽命期間,這些車輛需要能夠通過購(gòu)買和安裝應(yīng)用來(lái)進(jìn)行擴(kuò)展,并為乘客提供基于網(wǎng)絡(luò)的增值服務(wù)。 此外,汽車制造商的上市時(shí)間壓力不斷加大,產(chǎn)品復(fù)雜性經(jīng)常導(dǎo)致缺陷直到后期才被發(fā)現(xiàn),從而造成修復(fù)成本增加和公司利潤(rùn)降低。
過去,汽車軟件一直負(fù)責(zé)運(yùn)行從屬性的低級(jí)嵌入式控制和娛樂功能。如今,軟件能夠感知環(huán)境并進(jìn)行分類,在先進(jìn)駕駛輔助功能中協(xié)調(diào)駕駛過程,向其制造商提供遙測(cè)數(shù)據(jù),接收無(wú)線更新,并獲得對(duì)路線規(guī)劃、發(fā)動(dòng)機(jī)、傳動(dòng)裝置、制動(dòng)器和轉(zhuǎn)向系統(tǒng)的高級(jí)權(quán)限。換言之,軟件在駕駛過程中承擔(dān)的責(zé)任越來(lái)越多。信息娛樂軟件和車輛運(yùn)行軟件之間在傳統(tǒng)上涇渭分明的界限變得模糊。
因此,一系列全新功能使得車載軟件的數(shù)量增加了幾個(gè)數(shù)量級(jí)。在很大程度上,此類軟件對(duì)于安全至關(guān)重要。車輛連接到互聯(lián)網(wǎng)會(huì)使其面臨安全威脅,損害車輛的完整性以及乘客的隱私和安全。受重量、功耗、熱傳遞、車廂空間等方面的限制,已經(jīng)無(wú)法繼續(xù)通過添加更多電子控制單元 (ECU) 來(lái)增加功能。因此,行業(yè)趨勢(shì)是在大型多核心 ECU 上整合軟件功能;動(dòng)態(tài)更新和擴(kuò)展要求擺脫由汽車開放系統(tǒng)架構(gòu) (AUTOSAR) 合作伙伴關(guān)系指定的靜態(tài) ECU 映像,轉(zhuǎn)而打造由 AUTOSAR 自適應(yīng)平臺(tái)指定的更類似于通用 IT 系統(tǒng)的動(dòng)態(tài)架構(gòu)1。
其結(jié)果是,軟件質(zhì)量比以往任何時(shí)候都更加重要,但由于代碼復(fù)雜性的爆炸性增長(zhǎng),保證軟件質(zhì)量也更具挑戰(zhàn)性。什么是軟件質(zhì)量?國(guó)際標(biāo)準(zhǔn) ISO/IEC 25010 對(duì)軟件質(zhì)量進(jìn)行了清晰地界定,該標(biāo)準(zhǔn)將其分為可維護(hù)性、可靠性、安全性、可用性、性能效率、可移植性、功能適用性和兼容性。
功能異常的軟件會(huì)對(duì)最終客戶的體驗(yàn)產(chǎn)生重大影響。鑒于這種影響,在產(chǎn)品開發(fā)過程中應(yīng)當(dāng)優(yōu)先考慮軟件的質(zhì)量和安全性。
圖:Siemens 的 Capital Software Designer 和 Software Improvement Group 的 Sigrid平臺(tái)相結(jié)合涵蓋了 ISO 25010 所規(guī)定的整個(gè)軟件質(zhì)量范圍。
從代碼審查到漫長(zhǎng)的質(zhì)量控制周期,再到定性質(zhì)量觀念,這種確保軟件質(zhì)量的傳統(tǒng)方法不能適應(yīng)現(xiàn)代的敏捷開發(fā)方法,無(wú)法提供所需的質(zhì)量。在軟件需求分析和設(shè)計(jì)階段必須及早定義各種軟件所需的質(zhì)量級(jí)別,以連續(xù)地測(cè)量和監(jiān)控實(shí)際實(shí)現(xiàn)的軟件質(zhì)量,并將出現(xiàn)的問題立即反饋給設(shè)計(jì)環(huán)節(jié)。這種方法受益于以下方面:
? 與豐富的嵌入式軟件架構(gòu)規(guī)范和分析緊密集成
? 及早定義和規(guī)范軟件組件所需的質(zhì)量級(jí)別
? 持續(xù)的定量軟件質(zhì)量評(píng)估和指標(biāo)監(jiān)控
? 反饋軟件質(zhì)量問題以幫助架構(gòu)重構(gòu)
Siemens 的 Capit al Software Designer 與 Soft ware Improvement Group 的 Sigrid? for Capital Software Designer 相結(jié)合可涵蓋整個(gè)軟件質(zhì)量范圍。Capital Software Designer 的主要功能在于通過捕獲和分析軟件組件、其接口、可運(yùn)行的功能、預(yù)期時(shí)序?qū)傩?、軟件組件內(nèi)部行為和可變性,建立一步到位的軟件架構(gòu)和軟件組件規(guī)范。Capital Software Designer 還能通過測(cè)試用例設(shè)計(jì)和執(zhí)行軟件單元測(cè)試、基于虛擬仿真的集成測(cè)試以及已實(shí)現(xiàn)軟件的形式驗(yàn)證,在實(shí)現(xiàn)前階段以及實(shí)現(xiàn)后階段解決功能正確性問題。
Sigrid for Capital Software Designer 集成持續(xù)檢查已實(shí)現(xiàn)軟件組件代碼中是否存在相關(guān)的可維護(hù)性問題,并提出改進(jìn)軟件質(zhì)量的措施。
憑借 Capital Software Designer 和 Sigrid 之間的集成,用戶可輕松獲得集成的質(zhì)量視圖,并將 Sigrid 的見解轉(zhuǎn)化為對(duì)架構(gòu)的增強(qiáng)。
從流程的角度來(lái)看,汽車軟件過程改進(jìn)和能力測(cè)定 (A-SPICE)過程模型包括一個(gè)軟件工程流程組,由該組指定軟件開發(fā)的 V 周期。必須將軟件質(zhì)量管理劃分到所有過程步驟中,以確保管理有效而且高效。通過與 Polarion ALM? 軟件集成,Capital Software Designer 可以在從軟件需求捕獲到功能軟件驗(yàn)證的所有流程步驟中保證軟件質(zhì)量。Software Improvement Group 通過在實(shí)現(xiàn)后測(cè)量軟件質(zhì)量并為嵌入式軟件架構(gòu)設(shè)計(jì)提供反饋來(lái)對(duì)流程進(jìn)行補(bǔ)充。
通過豐富的規(guī)范和分析確保架構(gòu)正確
使用 Capital Software Designer 進(jìn)行架構(gòu)規(guī)范和分析
Capital Software Designer 從 AUTOSAR 或系統(tǒng)建模語(yǔ)言(SysML) 格式的上游工程輸入開始為嵌入式軟件設(shè)計(jì)流程提供支持,并讓您能夠捕獲遺留代碼和架構(gòu)資產(chǎn)。
數(shù)據(jù)流程圖是嵌入式應(yīng)用程序軟件架構(gòu)的核心。它們捕獲精確的接口規(guī)范,并將物理單元系統(tǒng)添加到數(shù)據(jù)類型系統(tǒng)。數(shù)據(jù)字典有助于確保整個(gè)項(xiàng)目中數(shù)據(jù)范圍和參數(shù)的一致性。軟件產(chǎn)品線反映了嵌入式軟件級(jí)別的產(chǎn)品可變性。時(shí)序要求捕獲有關(guān)執(zhí)行的時(shí)序規(guī)范,而測(cè)試用例則捕獲屬于嵌入式軟件規(guī)范范疇的驗(yàn)收條件。以前置條件和后置條件形式表示的行為契約定義了軟件組件行為的可接受邊界。
所有這些模型方面都成為嵌入式軟件規(guī)范的一部分,需要在編寫第一行代碼之前進(jìn)行分析,以確保一致性。
該規(guī)范由 Capital Software Designer 生成的代碼外殼模板完成,該模板也稱為代碼框架。然后封裝軟件組件規(guī)格并準(zhǔn)備好將其發(fā)送給供應(yīng)商,無(wú)論他們是內(nèi)部的開發(fā)部門還是外部的承包商公司。
實(shí)現(xiàn)后代碼資產(chǎn)檢查
Capital Software Designer 支持三種在實(shí)現(xiàn)后驗(yàn)證嵌入式軟件的范式,其關(guān)注重點(diǎn)是正確集成和功能正確性:
接口集成確保不同的軟件組件確實(shí)彼此匹配,并重點(diǎn)驗(yàn)證軟件接口。
單元測(cè)試使用表格方便地對(duì)單個(gè)控制單元內(nèi)的軟件組件以及軟件組件組進(jìn)行測(cè)試。每個(gè)單元測(cè)試用例均包含激勵(lì)和預(yù)期結(jié)果,占表格的一行。軟件單元測(cè)試的批次可以通過測(cè)試套件進(jìn)行分組并分批執(zhí)行。
仿真將嵌入式軟件置于其物理環(huán)境的虛擬版本中,在該環(huán)境中,Capital Software Designer 與 Simcenter?Amesim? 軟件和 MathWorks 的 Simulink? 集成作為仿真引擎。Capital Software Designer 擁有來(lái)自模型在環(huán)(MiL) 和軟件在環(huán) (SiL) 范式的測(cè)試裝置,可設(shè)置仿真、執(zhí)行仿真以及收集和顯示測(cè)試結(jié)果。XiL 裝置由激勵(lì)模型、被測(cè)系統(tǒng)、工廠模型和代表通過/失敗標(biāo)準(zhǔn)的監(jiān)視器組成。
形式驗(yàn)證可幫助您規(guī)避有限測(cè)試范圍的局限性。您可以將一流的 C 語(yǔ)言模型檢查方法應(yīng)用于源代碼,以便檢測(cè)契約違規(guī)之類的功能錯(cuò)誤以及數(shù)組索引錯(cuò)誤之類的常規(guī)軟件缺陷。此外,形式化方法使您能夠生成巧妙的測(cè)試用例,以保證分支、位置、條件和修正條件/判定條件覆蓋率 (MC/DC)。
如引言中所述,軟件質(zhì)量包含許多方面:可維護(hù)性及相關(guān)方面、可靠性、安全性、可用性、性能效率和可移植性。
集成軟件質(zhì)量規(guī)范和分析
正確定義軟件質(zhì)量和遵守此質(zhì)量標(biāo)準(zhǔn)是成功開發(fā)軟件項(xiàng)目的關(guān)鍵。Software Improvement Group 的軟件保證平臺(tái) Sigrid 旨在根據(jù)國(guó)際 ISO/IEC 25010 軟件質(zhì)量標(biāo)準(zhǔn)提供一流的軟件質(zhì)量分析。Sigrid 可根據(jù)標(biāo)準(zhǔn)分析源代碼,并將其與 Software Improvement Group 的軟件質(zhì)量基準(zhǔn)進(jìn)行比較。因此能夠立即了解軟件的相對(duì)質(zhì)量。Sigrid隨后會(huì)提供有關(guān)改進(jìn)源代碼以達(dá)到預(yù)期質(zhì)量的指南。
通過集成 Sigrid for Capital Software Developer,Software Improvement Group 可以利用 Sigrid 的固有功能將軟件質(zhì)量分析引入嵌入式軟件的開發(fā)中。利用該集成,架構(gòu)師和測(cè)試人員可以深入了解開發(fā)的質(zhì)量并跟蹤質(zhì)量改進(jìn),直到達(dá)到期望的水平。
此模型中的分?jǐn)?shù)是基于與廣泛 SIG 軟件分析數(shù)據(jù)庫(kù)中其他系統(tǒng)的比較得出的,該數(shù)據(jù)庫(kù)包含 20 年來(lái)收集的軟件質(zhì)量測(cè)量結(jié)果。SIG 的質(zhì)量測(cè)量結(jié)果不僅可以對(duì)系統(tǒng)的軟件質(zhì)量進(jìn)行評(píng)分,還可以告訴您該軟件與市場(chǎng)上其他系統(tǒng)相比的表現(xiàn)情況,這是一種競(jìng)爭(zhēng)優(yōu)勢(shì)。IT 行業(yè)在不斷地發(fā)展和提升,這正是 SIG 每年都要對(duì)模型進(jìn)行重新校準(zhǔn)的原因。質(zhì)量閾值會(huì)根據(jù)實(shí)際行業(yè)平均值來(lái)定義,因此具有更高的相關(guān)性,也更客觀。
專注于產(chǎn)品功能和產(chǎn)品質(zhì)量
客戶和供應(yīng)商經(jīng)常從純粹的功能角度評(píng)估嵌入式軟件。這意味著他們關(guān)注的是該軟件能否按照預(yù)期工作。但是,這種方法僅涵蓋成功項(xiàng)目的諸多方面之一。軟件的設(shè)計(jì)和構(gòu)建方式同樣重要。相比之下,硬件組件在投入使用之前會(huì)經(jīng)過檢查和認(rèn)證。嵌入式軟件為何要被差別對(duì)待?通過衡量嵌入式軟件的技術(shù)質(zhì)量,您可以及早識(shí)別風(fēng)險(xiǎn)并設(shè)法緩解。這些風(fēng)險(xiǎn)包括但不限于安全漏洞、項(xiàng)目延期以及長(zhǎng)期維護(hù)問題。
測(cè)量軟件質(zhì)量始于 ISO/IEC 25010 標(biāo)準(zhǔn)及其實(shí)現(xiàn)。此軟件質(zhì)量國(guó)際標(biāo)準(zhǔn)也適用于嵌入式軟件。該標(biāo)準(zhǔn)定義了軟件質(zhì)量中影響軟件長(zhǎng)期可維護(hù)性的核心方面。使用國(guó)際標(biāo)準(zhǔn)的優(yōu)點(diǎn)是可根據(jù)明確定義的標(biāo)準(zhǔn)化框架評(píng)估任何編程語(yǔ)言。該標(biāo)準(zhǔn)還能確保以客觀且可重復(fù)的方式分析技術(shù)代碼質(zhì)量。因此,ISO/IEC 25010 標(biāo)準(zhǔn)遠(yuǎn)遠(yuǎn)超出了其他標(biāo)準(zhǔn),后者要么關(guān)注文檔和流程而非技術(shù)質(zhì)量,要么不會(huì)評(píng)估架構(gòu)性的質(zhì)量指標(biāo)。
在通過 Sigrid for Capital Software Designer 使用 ISO/IEC25010 標(biāo)準(zhǔn)來(lái)衡量軟件代碼質(zhì)量之后,需要提高所分析系統(tǒng)的質(zhì)量。系統(tǒng)提供了快速的迭代過程,讓您能夠從一開始就構(gòu)建高質(zhì)量的軟件。它僅就真正需要關(guān)注的領(lǐng)域提供有關(guān)在哪里改進(jìn)代碼的非常具體的建議。這意味著無(wú)需查看一長(zhǎng)串的非優(yōu)先違規(guī)事件。
Sigrid for Capital Software Designer 的集成將通過以下
方式幫助開發(fā)人員和架構(gòu)師實(shí)現(xiàn)高質(zhì)量的代碼:
降低代碼復(fù)雜性
如果能減少代碼的復(fù)雜性,您的代碼將更易于分析、修改和測(cè)試。您可以通過保持基本單元(函數(shù))盡量簡(jiǎn)短,并限制每個(gè)函數(shù)包含的邏輯量來(lái)降低其復(fù)雜性。
避免代碼重復(fù)
復(fù)制粘貼代碼的效率低下且容易出錯(cuò),并且經(jīng)常導(dǎo)致需要進(jìn)行后期調(diào)整。此外,復(fù)制還會(huì)增加源代碼的總量,這對(duì)系統(tǒng)的可維護(hù)性產(chǎn)生了進(jìn)一步的負(fù)面影響。通過編寫可重復(fù)使用的通用代碼可以避免重復(fù)。
指導(dǎo)
Siemens 和 Software Improvement Group 提供業(yè)內(nèi)最佳的軟件和指南,幫助控制和改善 Capital Software Designer 所開發(fā)軟件的架構(gòu)質(zhì)量、可維護(hù)性和安全性。
在 SIG 的《構(gòu)建可維護(hù)的軟件》一書中,Software Improvement Group 的顧問討論了開發(fā)人員可直接應(yīng)用的有關(guān)提高軟件質(zhì)量的 10 條規(guī)則。在《組建軟件團(tuán)隊(duì)》中,SIG 顧問為高效團(tuán)隊(duì)的創(chuàng)建提供了指導(dǎo):
“有關(guān)正確制定開發(fā)流程的十條最佳實(shí)踐,以便開發(fā)出始終如一的高質(zhì)量軟件。我們的最佳實(shí)踐不只是為開發(fā)團(tuán)隊(duì)指明正確的方向。這些最佳實(shí)踐還附帶一系列指標(biāo),可幫助團(tuán)隊(duì)一致地執(zhí)行和監(jiān)視?!?/p>
…………未完待續(xù)…………
評(píng)論