人機交互界面表示模型.ppt
《人機交互界面表示模型.ppt》由會員分享,可在線閱讀,更多相關(guān)《人機交互界面表示模型.ppt(101頁珍藏版)》請在裝配圖網(wǎng)上搜索。
人機交互技術(shù)編寫組 1 實驗一 交互式繪圖程序設(shè)計 參照所講的例子 使用 net設(shè)計一個交互式繪圖程序框架 設(shè)計內(nèi)容至少應(yīng)包括例子中的內(nèi)容 并盡可能給出一個具體的程序?qū)崿F(xiàn) 實驗報告要求 以電子版的形式 詳細描述框架的全部內(nèi)容 對各個交互組件的設(shè)計 給出必要的說明 對完成的設(shè)計 寫出自己的主要問題和心得體會 1 人機交互技術(shù)編寫組 2 第6章人機界面的表示模型 目的 在界面設(shè)計的早期階段 建立一種用戶界面表示模型用形式化的設(shè)計語言來分析和表達用戶任務(wù)以及用戶和系統(tǒng)之間的交互情況 使界面表示模型能方便地映射到實際的設(shè)計實現(xiàn) 人機交互技術(shù)編寫組 4 主要內(nèi)容 行為模型從用戶和任務(wù)的角度考慮 描述人機交互界面介紹GOMS UAN及LOTOS模型 結(jié)構(gòu)模型主要從系統(tǒng)的角度來表示人機交互界面 狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò) STN StateTransitionNetwork 產(chǎn)生式規(guī)則 ProductionRule 事件 對象模型面向?qū)ο蟮谋硎灸P?它將人機交互活動歸結(jié)為事件與對象的相互作用 如何由界面的行為表示模型轉(zhuǎn)換到系統(tǒng)的結(jié)構(gòu)模型 人機交互技術(shù)編寫組 5 6 1行為模型 行為模型的研究內(nèi)容獲取用戶需求后 結(jié)合領(lǐng)域?qū)<业囊庖姾椭笇?dǎo) 獲取系統(tǒng)中需要完成的任務(wù) 對任務(wù)的主要因素進行詳細地分析 如任務(wù)的層次 發(fā)生條件 完成的方法以及它們之間的關(guān)系等等 人機交互技術(shù)編寫組 6 6 1 1GOMS模型的四個要素 GOMS模型用來分析和建立用戶行為的模型 用 分而治之 思想 將一個用戶任務(wù)進行層次細化 人機交互技術(shù)編寫組 7 6 1 1GOMS模型的四個要素 GOMS模型的四個要素目標 Goal 操作 Operator 方法 Method 選擇規(guī)則 Selection 人機交互技術(shù)編寫組 8 6 1 1GOMS模型的四個要素 1目標Goals目標就是用戶執(zhí)行任務(wù)最終想要得到的結(jié)果 它可以在不同的層次中進行定義 2操作Operators操作是任務(wù)分析到最低層時的行為 是用戶為了完成任務(wù)所必須執(zhí)行的基本動作 人機交互技術(shù)編寫組 9 6 1 1GOMS模型的四個要素 3方法Methods方法是描述如何完成任務(wù)目標的過程 是用來確定子目標序列及完成這些目標所需要的操作 人機交互技術(shù)編寫組 10 6 1 1GOMS模型的四個要素 3方法MethodsGOAL ICONSIZE WINDOW select GOAL USE CLOSE METHOD MOVE MOUSE TO WINDOW HEADER POP UP MENU CLICK OVER CLOSE OPTION GOAL USE L7 METHOD PRESS L7 KEY 人機交互技術(shù)編寫組 11 6 1 1GOMS模型的四個要素 4選擇Selection是用戶要遵守的規(guī)則 用來確定在特定環(huán)境下所要使用的方法 當有多個方法可供選擇時 GOMS需要根據(jù)用戶 系統(tǒng)的狀態(tài) 目標的細節(jié)來預(yù)測要選擇哪種方法 選擇 用戶狀態(tài) 系統(tǒng)狀態(tài) 目標細節(jié) 用戶Sam Rule1 UsetheCLOSE METHODunlessanotherruleappliesRule2 IftheapplicationisGAME useL7 METHOD GOMS模型的四個要素之間的關(guān)系 目標 Goal 層次結(jié)構(gòu)操作 Operator 基本動作方法 Method 由目標和完成目標的基本操作復(fù)合而成 選擇規(guī)則 Selection 由用戶 系統(tǒng)狀態(tài)和目標決定的 人機交互技術(shù)編寫組 14 GOMS的局限性 GOMS沒有描述錯誤處理的過程 它假設(shè)用戶按正確的方式進行人機交互 只針對專家用戶 任務(wù)間只有順序和選擇關(guān)系 選擇關(guān)系通過非形式化的附加規(guī)則描述 實現(xiàn)起來也比較困難 任務(wù)是面向目標的 忽略了任務(wù)的問題本質(zhì)及用戶的個體差異 人機交互技術(shù)編寫組 15 6 1 2LOTOS LOTOS LanguageOfTemporalOrderingSpecification是一種標準形式描述語言 適于描述具有并發(fā) 交互 反饋和不確定性等特點的并發(fā)系統(tǒng)中的行為 人機交互技術(shù)編寫組 16 LOTOS基本思想 把系統(tǒng)的外部行為看作有時序關(guān)系的交互序列組成 認為系統(tǒng)由一系列進程組成 進程同環(huán)境之間通過稱為關(guān)口 gates 的交互點進行交互 認為兩個以上進程在執(zhí)行同一個外部可見的行為時會發(fā)生交互操作 進行數(shù)據(jù)交換 信息傳遞 協(xié)調(diào)同步等操作 進程行為用行為表達式來描述 復(fù)雜行為由行為表達式通過LOTOS算符組合而成 將LOTOS思想用于人機交互行為模型時 用進程之間的約束關(guān)系來描述交互子任務(wù)之間的關(guān)系 LOTOS模型的基本算符 交替Interleaving T1 T2T1和T2兩個任務(wù)相互獨立 可按任意順序執(zhí)行 永遠不會同步 選擇Choice T1 T2需要在T1 T2中選擇一個執(zhí)行 一旦選擇某一個后 必須執(zhí)行它直到結(jié)束 在這中間另一個再無執(zhí)行機會 同步Synchronization T1 a1 an T2任務(wù)T1 T2必須在動作 a1 an 處保持同步 禁止Deactivation T1 T2一旦T2任務(wù)被執(zhí)行 T1便無效 不活動 允許Enabling T1 T2當T1成功結(jié)束后才允許T2執(zhí)行 LOTOS實例 中國象棋的LOTOS任務(wù)分解實例 打譜 所謂打譜 就是看棋譜 初學(xué)階段 學(xué)習(xí)一些基礎(chǔ)知識 如各兵種的特點 殘局基本功訓(xùn)練名家對局 掌握各種布局的特點 人機交互技術(shù)編寫組 20 人機交互技術(shù)編寫組 21 LOTOS與GOMS的結(jié)合 LOTOS模型描述了任務(wù)間的時序關(guān)系 這些時序約束關(guān)系能更好的描述GOMS中子目標之間的關(guān)系 用GOMS模型描述任務(wù)的分解過程 而用LOTOS給出子任務(wù)之間的約束關(guān)系 這樣就可以增加兩種表示模型的表示能力 中國象棋程序的GOMS和LOTOS行為模型描述 GOAL 中國象棋 DeactivationGOAL 運行 GOAL 走棋ACTION 自動記錄棋譜 EnablingGOAL 當前方走 EnablingOPRATOR 拾取棋子OPRATOR 放置棋子GOAL 對弈方走 EnablingOPRATOR 拾取棋子OPRATOR 放置棋子 GOAL 打譜 ChoiceOPRATOR 加速OPRATOR 減速OPRATOR 暫停OPRATOR 恢復(fù)GOAL 退出 人機交互技術(shù)編寫組 23 LOTOS總結(jié) LOTOS與GOMS結(jié)合 可以清楚地描述任務(wù)的目標層次及各目標之間的約束關(guān)系 依然無法描述目標異常結(jié)束 未涉及任務(wù)選擇規(guī)則 可以構(gòu)造自動化工具 自動進行錯誤檢測 但它過于形式化的記法比較晦澀難懂 GOMS模型和LOTOS模型結(jié)合可以描述較高級的人機交互任務(wù) 對于原子任務(wù) 上述模型并沒有給出一個比較清晰的描述 下面討論的UAN模型主要用于原子目標的描述 人機交互技術(shù)編寫組 24 6 1 3UAN UAN 用戶行為符號 UserActionNotation UAN是一種符號語言 主要描述用戶的行為序列以及在執(zhí)行任務(wù)時所使用的界面對象 雖然UAN是一種行為模型 但它又在一定程度上描述了系統(tǒng)行為 因而它兼有行為模型和結(jié)構(gòu)模型的一些特點 人機交互技術(shù)編寫組 25 UAN模型的基本思想 標志符 用戶動作標志符條件標志符任務(wù)的表格表示界面被分解成一些類似層次結(jié)構(gòu)的異步任務(wù) 每個任務(wù)的實現(xiàn)都用表格來描述 用戶動作的關(guān)聯(lián)性和時序關(guān)系由表格的行列對齊關(guān)系和從上到下 從左到右的閱讀順序來確定 UAN預(yù)定義的動作標志符 用戶動作標志符 move mouse x y 移動鼠標至 x y release button x y 在 x y 位置釋放鼠標按鈕 highlight icon 使icon高亮顯示 de highlight icon 取消icon的高亮顯示 用戶動作標志符 x y 在某個圖形對象上移動鼠標 按下鼠標 釋放鼠標 使對象高亮顯示 取消對象的高亮顯示Display顯示圖形對象 Erase取消顯示對象 UAN預(yù)定義的條件標志符 while condition TASK當條件condition為真時 循環(huán)執(zhí)行任務(wù)TASK if condition thenTASK如果條件condition滿足 則執(zhí)行任務(wù)TASK iterationA orA 表示迭代操作 waiting表示等待 可以等待一個條件滿足 也可以等待任務(wù)中的一個操作執(zhí)行 UAN實例 單通道交互 人機交互技術(shù)編寫組 29 UAN實例 多通道交互 人機交互技術(shù)編寫組 30 UAN總結(jié) UAN模型更接近于實現(xiàn) 界面狀態(tài)和界面反饋用一般的程序語言描述 實現(xiàn)起來比較方便 當然這種描述由于接近于程序語言 因此設(shè)計時需要一定的編程基礎(chǔ)UAN模型在精確刻畫各成分之間的各種平行和串行的時序關(guān)系方面尚顯不足 任務(wù)之間的時序關(guān)系沒有明確表示出來 當所描述的界面使用多種輸入設(shè)備和有若干可選交互路徑時 比較繁瑣 G U L模型 G U L模型 運用GOMS原理為基礎(chǔ)進行任務(wù)分解 建立基本的行為模型 原子操作由UAN模型描述運用LOTOS算符來表示任務(wù)目標之間的時序關(guān)系 中國象棋的G U L模型描述 思考題中國象棋的G U L模型描述任務(wù)分解 建立基本的行為模型用LOTOS算符表示的時序關(guān)系由UAN模型描述的原子操作 6 2結(jié)構(gòu)模型 6 2結(jié)構(gòu)模型 狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò) StateTransitNetwork用結(jié)構(gòu)化的方法來描述人機交互的一般過程 是一種圖示化的結(jié)構(gòu)產(chǎn)生式規(guī)則 ProductionRule形式化語言的描述 這種結(jié)構(gòu)的方法從理論上可以引導(dǎo)界面設(shè)計者及界面工具的設(shè)計者進行有效的設(shè)計 6 2 1產(chǎn)生式規(guī)則 產(chǎn)生式規(guī)則又稱為上下文無關(guān)文法 將人機交互對話看作是一種語言 運用基于語法的方法來描述交互對話 產(chǎn)生式規(guī)則是一種形式化語言 這些規(guī)則可用于描述人機交互界面 產(chǎn)生式規(guī)則的一般形式 ifconditionthenaction這些規(guī)則可以表示為不同的形式 如condition actioncondition action 36 1 事件引導(dǎo)的系統(tǒng) 事件引導(dǎo)的系統(tǒng)產(chǎn)生式的條件和動作均以事件的方式表示 實現(xiàn)用戶在屏幕上繪直線的產(chǎn)生式集合 事件的主要類型 用戶事件 userevent Sel line表示從菜單中選擇line命令 C point和D point表示用戶在繪圖平面上單擊和雙擊鼠標內(nèi)部事件用于保持對話狀態(tài) 如start line表示開始畫線后的狀態(tài) rest line表示選擇了第一個點之后的狀態(tài) 系統(tǒng)響應(yīng)事件以尖括號表示可見或可聽的系統(tǒng)響應(yīng) 如 把菜單項 line 高亮度顯示 表示在屏幕上顯示直線 表示橡皮筋繪制方式打開 表示橡皮筋繪制方式關(guān)閉 產(chǎn)生式規(guī)則的解釋 在上面的產(chǎn)生式規(guī)則中 第一條規(guī)則表示選擇畫線命令后 系統(tǒng)狀態(tài)進入了開始畫線狀態(tài) 接著把 line 菜單項高亮度顯示 第二條規(guī)則表示 用戶在開始畫線狀態(tài)時 在繪圖區(qū)域單擊鼠標則系統(tǒng)表示已定義了一個點 此時橡皮筋繪圖方式打開 第三條規(guī)則表示在定義了一個 或多個 點后 用戶單擊鼠標可以連續(xù)地定義點 第四條規(guī)則表示雙擊鼠標則結(jié)束畫線的交互過程 人機交互技術(shù)編寫組 39 對話控制 對話控制主要負責事件的產(chǎn)生和規(guī)則的匹配 在每一時刻系統(tǒng)內(nèi)存中會保存一些內(nèi)部事件 當產(chǎn)生一個事件時 可能是用戶事件 也可能是內(nèi)部事件 對話控制就是要將產(chǎn)生式規(guī)則與事件集合進行匹配 這個過程是復(fù)雜的而且耗時 當產(chǎn)生式很多并且產(chǎn)生式規(guī)則的條件復(fù)雜時 匹配算法的效率就顯的更為重要 因此需要設(shè)計好的數(shù)據(jù)結(jié)構(gòu)和匹配算法來提高匹配規(guī)則的效率 可以將規(guī)則和事件進行分組和分層 人機交互技術(shù)編寫組 40 2 狀態(tài)引導(dǎo)的系統(tǒng) 狀態(tài)引導(dǎo)的系統(tǒng)在系統(tǒng)內(nèi)存保存的不再是動態(tài)的事件 而是一些表示系統(tǒng)的當前狀態(tài)的屬性 這些屬性在不同的時刻有不同的值 畫線操作在系統(tǒng)中的五個屬性 對象的狀態(tài) Mouse的4個狀態(tài)Mouse null 鼠標空閑 select line 選線 click point 單擊 double click 雙擊 Line state當前會話狀態(tài)menu 可選命令狀態(tài) start line 開始繪線 rest line 已經(jīng)定義點 控制系統(tǒng)響應(yīng)狀態(tài)Rubber band橡皮筋繪制開關(guān)狀態(tài)Menu表示任何項也沒有選中 highlight null 選中繪直線命令 highlight line 選中繪圓命令 highlight circle Draw表示什么也不畫狀態(tài) draw nothing 畫直線狀態(tài) draw line 顯示控制器根據(jù)上面的狀態(tài)做出相應(yīng)的顯示控制 狀態(tài)引導(dǎo)的產(chǎn)生式規(guī)則 畫直線 人機交互技術(shù)編寫組 44 狀態(tài)引導(dǎo)的產(chǎn)生式規(guī)則的特點 當產(chǎn)生式規(guī)則的條件和狀態(tài)匹配時將激活該產(chǎn)生式規(guī)則 對于某一特定的屬性 如果前面的狀態(tài)需要改變成新的狀態(tài)時才需要在產(chǎn)生規(guī)則的后面標注 人機交互技術(shù)編寫組 45 狀態(tài)引導(dǎo)的產(chǎn)生式規(guī)則的特點 屬性的永久特性有時會引起一些奇怪的錯誤 因此在上述的規(guī)則集中 每一條產(chǎn)生式規(guī)則都要求將鼠標的狀態(tài)設(shè)置為 mouse null 否則 當用戶單擊了鼠標 激活了第二條規(guī)則 如果不立即將鼠標的屬性設(shè)置為 mouse null 則會立即激活第三條規(guī)則 此時系統(tǒng)的狀態(tài)和第三條規(guī)則的條件是匹配的 并且會反復(fù)的一直執(zhí)行下去 3 混合引導(dǎo)系統(tǒng) 事件引導(dǎo)方式與狀態(tài)引導(dǎo)方式結(jié)合如下面產(chǎn)生式規(guī)則 event condition action如果條件不滿足 即當前系統(tǒng)內(nèi)存中的狀態(tài)和產(chǎn)生式的規(guī)則不匹配 則無法激活規(guī)則另外當狀態(tài)改變時 產(chǎn)生式規(guī)則中的action本身也可以產(chǎn)生新的事件 從而可以激活另一條規(guī)則 人機交互技術(shù)編寫組 47 混合的事件 狀態(tài)產(chǎn)生式系統(tǒng) 根據(jù)用戶點擊鼠標的位置不同 可能產(chǎn)生三個事件 select bold select italic select under 該對話過程有下面六個產(chǎn)生式規(guī)則定義 混合的事件 狀態(tài)產(chǎn)生式系統(tǒng) 產(chǎn)生式規(guī)則總結(jié) 描述操作時序能力強 并發(fā)順序均可無法描述誤操作界面復(fù)雜時 狀態(tài) 事件復(fù)雜 產(chǎn)生式過多 要求產(chǎn)生式匹配算法性能高 6 2 2狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò) 狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò) STN 的基本思想是定義一個具有一定數(shù)量狀態(tài)的轉(zhuǎn)換機 稱之為有限狀態(tài)機 FiniteStateMachine FSM FSM從外部世界中接收到事件 并能使FSM從一個狀態(tài)轉(zhuǎn)換到另一個狀態(tài) 兩種最基本的狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò) StateDiagrams 擴展狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò) StateCharts 1 傳統(tǒng)的狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò) 狀態(tài)轉(zhuǎn)換當發(fā)生一個事件時 系統(tǒng)從一個狀態(tài)轉(zhuǎn)換到另外一個狀態(tài) 外部事件由用戶操作外部輸入設(shè)備來產(chǎn)生內(nèi)部事件系統(tǒng)產(chǎn)生的事件 改變了系統(tǒng)的狀態(tài)和行為而產(chǎn)生的事件 如當一個任務(wù)完成后可以激活另一個任務(wù)等 帶條件的狀態(tài)轉(zhuǎn)換 帶條件的狀態(tài)轉(zhuǎn)換 T2 C2 T1 C1 S E1 E2 T1 T2 帶條件的狀態(tài)轉(zhuǎn)換實例 drawcircle 單擊在圓周上 rubberband 單擊在中心點 highlight circle 選擇 circle Circle1 Menu Finish Circle2 drawline 雙擊 rubberband 單擊在第一點 highlight line 選擇 line Line1 Finish Line2 人機交互技術(shù)編寫組 55 傳統(tǒng)狀態(tài)轉(zhuǎn)換模型 狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)比文本解決方案更易于設(shè)計 理解 修改和文檔化 它給出了對行為的精確的 甚至是格式化的定義 傳統(tǒng)狀態(tài)轉(zhuǎn)換模型的局限性需要定義出系統(tǒng)的所有狀態(tài) 這對于小型的系統(tǒng)是沒有問題的 但是在一個較大的系統(tǒng)中 系統(tǒng)會很快崩潰 狀態(tài)的數(shù)目是呈指數(shù)級增長的 同時狀態(tài)的增長直接導(dǎo)致了狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)過于復(fù)雜 無法實際應(yīng)用 2 擴展的狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò) 彈出graphics子菜單 選擇graphics 主菜單 graphics子菜單 彈出text子菜單 選擇 text text子菜單 彈出paint子菜單 選擇 paint paint子菜單 1 層次狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò) 帶有取消功能的狀態(tài)轉(zhuǎn)換圖 彈出graphics子菜單 選擇 graphics 主菜單 graphics子菜單 彈出text子菜單 選擇 text text子菜單 彈出paint子菜單 選擇 paint paint子菜單 ESC 正常完成 正常完成 正常完成 ESC ESC 58 帶有幫助功能的狀態(tài)轉(zhuǎn)換 按下HELP按鈕 按下HELP按鈕 從菜單出發(fā) drawcircle 單擊在圓周上 rubberband 單擊在中心點 Circle1 Finish Circle2 幫助子系統(tǒng) 幫助子系統(tǒng) 描述并發(fā)任務(wù) 狀態(tài)轉(zhuǎn)換模型 狀態(tài)的爆發(fā)式增長問題具有良好的描述串行和順序行為的能力 并發(fā)及其他行為的描述能力差雖然是一個結(jié)構(gòu)模型 但難以實現(xiàn) 人機交互技術(shù)編寫組 60 6 3事件 對象模型 Event Object 61 6 3 1對話獨立性和語義反饋性 對話的獨立性指界面和系統(tǒng)的邏輯業(yè)務(wù)或數(shù)據(jù)模型互相獨立 交互完成后 再去調(diào)用業(yè)務(wù)模型的方法進行相應(yīng)的業(yè)務(wù)處理 語義的反饋性指在人機交互過程中要實時反饋界面的狀態(tài)和用戶操作的細節(jié) 以便用戶能比較清晰的了解當前操作的過程 所見即所得 就是一種典型的語義反饋 軟件體系結(jié)構(gòu) 軟件的四層體系結(jié)構(gòu)表示層邏輯對象層服務(wù)對象層存儲層 6 3 2E O模型系統(tǒng)結(jié)構(gòu) 事件 對象模型 將人機交互活動歸結(jié)為事件與對象的相互作用 事件是人機交互活動中傳遞的信息 對象是交互活動中的對象 事件引發(fā)交互活動 對象是交互活動的承受者 模型強調(diào)事件和對象在人機交互中的重要性 以事件為驅(qū)動 以對象為核心 具有面向?qū)ο蟮娘L格 兼顧了對話獨立性原則和語義反饋的要求 人機交互技術(shù)編寫組 64 表示層對象1 表示層對象2 表示層對象n 控制者 邏輯對象1 邏輯對象2 邏輯對象n 事件1 事件2 事件n 事件1 事件2 事件n 6 3 2E O模型系統(tǒng)結(jié)構(gòu) 人機交互技術(shù)編寫組 65 1 事件的類型 事件的兩種基本類型 實事件是用戶通過輸入設(shè)備輸入而產(chǎn)生 可分為 鍵碼事件 定位事件 字符串事件 虛事件用戶界面系統(tǒng)或應(yīng)用程序產(chǎn)生并限于系統(tǒng)內(nèi)部流動的事件 主要是協(xié)調(diào)系統(tǒng)的運行 可以分為 定時器事件 郵件事件 空閑事件 人機交互技術(shù)編寫組 66 2 事件的結(jié)構(gòu) 人機交互技術(shù)編寫組 67 3 對象的類型 根據(jù)交互任務(wù)類型的不同一般可歸納為三種基本對象類型 抽象交互對象 如磁盤 文件等抽象的對象 空間交互對象 表示空間中的物體的對象等 如三維場景和物體 時間交互對象 表示與時間相關(guān)的對象 如視頻 音頻等對象 人機交互技術(shù)編寫組 68 對象的類型 對象按功能分類 可分為 通用對象 在不同的應(yīng)用中共有的一些對象 工具對象 用作用戶界面中的各種交互技術(shù) 如按鈕等 二維對象 用于二維用戶界面 三維對象 用于三維用戶界面 時變對象 適用于隨時間變化的動態(tài)對象 如在多媒體用戶界面中實現(xiàn)音頻 視頻等媒體的管理 人機交互技術(shù)編寫組 69 對象應(yīng)該具有的特征 對象應(yīng)以顯式的方式接受事件并對此做出響應(yīng) 能直接利用數(shù)據(jù)和方法封裝的思想實現(xiàn)對象的獨立 一個對象可以發(fā)送消息給其他對象 對象之間的通信通過消息發(fā)送和接收來完成 對象的實現(xiàn)方法可采用結(jié)構(gòu)化方法和面向?qū)ο蟮姆椒?人機交互技術(shù)編寫組 70 4 對象的結(jié)構(gòu) 主要包括三部分 屬性集 包括對象ID 類型 風格 位置 顏色等 方法集 初始化方法 對象屬性的初始化 表現(xiàn)方法 常規(guī)的界面反饋和更新對象的外觀 響應(yīng)方法 響應(yīng)方法對用戶的終結(jié)控制動作調(diào)用相應(yīng)的應(yīng)用語義函數(shù)以做出響應(yīng) 當對象之間存在關(guān)聯(lián)語義時 相應(yīng)方法還負責和其他對象進行交互 消息集 包括一組可被對象識別的并激活其相應(yīng)行為方法的消息 這些消息分流到上述三個方法中 人機交互技術(shù)編寫組 71 5 對象的組織 對象之間有不同的關(guān)系 可采用四種典型結(jié)構(gòu)來組織對象 集合 對象之間無約束關(guān)系 線性結(jié)構(gòu) 對象之間有明確的順序關(guān)系 如各輸入字段 列表項等 層次結(jié)構(gòu) 對象之間有層次關(guān)系 對象包含數(shù)個子對象 如菜單和菜單項 網(wǎng)狀結(jié)構(gòu) 適用于比較復(fù)雜的CAD系統(tǒng) 如CAD布線 現(xiàn)在Web中的導(dǎo)航菜單對象的組織也有采用網(wǎng)絡(luò)結(jié)構(gòu) 6 E O模型總結(jié) E O模型具有面向?qū)ο筇匦?其中對象具有直接的面向?qū)ο蟮奶卣?而包括事件 設(shè)備的在內(nèi)的各種元素也被直接地映射為對象 同時 事件對象模型內(nèi)在的事件驅(qū)動機制也非常符合交互式軟件的需要 事件對象模型中事件結(jié)構(gòu)和對象結(jié)構(gòu)的通用性和開放性 可以支持從簡單得到復(fù)雜的各類用戶界面的實現(xiàn) 有能力支持包括多媒體 多通道用戶界面和虛擬現(xiàn)實等新型人機交互技術(shù)的實現(xiàn) 在下一章將給出E O模型的軟件結(jié)構(gòu)和實現(xiàn)支持 人機交互技術(shù)編寫組 73 作業(yè) 1 寫出事件引導(dǎo)的畫線的產(chǎn)生式規(guī)則2 寫出狀態(tài)引導(dǎo)的畫線的產(chǎn)生式規(guī)則3 畫出基于菜單的畫圖工具的狀態(tài)轉(zhuǎn)換圖 6 4行為模型和結(jié)構(gòu)模型的轉(zhuǎn)換 人機交互技術(shù)編寫組 75 6 4行為模型和結(jié)構(gòu)模型的轉(zhuǎn)換 行為模型主要對設(shè)計起指導(dǎo)作用 在此基礎(chǔ)上 設(shè)計人員再進行結(jié)構(gòu)模型 如狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)等 的創(chuàng)建 這個過程很大程度上取決于設(shè)計人員的經(jīng)驗和對行為模型的理解 本節(jié)主要介紹一種從行為模型到結(jié)構(gòu)模型的一種轉(zhuǎn)換思想和算法 以實現(xiàn)兩種模型間的自動的轉(zhuǎn)化工作 76 6 4 1基本的模型轉(zhuǎn)換整體框架 模型轉(zhuǎn)換整體框架 整個框架分為三個部分 行為模型使用G U L模型 在這一層將產(chǎn)生一個基本的預(yù)測性的行為模型 結(jié)構(gòu)模型采用層次狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò) 它涉及到的元素有狀態(tài) 轉(zhuǎn)換 事件 層次結(jié)構(gòu) 不考慮狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)在轉(zhuǎn)換中條件和同步 可以簡化轉(zhuǎn)換工作 用戶包含兩種用戶 領(lǐng)域?qū)<液驮O(shè)計者 G U L模型的創(chuàng)建主要是由領(lǐng)域?qū)<液驮O(shè)計者合作來完成的 然后通過模型轉(zhuǎn)換算法轉(zhuǎn)換成為結(jié)構(gòu)模型 最后提供給設(shè)計者使用 人機交互技術(shù)編寫組 78 6 4 2轉(zhuǎn)換算法 1 基本思想2 基本步驟3 實例應(yīng)用 人機交互技術(shù)編寫組 79 1 基本思想 采用G U L以層次化結(jié)構(gòu)對任務(wù)進行建模 包括目標 包括循環(huán)屬性 行為 關(guān)系 狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)表示的是狀態(tài)之間的轉(zhuǎn)換 也采用層次化表示 涉及到的主要是狀態(tài) 轉(zhuǎn)換 事件 行為 在G U L中體現(xiàn)的層次關(guān)系轉(zhuǎn)換到狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)中也體現(xiàn)出層次的關(guān)系 G U L中的每個目標都對應(yīng)一個狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò) 如果一個目標下層有子目標 對子目標來說 它所對應(yīng)的狀態(tài)網(wǎng)絡(luò)應(yīng)該嵌套在上層目標對應(yīng)的狀態(tài)網(wǎng)絡(luò)中 1 基本思想 在產(chǎn)生的狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)中 有兩類事件起作用 一類是外部由用戶激活的事件 如 按下鼠標 事件 點擊鍵盤 事件等 另一類是內(nèi)部由目標產(chǎn)生的內(nèi)部事件 這里只定義了 目標正常結(jié)束 表示目標正常結(jié)束時產(chǎn)生的事件 在進行從G U L到狀態(tài)的轉(zhuǎn)換時 這些事件只是形式上的一個定義 沒有具體的實現(xiàn)過程 如要在某一層出現(xiàn)的第i個外部事件用 外部事件i 來代替 而由某個目標Ti執(zhí)行時產(chǎn)生的內(nèi)部事件也僅僅用類似于 Ti正常結(jié)束事件 來表示 而具體的事件還需要由狀態(tài)網(wǎng)絡(luò)進行 系統(tǒng)實現(xiàn)時通過專門的事件管理器來定義和管理 對G U L中的行為在轉(zhuǎn)換后就成為對應(yīng)的狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)中的一個行為 人機交互技術(shù)編寫組 81 圖6 18中描述了一個目標層次中產(chǎn)生事件的過程 人機交互技術(shù)編寫組 82 2 基本步驟 對轉(zhuǎn)換后的數(shù)據(jù) 存儲的是狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)中表示轉(zhuǎn)換的弧 如下圖6 19所示 圖6 19狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)中弧的表示結(jié)構(gòu)其中的觸發(fā)事件就是觸發(fā)從出發(fā)狀態(tài)到目的狀態(tài)轉(zhuǎn)換的事件 父狀態(tài)表示的是當前弧所在狀態(tài)網(wǎng)絡(luò)的上層狀態(tài) 可以是一個抽象出來的狀態(tài)名 人機交互技術(shù)編寫組 83 2 基本步驟 轉(zhuǎn)換基本步驟 1 讀取存儲G U L模型的數(shù)據(jù)文件 進行解析 定義一個數(shù)組stn用于存儲狀態(tài)網(wǎng)絡(luò)中的弧 獲取G U L模型中的最高目標 設(shè)為G0 然后調(diào)用 2 中的Translate函數(shù) 在Translate執(zhí)行完畢后 stn中便存儲了轉(zhuǎn)換后的狀態(tài)網(wǎng)絡(luò)的數(shù)據(jù) 函數(shù)示意如下 2 對當前的目標進行處理 如果是原子目標 參考原子目標的UAN模型 創(chuàng)建其狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò) 否則 獲得目標層次下的數(shù)據(jù) 包括行為 關(guān)系算符及子目標名 通過關(guān)系符號來調(diào)用 3 中相應(yīng)的關(guān)系轉(zhuǎn)換函數(shù) 對所有的子目標進行遞歸調(diào)用 函數(shù)示意假如下 main 定義一個存儲弧的數(shù)組stn 讀取G U L文件GOALG0 GetSubGoal null 獲取在目標Translate G0 調(diào)用轉(zhuǎn)換函數(shù) Translate 目標G 存儲數(shù)組stn 獲得目標G的子目標subG switch 關(guān)系 case 選擇關(guān)系處理case 允許關(guān)系處理case 交替關(guān)系處理case 禁止關(guān)系處理 對所有的子目標進行遞歸調(diào)用for intI I subG length I Translate subG I stn 3 定義了G U L的各種關(guān)系向狀態(tài)網(wǎng)絡(luò)轉(zhuǎn)換的具體的實現(xiàn)函數(shù) 實際上就是生成狀態(tài)網(wǎng)絡(luò)中的弧 并進行存儲 在各狀態(tài)網(wǎng)絡(luò)中都會有一個初始狀態(tài)S 在每個處理函數(shù)中 需要考慮目標具有循環(huán)屬性的情況 這在狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)中的體現(xiàn)是某個狀態(tài)通過一個事件激活以后能仍然返回到該狀態(tài) 如果要轉(zhuǎn)換到其他狀態(tài) 還需要一個外部事件的作用 如對 G 如圖6 20所示 人機交互技術(shù)編寫組 87 G U L中各種約束關(guān)系對應(yīng)的狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò) 選擇choice 設(shè)目標G下的子目標關(guān)系為 G0 G1 表示共有兩條路徑可以完成目標 從初始狀態(tài)S0出發(fā) 有兩條弧需要記錄 經(jīng)過 外部事件0 到S1的轉(zhuǎn)換及經(jīng)過 外部事件1 到S2的轉(zhuǎn)換 記錄格式如下 人機交互技術(shù)編寫組 88 在狀態(tài)S1下 等待 G0正常結(jié)束事件 發(fā)生后被激活轉(zhuǎn)到S0 或在S2下 等待 G1正常結(jié)束事件 發(fā)生后被激活轉(zhuǎn)到S0也回到S狀態(tài) 這兩條弧在返回S0后都將執(zhí)行動作 產(chǎn)生G正常結(jié)束事件 并記錄下這兩條轉(zhuǎn)換的弧 每次重新回到S0都認為完成了目標G的一次執(zhí)行 在圖6 21b中考慮了存在目標循環(huán)的情況 即 G0 G1 需要記錄的弧也在圖中進行了反映 在后面介紹的關(guān)系中所涉及到的循環(huán)情況與此類似 選擇關(guān)系允許在一個層次下有多個目標同時存在 如 G0 G1 Gn 人機交互技術(shù)編寫組 89 選擇 關(guān)系狀態(tài)網(wǎng)絡(luò) 90 選擇 關(guān)系狀態(tài)網(wǎng)絡(luò) 考慮了存在目標循環(huán)的情況 人機交互技術(shù)編寫組 91 允許Enabling 設(shè)目標G下的子目標關(guān)系為 G0 G1 在這種關(guān)系中完成目標G的路徑只有一條 當G0成功結(jié)束后才允許G1執(zhí)行 這是一個順序執(zhí)行的過程 在轉(zhuǎn)換成狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)后如圖6 22所示 從狀態(tài)S0在外部事件激發(fā)轉(zhuǎn)換至S1 在S1狀態(tài)等待 G0正常結(jié)束事件 發(fā)生后轉(zhuǎn)換至S2 然后在S2處等待 G1正常結(jié)束事件 轉(zhuǎn)換至S0 這樣表示目標G執(zhí)行完畢 同時發(fā)生動作 產(chǎn)生G正常結(jié)束事件 處理轉(zhuǎn)換過程中存儲所有的弧 這種約束關(guān)系允許同一層次下有多個目標存在 如 G0 G1 Gn 這些目標都是順序執(zhí)行 交替Interleaving 設(shè)目標G下的子目標關(guān)系為 G0 G1 表示兩個目標之間一種任意的組合來執(zhí)行完成 在轉(zhuǎn)換到狀態(tài)網(wǎng)絡(luò)后 如圖6 23所示 有S0 S1 S4 S0和S0 S2 S3 S0兩條途徑可以完成目標G的一次執(zhí)行 人機交互技術(shù)編寫組 94 從S0狀態(tài) 如果產(chǎn)生 外部事件0 依次等待 G0正常結(jié)束事件 G1正常結(jié)束事件 并最終回到S0狀態(tài) 同理 若產(chǎn)生 外部事件1 則會沿著另一條路徑回到S0 記錄下所有狀態(tài)轉(zhuǎn)換的弧 在有交替關(guān)系的層次中最多只允許有兩個狀態(tài)存在 禁止Deactivation 設(shè)目標G下的子目標關(guān)系為 G0 G1 一旦G1任務(wù)被執(zhí)行 G0便無效 不活動 這個關(guān)系在轉(zhuǎn)換到狀態(tài)網(wǎng)絡(luò)以后與前面不同的是 在狀態(tài)S2被 G1正常結(jié)束事件 激活以后 不會再回到S0 而是轉(zhuǎn)到了一個新的狀態(tài)F 在有禁止關(guān)系的層次中最多只允許有兩個目標狀態(tài)存在 一個典型的例子是G0 運行 G1 退出 在執(zhí)行退出以后整個程序結(jié)束 也就無法再回到運行狀態(tài)了 人機交互技術(shù)編寫組 96 3 實例應(yīng)用 根據(jù)上面的轉(zhuǎn)換算法 在圖6 24a c中給出了中國象棋的最高層目標 運行 走棋三個目標的狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò) 它們之間通過事件的產(chǎn)生和激活完成其層次間的通信 其他目標的狀態(tài)網(wǎng)絡(luò)表示與這三個圖類似 在這里沒有列出 人機交互技術(shù)編寫組 97 最高層目標 運行 人機交互技術(shù)編寫組 99 走棋 人機交互技術(shù)編寫組 100 習(xí)題 6 2對6 1題中的GOMS模型中的原子目標 創(chuàng)建UAN模型 從而進一步了解UAN模型的在行為模型中的地位和作用 結(jié)合LOTOS算符 用前面介紹的G U L進一步完善任務(wù)的描述 6 3在6 2 1中用產(chǎn)生式規(guī)則描述了 屏幕上繪直線 的模型 請試著用狀態(tài)網(wǎng)絡(luò)來進行描述 并比較一下兩者之間的異同 101 課堂練習(xí) 1把中國象棋的G U L模型轉(zhuǎn)換到狀態(tài)網(wǎng)絡(luò)模型最高目標運行走棋2畫出窗口系統(tǒng)中事件注冊方式處理流程圖- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 人機交互 界面 表示 模型
鏈接地址:http://m.jqnhouse.com/p-8149542.html