作(zuò)者 | 不(bù)可(kě)說(shuō)
出品 | 汽車(chē)電(diàn)子(zǐ)與軟件(jiàn)
#01 前 言
汽車(chē)軟件(jβ↑ iàn)SWC(Software Com↓♠$ponent)的(de)概念主要(yào)來(lái)源于Au∏∏tosar(Automotive Open Syst§<¶em Architecture)架構,代表著(zhe)汽車(chē)電(d₽&iàn)子(zǐ)控制(zhì)器(qì)中的(de)軟件(jiàn)組件(jiàn)/單★γ€元,用(yòng)以實現(xiàn)某些(xiē)功能&$★(néng)。 &nb←→sp;
在SWC設計(jì)之前,需要(yào)進↑≥β≈行(xíng)一(yī)系列的(de)準備和(hé)規劃工(gōng)作(zuò)↑÷,以确保後續設計(jì)的(de)順利進行(xíng)和(hé)項目的(de)成∑<&功實施。
這(zhè)些(xiē)工(gōng)作(zuò$γα€)主要(yào)包括以下(xià)兩個(gè)方面: σ↔
1. 需求分(fēn)析
明(₽≥míng)确功能(néng)需求:首先,需要(yào)明(míng)确SWC需要(yào)實現(₹€♥xiàn)的(de)具體(tǐ)功能(néng),包括輸入輸出、∞↕π處理(lǐ)邏輯、性能(néng)要(yào)求↕★等。這(zhè)通(tōng)常來(lái)自(§✔zì)于項目工(gōng)程師(shī)或産品經理(l•§¶ǐ)的(de)需求文(wén)檔。劃分(fē≤≤n)功能(néng)模塊:将整體(tǐ)功能(néng)需求細分(fēn)為(w♠↑èi)不(bù)同的(de)功能(néng)模塊,這(zhè)些(≥♣xiē)模塊将對(duì)應不(bù)同的(de)SWC。這(zhè)有(yǒu)助于實現(x§↓iàn)功能(néng)的(de)模塊化(huà)設計(jì),提高(gāo)代碼的(de)♥™可(kě)維護性和(hé)複用(yòng)性。
2. 系統架構設計(jì)
在明(míng)确功能(néng§↔£♥)需求的(de)基礎上(shàng),需要(yào)設計(jì•')整體(tǐ)的(de)系統架構,包括SWC之間(>¶₹jiān)的(de)層次關系和(hé)交互方式。AUTOSAR架構是(shì)一(yī)個(gγ↓è)常用(yòng)的(de)選擇,它提供了(le)标準化(huà♦ )的(de)軟件(jiàn)架構和(hé)接口規範。
下(σ εxià)面會(huì)提供一(yī)種需求分(fēn)♦☆析思路(lù)與流程。
#02 需求分(fēn)析關聯方及流程
&£
參與者:用(yòng)戶
系統:主駕座椅加熱(rè)系統連線表示用(yòng≈₩)戶與用(yòng)例之間(jiān)的(de)關聯 &nb←★sp;
如(rú)果用(yòngπ≠)文(wén)字表述,需要(yào)分(fēn)清晰層次來≠©(lái)說(shuō)明(míng)用(yòng)例,如(rúε✘):
用↑☆(yòng)例名:UC01-主駕座椅加熱(rè)2檔後置狀态:座椅加熱(rè)開(kāi)到(dào)2擋 &nbs☆"p;  →;
如(rú)果需求完善,且實際硬件(j∞↕iàn)支持錯(cuò)誤檢測,可(kě)以補充異常路(lù)徑∞↓ε: ↔δ"∏
異常路(lù)徑←§ :彈窗(chuāng)提示,開(kāi)啓失敗
是(shì)₹γ↑構成産品功能(néng)實現(xiàn)基石的(de)核心概念,它↓↓₩•源自(zì)于精心設計(jì)的(de)架構平台。在這(zhè)個(gè)平台上(shàng),P♠δ C/VC被明(míng)确定義為(wèiλ≥→ )一(yī)系列可(kě)複用(yòng)、可(kě)組合的(de)基本功能(néng)單元,這(α•zhè)些(xiē)單元共同支撐起産品複雜(zá)多(duō)樣的(d₽<e)功能(néng)體(tǐ)系。在産品的(de)功能(néng)設計(jì)階段,開(kā↑α↕i)發團隊需要(yào)深入理(lǐ)解和(hé)挖掘PC/VC所提供的(de)豐富能(n±☆éng)力,作(zuò)為(wèi)構建具體(tǐ)功能(néng)特性的(de)基礎。∏Ω
具體(tǐ)而言,每當面臨新的(deσ£)業(yè)務需求或用(yòng)戶用(yòng)例時(shí),設計(jì)者們會(hu∏€ì)首先審視(shì)并篩選适用(yònλ>€g)的(de)PC/VC單元。這(zhè)些(xiē)P→ C/VC單元就(jiù)像一(yī)塊塊積木(mù),通(tō>&ng)過不(bù)同的(de)組合方式,能(néng)夠靈活、高(gāo)效地(≤•dì)搭建出滿足特定需求的(de)功能(néng)模塊。→€₩此過程要(yào)求設計(jì)者對(duì)PC/VC有(yǒu)深刻的(de)理(lǐ)解Ω←,能(néng)夠準确判斷哪些(xiē)PC/VC能(néng)夠直接 >•應用(yòng),哪些(xiē)需要(yào)通(tōng)過微(wēi)調或擴展來(l ©ái)滿足特定需求。
PC 的→↔(de)設計(jì)需要(yào)遵循如(rú)下(xià)原則:
根據上(shàng)述劃分(f∞α¥≠ēn)的(de)原則,可(kě)以設計(jì)如(rú)下(xià)的(de)PC來(lái)實¶©♥•現(xiàn)上(shàng)面舉例的(de)UC;
System Arch $itect在接收到(dào)Function Owner的(de)PC需求後,會(hu©&ì)組織一(yī)次跨部門(mén)或團隊的(de)會(huì)議(yì),需πφ要(yào)全面評估這(zhè)些(xiē)需求對(duì)系統整體(tǐ)架 ≥構的(de)影(yǐng)響。會(huì)議(yì)"₩參與者可(kě)能(néng)包括硬件(jiàn)γ≥σ"專家(jiā)、軟件(jiàn)開(kāi)發者、項目經理(lǐ)及∏≈↑其他(tā)相(xiàng)關利益方。通(tōng)過集體(tǐ)討(tǎo)論,團隊會(≈↕★λhuì)首先探索是(shì)否可(kě)以利用(yò₩λng)現(xiàn)有(yǒu)系統中的(de)PC資源來(lái)滿足新εεσ功能(néng)的(de)需要(yào)。 &®Ωπnbsp;
如(rú)果經過綜合考量,确定現(xiàn)有(yǒu)PC無法滿足新功能(néng)的(d♣♥←≤e)要(yào)求,或者采用(yòng)現(¶×xiàn)有(yǒu)PC會(huì)導緻不(bù)必要(yào)的(de)複雜(zá)性和(hé₽)成本增加,System Architect會(huì)提出新增PC的(de)提議(★↓yì)。接下(xià)來(lái),System Architect将負責将≤♣ε新增PC的(de)需求細化(huà)為(wèi)具體(tǐ)的(de)規格參數(shù),并依據系✔₹γ統架構的(de)邏輯和(hé)功能(néng)模塊的(de)劃分(fēn),将這(₩↑ zhè)些(xiē)PC資源合理(lǐ)地(dì)分(fēn)& ¶配至最适合的(de)Module。  ≈÷;
在分(fēn)₩•σ©配過程中,System Architect會(huì)确保新增PC能(néng)夠無縫λ←集成到(dào)現(xiàn)有(yǒu)的(de)系統架構中,同時(shí)∞♦♥×保持各模塊間(jiān)的(de)獨立性和(hé)可(kě)擴展性。如(rú)果遇¥到(dào)沒有(yǒu)直接對(duì)應的(de)Module來(lá€★i)容納新增PC的(de)情況,SysteδλγΩm Architect将承擔起創建新Module的(de)責>£任。這(zhè)包括定義新Module的(de)邊界、功能(nén™αg)範圍、與其他(tā)模塊的(de)交互接口以及所需的(de)集成策略,☆×←以确保新Module的(de)引入不(bù←φ&)會(huì)破壞系統的(de)整體(tǐ)穩定性和(h"§¶¶é)性能(néng)。 &n≥≠bsp;  €♦₩♠;
整個(gè)過程中,Sys ≥φ$tem Architect還(hái)會(↕₹§huì)與Function Owner保持緊密溝通(tōng),确€±保新增PC的(de)需求得(de)到(dà≈>λ o)充分(fēn)理(lǐ)解和(hé)滿足,并在必要(yào)時(shí)對(duì)設計(j¥ ←↓ì)方案進行(xíng)調整,直至達成雙方認可(kě)的(de)最優解決$☆>方案。
可(kě)以設計(jì)如(rú)下(xΩ↓ià)的(de)Module來(lái)實現(xiàn)上(shàn₹<∑g)面舉例的(de)PC,在實際開(kāi)發中要(yào)注意P✔λ §C的(de)實現(xiàn)不(bù)能(néng)重複或者遺漏: &n←≠£¶bsp; &nbsΩφ€p;
在詳細規劃與實現(xiàn)過程中,首先需明(míng)确每個(gπ≥è)Module(模塊)的(de)具體(tǐ)功能(n₹"éng)及其所需的(de)輸入輸出接口、處理(lǐ)邏輯、以及預期的(de)性↑≈®÷能(néng)指标。随後,基于這(zhè)些(xiē)詳盡的(d≈φδe)功能(néng)定義,我們可(kě)以将各個(gè)Module逐一(yī)分↕≈↕(fēn)配到(dào)對(duì)應的(de)電(diàn)子(zǐπ§)控制(zhì)系統中去(qù)實現(xiàn),∞↓'€這(zhè)一(yī)過程涉及以下(xià)幾個(gè)關鍵步驟以确保清晰性、具體(tα✘™≈ǐ)性和(hé)條理(lǐ)性: &nbs₩±"δp;
功能(néng)細化(huà)與分(fēn)類:首先,對(duì)每個(gè)Module的(de)功能(néng)進行(xíng)細化(h↑¶uà)分(fēn)析,識别出哪些(xiē)是(shì)數(shù)據處理(lǐ)₽$功能(néng)、哪些(xiē)是(shì)控制(zhì)邏輯功能(néng)、哪些(xi∏∏™✔ē)是(shì)通(tōng)信接口功能(néng)等。根據功能(néng)類型,将Module♦₽劃分(fēn)為(wèi)不(bù)同的(de)類别,如(rú)傳感器(qì)數(sh×↓→βù)據處理(lǐ)模塊、執行(xíng)器(qì)控制&♦©(zhì)模塊、通(tōng)信協議(yì)轉換模塊等 ± 。
系統匹配與選擇:根據已劃分(fēn)的(de)Module類别,評估現(xiàn)有€£↓(yǒu)的(de)電(diàn)子(zǐ)控制(zhì)系統的(de)技(jì)術(shù∞★)特點、處理(lǐ)能(néng)力、接口資源及成本δ ×效益,為(wèi)每個(gè)類别的(de)Module選擇最合适的(de)電↕÷ ∞(diàn)子(zǐ)控制(zhì)系統。這(zhè)一(yī)步驟需要(yào)綜合考慮系統♦± 的(de)可(kě)擴展性、可(kě)維護性、以及與現(xiàn)有(yǒ€§u)系統或設備的(de)兼容性。
接口定義與協議(yì≈&)制(zhì)定:為(wèi)選定的(de)電(diàn)子(zǐ)控制(zλ≠•¥hì)系統與Module之間(jiān)定義清晰的 ✘π(de)接口規範,包括物(wù)理(lǐ)接口(如(rú)GPIO、串口、網口等)、通δδ(tōng)信協議(yì)(如(rú)CAN、♥∏Modbus、Ethernet/IP等)、數(shù)據格式與傳輸速率等。确保Module與控制(zhì)系統之間(jiān)σ 能(néng)夠順暢、高(gāo)效地(dì)進行(xíng)數(shù)據交換和(h&£é)控制(zhì)指令的(de)傳遞。
根據設計(jì)部署經驗及原則,上(¥↕₽shàng)述兩個(gè)Module均可∞™≥•(kě)部署在車(chē)身(shēn)控制(zhì)器(q≥"₹™ì)中;
#03 小(xiǎo) 結
至此£≈↔,我們可(kě)以認為(wèi)已經完成了(le)軟件(jiàn)組件(jiàn)(SWC)設計Ω×✔(jì)前期的(de)核心任務——軟件(jiàn)需求分(fēn)析。這(zhè)一(yī)階段的§γ₩'(de)成功标志(zhì)著(zhe)我們對(duì)系統需求有(yǒu)了(l <♥πe)全面而深入的(de)理(lǐ)解,并能(néng)夠将這(zhè)些(xiē)需≤求轉化(huà)為(wèi)具體(tǐ)的(de•∑♦)軟件(jiàn)功能(néng)要(yào)求。然而,上(shàng)述δ±描述僅代表了(le)一(yī)種理(lǐ)想化(huà)的(de)正向設計(jì)流程概覽,僅提☆₩供了(le)一(yī)個(gè)清晰的(de)起點和(hé)方向。
在實際的(de$£)軟件(jiàn)與系統開(kāi)發過程中,往往會(huì)遇到(dào)遠(yuǎn)比理€♥"(lǐ)論描述更為(wèi)複雜(zá)多(duō)變的(de)場(chǎng)景。'✘☆UC與Module之間(jiān)的(de)追溯關系錯(c♦₹uò)綜複雜(zá),它們之間(jiān)不(bù)僅存在直接的(de)映射,還(hái↔✔)可(kě)能(néng)涉及多(duō)對(duì)多(duō)、層級嵌套或相(xiàngφ₩)互依賴的(de)關系。這(zhè)種複雜(zá)性要(yào)求ε∞×"我們在設計(jì)過程中保持高(gāo)度的(de)靈活性和(hé)嚴謹性,以确×β←★保每一(yī)個(gè)功能(néng)需求都(dōu)能(néng)被準确無誤地(dì™σ∑)映射到(dào)相(xiàng)應的(de)軟件(jiàn)模塊上(σ™shàng),同時(shí)保證模塊間(jiān)的(de☆<)接口清晰、耦合度低(dī),便于後續的(de)維護和(hé)擴展。 為(wèi)了(le)有(yǒu)效應對(duì)這♣©♦(zhè)些(xiē)挑戰,我們可(kě♥✔)以考慮引入一(yī)系列先進的(de)工(gōng)具和(hé)技(jì)術 ∏ ∑(shù)來(lái)輔助設計(jì)管理(lǐ)。例如(rú♦ε∞),利用(yòng)需求管理(lǐ)工(g✘αōng)具來(lái)跟蹤和(hé)管理(lǐ)需求變更,确保所有(yǒu™β)相(xiàng)關方對(duì)需求的(de)理(lǐ)解保持一(yī)緻;采用(yòn÷©g)UML(統一(yī)建模語言)或SysML(系統建模語言)等建模工(gōng)具來(lái)構建系統的(de)邏輯架構和(hé☆λ✔)物(wù)理(lǐ)架構,直觀展示UC與Module之間(jiān)的(de)追溯關系;↕✔$←通(tōng)過版本控制(zhì)系統來(lái)管理(lǐ)設計(jì÷∞)文(wén)檔和(hé)代碼,确保設計(jì)的(de)一(yī)緻性&"•®和(hé)可(kě)追溯性;以及利用(yòn₽✔₽g)自(zì)動化(huà)測試工(gōng)具來(lái)驗證設計(j£¶ì)實現(xiàn)是(shì)否符合需求規格說(shuō)明(míng©•),提高(gāo)軟件(jiàn)質量。不(bù)過工(gōng)具隻是(shì)輔助手∞ ★β段,應權衡利弊,不(bù)應被其複雜(zá)的(d<₹♥e)操作(zuò)所拖累。