第六章人機(jī)交互界面的表示模型與實(shí)現(xiàn)_第1頁
第六章人機(jī)交互界面的表示模型與實(shí)現(xiàn)_第2頁
第六章人機(jī)交互界面的表示模型與實(shí)現(xiàn)_第3頁
第六章人機(jī)交互界面的表示模型與實(shí)現(xiàn)_第4頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、山東大學(xué)計(jì)算機(jī)學(xué)院山東大學(xué)計(jì)算機(jī)學(xué)院2目的n在界面設(shè)計(jì)的早期階段,研究建立一種用戶界面表示模型q利用形式化的設(shè)計(jì)語言來分析和表達(dá)用戶任務(wù)以及用戶和系統(tǒng)之間的交互情況;q使界面表示模型能方便地映射到實(shí)際的設(shè)計(jì)實(shí)現(xiàn)。 山東大學(xué)計(jì)算機(jī)學(xué)院3界面模型分類n任務(wù)分解和分析q能力模型(competence model)n描述用戶的目的q行為模型(performance model)n預(yù)測和描述用戶合法的交互行為序列n結(jié)構(gòu)模型 constructional modelq系統(tǒng)組成模型山東大學(xué)計(jì)算機(jī)學(xué)院4本章主要內(nèi)容 n掌握三種模型:q行為模型n主要從用戶和任務(wù)的角度考慮如何來描述人機(jī)交互界面,將詳細(xì)介紹GOM

2、S,UAN及LOTOS模型。q結(jié)構(gòu)模型n主要從系統(tǒng)的角度來表示人機(jī)交互界面。重點(diǎn)介紹狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)(STN-State Transition Network)和產(chǎn)生式規(guī)則 ( Production Rule )。q事件-對象模型n是一種面向?qū)ο蟮谋硎灸P?,它將人機(jī)交互活動歸結(jié)為事件與對象的相互作用。n掌握如何由界面的行為表示模型轉(zhuǎn)換到系統(tǒng)的結(jié)構(gòu)模型。人機(jī)交互界面表示模型行為模型山東大學(xué)計(jì)算機(jī)學(xué)院6GOMS簡介n1983年由Card, Morgan和Newell 提出的。n通過目標(biāo) (Goal)、操作 (Operator)、方法 (Method) 以及選擇規(guī)則 (Selection) 四個元素來描

3、述用戶的行為。nGOMS是在交互系統(tǒng)中用來分析建立用戶行為的模型。它采用“分而治之”的思想,將一個任務(wù)進(jìn)行多層次的細(xì)化。山東大學(xué)計(jì)算機(jī)學(xué)院7GOMS1.1.目標(biāo) GoalsGoals 目標(biāo)就是用戶執(zhí)行任務(wù)最終想要得到的結(jié)果,它可以在不同的層次中進(jìn)行定義。 eg:“編輯一篇文章”-“編輯文章”(高層); “刪除字符”(低層) 2. 操作 OperatorsOperators 操作是任務(wù)分析到最低層時的行為,是用戶為了完成任務(wù)所必須執(zhí)行的基本動作。 操作不能被分解,在GOMS模型中是原子動作。山東大學(xué)計(jì)算機(jī)學(xué)院8GOMS3. 方法 MethodsMethods 方法是描述如何完成目標(biāo)的過程。一個方

4、法本質(zhì)上來說是內(nèi)部的算法,用來確定子目標(biāo)序列及完成目標(biāo)所需要的操作。關(guān)閉(最小化)窗口GOAL: 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山東大學(xué)計(jì)算機(jī)學(xué)院9GOMS4 4選擇 SelectionSelectionn選擇是用戶要遵守的判定規(guī)則,以確定在特定環(huán)境下所要使用的方法。n當(dāng)有多個方法可供選擇時,GOMS中并不認(rèn)為這是一個隨機(jī)的選擇,而是盡量來預(yù)測

5、會使用哪個方法,這需要根據(jù)特定用戶、系統(tǒng)的狀態(tài)、目標(biāo)的細(xì)節(jié)來預(yù)測要選擇哪種方法。n用戶Sam: Rule 1: Use the CLOSE-METHOD unless another rule applies Rule 2: If the application is GAME, use L7-METHOD山東大學(xué)計(jì)算機(jī)學(xué)院10任務(wù)Editing的GOMS描述實(shí)例Task:EditingGOAL:EDIT-MANUSCRIPT GOAL:EDIT-UNIT-Task repeat until no more unit tasks GOAL:ACQUIRE-UNIT-TASK GET-NEXT-

6、PAGE if at end of manuscript GET-NEXT-TASK GOAL:EXECUTE-UNIT-TASK GOAL:LOCATE-LINE select:USE-QS-METHED USE-LF-METHOD GOAL:MODIFY-TEXT select:USE-S-METHOD USE-M-METHOD VERIFY-EDIT 子目標(biāo)間關(guān)系:順序關(guān)系,選擇關(guān)系山東大學(xué)計(jì)算機(jī)學(xué)院11GOMS應(yīng)用nGOMS是一種人機(jī)交互界面表示的理論模型,被稱為最成熟的工程典范,該模型在計(jì)算機(jī)系統(tǒng)的評估方面也有廣泛的應(yīng)用。nGOMS can save money!q美國電話公司NYN

7、EX利用GOMS分析一套即將被采用的新的計(jì)算機(jī)系統(tǒng)的應(yīng)用效果,結(jié)果發(fā)現(xiàn)效果不理想,放棄了使用新系統(tǒng),為公司節(jié)約了數(shù)百萬的資金。山東大學(xué)計(jì)算機(jī)學(xué)院12GOMS的局限性nGOMS沒有清楚的描述錯誤處理的過程,假設(shè)用戶完全按一種正確的方式進(jìn)行人機(jī)交互,因此只針對那些不犯任何錯誤的專家用戶。nGOMS對于任務(wù)之間的關(guān)系描述過于簡單,只有順序和選擇.事實(shí)上任務(wù)之間的關(guān)系還有很多種(具體參見6.1.2節(jié)中LOTOS的介紹),另外選擇關(guān)系通過非形式化的附加規(guī)則描述,實(shí)現(xiàn)起來也比較困難。nGOMS把所有的任務(wù)都看作是面向操作目標(biāo)的,而忽略了一些任務(wù)所要解決的問題本質(zhì)以及用戶間的個體差異,它的建立不是基于現(xiàn)有的

8、認(rèn)知心理學(xué),無法代表真正的認(rèn)知過程。 山東大學(xué)計(jì)算機(jī)學(xué)院13LOTOS簡介 nLOTOS -Language Of Temporal Ordering Specification, T.Bolognesi, H.Brinskma, Introduction to the ISO Specification Language LOTOS”, 1987.n國際標(biāo)準(zhǔn)形式描述語言,無二義性,適于描述具有并發(fā)、交互、反饋和不確定性等特點(diǎn)的并發(fā)(concurrent)系統(tǒng)中的行為。n開始作為一種描述網(wǎng)絡(luò)協(xié)議的語言,由于交互系統(tǒng)、特別是多通道交互系統(tǒng)有并發(fā)系統(tǒng)的特點(diǎn),因此成為用來描述交互系統(tǒng)的行為模型。山東

9、大學(xué)計(jì)算機(jī)學(xué)院14LOTOS基本思想n系統(tǒng)的外部可見行為可以看作是由一個有時序關(guān)系的交互序列組成。n系統(tǒng)由一系列進(jìn)程組成,進(jìn)程同環(huán)境之間通過稱為“關(guān)口”(gates)的交互點(diǎn)進(jìn)行交互。n兩個以上的進(jìn)程在執(zhí)行同一個外部可見的行為時會發(fā)生交互操作,進(jìn)行數(shù)據(jù)交換、信息傳遞、協(xié)調(diào)同步等操作。n進(jìn)程行為用“行為表達(dá)式”來描述,復(fù)雜的行為由簡單的行為表達(dá)式通過表示時序關(guān)系的LOTOS算符組合而成。n在將LOTOS思想用于人機(jī)交互的行為模型時,用進(jìn)程之間的約束關(guān)系來描述交互子任務(wù)之間的關(guān)系。 山東大學(xué)計(jì)算機(jī)學(xué)院15LOTOS算符LOTOS算符主要有以下幾種:T1 | T2(交替Interleaving)T1

10、 T2(選擇Choice)T1 | a1,.,an | T2(同步Synchronization)T1 T2 (禁止Deactivation)T1 T2(允許Enabling)山東大學(xué)計(jì)算機(jī)學(xué)院16LOTOS實(shí)例山東大學(xué)計(jì)算機(jī)學(xué)院17中國象棋的LOTOS任務(wù)分解實(shí)例山東大學(xué)計(jì)算機(jī)學(xué)院18LOTOS與GOMS的結(jié)合nLOTOS模型很好的描述了任務(wù)之間的時序約束關(guān)系,這些時序約束關(guān)系能更好的描述GOMS中子目標(biāo)之間的關(guān)系。n用GOMS模型描述任務(wù)的分解過程,而用LOTOS給出子任務(wù)之間的約束關(guān)系,這樣就可以增加兩種表示模型的表示能力。 山東大學(xué)計(jì)算機(jī)學(xué)院19結(jié)合GOMS和LOTOS的中國象棋程序的

11、行為描述GOAL:中國象棋 : GOAL:運(yùn)行 |: *GOAL:走棋 ACTION:自動記錄棋譜 : GOAL:當(dāng)前方走 : OPRATOR:拾取棋子 OPRATOR:放置棋子 GOAL:對弈方走 OPRATOR:拾取棋子 OPRATOR:放置棋子 *GOAL:打譜 : OPRATOR:加速 OPRATOR:減速 OPRATOR:暫停 OPRATOR:恢復(fù) GOAL:退出山東大學(xué)計(jì)算機(jī)學(xué)院20總結(jié)nLOTOS與GOMS結(jié)合,可以清楚地了解整個目標(biāo)層次及各目標(biāo)之間的約束關(guān)系。但與GOMS同樣存在無法描述目標(biāo)異常結(jié)束的缺陷,同時當(dāng)任務(wù)進(jìn)行選擇時用什么規(guī)則進(jìn)行選擇并未涉及。nLOTOS最大的優(yōu)越性

12、在于可以構(gòu)造一套現(xiàn)成的自動化工具,利用這些工具,可自動進(jìn)行錯誤檢測,但它過于形式化的記法比較晦澀難懂。nGOMS和LOTOS的結(jié)合可以很好地描述人機(jī)交互的較高級的任務(wù),對于原子任務(wù)的形式化描述,上述模型并沒有給出一個比較清晰的描述,下面討論的UAN模型主要用于原子目標(biāo)的描述。 山東大學(xué)計(jì)算機(jī)學(xué)院21UAN模型nUAN-User Action Notation, Hartson et al 1990.nUAN是一種簡單的符號語言,主要描述用戶的行為序列以及在執(zhí)行任務(wù)時所用的界面物理對象。 n盡管UAN屬于一種行為模型,但作為一種任務(wù)描述語言,它又涉及一定程度的系統(tǒng)行為的描述,因而它兼有行為模型和

13、結(jié)構(gòu)模型的一些特點(diǎn)。山東大學(xué)計(jì)算機(jī)學(xué)院22UAN模型的基本思想n預(yù)定義一些標(biāo)志符:q用戶動作標(biāo)志符q條件標(biāo)志符n采用一種表格結(jié)構(gòu)來表示任務(wù)n界面被分解成一些類似層次結(jié)構(gòu)的異步任務(wù),每個任務(wù)的實(shí)現(xiàn)都用表格來描述,用戶動作的關(guān)聯(lián)性和時序關(guān)系由表格的行列對齊關(guān)系和從上到下、從左到右的閱讀順序來確定。任務(wù)(任務(wù)(tasktask):任務(wù)名稱():任務(wù)名稱(the name of taskthe name of task)用戶行為界面反饋界面狀態(tài)山東大學(xué)計(jì)算機(jī)學(xué)院23UAN預(yù)定義的動作標(biāo)志符(部分)n用戶動作標(biāo)志符:qmove_mouse(x,y) 移動鼠標(biāo)至(x,y)qrelease_button(x

14、,y)在(x,y)位置釋放鼠標(biāo)按鈕;qhighlight(icon) 使icon高亮顯示;qde_highlight(icon) 取消icon的高亮顯示。 用戶動作標(biāo)志符:X,在某個圖形對象上移動鼠標(biāo);, 按下鼠標(biāo);,釋放鼠標(biāo);!, 使對象高亮顯示; -!, 取消對象的高亮顯示 Display,顯示圖形對象; Erase, 取消顯示對象。山東大學(xué)計(jì)算機(jī)學(xué)院24UAN預(yù)定義的條件標(biāo)志符(部分)nwhile(condition) TASKq當(dāng)條件condition為真時,循環(huán)執(zhí)行任務(wù)TASK;nif(condition) then TASKq如果條件condition滿足,則執(zhí)行任務(wù)TASK;ni

15、teration A* or A+ q表示迭代操作;nwaiting q表示等待,可以等待一個條件滿足,也可以等待任務(wù)中的一個操作執(zhí)行。 山東大學(xué)計(jì)算機(jī)學(xué)院25UAN實(shí)例-單通道交互任務(wù):任務(wù):把文件拖入垃圾箱把文件拖入垃圾箱用戶行為界面反饋界面狀態(tài)mouse_down(x,y) drag_icon(x,y) mouse_up(x,y) then highlight(icon)show_outline(icon)then highlight(bin) then hide(icon) show_bin_full()if intersect(icon,x,y)icon=selected if in

16、tersect(bin,x,y) if intersect(bin,x,y)山東大學(xué)計(jì)算機(jī)學(xué)院26UAN實(shí)例-多通道任務(wù):任務(wù):drag and drop a file to the recycle bindrag and drop a file to the recycle bin用戶行為界面反饋界面狀態(tài)2D鼠標(biāo)語音then highlight(icon) show_outline(icon)then highlight(bin) then hide(icon)show_bin_full()if intersect(icon, x,y)icon=selected if intersect(b

17、in,x,y) if intersect(bin,x2,y2)mouse_down(x,y)drag_icon(x,y)mouse_up(x,y)PronounceMove_to+recycle_bin山東大學(xué)計(jì)算機(jī)學(xué)院27UAN實(shí)例-多通道任務(wù):在桌面上把文件任務(wù):在桌面上把文件A A拖入文件拖入文件B B用戶行為界面反饋界面狀態(tài)2D鼠標(biāo)語音then highlight(iconA) show_outline(iconA)then highlight(folderB) then hide(iconA)if intersect(iconA, x,y)iconA=selected if inte

18、rsect(folderB,x,y) if intersect(folderB,x2,y2)mouse_down(x,y)drag_icon(x,y)mouse_up(x,y)PronounceMove_to+B山東大學(xué)計(jì)算機(jī)學(xué)院28UAN總結(jié)nUAN模型更接近于實(shí)現(xiàn),界面狀態(tài)和界面反饋用一般的程序語言描述,實(shí)現(xiàn)起來比較方便,當(dāng)然這種描述由于接近于程序語言,因此設(shè)計(jì)時需要一定的編程基礎(chǔ)nUAN模型在精確刻畫各成分之間的各種平行和串行的時序關(guān)系方面尚顯不足,任務(wù)之間的時序關(guān)系沒有明確表示出來,當(dāng)所描述的界面使用多種輸入設(shè)備和有若干可選交互路徑時,比較繁瑣。 山東大學(xué)計(jì)算機(jī)學(xué)院29層次化的界面描述

19、方法人機(jī)交互界面表示模型結(jié)構(gòu)模型界面表示的行為模型和結(jié)構(gòu)模型n行為模型q行為模型是從用戶任務(wù)和完成目標(biāo)角度描述界面模型n描述任務(wù)或目標(biāo)n為了完成任務(wù)或達(dá)到目標(biāo)所進(jìn)行的行為序列n結(jié)構(gòu)模型q結(jié)構(gòu)模型從系統(tǒng)組成角度,描述如何通過交互序列完成交互任務(wù)。著重描述系統(tǒng)的反應(yīng)和行為。n從用戶角度看,行為模型強(qiáng)調(diào)做什么,結(jié)構(gòu)模型強(qiáng)調(diào)怎么做結(jié)構(gòu)模型n產(chǎn)生式規(guī)則-Production Rulen狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)-State Transition Network產(chǎn)生式規(guī)則 n又稱為上下文無關(guān)文法,將人機(jī)交互對話看作是一種語言,運(yùn)用基于語法的方法來描述交互對話。n產(chǎn)生式集合定義了用戶與計(jì)算機(jī)交互所運(yùn)用的語言。n產(chǎn)生式規(guī)則

20、的一般形式是:qif condition then actionn這些規(guī)則可以表示為不同的形式,如qcondition actionqcondition:action 產(chǎn)生式規(guī)則n系統(tǒng)不斷用產(chǎn)生式規(guī)則來檢測用戶的輸入是否與這些條件相匹配。若匹配則激活相應(yīng)的動作,這些動作可以是執(zhí)行應(yīng)用程序的一個過程,也可以是直接改變某些系統(tǒng)狀態(tài)的值。n一般來說,組成界面描述的產(chǎn)生式規(guī)則很多,所有的規(guī)則都是有效的,規(guī)則定義的順序并不重要,只要與規(guī)則中的條件相匹配,就可以激活相應(yīng)的動作。n產(chǎn)生式規(guī)則系統(tǒng)可以是q事件引導(dǎo);q狀態(tài)引導(dǎo);q混合引導(dǎo)事件引導(dǎo)的系統(tǒng) n用戶在屏幕上繪制直線qSel-line start-li

21、ne qC-point start-line rest-line qC-point rest- line rest-line qD-point rest- line 事件引導(dǎo)的系統(tǒng)n產(chǎn)生式規(guī)則的條件和動作部分都以事件的方式進(jìn)行表示。事件主要有三種類型:q用戶事件(user event),Sel-line表示從菜單中選擇line命令,C-point 和D-point表示用戶在繪圖平面上單擊和雙擊鼠標(biāo)。q內(nèi)部事件,用于保持對話狀態(tài),如start-line 表示開始畫線后的狀態(tài),rest- line表示選擇了第一個點(diǎn)之后的狀態(tài)。q系統(tǒng)響應(yīng)事件,以尖括號表示可見或可聽的系統(tǒng)響應(yīng),如,把菜單項(xiàng)line高

22、亮度顯示,表示在屏幕上顯示直線, 表示橡皮筋繪制方式打開,表示橡皮筋繪制方式關(guān)閉。 事件引導(dǎo)實(shí)現(xiàn)方法n保存內(nèi)部事件序列n構(gòu)造一個對話控制器,主要負(fù)責(zé)事件的產(chǎn)生和規(guī)則的匹配n規(guī)則的匹配算法影響系統(tǒng)的性能狀態(tài)引導(dǎo)的系統(tǒng)n事件引導(dǎo)的系統(tǒng)中的內(nèi)部事件,是事件還是狀態(tài)?n在系統(tǒng)內(nèi)存保存的不再是動態(tài)的隨時進(jìn)出的事件,而是一些表示系統(tǒng)的當(dāng)前狀態(tài)的屬性,這些屬性在不同的時刻有不同的值。狀態(tài)定義nMouse:mouse-null, select-line, click-point, double-clicknLine-state:menu, start-line, rest-linenRubber-band:r

23、ubber-band-on, rubber-band-offnMenu:highlight-null, highlight-line, highlight-circlenDraw:draw-nothing, draw-line產(chǎn)生式規(guī)則nSelect-linemouse-null start-line highlight-linenClick-point start-linemouse-null rest-line rubber-band-onnClick-point rest- linemouse-null draw-linenDouble-click rest-linemouse-null

24、 menu draw-line rubber-band-off混合引導(dǎo)的系統(tǒng)n可以將兩者結(jié)合起來,采用下面的形式:event: condition action 來描述一個產(chǎn)生式規(guī)則。n事件用來激活產(chǎn)生式規(guī)則,如果條件不滿足,即當(dāng)前系統(tǒng)內(nèi)存中的狀態(tài)和產(chǎn)生式的規(guī)則不匹配,則無法激活規(guī)則。n當(dāng)狀態(tài)改變時,產(chǎn)生式規(guī)則中的action本身也可以產(chǎn)生新的事件,從而可以激活另一條規(guī)則。 混合引導(dǎo)的系統(tǒng) n系統(tǒng)有三個屬性:qBold: off, onqItalic: off, onqUnderline:off, on混合引導(dǎo)系統(tǒng)的產(chǎn)生式nselect- bold:Bold = off Bold = onns

25、elect- bold:Bold = on Bold = offnselect-italic: Italic = off Italic = onnselect-italic: Italic = on Italic = offnselect-under:Underline = off Underline = onnselect-under:Underline = on Underline = off產(chǎn)生式規(guī)則總結(jié)n描述操作時序能力強(qiáng),并發(fā)順序均可n無法描述誤操作n界面復(fù)雜時,狀態(tài)、事件復(fù)雜,產(chǎn)生式過多,要求產(chǎn)生式匹配算法性能高狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)n狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)(STN)的基本思想是定義一個具有一定數(shù)量狀

26、態(tài)的轉(zhuǎn)換機(jī),稱之為有限狀態(tài)機(jī)-Finite State Machine(FSM)。nFSM從外部世界中接收到事件,并能使FSM從一個狀態(tài)轉(zhuǎn)換到另一個狀態(tài)。n這里介紹兩種最基本的狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò),狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)(State Diagrams)和擴(kuò)展?fàn)顟B(tài)轉(zhuǎn)換網(wǎng)絡(luò)(State Charts),后者是前者的一個擴(kuò)展。傳統(tǒng)的狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)n當(dāng)發(fā)生一個外部或內(nèi)部事件時,系統(tǒng)就會從一個狀態(tài)轉(zhuǎn)換到另外一個狀態(tài),這稱為狀態(tài)轉(zhuǎn)換。q外部事件主要由用戶操作外部輸入設(shè)備來產(chǎn)生。q內(nèi)部事件可以是系統(tǒng)產(chǎn)生的事件,如時鐘事件,也可以是為了改變系統(tǒng)的狀態(tài)和行為而產(chǎn)生的事件,如當(dāng)一個任務(wù)完成后可以激活另一個任務(wù)等。n一個狀態(tài)轉(zhuǎn)換與一對

27、狀態(tài)相關(guān)聯(lián)。n一般的系統(tǒng)具有很多個狀態(tài),假設(shè)系統(tǒng)由n個狀態(tài)組成,狀態(tài)之間的轉(zhuǎn)換最多可能有n*(n-1)個。n簡單的三狀態(tài)FSMq最多可能有6個狀態(tài)轉(zhuǎn)換帶條件和動作的狀態(tài)轉(zhuǎn)換n選項(xiàng)條件(conditions),表示導(dǎo)致狀態(tài)的改變的條件;n選項(xiàng)動作(actions),表示系統(tǒng)在改變狀態(tài)時將執(zhí)行什么動作。帶條件的狀態(tài)轉(zhuǎn)換實(shí)例帶條件的狀態(tài)轉(zhuǎn)換實(shí)例n基于鼠標(biāo)的畫圖工具draw circle單擊在圓周上rubber band單擊在中心點(diǎn)highlight circle選擇 circle Circle1MenuFinish Circle2draw line雙擊rubber band單擊在第一點(diǎn)highlig

28、ht line選擇 lineLine1Finish Line2傳統(tǒng)狀態(tài)轉(zhuǎn)換模型的優(yōu)缺點(diǎn)n狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)的優(yōu)點(diǎn)q比相應(yīng)的文本解決方案更易于設(shè)計(jì)、理解、修改和文檔化q它給出了對行為的精確的、甚至是格式化的定義。n存在著一定的局限性q最大的缺陷是需要定義出系統(tǒng)的所有狀態(tài),這對于小型的系統(tǒng)是沒有問題的,但是在一個較大的系統(tǒng)中,系統(tǒng)會很快崩潰q狀態(tài)的數(shù)目是呈指數(shù)級增長的,同時狀態(tài)的增長直接導(dǎo)致了狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)過于復(fù)雜、無法實(shí)際應(yīng)用。 擴(kuò)展?fàn)顟B(tài)轉(zhuǎn)換網(wǎng)絡(luò)彈出 graphics子菜單選擇 graphics主菜單 graphics 子菜單彈出text 子菜單選擇 text text 子菜單彈出 paint 子菜單選

29、擇 paint p a i n t 子 菜 單山東大學(xué)計(jì)算機(jī)學(xué)院53帶有取消功能的狀態(tài)轉(zhuǎn)換圖彈出 graphics子菜單選擇 graphics主菜單 graphics 子菜單彈出text 子菜單選擇 text text 子菜單彈出 paint 子菜單選擇 paint p a i n t 子 菜 單ESC正常完成正常完成正常完成ESCESC山東大學(xué)計(jì)算機(jī)學(xué)院54帶有幫助功能的狀態(tài)轉(zhuǎn)換按下HELP按鈕按下HELP按鈕從菜單出發(fā)draw circle單擊在圓周上rubber band單擊在中心點(diǎn)Circle1Finish Circle2幫助子系統(tǒng)幫助子系統(tǒng)狀態(tài)轉(zhuǎn)換模型的優(yōu)缺點(diǎn)n優(yōu)點(diǎn)q具有良好的描述串

30、行和順序行為的能力q比相應(yīng)的文本解決方案更易于設(shè)計(jì)、理解、修改和文檔化q它給出了對行為的精確的、甚至是格式化的定義n缺點(diǎn)q狀態(tài)的爆發(fā)式增長問題q并發(fā)及其他行為的描述能力差q雖然是一個結(jié)構(gòu)模型,但難以實(shí)現(xiàn)行為模型和結(jié)構(gòu)模型的轉(zhuǎn)換 轉(zhuǎn)換算法 行為模型(G-U-L) 結(jié)構(gòu)模型State ChartsGOMSUANLOTOS約束規(guī)則用戶D o m a i n ExpertDesigner 模型轉(zhuǎn)換整體框架山東大學(xué)計(jì)算機(jī)學(xué)院57模型轉(zhuǎn)換整體框架 n整個框架分為三個部分:q行為模型使用G-U-L模型,在這一層將產(chǎn)生一個基本的預(yù)測性的行為模型。 q結(jié)構(gòu)模型采用層次狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò),它涉及到的元素有狀態(tài)、轉(zhuǎn)換、事

31、件、層次結(jié)構(gòu)。不考慮狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)在轉(zhuǎn)換中條件和同步,可以簡化轉(zhuǎn)換工作。 q用戶包含兩種用戶,領(lǐng)域?qū)<液驮O(shè)計(jì)者。G-U-L模型的創(chuàng)建主要是由領(lǐng)域?qū)<液驮O(shè)計(jì)者合作來完成的,然后通過模型轉(zhuǎn)換算法轉(zhuǎn)換成為結(jié)構(gòu)模型,最后提供給設(shè)計(jì)者使用。 山東大學(xué)計(jì)算機(jī)學(xué)院58轉(zhuǎn)換算法 n1.基本思想 n2.基本步驟 n3.實(shí)例應(yīng)用 山東大學(xué)計(jì)算機(jī)學(xué)院591.基本思想 n采用G-U-L以層次化結(jié)構(gòu)對任務(wù)進(jìn)行建模,包括目標(biāo)(包括循環(huán)屬性)、行為、關(guān)系。n狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)表示的是狀態(tài)之間的轉(zhuǎn)換,也采用層次化表示,涉及到的主要是狀態(tài)、轉(zhuǎn)換、事件、行為。n在G-U-L中體現(xiàn)的層次關(guān)系轉(zhuǎn)換到狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)中也體現(xiàn)出層次的關(guān)系,G-U-

32、L中的每個目標(biāo)都對應(yīng)一個狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)。n如果一個目標(biāo)下層有子目標(biāo),對子目標(biāo)來說,它所對應(yīng)的狀態(tài)網(wǎng)絡(luò)應(yīng)該嵌套在上層目標(biāo)對應(yīng)的狀態(tài)網(wǎng)絡(luò)中。 山東大學(xué)計(jì)算機(jī)學(xué)院601.基本思想n在產(chǎn)生的狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)中,有兩類事件起作用:q一類是外部由用戶激活的事件,如“按下鼠標(biāo)” 事件、“點(diǎn)擊鍵盤” 事件等;q另一類是內(nèi)部由目標(biāo)產(chǎn)生的內(nèi)部事件,這里只定義了“目標(biāo)正常結(jié)束”,表示目標(biāo)正常結(jié)束時產(chǎn)生的事件。q在進(jìn)行從G-U-L到狀態(tài)的轉(zhuǎn)換時,這些事件只是形式上的一個定義,沒有具體的實(shí)現(xiàn)過程,如要在某一層出現(xiàn)的第i個外部事件用“外部事件i”來代替,而由某個目標(biāo)Ti執(zhí)行時產(chǎn)生的內(nèi)部事件也僅僅用類似于“Ti正常結(jié)束事件”來表

33、示,q而具體的事件還需要由狀態(tài)網(wǎng)絡(luò)進(jìn)行,系統(tǒng)實(shí)現(xiàn)時通過專門的事件管理器來定義和管理。 q對G-U-L中的行為在轉(zhuǎn)換后就成為對應(yīng)的狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)中的一個行為。 山東大學(xué)計(jì)算機(jī)學(xué)院61 事件產(chǎn)生過程G產(chǎn)生“G正常結(jié)束”事件S0F圖 中描述了一個目標(biāo)層次中產(chǎn)生事件的過程。山東大學(xué)計(jì)算機(jī)學(xué)院622.基本步驟n對轉(zhuǎn)換后的數(shù)據(jù),存儲的是狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)中表示轉(zhuǎn)換的弧,如下圖所示: 狀態(tài)轉(zhuǎn)換網(wǎng)絡(luò)中弧的表示結(jié)構(gòu) n其中的觸發(fā)事件就是觸發(fā)從出發(fā)狀態(tài)到目的狀態(tài)轉(zhuǎn)換的事件;n父狀態(tài)表示的是當(dāng)前弧所在狀態(tài)網(wǎng)絡(luò)的上層狀態(tài),可以是一個抽象出來的狀態(tài)名;出發(fā)狀態(tài)目的狀態(tài)觸發(fā)事件父狀態(tài)行為山東大學(xué)計(jì)算機(jī)學(xué)院632.基本步驟n轉(zhuǎn)換基

34、本步驟q(1)讀取存儲G-U-L模型的數(shù)據(jù)文件,進(jìn)行解析,定義一個數(shù)組stn用于存儲狀態(tài)網(wǎng)絡(luò)中的弧。獲取G-U-L模型中的最高目標(biāo),設(shè)為G0,然后調(diào)用(2)中的Translate函數(shù),在Translate執(zhí)行完畢后,stn中便存儲了轉(zhuǎn)換后的狀態(tài)網(wǎng)絡(luò)的數(shù)據(jù)。函數(shù)示意如下:main()定義一個存儲弧的數(shù)組stn讀取G-U-L文件GOAL G0”: 允許關(guān)系處理 case “|”: 交替關(guān)系處理 case “”: 禁止關(guān)系處理 /對所有的子目標(biāo)進(jìn)行遞歸調(diào)用 for(int I;I(G0,G1),在這種關(guān)系中完成目標(biāo)G的路徑只有一條,當(dāng)G0成功結(jié)束后才允許G1執(zhí)行,這是一個順序執(zhí)行的過程。n在轉(zhuǎn)換成狀

35、態(tài)轉(zhuǎn)換網(wǎng)絡(luò)后如圖6-17所示。 圖6-17 允許”關(guān)系狀態(tài)網(wǎng)絡(luò)G1正常結(jié)束事件G0正常結(jié)束事件外部事件S1S2S0產(chǎn)生G正常結(jié)束事件“允許”關(guān)系狀態(tài)網(wǎng)絡(luò)G2正常結(jié)束事件G0正常結(jié)束事件外部事件S1S3S0產(chǎn) 生 G正常結(jié)束事件S2G1正常結(jié)束事件n(G0,G1,G2)山東大學(xué)計(jì)算機(jī)學(xué)院72n從狀態(tài)S0在外部事件激發(fā)轉(zhuǎn)換至S1,在S1狀態(tài)等待“G0正常結(jié)束事件”發(fā)生后轉(zhuǎn)換至S2;然后在S2處等待“G1正常結(jié)束事件”轉(zhuǎn)換至S0,這樣表示目標(biāo)G執(zhí)行完畢,同時發(fā)生動作“產(chǎn)生G正常結(jié)束事件”,處理轉(zhuǎn)換過程中存儲所有的弧。這種約束關(guān)系允許同一層次下有多個目標(biāo)存在,如(G0,G1,Gn),這些目標(biāo)都是順序執(zhí)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論