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