人机交互 第6章 人机交互界面表示模型1_第1页
人机交互 第6章 人机交互界面表示模型1_第2页
人机交互 第6章 人机交互界面表示模型1_第3页
人机交互 第6章 人机交互界面表示模型1_第4页
人机交互 第6章 人机交互界面表示模型1_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

人机交互技术编写组1第6章人机交互界面的表示模型

人机交互技术编写组2目的在界面设计的早期阶段,研究建立一种用户界面表示模型利用形式化的设计语言来分析和表达用户任务以及用户和系统之间的交互情况;使界面表示模型能方便地映射到实际的设计实现。

人机交互技术编写组3界面模型分类任务分解和分析能力模型(competencemodel)预测和描述用户合法的交互行为序列行为模型(performancemodel)预测和描述用户合法的交互行为序列描述用户的目的结构模型constructionalmodel系统组成模型人机交互技术编写组4主要内容三种模型:行为模型,主要从用户和任务的角度考虑如何来描述人机交互界面,将详细介绍GOMS,UAN及LOTOS模型。结构模型,主要从系统的角度来表示人机交互界面。重点介绍状态转换网络(STN-StateTransitionNetwork)和产生式规则(ProductionRule)。事件-对象模型,是一种目前非常流行的面向对象的表示模型,它将人机交互活动归结为事件与对象的相互作用。如何由界面的行为表示模型转换到系统的结构模型。人机交互技术编写组5参考材料1)ThePsychologyofHuman-ComputerInteractionbyS.K.Cardetal.2)Human-ComputerInteraction(2ndEdition)byAlanJ.Dix,etal.3)董士海等:《人机交互和多通道用户界面》.科学出版社,1999.2.4)AComparisonofApproachesforSpecifyingMulti-ModalInteractiveSystems,byJoelleCoutazetal.人机交互技术编写组66.1行为模型分析人员获取用户需求后,结合领域专家的意见和指导,获取系统中需要完成的任务,对任务的主要因素进行详细地分析,如任务的层次、发生条件、完成的方法以及它们之间的关系等等。所有这些内容,都是在行为模型中所要研究的。

人机交互技术编写组76.1.1GOMS1983年由Card,Morgan和Newell提出的。通过目标

(Goal)、操作

(Operator)、方法

(Method)以及选择规则

(Selection)四个元素来描述用户的行为。GOMS是在交互系统中用来分析建立用户行为的模型。它采用“分而治之”的思想,将一个任务进行多层次的细化。人机交互技术编写组86.1.1GOMS1.目标Goals

目标就是用户执行任务最终想要得到的结果,它可以在不同的层次中进行定义。

2.

操作Operators

操作是任务分析到最低层时的行为,是用户为了完成任务所必须执行的基本动作。

人机交互技术编写组96.1.1GOMS3.方法Methods

方法是描述如何完成目标的过程。一个方法本质上来说是内部的算法,用来确定子目标序列及完成目标所需要的操作。GOAL:ICONSIZE-WINDOW.[selectGOAL:USE-CLOSE-METHOD..MOVE-MOUSE-TO-WINDOW-HEADER..POP-UP-MENU..CLICK-OVER-CLOSE-OPTION.GOAL:USE-L7-METHOD..PRESS-L7-KEY]人机交互技术编写组106.1.1GOMS4.选择Selection选择是用户要遵守的判定规则,以确定在特定环境下所要使用的方法。当有多个方法可供选择时,GOMS中并不认为这是一个随机的选择,而是尽量来预测会使用哪个方法,这需要根据特定用户、系统的状态、目标的细节来预测要选择哪种方法。用户Sam:Rule1:UsetheCLOSE-METHODunlessanotherruleappliesRule2:IftheapplicationisGAME,useL7-METHOD人机交互技术编写组11GOMS实例Task:EditingGOAL:EDIT-MANUSCRIPTGOAL:EDIT-UNIT-TaskrepeatuntilnomoreunittasksGOAL:ACQUIRE-UNIT-TASKGET-NEXTifatendofmanuscriptGET-NEXT-TASKGOAL:EXECUTE-UNIT-TASKGOAL:LOCATE-LINE[select:USE-QS-METHEDUSE-LF-METHOD]GOAL:MODIFY-TEXT[select:USE-S-METHODUSE-M-METHOD]VERIFY-EDIT

人机交互技术编写组12GOMS应用作为一种人机交互界面表示的理论模型,GOMS是人机交互研究领域内少有的几个广为人知的模型之一,并被称为最成熟的工程典范,该模型在计算机系统的评估方面也有广泛的应用。GOMScansavemoney!美国电话公司NYNEX利用GOMS分析一套即将被采用的新的计算机系统的应用效果,结果发现效果不理想,放弃了使用新系统,为公司节约了数百万的资金。人机交互技术编写组13GOMS的局限性GOMS没有清楚的描述错误处理的过程,假设用户完全按一种正确的方式进行人机交互,因此只针对那些不犯任何错误的专家用户。GOMS对于任务之间的关系描述过于简单,只有顺序和选择.事实上任务之间的关系还有很多种(具体参见6.1.2节中LOTOS的介绍),另外选择关系通过非形式化的附加规则描述,实现起来也比较困难。GOMS把所有的任务都看作是面向操作目标的,而忽略了一些任务所要解决的问题本质以及用户间的个体差异,它的建立不是基于现有的认知心理学,无法代表真正的认知过程。

人机交互技术编写组146.1.2LOTOSLOTOS-LanguageOfTemporalOrderingSpecification,T.Bolognesi,H.Brinskma,"IntroductiontotheISOSpecificationLanguageLOTOS”,1987.国际标准形式描述语言,适于描述具有并发、交互、反馈和不确定性等特点的并发(concurrent)系统中的行为。开始作为一种描述网络协议的语言,由于交互系统、特别是多通道交互系统有并发系统的特点,因此成为用来描述交互系统的行为模型。人机交互技术编写组15LOTOS基本思想系统的外部可见行为可以看作是由一个有时序关系的交互序列组成。系统由一系列进程组成,进程同环境之间通过称为“关口”(gates)的交互点进行交互。两个以上的进程在执行同一个外部可见的行为时会发生交互操作,进行数据交换、信息传递、协调同步等操作。进程行为用“行为表达式”来描述,复杂的行为由简单的行为表达式通过表示时序关系的LOTOS算符组合而成。在将LOTOS思想用于人机交互的行为模型时,用进程之间的约束关系来描述交互子任务之间的关系。

人机交互技术编写组16LOTOS算符T1|||T2(交替Interleaving)T1和T2两个任务相互独立执行,可按任意顺序执行,但永远不会同步。

T1[]T2(选择Choice)需要在T1,T2中选择一个执行,一旦选择某一个后,必须执行它直到结束,在这中间另一个再无执行机会。

T1|[a1,...,an]|T2(同步Synchronization)任务T1,T2必须在动作(a1,……,an)处保持同步

T1[>T2(禁止Deactivation)一旦T2任务被执行,T1便无效(不活动)

T1>>T2(允许Enabling)当T1成功结束后才允许T2执行

人机交互技术编写组17LOTOS实例人机交互技术编写组18中国象棋的LOTOS任务分解实例人机交互技术编写组19LOTOS与GOMS的结合LOTOS模型很好的描述了任务之间的时序约束关系,这些时序约束关系能更好的描述GOMS中子目标之间的关系。用GOMS模型描述任务的分解过程,而用LOTOS给出子任务之间的约束关系,这样就可以增加两种表示模型的表示能力。

人机交互技术编写组20结合GOMS和LOTOS的中国象棋程序的行为描述GOAL:中国象棋

[>:GOAL:运行

|||:*GOAL:走棋

ACTION:自动记录棋谱

>>:GOAL:当前方走

>>:OPRATOR:拾取棋子

OPRATOR:放置棋子

GOAL:对弈方走>>OPRATOR:拾取棋子

OPRATOR:放置棋子*GOAL:打谱

[]:OPRATOR:加速

OPRATOR:减速

OPRATOR:暂停

OPRATOR:恢复

GOAL:退出人机交互技术编写组21LOTOS总结LOTOS与GOMS结合,可以清楚地了解整个目标层次及各目标之间的约束关系。但与GOMS同样存在无法描述目标异常结束的缺陷,同时当任务进行选择时用什么规则进行选择并为涉及。LOTOS最大的优越性在于可以构造一套现成的自动化工具,利用这些工具,可自动进行错误检测,但它过于形式化的记法比较晦涩难懂。GOMS和LOTOS的结合可以很好地描述人机交互的较高级的任务,对于原子任务的形式化描述,上述模型并没有给出一个比较清晰的描述,下面讨论的UAN模型主要用于原子目标的描述。

人机交互技术编写组226.1.3UAN

UANUserActionNotationUAN是一种简单的符号语言,主要描述用户的行为序列以及在执行任务时所用的界面物理对象。

尽管UAN属于一种行为模型,但作为一种任务描述语言,它又涉及一定程度的系统行为的描述,因而它兼有行为模型和结构模型的一些特点。人机交互技术编写组23UAN模型的基本思想预定义一些标志符:用户动作标志符条件标志符采用一种表格结构来表示任务界面被分解成一些类似层次结构的异步任务,每个任务的实现都用表格来描述,用户动作的关联性和时序关系由表格的行列对齐关系和从上到下、从左到右的阅读顺序来确定。任务(task):任务名称(thenameoftask)用户行为界面反馈界面状态人机交互技术编写组24UAN预定义的动作标志符(部分)用户动作标志符:move_mouse(x,y)移动鼠标至(x,y)release_button(x,y)在(x,y)位置释放鼠标按钮;highlight(icon)使icon高亮显示;de_highlight(icon)取消icon的高亮显示。用户动作标志符:~[X],在某个图形对象上移动鼠标;£,按下鼠标;¢,释放鼠标;!,使对象高亮显示;-!,取消对象的高亮显示Display,显示图形对象;Erase,取消显示对象。人机交互技术编写组25UAN预定义的条件标志符(部分)while(condition)TASK当条件condition为真时,循环执行任务TASK;if(condition)thenTASK如果条件condition满足,则执行任务TASK;iterationA*orA+表示迭代操作;waiting表示等待,可以等待一个条件满足,也可以等待任务中的一个操作执行。人机交互技术编写组26UAN实例-单通道交互任务:draganddropafiletotherecyclebin用户行为界面反馈界面状态mouse_down(x,y)

drag_icon(x,y)

mouse_up(x,y)

thenhighlight(icon)show_outline(icon)thenhighlight(bin)

thenhide(icon)show_bin_full()ifintersect(icon,x,y)icon=selected

ifintersect(bin,x,y)

ifintersect(bin,x,y)人机交互技术编写组27UAN实例-多通道交互任务:draganddropafiletotherecyclebin用户行为界面反馈界面状态2D鼠标语音thenhighlight(icon)

show_outline(icon)thenhighlight(bin)

thenhide(icon)show_bin_full()ifintersect(icon,x,y)icon=selected

ifintersect(bin,x,y)

ifintersect(bin,x2,y2)mouse_down(x,y)drag_icon(x,y)mouse_up(x,y)PronounceMove_to_recycle_bin人机交互技术编写组28UAN总结UAN模型更接近于实现,界面状态和界面反馈用一般的程序语言描述,实现起来比较方便,当然这种描述由于接近于程序语言,因此设计时需要一定的编程基础UAN模型在精确刻画各成分之间的各种平行和串行的时序关系方面尚显不足,任务之间的时序关系没有明确表示出来,当所描述的界面使用多种输入设备和有若干可选交互路径时,比较繁琐。

人机交互技术编写组29层次化的界面描述方法人机交互技术编写组30G-U-L模型可以考虑将GOMS、UAN、LOTOS中模型结合为一个预测行为模型:G-U-L模型。G-U-L运用GOMS原理为基础进行任务分解,建立基本的行为模型,原子操作由UAN模型描述,在此基础上,运用LOTOS算符来表示任务目标之间的时序关系。在G-U-L模型中没有加入规则,在表示目标之间的关系中也未考虑同步。这主要考虑到规则的转换要涉及到推理、建立知识库等问题,而同步的问题的描述和转换也非常的复杂,这会在工作的初期造成非常大的困难。人机交互技术编写组316.2结构模型

产生式规则-ProductionRule形式化语言的描述,这种结构的方法从理论上可以引导界面设计者及界面工具的设计者进行有效的设计。

状态转换网络-StateTransitNetwork用结构化的方法来描述人机交互的一般过程,是一种图示化的结构人机交互技术编写组326.2.1产生式规则

又称为上下文无关文法,将人机交互对话看作是一种语言,运用基于语法的方法来描述交互对话。产生式规则是一种形式化语言,这些规则可用于描述人机交互界面。产生式规则的一般形式是:ifconditionthenaction这些规则可以表示为不同的形式,如condition→

actioncondition:action人机交互技术编写组33产生式规则所有的规则都是有效的,并且系统不断用它来检测用户的输入是否与这些条件相匹配。若匹配则激活相应的动作,这些动作可以是执行应用程序的一个过程,也可以是直接改变某些系统状态的值。一般来说,组成界面描述的产生式规则很多,规则定义的顺序并不重要,只要与规则中的条件相匹配,就可以激活相应的动作。产生式规则系统可以是事件引导的,也可以是状态引导的,或者两者都有。

人机交互技术编写组341.事件引导的系统

Sel-line→start-line<highlight'line'>C-pointstart-line→rest-line<rubberbandon>C-pointrest-line→rest-line<drawline>D-pointrest-line→<drawline><rubberbandoff>产生式集合,实现用户在屏幕上绘直线

人机交互技术编写组35事件引导的系统保存内部事件序列构造一个对话控制器,主要负责事件的产生和规则的匹配规则的匹配算法影响系统的性能人机交互技术编写组36事件的主要类型

用户事件(userevent),Sel-line表示从菜单中选择line命令,C-point和D-point表示用户在绘图平面上单击和双击鼠标

内部事件,用于保持对话状态,如start-line表示开始画线后的状态,rest-line表示选择了第一个点之后的状态。

系统响应事件,以尖括号表示可见或可听的系统响应,如<highlight'line'>,把菜单项'line'高亮度显示,<drawline>表示在屏幕上显示直线,<rubberbandon>表示橡皮筋绘制方式打开,<rubberbandoff>表示橡皮筋绘制方式关闭。

人机交互技术编写组37产生式规则的解释在上面的产生式规则中,第一条规则表示选择画线命令后,系统状态进入了开始画线状态,接着把'line'菜单项高亮度显示;第二条规则表示,用户在开始画线状态时,在绘图区域单击鼠标则系统表示已定义了一个点,此时橡皮筋绘图方式打开;第三条规则表示在定义了一个(或多个)点后,用户单击鼠标可以连续地定义点;第四条规则表示双击鼠标则结束画线的交互过程。

人机交互技术编写组38对话控制对话控制主要负责事件的产生和规则的匹配,可以看到在每一时刻系统内存中会保存一些内部事件,当产生一个事件时,可能是用户事件(如单击鼠标),也可能是内部事件(如时钟事件等)。对话控制就要将所有的产生式规则与事件集合进行匹配,这个过程是复杂的而且是耗时的,当产生式很多并且产生式规则的条件复杂时,匹配算法的效率就显的更为重要,因此需要设计好的数据结构和匹配算法来提高匹配规则的效率。可以将规则和事件进行分组和分层。

人机交互技术编写组392.状态引导的系统

状态引导的系统在系统内存保存的不再是动态的随时进出的事件,而是一些表示系统的当前状态的属性,这些属性在不同的时刻有不同的值。人机交互技术编写组40画线操作在系统中的五个属性Mouse:﹛mouse-null,select-line,click-point,double-click﹜Line-state:﹛menu,start-line,rest-line﹜Rubber-band:﹛rubber-band-on,rubber-band-off﹜Menu:﹛highlight-null,highlight-line,highlight-circle﹜Draw:﹛draw-nothing,draw-line﹜人机交互技术编写组41对象的状态Mouse有4个不同的状态mouse--null(鼠标空闲),select-line(选择线命令),click-point(单击鼠标),double-click(双击鼠标),当用户对鼠标进行操作时Mouse自动设置成相应的状态;Line-state用于保持当前会话的状态分别是menu(可选命令状态),start-line(开始绘制线),rest-line(已经定义点);后三个属性用于控制系统响应其中Rubber-band表示橡皮筋绘制的开和关状态,Menu表示任何项也没有选中(highlight-null)、选中绘直线命令(highlight-line)或选中绘圆命令(highlight-circle),Draw表示什么也不画状态(draw-nothing)或画直线状态(draw-line),显示控制器根据上面的状态做出相应的显示控制。人机交互技术编写组42状态引导的产生式规则(画直线)Select-line→mouse-nullstart-linehighlight-lineClick-pointstart-line→mouse-nullrest-linerubber-band-onClick-pointrest-line→mouse-nulldraw-lineDouble-clickrest-line→mouse-nullmenudraw-linerubber-band-off人机交互技术编写组43状态引导的产生式规则的特点当产生式规则的条件和状态匹配时将激活该产生式规则,对于某一特定的属性,如果前面的状态需要改变成新的状态时才需要在产生规则的后面标注,例如,在第二条规则中,规则指定

"Line-state"属性应设置成"rest-line",因为原来的"start-line"值将丢失,而在第三条规则中,没有提及"rest-line"值,因为它已默认,"Line-state"属性的值继续保留为

"rest-line"。

人机交互技术编写组44状态引导的产生式规则的特点属性的永久特性有时会引起一些奇怪的错误,因此在上述的规则集中,每一条产生式规则都要求将鼠标的状态设置为

"mouse-null",

否则,当用户单击了鼠标,激活了第二条规则,如果不立即将鼠标的属性设置为"mouse-null",则会立即激活第三条规则,此时系统的状态和第三条规则的条件是匹配的,并且会反复的一直执行下去。人机交互技术编写组453.混合引导系统

有的对话过程比较适合于事件引导方式,有的对话过程适合于状态引导方式,当然也可以将两者结合起来,例如采用下面的形式:

event:condition→action来描述一个产生式规则,事件用来计划产生式规则,如果条件不满足,即当前系统内存中的状态和产生式的规则不匹配,则无法激活规则,另外当状态改变时,产生式规则中的action本身也可以产生新的事件,从而可以激活另一条规则。

人机交互技术编写组46混合的事件/状态产生式系统

Bold:﹛off,on﹜

Italic:﹛off,on﹜Underline:﹛off,on﹜

图6-2粗体/斜体/下划线对话框

文本样式

根据用户点击鼠标的位置不同,可能产生三个事件:select-bold,select-italic,select-under,该对话过程有下面六个产生式规则定义。

人机交互技术编写组47混合的事件/状态产生式系统select-bold:Bold=off→Bold=onselect-bold:Bold=on→Bold=offselect-italic:Italic=off→Italic=onselect-italic:Italic=on→Italic=offselect-under:Underline=off→Underline=onselect-under:Underline=on→Underline=off人机交互技术编写组48产生式规则总结描述操作时序能力强,并发顺序均可无法描述误操作界面复杂时,状态、事件复杂,产生式过多,要求产生式匹配算法性能高人机交互技术编写组496.2.2状态转换网络状态转换网络(STN)的基本思想是定义一个具有一定数量状态的转换机,称之为有限状态机-FiniteStateMachine(FSM)FSM从外部世界中接收到事件,并能使FSM从一个状态转换到另一个状态。这里介绍两种最基本的状态转换网络,状态转换网络(StateDiagrams)和扩展状态转换网络(StateCharts),后者是前者的一个扩展

人机交互技术编写组501.传统的状态转换网络当发生一个外部或内部事件时,系统就会从一个状态转换到另外一个状态,这称为状态转换。外部事件主要由用户操作外部输入设备来产生,内部事件可以是系统产生的事件,如时钟事件,也可以是为了改变系统的状态和行为而产生的事件,如当一个任务完成后可以激活另一个任务等。源状态目标状态转换一个状态转换与一对状态相关联。一般的系统具有很多个状态,假设系统由n个状态组成,状态之间的转换最多可能有n*(n-1)个。人机交互技术编写组51带条件的状态转换源状态目标状态条件动作人机交互技术编写组52带条件的状态转换

T2[C2]T1[C1]SE1E2S+C1S+C2E1E2T1T2人机交互技术编写组53带条件的状态转换实例(基于鼠标的画图工具)drawcircle单击在圆周上rubberband单击在中心点highlight‘circle’选择‘circle’Circle1MenuFinishCircle2drawline双击rubberband单击在第一点highlight‘line’选择‘line’Line1FinishLine2人机交互技术编写组54带条件的状态转换实例(基于鼠标的画图工具)图6-8中是一个基于鼠标画图工具,图中涉及到了状态、转换、条件、动作等元素。它有一个菜单(有两个选项“circle”和“line”)和一个绘图平面。若选择“circle”则要求你确定两个点:第一个点是圆心,第二个点表示圆周上的任意一点。第一个点确定后,系统就在圆心和当前鼠标位置之间画一条“橡皮圈”线,第二个点确定后就画出了一个圆。人机交互技术编写组55传统状态转换模型状态转换网络比相应的文本解决方案更易于设计、理解、修改和文档化,它给出了对行为的精确的、甚至是格式化的定义。存在着一定的局限性,一个最大的缺陷是需要定义出系统的所有状态,这对于小型的系统是没有问题的,但是在一个较大的系统中,系统会很快崩溃,状态的数目是呈指数级增长的,同时状态的增长直接导致了状态转换网络过于复杂、无法实际应用。

人机交互技术编写组562.扩展的状态转换网络弹出graphics子菜单选择‘graphics’主菜单graphics子菜单弹出text子菜单选择‘text’text子菜单弹出paint子菜单选择‘paintpaint子菜单

人机交互技术编写组57带有取消功能的状态转换图弹出graphics子菜单选择‘graphics’主菜单graphics子菜单弹出text子菜单选择‘text’text子菜单弹出paint子菜单选择‘paintpaint子菜单

ESC正常完成正常完成正常完成ESCESC人机交互技术编写组58带有帮助功能的状态转换按下HELP按钮按下HELP按钮从菜单出发drawcircle单击在圆周上rubberband单击在中心点Circle1FinishCircle2帮助子系统帮助子系统描述并发任务?人机交互技术编写组59状态转换模型状态的爆发式增长问题具有良好的描述串行和顺序行为的能力,并发及其他行为的描述能力差虽然是一个结构模型,但难以实现人机交互技术编写组60人机交互的界面的基本原则对话的独立性对话的独立性指界面和系统的逻辑业务或数据模型不互相影响,彼此独立,当交互完成后,再去调用业务模型的方法进行相应的业务处理。语义的反馈性语义反馈是指在人机交互过程中要实时反馈界面的状态和用户操作的细节,以便用户能比较清晰的了解当前操作的过程,“所见即所得”就是强调在操作过程中所看到的就是将来系统处理的结果,这是一种典型的语义反馈。

人机交互技术编写组61软件的四层体系结构表示层逻辑对象层服务对象层存储层人机交互技术编写组62

6.3事件-对象(E-O)模型

事件-对象(Event-Object)模型,将人机交互活动归结为事件与对象的相互作用。事件是人机交互活动中传递的信息,对象是交互活动中的对象;事件引发交互活动,对象是交互活动的承受者。这种模型同时强调事件和对象在人机交互中的重要性,模型以事件为驱动,以对象为核心,具有面向对象的风格。兼顾了对话独立性原则和语义反馈的要求。人机交互技术编写组63表示层对象1表示层对象2表示层对象n…控制者逻辑对象1逻辑对象2逻辑对象n…事件1事件2事件n事件1事件2事件nE-O模型系统结构

人机交互技术编写组641.事件的类型事件根据不同的来源可以分为两种基本类型:实事件和虚事件。实事件是用户通过各类交互输入设备输入而产生。根据现有交互设备,可以将实事件分为:键码事件,由按键设备产生;定位事件,由指点设备产生;字符串事件,由键盘或语音识别器等产生。人机交互技术编写组65事件的类型虚事件由用户界面系统或应用程序产生并限于系统内部流动的各类事件,其作用主要是协调系统的运行,虚事件可以分为:定时器事件,由系统按一定的时间间隔产生的事件、邮件事件,当有新的邮件收到时产生的事件,一般的异步事件也可以作为邮件事件来处理。空闲事件,也是一种内部事件,表示系统空闲或再等待用户输入,空闲事件发生时,系统可以做一些屏幕更新等处理。人机交互技术编写组662.事件的结构

事件名(Name)类型(Type)来源(From)去向(To)产生时刻(Time)数据(Data)人机交互技术编写组673.对象的类型根据交互任务类型的不同一般可归纳为三种基本对象类型:①抽象(概念)交互对象,如磁盘、文件等抽象的对象;②空间交互对象,表示空间中的物体的对象等,如三维场景和物体;③时间交互对象,表示与时间相关的对象,如视频、音频等对象。人机交互技术编写组68对象的类型对象按功能分类,可分为:①通用对象,在不同的应用中共有的一些对象;②工具对象(WidgetObject),用作用户界面中的各种交互技术(如按钮等);③二维对象,用于二维用户界面;④三维对象,用于三维用户界面;⑤时变对象,适用于随时间变化的动态对象,如在多媒体用户界面中实现音频、视频等媒体的管理。人机交互技术编写组69对象应该具有的特征①对象应以显式的方式接受事件并对此做出响应;②能直接利用数据和方法封装的思想实现对象的独立;③一个对象可以发送消息给其他对象,对象之间的通信通过消息发送和接收来完成,对象的实现方法可采用结构化方法和面向对象的方法。

人机交互技术编写组704.对象的结构主要包括三部分:属性集,包括对象ID、类型、风格(style)、位置(对于二维、三维情况)、颜色等;方法集:初始化方法:对象属性的初始化;表现方法:提供常规的界面反馈和更新对象的外观;响应方法:响应方法对用户的终结控制动作(如选中菜单项)调用相应的应用语义函数(包括自身语义和连接语义)以做出响应,当对象之间存在关联语义时,相应方法还负责和其他对象进行交互。消息集:包括一组可被对象识别的并激活其相应行为方法的消息,这些消息分流到上述三个方法中。人机交互技术编写组715.对象的组织对象之间有不同的关系,可采用四种典型结构来组织对象:集合,对象之间无约束关系;线性结构,对象之间有明确的顺序关系,如各输入字段、列表项等;层次结构,对象之间有层次关系,对象包含数个子对象,如菜单和菜单项;网状结构,适用于比较复杂的CAD系统,如CAD布线,现在Web中的导航菜单对象的组织也有采用网络结构。人机交互技术编写组726.E-O模型总结E-O模型具有彻底的面向对象特性,其中对象具有直接的面向对象的特征,而包括事件、设备的在内的各种元素也被直接地映射为对象;同时,事件对象模型内在的事件驱动机制也非常符合交互式软件的需要。事件对象模型中事件结构和对象结构的通用性和开放性,可以支持从简单得到复杂的各类用户界面的实现,有能力支持包括多媒体、多通道用户界面和虚拟现实等新型人机交互技术的实现,在下一章将给出E-O模型的软件结构和实现支持。人机交互技术编写组73课堂练习1.写出事件引导的画线的产生式规则2.写出状态引导的画线的产生式规则3.画出基于菜单的画图工具的状态转换图人机交互技术编写组746.4行为模型和结构模型的转换

一般来说行为模型主要对设计起指导作用,在此基础上,设计人员再进行结构模型(如状态转换网络等)的创建,这个过程很大程度上取决于设计人员的经验和对行为模型的理解.本节主要介绍一种从行为模型到结构模型的一种转换思想和算法,以实现两种模型间的自动的转化工作。

人机交互技术编写组756.4.1基本的模型转换整体框架

转换算法

行为模型(G-U-L)

结构模型StateChartsGOMSUANLOTOS约束规则用户DomainExpertDesigner图6-17模型转换整体框架人机交互技术编写组76模型转换整体框架

整个框架分为三个部分:行为模型使用G-U-L模型,在这一层将产生一个基本的预测性的行为模型。

结构模型采用层次状态转换网络,它涉及到的元素有状态、转换、事件、层次结构。不考虑状态转换网络在转换中条件和同步,可以简化转换工作。

用户包含两种用户,领域专家和设计者。G-U-L模型的创建主要是由领域专家和设计者合作来完成的,然后通过模型转换算法转换成为结构模型,最后提供给设计者使用。

人机交互技术编写组776.4.2转换算法

1.基本思想

2.基本步骤

3.实例应用

人机交互技术编写组781.基本思想

采用G-U-L以层次化结构对任务进行建模,包括目标(包括循环属性)、行为、关系。状态转换网络表示的是状态之间的转换,也采用层次化表示,涉及到的主要是状态、转换、事件、行为。在G-U-L中体现的层次关系转换到状态转换网络中也体现出层次的关系,G-U-L中的每个目标都对应一个状态转换网络。如果一个目标下层有子目标,对子目标来说,它所对应的状态网络应该嵌套在上层目标对应的状态网络中。

人机交互技术编写组791.基本思想在产生的状态转换网络中,有两类事件起作用:一类是外部由用户激活的事件,如“按下鼠标”

事件、“点击键盘”

事件等;另一类是内部由目标产生的内部事件,这里只定义了“目标正常结束”,表示目标正常结束时产生的事件。在进行从G-U-L到状态的转换时,这些事件只是形式上的一个定义,没有具体的实现过程,如要在某一层出现的第i个外部事件用“外部事件i”来代替,而由某个目标Ti执行时产生的内部事件也仅仅用类似于“Ti正常结束事件”来表示,而具体的事件还需要由状态网络进行,系统实现时通过专门的事件管理器来定义和管理。

对G-U-L中的行为在转换后就成为对应的状态转换网络中的一个行为。

人机交互技术编写组80图6-18事件产生过程G产生“G正常结束”事件S0……F图6-18中描述了一个目标层次中产生事件的过程。人机交互技术编写组812.基本步骤对转换后的数据,存储的是状态转换网络中表示转换的弧,如下图6-19所示:图6-19状态转换网络中弧的表示结构

其中的触发事件就是触发从出发状态到目的状态转换的事件;父状态表示的是当前弧所在状态网络的上层状态,可以是一个抽象出来的状态名;出发状态目的状态触发事件父状态行为人机交互技术编写组822.基本步骤转换基本步骤(1)读取存储G-U-L模型的数据文件,进行解析,定义一个数组stn用于存储状态网络中的弧。获取G-U-L模型中的最高目标,设为G0,然后调用(2)中的Translate函数,在Translate执行完毕后,stn中便存储了转换后的状态网络的数据。函数示意如下:main(){定义一个存储弧的数组stn[]读取G-U-L文件GOALG0<-GetSubGoal(null);//获取在目标Translate(G0,&stn);//调用转换函数}人机交互技术编写组83(2)对当前的目标进行处理,如果是原子目标,参考原子目标的UAN模型,创建其状态转换网络。否则,获得目标层次下的数据,包括行为、关系算符及子目标名。通过关系符号来调用(3)中相应的关系转换函数,对所有的子目标进行递归调用。函数示意假如下:Translate(目标

G,存储数组

stn[]){获得目标G的子目标subG[]switch(关系){case“[]”:选择关系处理

case“>>”:允许关系处理

case“|||”:交替关系处理

case“[>”:禁止关系处理

}//对所有的子目标进行递归调用

for(intI;I<subG.length;I++)Translate(subG[I],stn);} 人机交互技术编写组84(3)定义了G-U-L的各种关系向状态网络转换的具体的实现函数,实际上就是生成状态网络中的弧,并进行存储。在各状态网络中都会有一个初始状态S。在每个处理函数中,需要考虑目标具有循环属性的情况,这在状态转换网络中的体现是某个状态通过一个事件激活以后能仍然返回到该状态。如果要转换到其他状态,还需要一个外部事件的作用。如对*G,如图6-20所示。

图6-20带有循环属性的目标对应的状态转换图G正常结束事件外部事件SU人机交互技术编写组85G-U-L中各种约束关系对应的状态转换网络

[](选择

choice):设目标G下的子目标关系为[](G0,G1),表示共有两条路径可以完成目标G。从初始状态S0出发,有两条弧需要记录,经过“外部事件0”到S1的转换及经过“外部事件1”到S2的转换,记录格式如下:

S0S1外部事件0GNullS0S2外部事件1GNull人机交互技术编写组86在状态S1下,等待“G0正常结束事件”发生后被激活转到S0,或在S2下,等待“G1正常结束事件”发生后被激活转到S0也回到S状态,这两条弧在返回S0后都将执行动作“产生G正常结束事件”,并记录下这两条转换的弧。每次重新回到S0都认为完成了目标G的一次执行。

在图6-21b中考虑了存在目标循环的情况,即[](*G0,G1),需要记录的弧也在图中进行了反映,在后面介绍的关系中所涉及到的循环情况与此类似。选择关系允许在一个层次下有多个目标同时存在,如[](G0,G1,……,Gn)。

人机交互技术编写组87选择”关系状态网络图6-21a“选择”关系状态网络G1正常结束事件G0正常结束事件外部事件1外部事件0S1S2S0产生G正常结束事件产生G正常结束事件人机交互技术编写组88选择”关系状态网络-考虑了存在目标循环的情况

图6-21b带循环的“选择”关系状态图产生G正常结束事件G0正

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论