從工業(yè)自動(dòng)化到醫療設備,從家用電器到車(chē)載娛樂(lè )信息系統,嵌入式系統對于日益增多的現代產(chǎn)品的運行和功能而言至關(guān)重要。在這個(gè)充滿(mǎn)變幻不定的期望以及幾乎所有公司都在盡力追求浮華“酷炫”的用戶(hù)界面的世界中,此類(lèi)嵌入式系統的設計員面臨著(zhù)重重壓力,不僅要不斷滿(mǎn)足適用性要求,還要打造出令人驚嘆的用戶(hù)體驗。盡管編碼很明顯是建造嵌入式系統界面的關(guān)鍵元素,但僅憑優(yōu)秀的編碼本身已遠遠不夠,理解用戶(hù)和選擇合適的開(kāi)發(fā)工具已成為兩項至關(guān)重要的成功因素。![]() 圖1.車(chē)載人機交互界面示例 嵌入式系統用戶(hù)界面的演變 以前,許多嵌入式系統很少需要或不需要與終端用戶(hù)直接關(guān)聯(lián),因此僅具有基本的用戶(hù)界面要求(如有)。但隨著(zhù)嵌入式裝置的性能逐漸增強并成為幾乎所有電子系統的核心組件,它們的功能也應更便于用戶(hù)操作。但自相矛盾的是,這會(huì )使它們的使用難度變得更高,進(jìn)而導致更高的工作量用于避免用戶(hù)面對復雜的操作。增添了諸如觸屏控制、動(dòng)態(tài)內容管理和網(wǎng)絡(luò )訪(fǎng)問(wèn)等功能,用戶(hù)界面設計(一般通過(guò)圖形用戶(hù)界面進(jìn)行)目前很明顯已成為嵌入式系統開(kāi)發(fā)至關(guān)重要的元素。 但由于我們都已習慣了手機和平板電腦的易于使用性,即使是最基本的非消費電子產(chǎn)品設計也要滿(mǎn)足直觀(guān)、清楚、全面、快速和可靠的圖形用戶(hù)界面預期。這就為項目開(kāi)發(fā)團隊帶來(lái)了壓力,不僅是因為圖形用戶(hù)界面的開(kāi)發(fā)在編碼層面變得更復雜(并非始終有合適的“建造板塊”可供許多嵌入式操作系統使用),還由于盡管任何具有優(yōu)質(zhì)顯示器和充分處理能力的系統均可部署美觀(guān)誘人的圖形界面,但如果沒(méi)有合適的功能工具,要創(chuàng )建互動(dòng)式動(dòng)態(tài)圖形用戶(hù)界面卻十分困難。然而另一個(gè)未被充分認識的問(wèn)題是,除合適的工具外,開(kāi)發(fā)最佳的圖形用戶(hù)界面還需要額外的設計技能,這一點(diǎn)軟件工程團隊并非隨時(shí)都具備。 當然,盡管功能是核心要素,但真正將最佳圖形用戶(hù)界面與基本可用的界面區別開(kāi)來(lái)的還是“適用性”。軟件工程師一般能實(shí)施滿(mǎn)足功能規格的用戶(hù)界面,但最佳的用戶(hù)體驗卻只能源自更高級別的思考和理解,即該界面怎樣才能有助于用戶(hù)更出色地完成工作,或者以最簡(jiǎn)單或最快捷或最直觀(guān)的方式取得預期結果。這正是界面編碼與界面設計有所區別的原因,以及在這個(gè)不再使用難學(xué)或難用的設備和系統的世界中,開(kāi)始編碼前要進(jìn)行大量工作的原因。 預編碼考慮事項 任何優(yōu)秀用戶(hù)界面設計的第一階段都應明確用戶(hù)要求,并分析用戶(hù)會(huì )執行必要任務(wù)的方式。因此至關(guān)重要的是要理解用戶(hù)應完成的任務(wù),以及他們會(huì )如何按優(yōu)先順序處理關(guān)鍵任務(wù)。從本質(zhì)上講,這一點(diǎn)適用于所有設計工作,但在醫療或航天系統等任務(wù)和安全關(guān)鍵型應用中尤其顯得重要,因為其中的用戶(hù)界面良好情況的確事關(guān)生死。有鑒于此,觀(guān)察或記錄用戶(hù)處理類(lèi)似任務(wù)的方式十分重要,而且考慮他們在現有系統中可能會(huì )遇到的問(wèn)題和失敗也往往大有裨益。 一旦他們了解了用戶(hù)需要什么功能,設計員就能接著(zhù)考慮界面的外觀(guān)和體驗,以及隨后的工作流程。應與用戶(hù)一起創(chuàng )建和討論腳本及界面原型,并基于其反饋創(chuàng )建新的迭代次數,F代工具可對此提供幫助,不僅可協(xié)助實(shí)現原型的快速開(kāi)發(fā),還能讓該作品用于成品而非一切從頭開(kāi)始。在整個(gè)過(guò)程中,設計員應努力創(chuàng )建一種直觀(guān)、樣式和功能一致且避免凌亂的界面。 除用戶(hù)要求和任務(wù)分析以外,會(huì )影響用戶(hù)界面設計的其他因素從操作環(huán)境(高強度環(huán)境光或像在許多醫療或工業(yè)自動(dòng)化應用中,例如需要戴手套使用觸摸屏以免影響圖標尺寸、顏色和位置),到硬件和軟件平臺中的可移植性需要等不一而足。在此階段還應考慮有必要使用多種語(yǔ)言版本的全球部署要求或網(wǎng)絡(luò )功能整合需求。 ![]() 圖2.VIBXPERT II雙通道FFT數據收集器和信號分析器采用圖形用戶(hù)界面并有效運用色彩。 設計環(huán)境和工具 設計員確定嵌入式用戶(hù)界面的“大圖片”要求后,接下來(lái)就需要軟件工程師將該界面轉變成現實(shí)。此時(shí)的設計環(huán)境及相關(guān)工具的選擇會(huì )導致十分不同的結果,不僅對于成品,而且在項目開(kāi)發(fā)成本和速度方面均會(huì )產(chǎn)生重大差別。 對于圖形用戶(hù)界面設計,設計環(huán)境必須是分開(kāi)的;其中圖形在一側,源代碼在另一側。將此兩者聯(lián)系到一起可成功架接圖形用戶(hù)界面創(chuàng )建中設計與開(kāi)發(fā)的工作,從上述的預編碼問(wèn)題開(kāi)始推進(jìn)。支持設計(美學(xué))和開(kāi)發(fā)(編碼)圖形策略的圖形用戶(hù)界面設計環(huán)境在此方面特別有利。在此類(lèi)環(huán)境中,以圖形方式表示的用戶(hù)控制項同樣會(huì )理想的以?xún)仍诜绞皆谀繕似脚_包含所有所需代碼以激活它們。在工程方面,這意味著(zhù)面向對象的設計策略;通過(guò)選擇元素,其固有的全部特征都將被激活,并且通過(guò)此“內在特征”,使用這些元素建造的任何內容都將確切無(wú)疑地可以訪(fǎng)問(wèn)單獨元素的特征和功能。從表面上看,此類(lèi)策略并不僅限于視覺(jué)元素;使用面向對象的方法開(kāi)發(fā)的任何“組件”都可毫無(wú)疑問(wèn)地繼承其組件的特征,并將這些特征按照等級方式傳遞給使用它的任何其他組件。 這會(huì )對面向對象的編程語(yǔ)言(例如C++)架構起到支撐作用,并可從概念上擴展至支持面向對象的編程的圖形設計環(huán)境。重要的是,面向對象的軟件具有固有的可移植性,因為“組件”包含(通過(guò)遺傳)為確定其功能所需的全部特征,從而降低了面向對象的代碼對硬件的依賴(lài)。在大多數情況下,移植面向對象的軟件只是一種針對不同架構的簡(jiǎn)單重新編譯,至少無(wú)需使用針對具體功能的任何硬件或操作系統。在提供真正的交叉平臺支持的現代框架中(例如Qt),該流程得到了進(jìn)一步簡(jiǎn)化。此類(lèi)可移植性可將新設計的開(kāi)發(fā)開(kāi)支降至最低,并在為嵌入式開(kāi)發(fā)人員提供針對不同硅片價(jià)格點(diǎn)的不同路徑的同時(shí),使遷移現有設計變得更簡(jiǎn)單。例如,Qt可用于為采用低功耗和經(jīng)濟實(shí)惠型處理器的便攜醫療裝置創(chuàng )建界面,相同的代碼可充分運用于較此更大型的器械,例如采用更高功率處理器的CAT或MRI掃描儀。 當今使用的一種處于領(lǐng)先地位的面向對象的程序語(yǔ)言是C++。在普遍應用的C語(yǔ)言基礎上,C++ 是許多希望采用面向對象的方法的工程師的自然進(jìn)展。通過(guò)采用面向對象的策略,將可創(chuàng )建一種開(kāi)發(fā)“框架”,其中的模塊庫包含圖形用戶(hù)界面向導“組件”(或稱(chēng)為“類(lèi)”),例如按鈕、滑動(dòng)條、窗口或標度盤(pán)以及嵌入式設備需要的其他功能性元素,包括聯(lián)網(wǎng)、多媒體支持(視頻編解碼器)和國際化(語(yǔ)言)。這種解釋型語(yǔ)言(例如Java)的優(yōu)勢可造成卓越或中等用戶(hù)體驗之間的差別。 框架功能 對設計師和工程師均特別有利的是,所選的環(huán)境是否能為用戶(hù)界面提供豐富的預制(及自定義)組件,以及從操作系統中提取常用功能的類(lèi)和模塊。理想情況下,這些類(lèi)提供的益處并不僅限于圖形用戶(hù)界面。例如,通過(guò)向XML、網(wǎng)絡(luò )系統、進(jìn)程間通信 (IPC)、帶硬件加速的2D和3D 圖形、線(xiàn)程、SQL、國際化和多媒體提供類(lèi),工程師還可高效訪(fǎng)問(wèn)應用框架,以幫助他們加快關(guān)鍵功能的部署速度,同時(shí)使其得以關(guān)注可為成品增加競爭優(yōu)勢的核心能力。 以Qt應用和用戶(hù)界面框架為例,它已經(jīng)在桌面應用環(huán)境中得到充分運用,并已被用于向嵌入式系統提供相同的益處。這種框架包括開(kāi)發(fā)工具和類(lèi)庫,可讓設計師和程序員共同采用可輕松自定義的組件生成圖形用戶(hù)界面,從所用的調色板到事件的處理方式均可進(jìn)行自定義。 除編寫(xiě)代碼以外,Qt設計環(huán)境還可使用拖放擁護界面創(chuàng )作等工具,實(shí)現圖形元素的快速創(chuàng )作。高性能文本渲染及預渲染字體有助于降低進(jìn)程開(kāi)支,而除圖形外,專(zhuān)用網(wǎng)絡(luò )工具可使設計師建造融合實(shí)時(shí)網(wǎng)絡(luò )內容和服務(wù)的先進(jìn)用戶(hù)界面,從而滿(mǎn)足連接性要求。對于全球部署而言,一款專(zhuān)用的語(yǔ)言家工具可使工程師翻譯和調整應用程序,以適應不同的世界語(yǔ)言,包括支持亞洲語(yǔ)言字符和從右至左閱讀的腳本。 ![]() 圖3.醫療用戶(hù)界面示例 便攜性 Qt獨具特色的重要優(yōu)勢之一是其平臺的建造方式,即用于提供一流的交叉平臺應用程序編程接口(API),可有助于以最小的額外工作量在多個(gè)軟件環(huán)境中部署圖形用戶(hù)界面設計和應用程序。例如,無(wú)需任何重新寫(xiě)入即可將來(lái)自一個(gè)目標裝置(例如,臺式計算機環(huán)境)的源代碼部署到嵌入式操作系統上。這不僅允許從單個(gè)部署項目中進(jìn)行多個(gè)部署,還可進(jìn)一步針對未來(lái)平臺本身的變化驗證代碼,這在當今操作系統本身不斷修正且產(chǎn)品生命周期以月而非年計算的世界中的確是一項重要益處。 |