{
\"code\": 200,
\"title\": \"\",
\"content\": \"人機互動介麵作為一個獨立的、重要的研究領域受到了世界各計算機廠家的關注。併成為90年代計算機行業的又一競爭領域。從計算機技術的發展過程來看,人機互動介麵技術還引導了相關軟硬體技術的發展,是新一代計算機係統取得成功的保證。80年代已來,計算機的軟件和硬體技術取得了較大的發展,同時,計算機的使用者也從計算機專家迅速擴大到了廣大未受過專門訓練的普通用戶,由此極大地提高了用戶介麵在係統設計和軟件開發中的重要性,強烈地刺激了人機互動介麵的進步。人-計算機的互動作用是通過用戶介麵來實現的.\\n\\n在計算機技術發展的初期,由於係統的運行速度慢、價格昂貴並且可靠性差,不可能進行互動使用,用戶必須調整自己的行為去適應機器的要求。因此,與計算機使用中的其它問題相比,介麵隻是一個小問題。隨著計算機效能的提高,係統能夠用一部分資源來處理人-計算機介麵,用戶介麵設計開始引起人們的注意。\\n\\n用戶介麵的發展對計算機係統整體效能的提高所具有的重要性已經得到了人們的高度重視,與此同時,圍繞人機建模業已形成了計算機產業又一新的競爭領域。在美國人機建模研究在資訊技術中被列為與軟件和計算機並列的六項國家關鍵技術之一,並被認為“對於計算機工業有著突出的重要性,對其它工業也是很重要的”。美國國防關鍵技術計劃不僅把人機互動介麵列為軟件技術發展的重要內容之一,而且還專門增加了與軟件技術並列的人-係統介麵一項內容。日本也提出了FPIEND21計劃(FuturePersonalizedInformationEnviromentDevelop-ment),其目標就是要開發21世界的計算機介麵。\\n\\n我國在人機介麵方麵的設計與國際同類研究相比還存在較大差距。目前的研究僅僅著重於支援介麵的軟件和硬體,對介麵本身還缺少深入的研究,用戶介麵的設計還冇有成為軟件設計中獨立的一部分,也缺少新的人機介麵設計技術。而另一方麵,計算機科學的發展和計算機的普及應用卻對人機介麵的研究提出了越來越高的要求。\\n\\n進入九十年代計算機軟件開發已進入了以開發軟件工具和建立軟件開發環境為目標的時代。作為支援人機互動軟件開發環境的用戶介麵管理係統UIMS正日益受到人們的關注和重視。今後UIMS將有可能進入各類實際軟件開發環境,成為繼DBMS之後的又一個重要的軟件開發環境和工具。\\n\\n2、關鍵技術\\n\\n軟件介麵是人-機之間的資訊介麵,從某種意義上講,它比硬體和工作環境更為重要。優化軟件介麵就是要合理設計和管理人-機對話的結構。對話的結構設計一般可分為初始設計、形式評價和總結評價三個階段。\\n\\n2.1人類工程學\\n\\n人類工程學是一門應用廣泛的綜合性邊緣學科,作為一門獨立的學科,人類工程學在我國的曆史還很短,我國的心理學家、人類學家、勞動保護和醫學工作者、機械工程師正結合自己的領域,開展這方麵的工作。\\n\\n(1)人類工程學中人的特性\\n\\n人在係統中是主體,任何先進的機器都是由人設計的,由人操縱的,所以係統工作效率的優劣、安全性,很大程度上決定於人的工作狀況。人類工程學中要研究人對外界資訊的感知特性,人對資訊的加工、處理及思維能力,人的學習、記憶特性,人的自身節率等等。\\n\\n1)人的感覺功能\\n\\na.視覺人們通過視覺器官認識外界事物,由大腦產生正確的思考,視覺對勞動的產量、質量及安全均有影響,還影響到勞動者的心理活動過程。\\n\\nb.聽覺人耳對聲音響度的感覺主要是和聲強有關。人接受聽覺資訊要比接受視覺資訊快。據測定,人的聽覺反應時間約為120-150ms,較光資訊快30-50ms。聽覺信號常用於報警。\\n\\nc.觸覺等人們通過觸覺器官接受物體的空間位置、形狀、表麵情況和原材料等資訊。\\n\\n2)人的資訊處理及輸出特性\\n\\na.人的反應時間操作者在操縱、監視設備時,從出現信號刺激到采取相應動作,存在一個反應時間。人體的運動係統反應速度比較緩慢,神經肌肉接頭的反應延遲時間為0.1-0.2s.\\n\\nb.人的資訊傳輸資訊在神經係統中的傳輸,是由不同的感覺通道,傳輸不同的資訊,如視覺係統的單個神經纖維能傳輸不同的顏色資訊,資訊的傳輸速率是一個重要的物理量。\\n\\n3)人機分工\\n\\n設計人機互動介麵,進行人機分工時,要充分發揮人機的各自特點。可采用最大最小原則,即人承擔的工作量應儘量少或最少,機器承擔的工作量應最大,在最大限度利用機器的同時,充分發揮人的積極因素。人機結合併充分注意人的主導地位,將有效地保證係統的可靠性和壽命。\\n\\n(2)計算機輔助設計和計算機圖形學中的人的因素\\n\\n利用CAD技術並結合CAM技術可以大大縮短產品的設計-製造週期,CAD已經成為製造業中求生存的一種主要手段。CAD中主要的人的因素問題有:CAD硬體中的圖形終端、輸入裝置和菜單設計,CAD係統中人的資訊加工能力,如有關CAD顯示的視覺、CAD中的空間推理、CAD中的問題解決及運動反應等過程;CAD係統中人機功能分配;CAD係統中的工作設計、人員選拔和訓練等。\\n\\n(3)計算機輔助製造中的人的因素\\n\\nCAM可被廣義地認為是在製造業的管理、控製和運行中有效地應用計算機的一項新技術,其最終目標是要建成CIMS,它將是一項在21世紀最具競爭力的技術。認知工程學在CAM領域的主要研究內容:自動化與工作分片、CAM中的人的決策和自動化製造中人的監控。\\n\\n2.2人機介麵設計原則\\n\\n(1)媒體最佳組合\\n\\n媒體介麵的成功並不在於僅向用戶提供豐富的媒體,而應在瞭解媒體的功能、選擇方法的基礎上,在相關理論的指導下,在語義層上將各種媒體有機地結合起來以更有效地傳遞資訊。\\n\\n(2)介麵分析與規範\\n\\n在人機介麵設計中,首先應進行介麵設計分析,即收集有關用戶及其應用環境資訊以後,進行用戶特性分析,用戶任務分析,記錄用戶有關係統的概念、術語,這項工作可與應用係統分析結合進行。分析任務中對介麵設計要有介麵規範說明,選擇介麵設計類型,並確定設計的主要組成部分。\\n\\n由於人機介麵是為適合人的需要而建立的,所以要清楚使用該介麵用戶的類型,要瞭解用戶使用係統的頻率、用途及對用戶的綜合知識和智力的測試,這些均是用戶設計中的內容。在此基礎上產生任務規範說明,進行任務設計。任務設計的目的在於重新組織任務規範說明以產生一個更有邏輯性的編排。設計應精心地分彆給出人與計算機的活動,使設計者較好地理解在設計一個介麵時所遇到的問題,這樣形成係統操作手冊、訓練檔案和用戶指南的基礎。在考慮用戶工作方式及係統環境和支援等因素下,精心任務設計。\\n\\n任務確定之後,要決定介麵類型。目前有多種人機介麵設計類型,各有不同的品質和效能,因此設計者要瞭解每種類型的優點和限製。大多數介麵使用一種以上的設計類型。下表列出了常用介麵類型的優缺點。表1\\n\\n3.圖標:用圖像代表功能\\n\\n非常容易學,易用(鼠標操作〕,語言獨立性強,編程較容易占具螢幕可觀的空間,表達抽象概念描述力差,需文字解釋,需圖形硬體和軟件支援初學者。有形成國際會話語言的趨勢\\n\\n4.表格填寫使用速度快、易用、容易掌握僅適合於數據輸入,不高級數據錄入中用得最廣泛的會話類型,用於顯示和恢複介麵,編輯初始介麵\\n\\n5.命令語言(單字命令到複雜語法的命令〕使用功能強,靈活,是介麵可控製係統的高級方法,對螢幕空間使用十分經濟學習困難(學習代碼和語言條款〕,用戶需要係統功能的某些知識,使用困難,研究該介麵工作量大會使用複雜命令介麵的熟練用戶,用戶發起和控製的對話\\n\\n6.自然語言自然的交流難於編程實現,語言識彆困難,會出現二義性,輸入慢在有限製的問題中使用,可用於用戶發出的會話\\n\\n2.3菜單螢幕設計的一些準則\\n\\n(1)按任務語義來組織菜單(單一菜單、線狀序列、樹狀結構、非循環和循環的網絡結構〕;\\n\\n(2)廣而淺的菜單樹優先於窄而淺的菜單樹;\\n\\n(3)用圖形、數字或標題來顯示位置;\\n\\n(4)用選項名稱來作樹的標題;\\n\\n(5)根據含義將選項分組;\\n\\n(6)根據含義將選項排序;\\n\\n(7)選項力求簡短,以關鍵詞開始;\\n\\n(8)語法、佈局、用詞前後一致;\\n\\n(9)允許超前鍵入、超前跳轉或其它捷徑;\\n\\n(10)允許跳轉到前層的菜單和主菜單;\\n\\n(11)考慮聯機求助、新穎選擇機製、響應時間、顯示速率和螢幕尺寸。\\n\\n2.4錯誤處理\\n\\n在一個互動係統中,由於操作者的個人原因,經常會產生誤操作,包括鍵入錯誤、數據輸入錯誤等。同樣,在用戶編製的程式或設備連接時也可能會有錯誤。一個好的互動係統不能要求操作者不犯錯誤,但應該具有較強的處置各種錯誤的能力,除了在軟件設計時注意各種容錯機製、魯棒性技術及各種診斷措施以外,在計算機用戶介麵上應提供各種避免用戶操作錯誤的提示及各種錯誤資訊的分析。\\n\\n(1)錯誤輸入\\n\\n1)數據錄入錯誤\\n\\n在各類數據處理軟件中,數據錄入的錯誤是經常發生的薄弱環節,為了減少用戶在錄入時的錯誤,應采用一係列措施。\\n\\na.對用戶輸入在螢幕上予以“回答”;\\n\\nb.對用戶在螢幕上的互動輸入,應提供暫存檔案以記錄全部輸入,以便全部數據輸入完後或臨時需要時進行檢查和確認;\\n\\nc.對用戶各種輸入應提供檢查;\\n\\nd.對於數據庫中的重要數據,必須進行嚴格的複查覈對。\\n\\n2)控製輸入\\n\\n控製輸入的內容與用戶介麵的風格、控製方式有關。在有的菜單選項用戶介麵上,往往提供一組編號菜單項,用戶輸入一個號碼後,立即可進入該號指定的項目。采用這種方法雖然可以減少按鍵,提供操作效率,但在誤按號碼後將會引起錯誤。\\n\\na.對錯誤命令應提供反饋資訊,告訴用戶正確的命令格式及參數;\\n\\nb.對檔案操作的命令隻對該檔案的副本進行,以便在必要時仍可從檔案的原稿中恢複;\\n\\nc.對一些影響重大的命令需要由用戶再次確認;\\n\\nd.建立命令的曆史檔案,這是對係統進行恢複的最有效措施,它對於不同開發階段的錯誤情況獲取都是有用的。\\n\\n3)其它錯誤\\n\\n在一個互動係統中,各個部分都可能出現錯誤,包括硬體錯誤和軟件錯誤。在設計係統時,應允許采用不同廠商的設備,且設備不同也不應引起錯誤,這就是設備的獨立性問題。\\n\\n4)錯誤資訊\\n\\n如何向用戶提供確切的錯誤資訊是係統設計中的一個重要問題。過去有許多用戶不愛使用某些係統,並不是因為其功能太弱,而是因為遇到錯誤時提示用戶的資訊太少。一個好的用戶介麵,不僅應該具有容錯、檢錯的能力,而且在錯誤出現後,應讓用戶清楚瞭解其錯誤的性質和位置,以便由用戶克服其錯誤,下麵是有關錯誤資訊的設計原則:\\n\\na.儘可能使錯誤資訊準確和定位;\\n\\nb.應指明用戶針對這類錯誤應如何做;\\n\\nc.語言應簡潔、明確,儘可能用通俗易懂的詞彙;\\n\\nd.避免使用指責性語言,語氣儘可能友善,但應給以告誡;\\n\\ne.對於錯誤資訊應該根據係統的實際情況進行分層提示;\\n\\nf.應保持錯誤資訊的風格一致,包括資訊出現的位置,是否用對話框或視窗,術語及縮寫等;\\n\\ng.儘可能采用可視的圖形資訊及音響效果。\\n\\n2.5人機介麵設計的評價\\n\\n評價是人機介麵設計的重要組成部分,但往往被設計者忽視。通常評價在最後產品上進行,但若在係統設計初期就進行,或對原型進行評價,就能及早發現設計缺陷,避免人力、物力的浪費。\\n\\n對介麵設計的質量評價通常可用四項基本要求衡量:\\n\\n(1)介麵設計是否有利於用戶目標的完成?\\n\\n(2)介麵學習和使用是否容易?\\n\\n(3)介麵使用效率如何?\\n\\n(4)設計的潛在問題有那些?\\n\\n而對介麵的總體設計和具體功能塊設計,則可用上麵提到的各類介麵設計準則根據其應用對象進行綜合測試。具體要求的介麵品質,可照以下幾項參考:\\n\\n(1)適應性。衡量介麵在幫助用戶完成一項或多項任務時的滿意程度。\\n\\n(2)有效性。度量指標錯誤率、任務完成時間、係統各設備使用率等。\\n\\n(3)易學習性。從係統開始使用一段時間後,錯誤率下降的情況、完成任務時間減少的情況、正確調用設備及命令的情況以及用戶知識增加的情況來評測。\\n\\n(4)係統設備及功能使用麵。若有些設備或功能任何用戶都未用過,則可能設計有誤。\\n\\n(5)用戶滿意程度。以用戶滿意程度、發現問題多少及使用興趣來衡量。\\n\\n介麵評估采用的方法已由傳統的知覺經驗的方法,逐漸轉為科學的係統的方法進行。傳統經驗方法有如下幾種:\\n\\n(1)實驗方法。在確定了實驗總目標及所要驗證的假設條件後,設計最可靠的方法是隨機和重複測試。\\n\\n(2)監測方法。即觀察用戶行為。觀察方法有多種,如直接監測,錄像監測,係統監測等。\\n\\n(3)調查方法。這種方法可為評價提供重要數據,在介麵數據的任何階段均可使用。調查方法可以采用調查表(問卷〕或麵談方式。調查收集到的大多是主觀數據,主要瞭解用戶使用該介麵的情況,對介麵的態度和意見。\\n\\n3、相關產品\\n\\n.1X視窗係統\\n\\n視窗係統是控製位圖顯示設備與輸入設備的係統軟件。它所管理的資源有螢幕、視窗、象素映象(pixmap)、色彩表、字體、光標、圖形資源及輸入設備。\\n\\n視窗係統向用戶提供下列介麵:\\n\\n1)應用介麵\\n\\n2)編程介麵\\n\\n3)視窗管理介麵\\n\\n美國國家標準技術委員會於1990年5月把視窗係統X.11.3版本正式釋出為美國國家標準檔案(編號為FIPS-PUB-158)。該標準共包括4個內容:\\n\\n(1)X協議(Xprotocol)\\n\\nX視窗係統實際上由核心協議所定義。協議包括四個方麵:請求(request)、回答(reply)、出錯(error)及事件(event)。X協議共有120個請求,可擴充至256個。整個協議描述客戶與服務器進程通訊的語法結構與語義。\\n\\n(2〕X庫函數(Xlib)\\n\\nX庫函數是X視窗係統的C語言編程介麵,是嚮應用程式員提供的低級編程介麵。X庫把參數封裝為協議請求,利用IPC機製發射給服務器進程。X庫共有320多個函數,可分為係統功能(連接的建立與撤除等)、視窗功能(視窗屬性與操作)、通訊功能(圖原、通訊屬性、正文字體、區域、圖像等)、色彩功能(色彩表操作)、事件功能(輸入事件及視窗事件處理)及其它功能(原子、實用函數)。\\n\\n(3)X工具箱本征函數(Xtoolkitintrinsics)X工具箱是在X庫上的高級編程介麵。它向用戶提供菜單、對話框、圖符等各種圖形介麵元素的編程手段。X工具箱包含兩部分:Widget集及Intrinsics函數集。前者是具有一定風格及外觀的圖形介麵元素對象集,它與特定風格有關;後者是利用這些對象編程時的通用函數,共有270個函數,包括介麵函數與應用程式聯絡的“回調函數”等。\\n\\n(4)字體標準格式(BDF,BitmapDistributedFormat)這是X視窗係統所提供各種字體的標準位圖(bitmap)的組成規定。\\n\\nX視窗係統的一個重要設計思想是提供實現各種介麵的機製,而不是策略。由於上述四部分隻規定了應用程式員的編程介麵,因而不同廠商或用戶可在它們之上實現各種視窗管理程式及介麵外觀。由此,X視窗係統成為工作站各用戶介麵的基礎、事實上的工業標準。\\n\\n視窗是X視窗係統的一個重要資源,是螢幕上的一個矩形區域(透明視窗無此區域邊框〕。它實質上是位圖輸出設備及輸入設備的一個抽象,有自己的座標及感興趣的事件等。X視窗係統有一個根視窗覆蓋整個螢幕,應用程式的視窗均為根視窗的子視窗。這樣所有視窗構成了樹形結構,子視窗大小不能超出父視窗。X視窗係統中視窗的樹形結構為應用程式的多級抽象提供了清晰的概念。\\n\\nX視窗係統的運行環境應該是在具有進程間通訊機製的操作係統上工作,例如有TCP\\/IP(支援Socket機製〕網絡協議的UNIX操作係統上工作。此時,應在後台運行服務器進程(XServer)、視窗管理程式(uwm)及終端模擬程式(Xterm)。有以上三個進程,就可以在視窗係統下執行各種命令,用鼠標或鍵盤管理視窗,運行各種應用程式。X視窗提供了極強的顯示管理及輸入設備的管理功能,是工作站上CAD軟件及其用戶介麵的主要支撐環境,已成為工作站視窗係統事實上的工業標準。X視窗係統也要求可觀的計算機資源。\\n\\n3.2OSF\\/Motif和OPENLOOK\\n\\nX視窗係統提供了一係列構造用戶介麵的機製,包含協議、庫函數、工具箱本征函數及字體格式等。但它並不提供某種具體的用戶介麵風格。在X視窗係統之上已經構造了具有不同用戶介麵風格的高級介麵對象集,通常稱為WidgetSet。它們各有不同的視感(look&feel),其中對象可以包括視窗、菜單、對話框、按鈕、圖符、邊框等。一種風格的某種WidgetSet為用戶提供了一種外觀統一的圖形用戶介麵,也為應用程式員提供了麵向對象的應用編程介麵(API〕。OSF\\/Motif是由開放軟件基金會(OSF〕1989年釋出的圖形用戶介麵規範。它以UNIX操作係統用X視窗係統為軟件平台,吸取了IBMOS\\/2的PresentationManager,MS-Dos及HPnewware介麵風格的特點,提供了風格(style)、視窗管理、工具箱、用戶介麵語言(UIL〕等一係列機製及規定。OSF\\/Motif已在多種硬體平台及操作係統上工作。OPENLOOK是由UNIX國際1988年釋出的圖形用戶介麵規範,它已作為UNIX係統第四、第五版本釋出的重要組成部分正式使用。它也在許多工作站上實現並推廣使用。\\n\\n3.3Windows\\n\\n1986年Microsoft公司為IBM個人計算機的DOS環境開放了Windows視窗係統,後來經過大量改進,於1990年正式釋出了Windows3.0版本。由於該視窗係統在儲存管理上突破了原來DOS640KB的限製,從而具有強的功能,為在DOS環境提供了可實用的圖形用戶介麵。MS-Windows的出現,使得DOS環境下的大量CAD\\/CAM軟件有了十分強的視窗環境支援,從而使得CAD\\/CAM的用戶介麵更加方便、一致。MS-Windows已成為在DOS環境圖形用戶介麵的主要產品。Windows視窗係統是基於核心的視窗係統(Windows95,Windows98,WindowsNT),其核心功能放在操作係統內。由於Windows視窗環境具有風格一致的操作介麵,在Windows環境下開發的應用軟件具有同樣的介麵風格因而易學易用。這種通用的操作係統為介麵各種對象的設計提供了過程化設計的平台和工具箱,從而使介麵設計實現容易。\\n\\n4、典型應用(案例分析)\\n\\n4.1介麵工具係統(FITOOL)開發與實現\\n\\n(1)研究背景:\\n\\n計算機用戶介麵是計算機係統的重要組成部分,它直接關係到整個計算機係統的可使用性和效率。經驗表明開發高質量的用戶介麵,需花費大量的人力物力,且開發週期較長。\\n\\n傳統的用戶介麵的設計與描述是基於"嵌入"方式進行的,應用程式設計人員在設計軟件時,是按功能及介麵兩方麵要求混合編寫用戶介麵和應用功能兩部分程式。這種開發方式忽略了用戶介麵的個性,使程式複雜化,可維護性差。當前計算機軟件的開發已不再是將用戶介麵和應用功能兩部分混合編寫了。而是越來越傾向於二者分彆編寫,單獨編譯,再連接成可執行檔案。這是因為對不同的應用係統,用戶介麵部分在邏輯上和處理方法上具有高度的相似性。而讓軟件開發人員花費大量的時間與精力去開發一個很類似又不具有通用性的用戶介麵程式顯然是不可取的。因此開發能夠用規範化和規模化生產的方法自動生成一致性的用戶介麵的工具是用戶介麵研究的內容。\\n\\n用戶介麵管理係統(UIMS)就是一種開發用戶介麵的軟件工具。UIMS支援用戶介麵的表示、設計、實現、原型、執行、評估和維護。UIMS能夠為整個環境提供一個友好一致的人機介麵,使用戶能以極其友好的方式幾乎能隨心所欲地使用此環境進行軟件開發,即使得此環境具有友好的互動介質、友好的介麵方式、友好的螢幕式樣。\\n\\n(2)UIMS的表示方法:\\n\\nUIMS的表示方法主要包含人機介麵的規格說明和它與人文因素、應用程式及其數據結構的聯絡等。UIMS邏輯結構模型中幾個主要層次的表示方法,其中除了對話層的表示方法比較成熟、研究成果豐富外,其它層次的表示方法尚有待發展。\\n\\n1)外形層的表示方法\\n\\n外形層的表示方法主要涉及用戶輸入輸出資訊的處理。需要解決如下問題:\\n\\na.如何處理和表示圖形的輸入輸出。\\n\\nb.如何適應多媒體的需要,將輸入輸出資訊擴充到視頻、語音、動畫、模擬等。\\n\\nc.如何適應智慧人機介麵規格說明的需要,即資訊流的內外對映中如何包含簡單的基於人機介麵設計規格的決策,使一對一對映的關係擴充到多對一、多對多的對映關係。\\n\\n2)對話層的表示方法:\\n\\n對話層的表示方法比較多,GreenM(1986),MyersBA(1989)等曾先後對對話層的表示方法進行瞭如下分類:\\n\\na.基於語言的表示方法\\n\\n即介麵設計者用一種專門的人機介麵描述語言UIDL來說明介麵。這種語言可能有多種形式:菜單網絡、狀態轉換圖、上下文無關文法、事件語言、麵嚮物件語言等。語言的主要任務是說明介麵對話層的語法,即輸入輸出動作的合法順序。\\n\\n菜單網絡:是最簡單的表示方法,即支援菜單的層次或網絡結構。\\n\\n狀態轉換圖:一個狀態轉換網絡是由一組狀態組成。在由每個狀態出發的邊上標誌出一個輸入詞碼,它能引起轉移到該邊另一端的狀態。除輸入詞碼外,有些係統的邊上標出了被調用的應用子程式和被顯示的輸出內容。但是使用這種方法,介麵和應用程式的聯絡是通過很多全程變量實現的,所有的狀態必須有清楚的邊來反映所有可能出現的錯誤輸入和公用命令。\\n\\n上下文無關文法:即使用上下文無關文法來描述用戶和程式之間的對話,且大多以編譯器為基礎。\\n\\n事件語言:在事件語言中,輸入詞碼被認為是事件並立即送事件處理器.這些處理器能產生輸出事件,改變係統的內部狀態,或調用應用子程式.\\n\\n麵嚮物件語言:即提供一個麵向對象的框架,設計者在該框架內編寫介麵程式。\\n\\nb.基於圖形的表示方法:\\n\\n基於圖形的UIMS讓用戶或至少部分地讓用戶使用鼠標器直接將對象放到螢幕上來定義介麵.它把介麵的圖示表示作為最重要的一個方麵,而圖形工具是說明這種表示的最合適的方法。\\n\\nc.基於應用語義過程的表示方法:\\n\\n即從應用的語義過程規格說明自動生成介麵,並且讓設計者修改介麵以改進它的效能。\\n\\n3)應用層的表示方法:\\n\\n目前應用介麵模型和應用層的表示方法很不成熟,仍舊處於發展初期。作為可供實用的實用介麵模型,至少必須包含如下三個內容:\\n\\na.它必須包含與用戶和人機介麵有關的應用數據結構的說明;\\n\\nb.它必須包含人機介麵調用的應用子程式的說明,例如子程式名、運算對象等.這實際上是定義了人機介麵和應用程式之間的介麵;\\n\\nc.必須列舉應用程式對用戶的限製.從而使人機介麵排除了許多可能引起語義錯誤的操作,避免了對應用程式的破壞。\\n\\n正在研究的應用層的表示方法有兩類:\\n\\n一是對象—運算元法.對象對應於應用程式的數據結構,運算元對應於人機介麵調用的應用子程式。\\n\\n二是基於關係和一階邏輯.關係用來表示應用程式中的數據結構,而一階邏輯模型的說明用來表示應用子程式。\\n\\n4.2係統結構\\n\\nFITOOL支援用戶介麵管理係統(UIMS)的Seeheim模型,基於Motif和X-Windows,運行於UNIX操作係統。\\n\\nFITOOL對話層的表示方法采用麵向對象表示方法結合圖形表示方法,使係統具有直接操縱的特點。\\n\\nFITOOL由如下幾部分組成:(結構圖見圖4-1)\\n\\na.視窗編輯器\\n\\n視窗編輯器管理並生成各種初始化視窗。用戶若要創建介麵必須先運行此模塊,這既是初始化介麵結構也是初始化管理內部數據結構的鏈表。\\n\\nb.原始構件編輯器\\n\\n原始構件編輯器提供了各種介麵構件,用戶可按自己的需求用鼠標點取相應的介麵構件,並可對其進行任意配置,直到滿意為止。\\n\\nc.管理器編輯器\\n\\n管理器編輯器提供了各種介麵管理器構件,這些構件有的可以管理一個後代,有的可以管理若乾個後代,用戶可按自己對介麵總體的要求需求用鼠標點取合適的介麵管理器構件,並可對其資源進行任意配置,直到滿意為止。\\n\\n圖4-1FITOOL結構圖\\n\\nd.菜單編輯器\\n\\n菜單編輯器可以單獨進行使用,用戶可以創建下拉式菜單,選項式菜單,彈出式菜單,菜單可以是文字式,圖符式或圖符文字混合式。\\n\\ne.對話框編輯器\\n\\n對話框編輯器提供了各種對話形式,用戶可按要求自行創建和配置。\\n\\nf.資源修改模塊\\n\\n資源修改模塊可單獨運行以對所產生的介麵的任何部分進行資源的重新配置。\\n\\ng.介麵瀏覽器;\\n\\n介麵瀏覽器可以瀏覽用戶已有的介麵(檔案),並可以重用之。\\n\\nh.介麵/應用對話編輯器\\n\\n介麵/應用對話編輯器用來定義用戶介麵與應用程式之間的數據的傳遞及動作的響應。\\n\\ni.源代碼生成器\\n\\n源代碼生成器用於生成用戶介麵源程式(包括C檔案和UIL件).\\n\\nj.中英文文字編輯器\\n\\n中英文文字編輯器可進行任何文字編輯操作。\\n\\nk.編譯與連接模塊。\\n\\n編譯與連接模塊用於編譯並連接用戶介麵源程式生成執行檔案。\\n\\n4.3係統功能\\n\\n使用本文描述的工具,介麵設計人員不需要專門掌握一種用戶介麵描述語言,而是通過介麵編輯器來直接操縱螢幕上的可視對象,生成和修改用戶介麵原型,並能將結果立即顯示在螢幕上,達到"所見即所得(WYSIWYW)"的效果。\\n\\n使用FITOOL,用戶可以任意佈置自己的用戶介麵,並最後得到相應的用戶介麵及其源程式,並可以和應用程式進行聯編,最後形成可用的執行檔案。\\n\\n使用FITOOL,用戶需做如下工作:\\n\\n(1).描述,即理解應用程式,確定用戶介麵外觀和互動行為.\\n\\na.確定所需的用戶介麵構件:\\n\\n按照最終用戶介麵的外觀和功能進行介麵佈局描述和設計,這部分工作可以在稿紙上完成,並列出所需要的介麵構件名稱及最終的配置。\\n\\nb.確定介麵的層次關係:\\n\\n有了介麵的佈局,啟動FITOOL,運行相應模塊按步驟創建用戶介麵。\\n\\nc.確定介麵與應用程式的對話結構:\\n\\n按應用程式對介麵響應的要求,定義應用與用戶介麵之間的數據傳遞及相應的對話框。\\n\\n(2)構造用戶介麵\\n\\na.運行視窗編輯器,創建並管理各種初始化視窗。用戶若要創建介麵必須先運行此模塊,這既是初始化介麵結構也是初始化管理內部數據結構的鏈表。\\n\\nb.管理器編輯器提供了各種介麵管理器構件,這些構件有的可以管理一個後代,有的可以管理若乾個後代,用戶可按自己對介麵總體的要求需求用鼠標點取合適的介麵管理器構件,並可對其資源進行任意配置,直到滿意為止。\\n\\nc.原始構件編輯器提供了各種介麵構件,用戶可按自己的需求用鼠標點取相應的介麵構件,並可對其進行任意配置,直到滿意為止。\\n\\nd.菜單編輯器可以單獨進行使用,用戶可以創建下拉式菜單,選項式菜單,彈出式菜單,菜單可以是文字式,圖符式或圖符文字混合式。\\n\\ne.對話框編輯器提供了各種對話形式,用戶可按要求自行創建和配置。\\n\\nf.資源修改模塊可單獨運行以對所產生的介麵的任何部分進行資源的重新配置。\\n\\ng.介麵瀏覽器可以瀏覽用戶已有的介麵(檔案),並可以重用之。\\n\\nh.介麵/應用對話編輯器用來定義用戶介麵與應用程式之間的數據的傳遞及動作的響應。\\n\\ni.源代碼生成器用於生成用戶介麵源程式(包括C檔案和UIL檔案)。\\n\\nj.中英文文字編輯器可進行任何文字編輯操作。例如:編輯任何程式語言的源程式或任何中英文文字檔案。\\n\\nk.編譯與連接模塊用於編譯並連接用戶介麵源程式生成執行檔案。\\n\\n因此用戶可按事先確定的介麵層次關係,用鼠標選取相應的介麵構件,並定製相應的資源,可隨時對字體和顏色進行修改以滿足自己的要求,最後組裝成自己的介麵。並可得到相應的源程式(*.c、*.h、*.uil),經編譯後得到對應的目標檔案(*.o、*.uid),和應用程式對應的目標檔案(*.o)進行連接後可得到相應的執行檔案。\\n\\n(3〕測試用戶介麵.\\n\\n將生成的源程式與應用程式的目標檔案經連接後生成可執行檔案,經運行如發現不合要求,可進行相應的修改,直到滿足要求。\\n\\n最後生成最終用戶介麵(包括永久對象和臨時對象)和源程式。\\n\\n4.4係統實現\\n\\n係統的實現采用C 、C語言、Motif及其用戶介麵語言uil混合編寫而成。\\n\\nMotif基於X—Windows的Xt工具箱(XtIntrinsics),是一個用C語言實現、支援麵向對象體係的程式庫;C 則是由C語言發展而來,但它直接提供麵向對象式的編程方法。\\n\\nMotif內部使用的麵向對象式體係對Motif的應用程式來說不會有絲毫的影響,因為它提供麵向函數的介麵,調用程式對Motif及XtIntrinsics內部實現的細節不必深究。因此從表麵上看,Motif和其他C語言庫冇有任何區彆。C 的設計允許程式員輕易地使用象Motif這樣的C語言庫。C 還為麵向對象設計方法和係統軟件設計方法的結合提供了簡易的方法,它使得程式在受益於麵向對象技術的同時不失掉C的高效性,更不必重新設計象X和Motif這樣的標準C庫函數。\\n\\n(1)OSF/Motif與C 混合編程\\n\\n用C 的麵向對象的特性進行程式設計,並假設程式中的類代表令人感興趣的體繫結構單元。用C 類封裝widget集合以創建一用戶介麵組成部件的類,將Motifwi-dget作為基本單元來構造它們的介麵。一個組成部件不僅封裝了一個widget集合,而且定義了整個組成部件的行為。\\n\\n1)創建用戶介麵組成部件\\n\\n用C 類封裝widget集合以創建用戶介麵組成部件的技術。即使用C 創建高一級的、將一個或多個widget組合成一個邏輯群的用戶介麵組成部件。這樣做的目的是不用分離的類替換widget,而是用基本的Motif widget,將一個應用程式及其介麵的關鍵組成部件作為類實現。這樣的話,Motif本身是否是麵向對象的並不重要,C 程式員可以直接調用Xt和Motif的函數來創建基本的Motif widget。\\n\\n使用C 類組合一組widget以創建更複雜的用戶介麵組成部件。並且在一個C 類中,可以創建widget,並指定其資源和賦值回調等。這樣,一個C 類不僅封裝一個widget集合,而且定義了整個組成部件的行為。其意圖是不僅僅用一個類替換一個widget集合,而是創建一個應用程式所要求的基本類,其中某些類使用widget實現一用戶介麵組成部件。\\n\\n虛擬與回調(作為靜態成員函數實現)的組合提供了創建抽象用戶介麵組成部件的一種方法.基類可以由組成部件支援的widget,以及整體佈局,而將組成部件的具體行為留給派生類。\\n\\n2)用戶介麵組成部件的協議\\n\\n定義一個簡單的協議,即使所有用戶介麵組成部件能保證在不同組成部件之間的一致性,並且使不同的組成部件很容易地在一起工作。\\n\\n●組成部件在類的構造函數中創建一個或多個widget。通常情況下,回調與其它創建也在構造函數中處理,每個組成部件創建一個單獨的widget,是為基widget。使它作為類所表示的widget樹的根,其它所有widget都是它的孩子。\\n\\n●組成部件將一個widget作為構造函數中的一個參數。該widget作為該組成部件的基widget的父親。\\n\\n●組成部件將它創建的widget子樹的根賦給一個保護的實例變量.\\n\\n●組成部件將一個字串作為構造函數的一個參數。\\n\\n●每個組成部件類提供一訪問方式,用來查詢子樹的根widget。然而一個組成部件類的目標是封裝一個widget的單獨邏輯集合的行為,偶爾需要類公開widget樹的根widget。\\n\\n●組成部件類允許widget子樹由類封裝,以進行處理或不處理。組成部件就作為一個邏輯群處理,並且隻有widget子樹的根被處理或不處理。其它widget應在創建時在構造函數中被處理,而此時不處理根widget。\\n\\n●組成部件處理其widget樹中widget的析構函數.當一個對象被清除時,它所封裝的widget也應被清除。\\n\\n3)基類的定義與實現\\n\\nBasicComponent類\\n\\nBasicComponent類實現一些對所有組成部件類都有用的基本特性。\\n\\nUIComponent類\\n\\nUIComponent類是由BasicComponent類派生得到的,但增加了處理widget析構,並且使用資源管理程式定做和初始化類。\\n\\n(2)Motif與C 類混合編程的應用框架\\n\\n創建一個應用框架用來定義一個應用程式的總體結構。和其它框架一樣,類和框架配合的好要比任何一個類的函數性要重要的多。\\n\\n框架的本意是依靠獲取應用程式的共同元素來簡化編寫Motif應用程式的任務。儘管Xt和Motif提供一個比Xlib更高層的的介麵,但是絕大多數的Motif和Xt應用程式仍然包括數量驚人的重複代碼。例如所有的Motif應用程式必須初始化XtIntrinsics,打開和X服務器的聯絡,進入事件循環,以及其它等等。對每一個應用程式來說,複製實現這些步驟的代碼是冇有什麼理由的。我們可以把這些步驟放在一個類中,其他的應用程式就可以複用它。我們也可能抽取典型的Motif應用程式的控製結構部分,儘管許多特殊的細節在不同的應用程式間是有差彆的。\\n\\nMotif應用程式所共有的一些特點:\\n\\n●初始化XtIntrinsics;\\n\\n●打開和X服務器的聯絡;\\n\\n●創建一個Shellwidget作為其它widget的父親;\\n\\n●創建一個或一個以上widget定義用戶介麵;\\n\\n●進入事件循環來處理事件。\\n\\n大部分Motif應用程式中main()主體是非常類似的。絕大多數程式都執行上麵的步驟,而很少有不同的。實際上,如果我們忽略不同的應用程式間的細小差彆,我們可看到幾乎每一個Xt應用程式都包含相同的語言並且遵循相同的形式。程式和程式之間,重複地為每個程式打開這些語句是一個時間上的浪費。\\n\\n一個功能更強的方法是抽取一個應用程式的骨架,放在一個類中。應用程式可以通過實例化這個類,或者創建一個從這個類派生出來的新類來複用公共的代碼段。使用一個類來獲取應用程式的共同特點比拷貝上麵顯示的樣板有幾個優點。首先,一旦程式設計者作了一份樣板的拷貝,他或她就喪失了跟蹤原始代碼的能力。然而,那些僅是簡單地實例化一個封裝這個代碼的對象的程式,可以從修改錯誤和改進中獲益,因為它們隻需要與一個修改過的版本重新連接。\\n\\n基於麵向對象理論的應用程式可以通過派生出一個新類修改已生成代碼的行為。因為改變隻是對一個派生類做的,而對原始類未作改動,所以要複原至最初的行為就容易得多了。確定任何在發展過程中帶入的新錯誤完全包容在新代碼中,也變得容易多了。\\n\\nApplication類:\\n\\nApplication類處理初始化和所有基於Xt的應用程式通用的事件處理步驟。Motif應用程式隻是簡單地實例化一個Application對象,而不是調用類似XtAppInitialize()或XtAppMainLoop()的Xt函數。程式可以從Application類中派生出新類也可以直接實例化。Application類在構造函數中不創建任何widget。Application類為在整個應用程式中都可能需要的一些數據提供存儲的空間。\\n\\n框架支援應用程式的多頂層視窗。一個方法是創建一個唯一的頂層的視窗作為應用程式的主視窗。所有其它的視窗都是彈出Shell,它們的父親是那個主視窗。另一種方法是創建一個唯一的Shell,它永遠不出現在螢幕上.所有其它的視窗必須是這個主Shell的彈齣兒子.在這個模型中,所有頂層視窗等價對待,彼此間是兄弟關係,一個視窗邏輯上可以是應用程式的頂層視窗。\\n\\n可以定義一個MainWindow類以提供應用程式中頂層視窗的基本螢幕佈置。\\n\\n基於這個框架的應用程式不必定義main()。函數main()定義框架的一部分,並且管理調用Application::initialize()成員函數以及進入事件循環。隱藏main()允許框架管理比所有應用程式必須執行的例程初始化更多的事情,即每一個程式都是Application類的一個實例。應用程式的創建就是簡單地由實例化一個Application對象完成的。\\n\\n對話類:\\n\\n為了一些特殊意圖,在螢幕上現實相對時間較短的對話視窗,是許多互動式應用程式的一個共同特點。管理帶有許多輸入,控製或者選項的應用程式的一種方法是把用戶介麵中不常使用的部分放在幾個分開的對話視窗中,隻有當需要時才顯示,對話視窗可以有幾種不同的使用方法。\\n\\n對話類依賴Application類,因為對話需要一個父widget。因此要強迫應用程式傳送一個widget給post()方法作為父親使用,但是允許有不同的父親。為了不使高速緩存複雜化,這裡使用Application類的Shellwidget以保證所有的對話有相同的父親,在螢幕上集中了對話。\\n\\n命令類:\\n\\n在互動式應用程式中,用戶的每一個動作幾乎都被認為是一條命令。例如,絕大多數的字處理程式支援類似"插入字元"的簡單命令和更複雜的類似"段落重新劃分"以及"儲存檔案"的命令。用戶可能認為插入字元不是發出了一條命令,但是對程式員來說,插入字元和段落重新劃分之間冇有什麼不同。程式員典型地把這些命令作為函數(例如,回調函數)來實現,這些函數作為用戶動作的結果被執行。這樣係統的每一個命令被模型化為一個對象。\\n\\nCmd類完全獨立於任何用戶介麵。命令對象可以有計劃地實例化和執行。而不必依賴於某個用戶介麵組成部件。然而,通過一些用戶介麵組成部件,代表由用戶初始化的動作,對一個命令對象來說是很普遍的。CmdInterface類就是支援Cmd對象和widget或其它用戶介麵組成部件間的相互作用。\\n\\n(3)OSF/Motif之UIL與C 混合編程\\n\\nUIL即用戶介麵描述語言。它是一種規範語言,描述Motif應用程式的用戶介麵的初始狀態。UIL配合Motif資源管理器(MRM)以一種較C語言更加靠近自然語言的高級語言描述、定製Motif用戶介麵。\\n\\n使用UIL可以快速地開發用戶介麵的原型,因為使用者不需要知道具體的wid-get創建函數極其調用格式。UIL不需要控製流,用戶可以大致按對象在介麵中的放置順序來描述它們,這使得uil檔案易讀且不易出錯。另外,由於用UIL編譯器對uil檔案進行解釋產生的用戶介麵描述檔案uid與應用程式之源程式分離,應用程式隻是在運行時纔讀取uid檔案。也就是說同一個應用程式可以有一個或多個不同的介麵,同一個介麵可以被一個或多個不同的應用程式所擁有。\\n\\n使用uid檔案的應用程式的結構:\\n\\n●調用MrmInitialize()函數初始化MRM所需之內部數據結構;\\n\\n●調用MrmOpenHierarchy()函數將MRM與具體的uid檔案聯絡起來;\\n\\n●調用MrmRegisterNames()函數來登記回調函數;\\n\\n●調用MrmFetchWidget()函數按搜尋層次指針記錄的uid檔案獲取順序從uid檔案中獲取檔案資訊,並創建列於相應uid檔案中的widget及其子widget。\\n\\n創建Application類的子類Mrmapp類.\\n\\nMrmapp類是Application類的子類,它提供了普遍使用的讀取uid檔案,創建widget的方法。\\n\\n使用UIL語言與C 語言混合編程非常方便.對不同的程式隻需要改變相應的讀入uid檔案語句,使程式調用合適的uid檔案即可。\\n\\nFITOOL就是通過建立上述Motif與C 類混合編程的應用框架實現的。\\n\\n4.5BITIS介麵\\n\\nBITIS計算機輔助設計與製造(CAD\\/CAM\\/CAPP)係統(圖4-2)的統一用戶介麵就可以用FITOOL來設計與生成。\\n\\n(1).需求分析\\n\\n要求有一封麵、一背景螢幕和一整合工具。\\n\\n整合工具(圖4)層次結構如下:\\n\\n初始化視窗;\\n\\n管理器構件:主視窗,一個Form管理器,二個Frame管理器,一個RowColumn管理器。\\n\\n原始構件:RadioBox,Label,PushButton。\\n\\n菜單:下拉式菜單。圖4-2BITIS整合係統結構\\n\\n(2).生成介麵\\n\\na.首先用視窗編輯器,創建並管理各種頂層視窗。\\n\\nb.用管理器編輯器產生一個主視窗,一個Form管理器,一個RowColumn管理器。\\n\\nc.用原始構件編輯器產生Label,RadioBox,PushButton原始構件。\\n\\nd.用菜單編輯器創建下拉式菜單。\\n\\ne.用介麵/應用對話編輯器定義用戶介麵與應用程式之間的數據的傳遞及動作的響應。\\n\\nf.用源代碼生成器生成用戶介麵源程式(包括C檔案和UIL檔案)。\\n\\ng.編譯與連接模塊用於編譯並連接用戶介麵源程式生成執行檔案。BITIS係統整合用戶介麵(圖4-3):圖4-3BITIS係統整合用戶介麵\\n\\nFITOOL可以運行於HP和SGI工作站,使用效果良好。其中有些功能有待進一步研究與完善。\\n\\n\"
}