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