今天的消費者已經(jīng)習慣了快速的創(chuàng)新步伐。移動和網(wǎng)絡應用程序可以快速開發(fā)和更新,因此總有一些新的東西可以吸引消費者 - 一個提高他們期望的現(xiàn)實。不幸的是,對于汽車制造商來說,開發(fā)車載信息娛樂(IVI)系統(tǒng)的傳統(tǒng)方法通常具有開發(fā)時間長的特點。IVI更新可能需要數(shù)月甚至數(shù)年的時間。結(jié)果呢?汽車音響主機開發(fā)昂貴且耗時,在首次進入市場時已經(jīng)過時了。
消費者不為所動,經(jīng)常拒絕這些系統(tǒng),使OEM處于不穩(wěn)定的境地。那么,汽車主機廠如何才能獲得市場認可呢?他們及其一級供應商如何在不依賴不符合汽車安全和安保要求的移動技術(shù)的情況下快速構(gòu)建有吸引力、具有競爭力和安全的信息娛樂系統(tǒng)?一個有效的解決方案是依賴分層軟件架構(gòu)。
通過分層軟件架構(gòu),開發(fā)人員可以創(chuàng)建獨立的組件來處理整個系統(tǒng)功能的特定部分。這些組件通過定義明確且穩(wěn)定的接口進行通信,從而實現(xiàn)高性能實現(xiàn)。這種方法不僅需要理解需求,還需要完全理解用戶體驗(UX)。最成功的軟件項目以UX為主導,允許UX設計指導和規(guī)定實施過程的所有步驟。
用戶體驗優(yōu)先
現(xiàn)代應用程序的一個重要要求是,它們看起來直觀美觀,具有有意義的動畫和簡單、易于識別的圖形和圖標。這使得應用程序易于使用、可識別并吸引消費者。這對于在全球范圍內(nèi)銷售的產(chǎn)品尤其重要,因為用戶界面必須易于翻譯成不同的語言并適應不同的文化。
通常,它們需要在具有各種屏幕尺寸和方向的不同設備上運行。現(xiàn)代 UI 工具包具有應對這些挑戰(zhàn)的能力。帶有CSS,iOS Swift或Qt工具包的HTML5是非常流行的選擇,用于干凈地構(gòu)建解決應用程序外觀和感覺的軟件層。
無論使用哪種工具包,通過UX設計領導汽車項目都可以使這一切成為可能 - 并且比使用更傳統(tǒng)的方法更容易。現(xiàn)代 UX 設計支持直觀、實用的工作流程,允許用戶快速完成他們需要做的事情,而無需通過學習說明手冊來實際“學習”應用程序的工作原理。這通常是通過組織具有簡單層次結(jié)構(gòu)的應用程序、將專家級功能隱藏在訪問級別后面以及從流行的移動電話應用程序的流動方式中吸取教訓來實現(xiàn)的。
此工作流的實現(xiàn)需要一個軟件架構(gòu),該架構(gòu)為最頂層的“門面”提供編程主干。為了使復雜的外觀和感覺變得簡單,必須選擇一種系統(tǒng)的方法,以允許用戶在應用程序中的頁面或項目組之間切換,向后導航,到達“設置”,被打斷,然后輕松找到返回焦點的方式。使用狀態(tài)機架構(gòu)可實現(xiàn)所需的靈活性,同時保持所需的穩(wěn)健性和可測試性。
遵循 UX 優(yōu)先的分層方法
遵循UX優(yōu)先的分層架構(gòu)方法是簡化自動IVI開發(fā)的一種方式,該IVI在美學上吸引消費者,同時提供廣受歡迎的功能。這種類型的方法包括可視化、表示、業(yè)務邏輯和通信層,依賴于組件來簡化流程。
例如,可視化和表示層為用戶提供了一種與應用程序交互的方式。但是仍然有實際功能的實現(xiàn),例如,當用戶界面想要在地址簿中顯示聯(lián)系人列表時,應用程序必須從存儲中檢索此數(shù)據(jù),無論是在數(shù)據(jù)庫中,在連接的電話上,從簡單的文件,網(wǎng)絡連接還是其他地方。
所有應用程序都必須實現(xiàn)某個邏輯塊,即“業(yè)務邏輯”層。例如,農(nóng)業(yè)行業(yè)供應商的算法可以確定是否可以優(yōu)化噴灑在田地上的產(chǎn)品水平以及在哪里可以優(yōu)化。組織此邏輯并將其與表示層和可視化層分離對于應用程序開發(fā)過程的有效性至關(guān)重要。對于旨在提供出色用戶體驗的公司來說,這一層是他們最具差異化潛力的地方。
在開發(fā)過程中,某些需要專用硬件或長時間運行進程的組件必須被“模擬”——取而代之的是模擬功能。可以部署基于接口和插件的系統(tǒng)來實現(xiàn)此目標,其中應用程序的表示層通過一組確定的接口訪問業(yè)務邏輯,從而與這些層中的更改或正在進行的開發(fā)過程隔離。然后,可以在模擬數(shù)據(jù)和模擬的幫助下測試應用程序的可用性。這個過程已被證明可以帶來更具成本效益、更有用、更完整和更好的應用程序。
這就是通信層的用武之地。為了實現(xiàn)上述目標,幾乎所有現(xiàn)代應用程序都以某種方式進行通信。汽車IVI通常使用CANBus層來確定各種車輛子系統(tǒng)的狀態(tài),而醫(yī)療設備則經(jīng)過驗證和驗證的通信庫,例如,可以使機器人手臂在手術(shù)過程中執(zhí)行高精度運動。
此外,幾乎所有應用程序都需要可更新,能夠提供有關(guān)其用于聚合和營銷目的的信息,或者只是需要在線數(shù)據(jù)庫訪問才能完全有用。因此,將這部分應用程序的邏輯分組到通信層中是一個合乎邏輯的選擇,并帶來了許多優(yōu)勢。
無需重寫應用程序即可交換通信通道。安全和安保可以在少數(shù)地方集中和實施,從而最大限度地減少攻擊面。分層實現(xiàn)允許優(yōu)化,使應用程序保持“活動”,而重要進程在后臺發(fā)生。當體系結(jié)構(gòu)構(gòu)建在通信層上時,非阻塞通信模式更容易實現(xiàn)。
4 層架構(gòu)示例
以下是集成計算機解決方案版本的分層方法的概述,顯示了功能明確分離,特別適合所有必須遵守安全法規(guī)的項目。以這種方式進行工程設計,實施干凈且可維護的軟件,非常適合集成和單元測試。
此體系結(jié)構(gòu)的四個獨立層由可測試和可模擬的接口定義。從下層到上層的所有通信都強制實施松散耦合。這保證了后端獨立于前端。所謂的信號可以使用許多通用框架輕松實現(xiàn)。按照慣例,所有頂層都可以通過 API 和接口調(diào)用下面的層。這從上到下創(chuàng)建了緊密耦合,其中確保確定性的通信模式和應用程序邏輯的執(zhí)行非常重要。
以下是各個層的角色:
可視化層負責用戶在屏幕上看到和交互的所有內(nèi)容。它負責顯示所有文本,圖像,圖標,主題,樣式,動畫等。該層可以使用許多不同的技術(shù)來實現(xiàn)。(我們經(jīng)常建議使用Qt框架,在這種情況下,這一層將使用Qt的QtQuick模塊實現(xiàn)。
表示層維護應用程序和用戶界面狀態(tài)。它負責存儲屏幕上顯示的值。例如,在表盤上設置的值存儲在表示層中,但顯示在可視化層中。表示層實現(xiàn)應用程序的工作流以及工作流與后端的所有交互(例如,如果來自后端的錯誤消息到達,表示層邏輯會在屏幕上顯示包含錯誤消息的對話框)。
應用程序邏輯層實現(xiàn)應用程序的業(yè)務邏輯。它負責數(shù)據(jù)存儲、數(shù)據(jù)庫交互、處理來自后端的事件以及與前端的交互。該層處理實現(xiàn)用戶界面所需的“領域知識”。例如,對于當前的應用程序,該層將實現(xiàn)“測試運行”,“查看結(jié)果”,“用戶管理”的業(yè)務邏輯以及軟件需求規(guī)范中定義的幾乎所有其他任務。
通信層實現(xiàn)與硬件設備、網(wǎng)絡或其他系統(tǒng)的通信。硬件合作伙伴通常負責為實際硬件提供接口,并使用共同開發(fā)的 API 實現(xiàn)必要的通信例程。該層特別允許使用可模擬接口,這些接口可以在實際硬件完成并可用之前進行獨立測試。
這種定義明確的體系結(jié)構(gòu)有助于使用可重用的代碼,并且解耦這些層可以實現(xiàn) UX 設計人員、UI 實現(xiàn)、業(yè)務邏輯提供程序和硬件合作伙伴之間的工作分工。它還允許將任務輕松分配給正確的技能組合。總體而言,這些特點大大降低了項目開發(fā)風險。此外,這種分層架構(gòu)方法允許公司更快地構(gòu)建原型,并立即與UX設計師一起迭代工作流程。
為了跟上消費者的需求,汽車制造商必須加快構(gòu)建有吸引力的安全信息娛樂系統(tǒng)的速度。依靠包含可重用代碼的分層軟件架構(gòu),而不是依靠定義不太明確的移動技術(shù),可以大大縮短上市時間,因此汽車制造商可以在創(chuàng)紀錄的時間內(nèi)快速沖過終點線。
審核編輯:郭婷
-
計算機
+關(guān)注
關(guān)注
19文章
7643瀏覽量
90478 -
應用程序
+關(guān)注
關(guān)注
38文章
3329瀏覽量
58882
發(fā)布評論請先 登錄
未來汽車智能配電架構(gòu)的需求與解決方案

提升功率半導體可靠性:推拉力測試機在封裝工藝優(yōu)化中的應用

高可靠架構(gòu) + 智能運維,華為云會議“始終在線”!

更強、更可靠的ESD方案

汽車電氣架構(gòu)中的電源架構(gòu)
【Simcenter流體和熱解決方案】利用CFD和計算化學軟件,更快地創(chuàng)新出更出色的產(chǎn)品

揭秘云計算架構(gòu)的分層奧秘
AsteraLabs Scorpio:小封裝中的大變革
架構(gòu)與設計 常見微服務分層架構(gòu)的區(qū)別和落地實踐

服務網(wǎng)格DPU卸載解決方案

評論