王 喆
終端用戶開發中的人機交互技術研究
王 喆
終端用戶開發EUD(End-User Development)是一個新興的多學科交叉領域,其目的是幫助普通用戶開發滿足自己需要的軟件,以滿足常規開發時難以預見的用戶需求。人機交互是終端用戶開發中的關鍵技術。本文總結了終端用戶開發中的人機交互技術,并結合實例進行了闡述。實踐證明,理想的終端用戶軟件工具是緩坡系統。
終端用戶開發;人機交互;用戶界面;編程心理學;可視化編程
王喆/遼寧鐵道職業技術學院技術教育中心主任,講師(遼寧錦州121000)。
在常規軟件開發中,開發人員實現系統的所有功能,用戶的需要、目標和情境上下文只能在設計時預定。在投入使用時用戶經常發現系統并不適合他們的任務,這要求開發人員修改現有的系統,反復的修改系統會造成資源的巨大浪費,而且仍然無法解決使用時難以預見的問題。為解決使用時這種難以預見的問題和盡量滿足不同用戶的需要,軟件開發者將很少有人用到的功能都加入到程序中,但仍然無法完全解決使用時的問題。如果每個用戶能增加他們自己想要的功能,程序將變得非常簡單,因此需要發展終端用戶編程。當軟件產品和Internet變得無處不在之時,就更需要發展終端用戶編程。據卡耐基-梅隆大學的Brad Myers預測,到2012年就有9000萬終端用戶開發者,而職業編程者只有300萬,終端用戶開發研究的重要性已經相當明顯。終端用戶開發不僅在個性化計算機應用程序和書寫程序中使用,而且還能在從未看到底層編碼的情況下設計新的計算機程序。
終端用戶是指在日常生活或工作中為滿足某種需要而使用計算機應用軟件的人,但軟件開發并不是他們的主要工作。終端用戶開發從字面上看,是普通用戶開發滿足自己需要的軟件;而從技術角度看,終端用戶開發定義為終端用戶制造應用軟件的方法和技術的集合。EUD是一個學科間問題,它涉及人機交互HCI(Human-Computer Interaction)、軟件工程、認知科學、經濟問題、終端用戶的組織影響等,但從終端用戶及EUD的定義來看,終端用戶開發問題主要是用戶界面與人機交互問題。本文主要闡述EUD中的人機交互技術及其應用。
終端用戶開發人員是普通用戶而不是程序員,他們既沒有時間也不愿意學習,所以終端用戶軟件工具必須在易用和強大之間作合理妥協,需要充分利用人機交互技術并把它應用于終端用戶開發中。
編程的一種定義是將自然語言作為表達方式的心理計劃轉換成計算機可執行代碼的處理過程。編程語言越接近編程者的心理計劃,轉化處理就越容易。傳統的編程語言要求編程者在任務和代碼之間做巨大的轉換。如果計算機語言能夠讓人們以自然的表達方法表達數據和算法,這種轉換的困難將大大減小。理想的編程語言應能夠直接映射到算法設計者或編程者的思維方式。
早在1985年,編程語言研究強調技術方面而忽略了心理學方面。正是從那時起,編程心理學PoP(Psychology of Programming)及相關領域取得了很大進步,但是一直獨立于技術研究,新語言仍然產生于技術需求。如果PoP研究要對新語言的設計產生影響,對技術人員來說,它必須是可見的,并且是易用的形式。而從目前來看,指導語言設計決策的標準一直基于技術目標,忽略了HCI和PoP的技術與標準,而它們本應包含在語言設計的指導和策略中。
HCI領域有很多通用原則和啟發性規則可以應用到編程系統設計中,如保持一致性、盡量簡單、使用用戶語言、預防錯誤、幫助用戶編程。[4]認知元框架(cognitive-dimensions framework)為評估編程系統提供了一種具體的指導,如相容性、擴散性、隱藏依賴、過早提交和可視性,然而這些元不是相互獨立的,一次性優化它們是困難的。
編程環境幫助用戶構建程序的思想有著悠久的歷史。自從Cornell程序合成器出現以來,語法指導的編輯器一直用來幫助排除語法錯誤,當然也有許多改進。如:Visual Basic通過上下文相關的彈出式菜單來插入格式化代碼,但不限制用戶錄入什么;Alice中所有的編程都是通過拖拽語句來完成,并使用彈出式菜單來制定參數,只允許輸入語法正確的語句。
調試也是使編程環境有效易用的關鍵部分。目前,雖然有許多工具可以幫助調試,但是Keheo,Stasko和Taylor的研究表明,這些工具對于終端用戶來講都不是特別有幫助。在1997年4月,ACM提供了一個專版來交流調試的新思想、新工具,但是其中提到的調試工具至今沒有一個得到廣泛使用的。
WYSIWYT(What You See IsWhat You Test)是美國俄勒岡州立大學提出一種終端用戶測試方法,該方法利用可視的方法來讓用戶更清晰了解系統內部測試過程,使用戶更容易找出問題所在。該方法目前應用于基于spreadsheet的終端用戶開發中,允許用戶增量編輯、測試和調試公式。經驗表明,WYSIWY方法對用戶是有幫助的。但是,即使使用了輔助可視化方法,在作了一些測試以后,有時用戶仍然很難想出合適值來揭開這種未測試關系,所以引入了HMT(Helpme test)特征。HMT尋找合適測試值的努力對用戶來說是透明的,也就是說,用戶能看到尋找過的值。經驗表明,行為透明增加了HMT的可理解性。在WYSIWYT中也有斷言(asser-tions)特征,其主要目的是防止輸入錯誤值。經驗表明,在測試時使用斷言比不使用斷言更有效。
從HCI角度,充分考慮終端用戶編程環境的易用性有助于降低用戶的學習成本,減輕學習負擔,減少用戶的調試時間和糾錯時間,使用戶不再把編程看成是負擔,同時也會增加用戶的滿意度。另外,終端用戶編程環境還應能隨著目標世界或需求的變化而作適應性演化,以用戶能理解的方式解釋構建系統中出現的各種問題。
上面這些技術在EUD工具的開發中得到了廣泛的應用。HANDS(Human-centered Advances for Novice Development of Software)是為兒童開發的自然編程系統。HANDS語言接近于兒童語言,兒童學會在學會編程前就能利用HANDS解決問題。此系統充分利用了兒童的思維模型和語言結構。
Alice是快速虛擬現實原型構建系統。它支持交互式3D圖形編程,利用人素(human factor)經驗研究與HCI技術在一定程度上克服了學生學習計算機編程的困難。主要體現在:一是學生直接在界面上拖拽命令,而非依據模糊語法規則來輸入,從而保證編程格式的正確性。二是通過提供動畫、3D虛擬對象使面向對象的編程具體化,通過講故事使得編程容易學習、令人感興趣。
Forms/3是聲明型、基于spreadsheet的可視化編程語言,支持可視化數據抽象特征,采用聲明性方法支持事件相關的編程。在使用Forms/3時,編程者能通過直接操縱的方式建立單元格,然后定義單元格間的各種規則。
Peridot是圖形用戶界面的生成工具,它采用可視化編程、示范編程、約束、推理等技術來幫助普通用戶建立用戶界面。當設計用戶界面時,終端用戶利用可視化編程技術直接建立圖形化用戶界面,Peridot利用示范編程從樣例中推斷出對象間的約束關系并生成相應程序代碼。
Garnet是基于X/11 Lisp的綜合用戶界面開發環境,能幫助用戶制造圖形化、高交互、直接操縱的用戶界面。不需要常規編程就能生成用戶界面的所有方面是Garnet項目的重要目標之一。Garnet還允許用戶畫樣例圖來展示用戶界面的外觀,然后論證用戶界面對終端用戶輸入的響應。示范技術在Garnet的各種高層工具中廣泛使用。
最近,EUD開始應用到可定制和可擴展應用程序中。然而,很少有人剪裁Office產品和best-of-breed應用程序。企業資源計劃ERP(Enterprise Resource Planning)和基于組件的解決方案也不容易使用,只有專家才能利用它建立應用程序。EUD要擺脫這種困境,那么與EUD相關的技術必須取得進步,更易用的編程語言將是解決這些問題的關鍵。
為解決廣泛的問題,C++、Java等通用語言必須具有柔韌性,但柔韌性帶來了復雜性,導致用戶的學習曲線陡直上升。如果EUD要降低學習負擔,需要跨越設計、選擇、協作、使用、理解和信息六種與學習編程相關的障礙。
在用戶界面方面,目前正處于無所不在的Post-WIMP時代,筆式用戶界面、多通道用戶界面、語音界面開始進入應用階段,如果把這些用戶界面技術應用到終端用戶環境中去,必然使編程用戶界面更加易用,從而大幅度改善終端用戶的開發能力。
總之,人機交互技術是當今終端用戶開發的主要支撐,理想的終端用戶軟件工具是緩坡系統,用戶不必先學習大量的新技術、新概念就能開始使用它,利用它開發軟件的難度應隨開發范圍、靈活性呈階梯式增加。
人機交互技術是終端用戶開發的主流關鍵技術。本文首先闡述了當前終端用戶開發中的主要人機交互技術,然后探討了它們在終端用戶軟件工具的應用。實踐證明,它們提高了終端用戶軟件工具的可用性,最后探討了終端用戶開發中面臨的人機交互問題。
[1]Christopher Scaffidi,Mary Shaw,and Brad Myers.An Approach for Categorizing End User Programmers to Guide Software Engineering Research.Proceedings of the ACM Symposium on End-User Software Engineering.Missouri,USA,May 2005,1-5
[2]Cypher,A.Watch What IDo:Programming by Demonstration.The MITPress,Cambridge,1993
[3]Hoc,J.-M.And Nguyen-Xuan,A.,Language Semantics,Mental Models and Analogy,in Psychology of Programming,J.-M.Hoc,et al.,Editors.Academic Press.London.1990,139-156
[4]Pane,JF and Myers,BA.The influence of the psychology of programmingon language design:Project status report,in AF Blackwell and E.Bilotta (eds.)Proceedings of PPIG 12,Cozenza Italy,2000,193-208
[5]Green,T.R.G.and Petre,M.Usability analysis of visual programming environments:a‘cognitive dimensions’framework.Journal of Visual Languages and Computing,1996,7(2):131-174
TP32
A
1671-6531(2013)01-0131-02
郭一鶴