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

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

更強、更可靠的ESD方案

【Simcenter流體和熱解決方案】利用CFD和計算化學軟件,更快地創新出更出色的產品

揭秘云計算架構的分層奧秘
AsteraLabs Scorpio:小封裝中的大變革
如何挑選更可靠的電子負載廠家?
【「嵌入式Hypervisor:架構、原理與應用」閱讀體驗】+全文學習心得
服務網格DPU卸載解決方案

評論