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