日韩高清亚洲日韩精品一区二区三区,成熟人妻av无码专区,国产又A又黄又潮娇喘视频,男女猛烈无遮挡免费视频在线观看

SOA如何應用于經(jīng)典的軟件開發(fā)流程(soa如何應用于經(jīng)典的軟件開發(fā)流程中)

Aspice作為車載軟件過程中,關(guān)注于功能場景定義(function definition)、架構(gòu)定義(System Architecture)、系統(tǒng)設(shè)計(System Design)、產(chǎn)品設(shè)計(Product Design)幾個大的方面。

而下一代智能駕駛系統(tǒng)需要面向服務(wù)進行相應的功能設(shè)計和開發(fā),實現(xiàn)軟硬件解耦。這種開發(fā)方式將對整個智能駕駛來說產(chǎn)生顛覆性的影響,比如高性能計算平臺HPC包含多核異構(gòu)處理模式,通過Hypervisor技術(shù)實現(xiàn)對硬件抽象,Inter-Core通信技術(shù)使多篇和單片多核實現(xiàn)信息互通,

計算單元趨于“云計算 中央計算 邊緣計算結(jié)合等多個方面的變革。如上這些設(shè)計原則更多的是基于SOA的架構(gòu)進行的,這就大大增強了平臺的可拓展性,可移植性。

當前更多的主機廠選擇在智能駕駛中采用SOA的開發(fā)模式,這可以更加快速的實現(xiàn)從底層、中間層到應用層的軟件開發(fā),且相對較多的軟件只要接口定義得當,就可以實現(xiàn)軟件本體和功能的遷移,同時可以大大的降低開發(fā)周期和成本。

SOA如何應用于經(jīng)典的軟件開發(fā)流程(soa如何應用于經(jīng)典的軟件開發(fā)流程中)

對于SOA的設(shè)計過程來講,其服務(wù)設(shè)計原則包括重用、抽象、封裝、協(xié)調(diào)在內(nèi)的多個層面。比如對于智能駕駛功能開發(fā)而言,如果需要多次用到某一邏輯元素比如車道線等環(huán)境信息,則應該將車道線檢測模塊創(chuàng)建為重用(比如封裝到Building Block中),則對該車道線檢測源(如不同方位的攝像頭)進行調(diào)整,則由此對車道線檢測產(chǎn)生的任何更新改變都會對后續(xù)級聯(lián)的應用實例產(chǎn)生影響。

而上層應用軟件端對于底層的如何獲取車道線,如何處理的細節(jié)也不需要深究,這就是實現(xiàn)模塊抽象的整個過程。抽象后的邏輯功能需要保證其體系相類似的功能需要集成到一起,比如自動換道功能的控制邏輯可以在自動激活后調(diào)用觸發(fā)換道相關(guān)的規(guī)劃控制模塊進行車控。

因此,觸發(fā)換道的規(guī)劃決策控制邏輯單元可以完全應用于自動換道模塊。系統(tǒng)工程師只需要保證定義的接口適用于觸發(fā)換道已經(jīng)發(fā)布或預定的數(shù)據(jù)流即可。對于自動駕駛域控單元負責人而言,應該保持邏輯系統(tǒng)結(jié)構(gòu)之間的協(xié)調(diào)和重用,包含對公共池中的元素排布,對局部域單元中的邏輯構(gòu)造,跨域之間的資源或模塊調(diào)度等。

本文將以智能駕駛系統(tǒng)開發(fā)設(shè)計實例來講解和分析相應的SOA為基礎(chǔ)下的架構(gòu)設(shè)計和軟件開發(fā)。

面向ASPICE流程的SOA軟件架構(gòu)流程

適用于SOA架構(gòu)的ASPICE軟件開發(fā)過程也是在敏捷開發(fā)的模式下進行的系統(tǒng)開發(fā)流程。從智能駕駛功能開發(fā)層面上講,基于SOA架構(gòu)開發(fā)模式包括了系統(tǒng)功能、系統(tǒng)架構(gòu)、軟件功能、軟件架構(gòu)幾個方面。

其中分別由分別稱之為產(chǎn)品負責人Product Owner、功能負責人Function Owner、架構(gòu)負責人Architect Owner、子模塊負責人Module Owner的幾個角色共同承擔。功能設(shè)計是搭建功能架構(gòu)圖和依據(jù)產(chǎn)品工程師輸入的產(chǎn)品需求定義進行功能分解定義,架構(gòu)負責人則根據(jù)整車架構(gòu)及功能負責人輸入的要素信息制定合適的軟硬件架構(gòu)。

這里需要說明的是很多情況下,功能負責人和架構(gòu)負責人往往是同一個人。模塊負責人則是根據(jù)功能定義編制相應的系統(tǒng)軟硬件模塊、零部件軟硬件模塊以實現(xiàn)上層定義的功能需求。各負責人之間的角色定位將在如下分層流程圖中進行詳細說明。

這里我們僅關(guān)注V模型中的與SOA相關(guān)度較高的設(shè)計開發(fā)部分,測試驗證部分不在本文中進行詳述。

其中,各階段的開發(fā)輸出功能過程如下:

1、項目功能定義

項目功能元素(function element)包含與頂層設(shè)計相關(guān)的不同屬性,例如車輛類型、預期市場、項目功能以及功能發(fā)布計劃等。在實際開發(fā)中,這類輸出一般是產(chǎn)品策劃部門或市場部輸出的整車功能開發(fā)需求或整車裝備需求。

本文將以開發(fā)智能駕駛系統(tǒng)功能中的點對點自動駕駛NOP為例進行詳細的分析說明基于SOA的架構(gòu)設(shè)計是如何應用于自動駕駛系統(tǒng)開發(fā)的。

如下圖舉例中,表示了實現(xiàn)下一代自動駕駛系統(tǒng)NOP場景定義需求。

SOA如何應用于經(jīng)典的軟件開發(fā)流程(soa如何應用于經(jīng)典的軟件開發(fā)流程中)

2、系統(tǒng)架構(gòu)設(shè)計階段(System Architecture Design)

這個階段涉及產(chǎn)品能力定義及模塊定義。用于描述智能汽車中的用戶功能,通過定義相應的函數(shù)來指出使用哪些子系統(tǒng)或者零部件具備相應的產(chǎn)品能力(Product Capabilities,PC)并對其進行相應的實例化來實現(xiàn)此功能。

(1)產(chǎn)品能力PC:

這種稱之為產(chǎn)品能力的模塊主要是用于定義想要實現(xiàn)該功能模塊的傳感器或執(zhí)行器所具備的能力,這也是位于各個時序圖上各個節(jié)點的能力描述。通常,該產(chǎn)品能力的定義主要由產(chǎn)品工程師牽頭,功能所有者、架構(gòu)師和模塊所有者/設(shè)計者的跨職能小組共同決定。

(2)產(chǎn)品能力實例化PC Instance:

產(chǎn)品能力可以被認為是一種高級服務(wù),一些需要在汽車中實現(xiàn)的功能,但它沒有描述應該如何實現(xiàn)。產(chǎn)品能力實例是 PC 的簡單實例化,可以在平臺中擁有 PC 的不同變體。如果需要 PC 的不同變體實例以及在何處使用不同的實例,則模塊所有者負責。

系統(tǒng)架構(gòu)師負責定義系統(tǒng)中定義了產(chǎn)品能力PC的不同類型,并確定哪些 PC 需要由跨職能團隊才能完成。通過將當前定義的 PC 和其他的需要PC 建立依賴關(guān)系,我們可以建模一個完整的功能架構(gòu),該功能層級的架構(gòu)無需研究實際的實現(xiàn)機制。這對于定義需要哪些高級服務(wù) (PC) 以及分配誰(哪個模塊)負責實施每個 PC 非常有幫助。

如上過程一般是通過各種圖表(包含用例圖、序列圖、活動圖等)來完成的。如下圖表示了一種活動圖所示意的系統(tǒng)交互方式。

SOA如何應用于經(jīng)典的軟件開發(fā)流程(soa如何應用于經(jīng)典的軟件開發(fā)流程中)

由于在定義過程中還建立了與功能之間的連接,因此我們可以使用該模塊來規(guī)劃需要實現(xiàn) PC 的順序,以便我們在每個版本的集成階段開發(fā)出正確的功能。

(3)模塊及實例Module Instance:

模塊是整個模型甚至整個組織中非常核心的元素。從SOA的架構(gòu)設(shè)計上講,每個設(shè)計的 PC 都被分配到一個并且只有一個模塊(或者稱之為函數(shù)),該模塊負責實現(xiàn) PC,但在整個平臺生命周期內(nèi)維護和發(fā)展 PC,規(guī)劃 PC 的演進步驟,提供路線圖等。

PC 定義的功能在 Component 中實現(xiàn),模塊實例可以確保在平臺中擁有模塊的不同變體。系統(tǒng)架構(gòu)師負責定義系統(tǒng)中存在哪些模塊,但模塊所有者負責領(lǐng)導模塊內(nèi)的工作,并負責維護和發(fā)展模塊。模塊所有者還負責是否需要模塊的不同變體實例以及在何處使用等。

同時,模塊中的相關(guān)參數(shù)是在對應構(gòu)建的系統(tǒng)功能規(guī)范中實現(xiàn)定義的。

SOA如何應用于經(jīng)典的軟件開發(fā)流程(soa如何應用于經(jīng)典的軟件開發(fā)流程中)

3、軟件架構(gòu)設(shè)計階段

軟件組件Software Component:

組件是模塊的實際設(shè)計和實現(xiàn)。組件可以是軟件或硬件組件,但在SOA的軟件架構(gòu)中,我們將主要處理軟件組件,組件定義了模塊需要哪些接口以及提供哪些接口。其中接口將包括SOA架構(gòu)所要求的服務(wù)、屬性和事件。在硬件組件上,接口可以是螺孔或電線連接器。

軟件包Software Package:

軟件包是將部署到特定運行環(huán)境時的所有軟件組件、清單文件等的集合。

為了實現(xiàn)面向SOA的架構(gòu)設(shè)計和開發(fā)過程,需要重點定義。

4、底層驅(qū)動設(shè)計階段

中央控制單元ECU/處理器Processor/虛擬機Virtual Machine:

一個 ECU 可以由一個或多個處理器組成,一個處理器可以運行一個或多個虛擬機。不必對每個組件進行建模,例如,如果 ECU 僅包含一個處理器,則僅對 ECU 進行建模就足夠了??梢詫⒏鱾€軟件包部署到如上運行時環(huán)境中的任何一個。

網(wǎng)絡(luò)及連接器Network Connector:

定義網(wǎng)絡(luò)以及連接到它的運行時環(huán)境。運行時環(huán)境可以由一個或多個網(wǎng)絡(luò)連接組成,這些網(wǎng)絡(luò)連接可以是 CAN、CAN FD、以太網(wǎng)、VLAN、LIN 等。

嚴格說來,底層驅(qū)動設(shè)計應該屬于軟件架構(gòu)設(shè)計的其中一個部分,面向底層軟件設(shè)計部分,通常與頂層軟件開發(fā)團隊不是一伙人,且具有較大區(qū)別,該開發(fā)過程由頂層軟件設(shè)計人員對底層軟件開發(fā)人員單獨提出需求及建議。

一般的需求包括平臺軟件總體架構(gòu)及對相關(guān)Autosar標準組件和復雜驅(qū)動的調(diào)度框架設(shè)計、開發(fā)和集成要求;內(nèi)存、非易失性存儲、任務(wù)、中斷等等資源和權(quán)限分配;上下電流程和管理的設(shè)計;系統(tǒng)運行狀態(tài)監(jiān)控、異常處理等功能的設(shè)計等方面。

基于SOA架構(gòu)模型設(shè)計分工

基于SOA軟件模型架構(gòu)的設(shè)計過程實際是在研究如何在開發(fā)流程中進行軟硬件解耦。包括構(gòu)建不同的分層來隔離硬件與軟件功能和服務(wù)。例如,將自動駕駛相關(guān)的傳感器和執(zhí)行器邏輯與應用程序邏輯分開,則能夠在中央系統(tǒng)中分配應用程序,同時保持傳感器/執(zhí)行器盡可能的具體。

程序之間可以利用SOA的服務(wù)模式實現(xiàn)軟件包的調(diào)用,傳感器和執(zhí)行器也可以作為組件或模組來進行邊緣采購,性能則是集中管控,中央系統(tǒng)可以將戰(zhàn)略軟件進行分開,這就更容易進行軟件模塊移植和處理。這一過程實際就是在提高上層應用層軟件關(guān)鍵功能的復用性,瞄準軟硬件功能與邏輯控制分離。這里需要說明的是,軟硬件之間的協(xié)調(diào)和調(diào)度是通過中間件來實現(xiàn)。

從如下圖所示,SOA的架構(gòu)從下至上分別底層驅(qū)動功能管理,物理層功能管理,車輛控制服務(wù),面向用戶的應用服務(wù),云端遠程管理。

SOA如何應用于經(jīng)典的軟件開發(fā)流程(soa如何應用于經(jīng)典的軟件開發(fā)流程中)

底層驅(qū)動功能管理:用于實現(xiàn)包含診斷、日志記錄、存儲管理、驅(qū)動管理等相關(guān)功能。

物理層功能管理:主要是設(shè)置I/O接口將原始傳感器數(shù)據(jù)進行輸入,同時也是執(zhí)行到車端的控制單元(如電機、制動卡鉗等);

車輛控制服務(wù):車端控制包含上層ADAS發(fā)送的執(zhí)行指令到控制執(zhí)行器執(zhí)行該指令的相應ECU(如控制電機的VCU、HCU或ESP),該車輛控制服務(wù)是綜合考慮了車身穩(wěn)定性與動力學反饋模型得出的。

應用層服務(wù):該層服務(wù)就是智能駕駛面向用戶級別的頂層開發(fā)功能,主要用于實現(xiàn)包含傳統(tǒng)的智能駕駛功能,比如HWP、NOP、TJP以及ALC等。

云端管理服務(wù):該層服務(wù)主要是面向遠程監(jiān)控,遠程控制,大數(shù)據(jù)存儲等特殊場景。通常該服務(wù)需要基于4G/5G網(wǎng)絡(luò)進行遠程連接。

人機交互管理功能:人機交互管理功能一般是針對不同的車型呈現(xiàn)出不同的模式的,因此,這一塊一般是獨立于SOA的功能架構(gòu)。SOA通常只涉及底層對車輛控制邏輯,對于平臺化車型功能開發(fā)來說,這一塊是無法為用戶所感知的。

而HMI的顯示設(shè)置則是用戶能夠真切感知和控制的,因此,不同車型肯定是有極大的不同之處。因此,從協(xié)議上分析不難看出,SOA內(nèi)部的網(wǎng)絡(luò)架構(gòu)一般是基于以太網(wǎng)為基礎(chǔ)的交互方式,采用Some/ip的協(xié)議進行通信控制。而如果在平臺化車型的開發(fā)過程中,HMI這一塊的通常仍然按照原始CAN/CANFD信號模式的通信協(xié)議進行交互控制。

這么做的原因是,智能駕駛的HMI行為比核心應用功能更容易改變,特別是在不同車型開發(fā)后期通常會選擇不同的顯示和交互方式。同時,由于開發(fā)核心軟件和HMI設(shè)計需要不同的能力技能,因此,將HMI功能與其他應用層軟件功能分離,為了實現(xiàn)這一點,一般需要使用Model-View-Controller,用戶輸入由Controller處理,Controller用于解釋用戶的意圖并操作模型。

SOA服務(wù)實現(xiàn)過程

隨著車載以太網(wǎng)技術(shù)的日益成熟,國內(nèi)大部分OEM都已經(jīng)著手SOA的設(shè)計工作,并將以太網(wǎng)通信矩陣生成ARXML文件,用于項目前期的網(wǎng)絡(luò)行為仿真和后期測試驗證。

對于已經(jīng)完成架構(gòu)搭建的SOA來講,需要將其建模后的成品導入到軟件團隊進行服務(wù)實現(xiàn)。其過程包含:以Some/Ip協(xié)議導入Service ARXML,導入后新增ETH、TCP/IP、Some/IP模塊(BSW工程),建立與Service Handler SWC(應用層)中Port Interface連接,

為所有Service Handler SWC增加可運行時間,定義Windows Service Handler SWC 和Feature SWC到Simulink/Stateflow。通過符合Autosar的ARXML和Simulink進行交互,將由軟件開發(fā)工程師繼續(xù)進行算法設(shè)計并自動生成代碼。

SOA如何應用于經(jīng)典的軟件開發(fā)流程(soa如何應用于經(jīng)典的軟件開發(fā)流程中)

總 結(jié)

本文從SOA軟件架構(gòu)模型的構(gòu)建角度出發(fā)講解了相應實現(xiàn)過程原理,利用了基于模型、集成式的可視化開發(fā)工具PREEvision進行了智能汽車行業(yè)及相關(guān)領(lǐng)域E/E架構(gòu)開發(fā)并支持以太網(wǎng)SOA的架構(gòu)開發(fā)設(shè)計,

本文以介紹SOA架構(gòu)設(shè)計模型為基礎(chǔ)展示了如何在Enterprise Architect中進行SOA建模。同時,以系統(tǒng)工程師的角度說明如何利用Enterprise Architect構(gòu)建SOA系統(tǒng)及軟件架構(gòu)設(shè)計、功能設(shè)計Function Design 和模塊設(shè)計Module Design。對于SOA在整個智能駕駛系統(tǒng)設(shè)計原理有個清晰的把控。

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號
公眾號
在線咨詢
分享本頁
返回頂部