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