作者 | 不可說
出品 | 汽車電子與軟件
01 ASPICE介紹
ASPICE是Automotive SPICE的縮寫,是一種用于評估和改進(jìn)汽車軟件開發(fā)過程的國際標(biāo)準(zhǔn);ASPICE定義了一組標(biāo)準(zhǔn)化的軟件開發(fā)過程和最佳實(shí)踐,適用于整個(gè)軟件生命周期,包括需求工程、軟件設(shè)計(jì)、編碼、測試和維護(hù)等各個(gè)領(lǐng)域。
通過規(guī)范化開發(fā)過程,ASPICE有助于提高軟件產(chǎn)品的質(zhì)量和可維護(hù)性,確保軟件符合質(zhì)量要求;同時(shí)對于開發(fā)者來講,ASPICE的實(shí)施要求團(tuán)隊(duì)具備一定的技能和知識,這促進(jìn)了團(tuán)隊(duì)技能和專業(yè)知識的提升,同時(shí)也促進(jìn)了組織內(nèi)的知識和經(jīng)驗(yàn)的共享。
各家OEM與Tire1等可以去花費(fèi)一定成本去做ASPICE評審,以彰顯自家公司對于軟件開發(fā)過程管理和實(shí)施能力水平。
評審的等級是基于ISO/IEC 15504的能力成熟度模型,對汽車軟件開發(fā)過程的成熟度進(jìn)行劃分的。
ASPICE評審等級通常劃分為以下六個(gè)等級,每個(gè)等級代表了不同的水平層次,目前行業(yè)內(nèi)達(dá)到L1~L2的較多:
Level 0 - 未實(shí)施;
Level 1 - 執(zhí)行;提供基本的項(xiàng)目管理和開發(fā)活動(dòng),但缺乏系統(tǒng)的管理;
Level 2 - 管理了過程的執(zhí)行;企業(yè)不僅能夠完成產(chǎn)品研發(fā)相關(guān)工作,還能提前制定嚴(yán)謹(jǐn)和周全的工作計(jì)劃,確保各項(xiàng)目能夠有序進(jìn)行;
Level 3 - 定義了過程的執(zhí)行;軟件開發(fā)過程在組織范圍內(nèi)得到了定義和標(biāo)準(zhǔn)化,符合需求和目標(biāo);
Level 4 - 量化了過程的執(zhí)行;軟件開發(fā)過程的績效進(jìn)行了量化,通過數(shù)據(jù)分析和評估改進(jìn);
Level 5 - 優(yōu)化了過程的執(zhí)行;軟件開發(fā)過程持續(xù)改進(jìn),并與組織的業(yè)務(wù)目標(biāo)和策略相一致。
02 SWE介紹
ASPICE過程參考模型
作為汽車軟件開發(fā)工程師,應(yīng)該了解并盡量遵循SWE過程,不僅有助于提高軟件質(zhì)量,還能夠降低開發(fā)成本、縮短開發(fā)周期,并增強(qiáng)軟件的可維護(hù)性和可擴(kuò)展性。
ASPICE SWE(Software Engineering Process Group,軟件工程過程組)是ASPICE中的一個(gè)關(guān)鍵部分,它涵蓋了軟件開發(fā)的多個(gè)階段和流程。SWE過程組的主要目標(biāo)是確保軟件開發(fā)過程中的各個(gè)階段都遵循最佳實(shí)踐,以提高軟件質(zhì)量、減少開發(fā)風(fēng)險(xiǎn),并滿足汽車行業(yè)的嚴(yán)格要求。
03 SWE.1
軟件需求分析;目的是建立一套與系統(tǒng)需求和系統(tǒng)架構(gòu)一致的結(jié)構(gòu)化和分析的軟件需求。
對應(yīng)這一部分的開發(fā)者,應(yīng)該接收來自SYS.2、SYS.3的輸入,即系統(tǒng)需求和系統(tǒng)架構(gòu)設(shè)計(jì)。
需要完成六項(xiàng)BP(Base Practices 基礎(chǔ)實(shí)踐;ASPICE各項(xiàng)流程均定義了不同的BP,需要開發(fā)者遵守并完成):
-
Specify software requirements. 定義軟件需求
-
Structure software requirements. 結(jié)構(gòu)化軟件需求
-
Analyze software requirements. 分析軟件需求
-
Analyze the impact on the operating environment. 分析需求在操作環(huán)境中的影響
-
Ensure consistency and establish bidirectional traceability. 確保一致性和雙向可追溯性
-
Communicate agreed system requirements and impact on the operating environment. 與利益相關(guān)者對系統(tǒng)需求及其影響溝通達(dá)成一致
舉例說明,以車身控制中外燈系統(tǒng)中的近光燈部分需求點(diǎn)為例,SWE1對應(yīng)描述如下:
SW_REQ-10001 若整車電源模式是ON,車輛應(yīng)在打開近光燈開關(guān)被按下時(shí)打開近光燈;
SW_REQ-10002若整車電源模式是ON,車輛應(yīng)在關(guān)閉所有燈光被按下時(shí)關(guān)閉近光燈;
SW_REQ-10003車輛應(yīng)為用戶提供信息(近光指示燈)以提示近光燈的工作狀態(tài)。
架構(gòu)化需求及環(huán)境模塊影響分析:
04 SWE.2
軟件架構(gòu)設(shè)計(jì);目的是建立一個(gè)與軟件需求一致的且分析過的軟件架構(gòu),包括靜態(tài)和動(dòng)態(tài)方面。
該過程的輸入既是來源于SWE.1。
5個(gè)BP說明如下:
-
Specify static aspects of the software architecture.定義靜態(tài)的軟件架構(gòu)
-
Specify dynamic aspects of the software architecture. 定義動(dòng)態(tài)的軟件架構(gòu)
-
Analyze software architecture. 分析軟件架構(gòu)
-
Ensure consistency and establish bidirectional traceability. 確保一致性并建立雙向可追溯性
-
Communicate agreed software architecture. 溝通商定的系統(tǒng)架構(gòu)
靜態(tài)架構(gòu)示意:
定義軟件模塊的靜態(tài)信息,如接口名、信號名、模塊名等;
繼續(xù)以上述SW_REQ-10001~ SW_REQ-10003需求為例
動(dòng)態(tài)架構(gòu)示意:重點(diǎn)在于模塊的動(dòng)態(tài)交互、時(shí)序等邏輯體現(xiàn)

05 SWE.3
軟件詳細(xì)設(shè)計(jì)和單元構(gòu)建;目的是建立與軟件體系結(jié)構(gòu)一致的軟件詳細(xì)設(shè)計(jì),包括靜態(tài)和動(dòng)態(tài)方面,并構(gòu)建與軟件詳細(xì)設(shè)計(jì)一致的軟件單元。
輸入來源于SWE.1與SWE.2;
同樣包含5個(gè)BP:
-
Specify the static aspects of the detailed design. 定義軟件詳細(xì)配置
-
Specify dynamic aspects of the detailed design. 定義軟件詳細(xì)模塊交互
-
Develop software units. 開發(fā)并配置模塊單元
-
Ensure consistency and establish bidirectional traceability. 確保一致性并建立雙向可追溯性
-
Communicate agreed software detailed design and developed software units. 溝通商定的軟件詳細(xì)設(shè)計(jì)和開發(fā)的軟件單元
這一環(huán)節(jié)是對軟件架構(gòu)設(shè)計(jì)中的SW Component的進(jìn)一步設(shè)計(jì),同樣的也包含了動(dòng)態(tài)詳細(xì)設(shè)計(jì)與靜態(tài)詳細(xì)設(shè)計(jì)兩個(gè)方面;通常需要識別出SWE.2環(huán)節(jié)中設(shè)定的軟件模塊SWC中包含哪些子模塊,不過,在通常的正向開發(fā)過程中,SWE.2執(zhí)行過程已經(jīng)完成這一步分析,如LoBeam SWC中包含了SW unit:電源判斷模塊 與 SW unit:燈光判斷模塊兩個(gè)軟件子模塊;
對SW uint進(jìn)行更詳細(xì)的設(shè)計(jì):定義操作函數(shù)、設(shè)定或理解交互接口;
如果涉及到復(fù)雜的數(shù)據(jù)類型或者算法,也需要在這個(gè)環(huán)節(jié)完成;

06 SWE.4
軟件單元驗(yàn)證;目的是驗(yàn)證軟件單元是否與軟件詳細(xì)設(shè)計(jì)一致,提供證據(jù)證明軟件單元符合軟件詳細(xì)設(shè)計(jì)和非功能軟件需求;
該流程含有5個(gè)BP:
-
Specify software unit verification measures. 規(guī)定軟件單元驗(yàn)證措施
-
Select software unit verification measures. 選擇軟件單元驗(yàn)證措施
-
Verify software units. 驗(yàn)證軟件單元
-
Ensure consistency and establish bidirectional traceability. 確保一致性,建立雙向可追溯性
-
Summarize and communicate results. 總結(jié)并交流結(jié)果
所要驗(yàn)證的對象來自于SWE.3的輸出;
根據(jù)BP,實(shí)際操作流程可以如下:
-
收齊輸入物(被測模型/代碼),即SWE.1需求,與SWE.3代碼/模型
-
搭建測試環(huán)境
在代碼模型里模擬輸入,觀測輸出;如在代碼simulink模型中搭建測試module;
3. 導(dǎo)入測試用例
首先要制定測試用例,以SWE.3中的模塊為例,制定測試case;
4. 執(zhí)行測試
按照測試case執(zhí)行測試代碼+功能代碼,記錄測試結(jié)果;
5. 針對測試結(jié)果及覆蓋度結(jié)果補(bǔ)充測試用例
分析測試結(jié)果,同步的檢查測試用例制定的完整性
6. 回歸測試
反饋測試NG項(xiàng),待代碼修改后回歸測試
完整的流程過程物/輸出物應(yīng)該還包含詳細(xì)的測試計(jì)劃、測試報(bào)告分析等內(nèi)容。
07 SWE.5
軟件組件驗(yàn)證和集成驗(yàn)證;這一環(huán)節(jié)目的是驗(yàn)證軟件組件與軟件架構(gòu)設(shè)計(jì)一致,并集成軟件元素,驗(yàn)證集成的軟件元素與軟件架構(gòu)和軟件詳細(xì)設(shè)計(jì)一致
該流程含有7個(gè)BP:
BP1: Specify software integration verification measures 指定軟件集成驗(yàn)證措施
BP2: Specify verification measures for verifying software component behavior 指定驗(yàn)證軟件組件行為的驗(yàn)證措施
BP3: Select verification measures 選擇驗(yàn)證措施
BP4: Integrate software elements and perform integration verification 集成軟件元素并執(zhí)行集成驗(yàn)證
BP5: Perform software component verification 執(zhí)行軟件組件驗(yàn)證
BP6: Ensure consistency and establish bidirectional traceability 確保一致性并建立雙向可追溯性
BP7: Summarize and communicate results 總結(jié)和交流結(jié)果
SWE.4與SWE.5均是做軟件驗(yàn)證,區(qū)別就是范圍不一樣,SWE.4側(cè)重于單個(gè)軟件單元的驗(yàn)證,確保單元的正確性和質(zhì)量;而SWE.5則關(guān)注于軟件組件的集成和整體系統(tǒng)的測試,確保系統(tǒng)能夠正確運(yùn)行并滿足需求。

SWE.5參考流程
SWE.5的關(guān)鍵輸入即是SWE.2中的輸出物--軟件架構(gòu);軟件集成后,按照SWE.2中SWC模塊逐步進(jìn)行測試即可;測試過程與相關(guān)過程物類型與SWE.4接近,此處不再舉例。
08 SWE.6
軟件驗(yàn)證;確保集成的軟件與軟件需求一致,也叫軟件合格性測試
該流程含有5個(gè)BP:
BP1: Specify verification measures for software verification 規(guī)定軟件驗(yàn)證的驗(yàn)證措施
BP2: Select verification measures 選擇驗(yàn)證措施
BP3: Verify the integrated software 驗(yàn)證集成軟件
BP4: Ensure consistency and establish bidirectional traceability 確保一致性并建立雙向可追溯性。
BP5: Summarize and communicate results 總結(jié)并溝通結(jié)果
該環(huán)節(jié)的輸入主要來源于上級SYS.1中的系統(tǒng)需求與SWE.1中的軟件需求;
SWE.6與SWE.4、SWE.5同屬測試范疇,為了更好的區(qū)分,特意做出如下對比:

SWE.6參考執(zhí)行流程
以SWE.1中軟件需求SW_REQ-10001為例,驗(yàn)證用例和測試結(jié)果記錄表格可參考如下:

09 總結(jié)
遵循ASPICE開發(fā)流程,既要有專業(yè)化知識,還要有標(biāo)準(zhǔn)化流程,專業(yè)化知識包含了專業(yè)的汽車電子技術(shù)、編程能力、專業(yè)工具使用能力等;標(biāo)準(zhǔn)化流程即是各家主機(jī)廠或者供應(yīng)商根據(jù)ASPICE流程制定各家專屬的開發(fā)流程及各個(gè)流程對應(yīng)產(chǎn)出物;
有一點(diǎn)貫穿整個(gè)軟件開發(fā)過程,并且在評審過程中也會(huì)相當(dāng)注重的,就是追溯性;

雙向追溯
1)V模型左邊的需求、設(shè)計(jì)和實(shí)現(xiàn)之間
2)V模型左邊的需求設(shè)計(jì)實(shí)現(xiàn)與V模型右邊的測試規(guī)范(或測試用例)之間
3)測試用例與測試結(jié)果之間
4)變更與變更影響的工作產(chǎn)品之間
因此,除了功能實(shí)現(xiàn),體現(xiàn)追溯性的各環(huán)節(jié)文檔與工具等要做好記錄與管控,實(shí)現(xiàn)符合ASPICE流程的標(biāo)準(zhǔn)化開發(fā)。