人机交互技术编写组 1
第 6章 人机交互界面的表示模型
人机交互技术编写组 2
目的
在界面设计的早期阶段,研究建立一种
用户界面表示模型
? 利用形式化的设计语言来分析和表达用户
任务以及用户和系统之间的交互情况;
? 使界面表示模型能方便地映射到实际的设
计实现。
人机交互技术编写组 3
界面模型分类
任务分解和分析
? 能力模型( competence model)
?预测和描述用户合法的交互行为序列
? 行为模型( performance model)
?预测和描述用户合法的交互行为序列
?描述用户的目的
结构模型 constructional model
? 系统组成模型
人机交互技术编写组 4
主要内容
三种模型,
? 行为模型,主要从用户和任务的角度考虑如何来描
述人机交互界面,将详细介绍 GOMS,UAN及
LOTOS模型。
? 结构模型,主要从系统的角度来表示人机交互界面。
重点介绍状态转换网络( STN-State Transition
Network)和产生式规则 (Production Rule)。
? 事件 -对象模型,是一种目前非常流行的面向对象的
表示模型,它将人机交互活动归结为事件与对象的
相互作用。
如何由界面的行为表示模型转换到系统的结构
模型。
人机交互技术编写组 5
参考材料
1 ) The Psychology of Human-Computer
Interaction by S.K,Card et al,
2) Human-Computer Interaction (2nd Edition)
by Alan J,Dix,et al,
3) 董士海等:, 人机交互和多通道用户界面,,
科学出版社,1999,2,
4) A Comparison of Approaches for Specifying
Multi-Modal Interactive Systems,by Joelle
Coutaz et al,
人机交互技术编写组 6
6.1 行为模型
分析人员获取用户需求后,结合领域专
家的意见和指导,获取系统中需要完成
的任务,对任务的主要因素进行详细地
分析,如任务的层次、发生条件、完成
的方法以及它们之间的关系等等。
所有这些内容,都是在行为模型中所要
研究的。
人机交互技术编写组 7
6.1.1 GOMS
1983年由 Card,Morgan和 Newell 提出的。
通过目标 (Goal)、操作 (Operator)、方
法 (Method) 以及选择规则 (Selection)
四个元素来描述用户的行为。
GOMS是在交互系统中用来分析建立用户
行为的模型。它采用, 分而治之, 的思
想,将一个任务进行多层次的细化。
人机交互技术编写组 8
6.1.1 GOMS
1.目标 Goals
目标就是用户执行任务最终想要得到
的结果,它可以在不同的层次中进行定义。
2,操作 Operators
操作是任务分析到最低层时的行为,
是用户为了完成任务所必须执行的基本
动作。
人机交互技术编写组 9
6.1.1 GOMS
3,方法 Methods
方法是描述如何完成目标的过程。一个方法本
质上来说是内部的算法,用来确定子目标序列及
完成目标所需要的操作。
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]
人机交互技术编写组 10
6.1.1 GOMS
4,选择 Selection
选择是用户要遵守的判定规则,以确定在特定环境下
所要使用的方法。
当有多个方法可供选择时,GOMS中并不认为这是一个
随机的选择,而是尽量来预测会使用哪个方法,这需要
根据特定用户、系统的状态、目标的细节来预测要选
择哪种方法。
用户 Sam,
Rule 1,Use the CLOSE-METHOD unless another rule applies
Rule 2,If the application is GAME,use L7-METHOD
人机交互技术编写组 11
GOMS实例
Task:Editing
GOAL:EDIT-MANUSCRIPT
GOAL:EDIT-UNIT-Task repeat until no more unit tasks
GOAL:ACQUIRE-UNIT-TASK
GET-NEXT-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
人机交互技术编写组 12
GOMS应用
作为一种人机交互界面表示的理论模型,
GOMS是人机交互研究领域内少有的几个广
为人知的模型之一,并被称为最成熟的工
程典范,该模型在计算机系统的评估方面
也有广泛的应用。
GOMS can save money!
? 美国电话公司 NYNEX利用 GOMS分析一套即
将被采用的新的计算机系统的应用效果,结
果发现效果不理想,放弃了使用新系统,为
公司节约了数百万的资金。
人机交互技术编写组 13
GOMS的局限性
GOMS没有清楚的描述错误处理的过程,假设用户完全按一种
正确的方式进行人机交互,因此只针对那些不犯任何错误的
专家用户。
GOMS对于任务之间的关系描述过于简单,只有顺序和选择,事
实上任务之间的关系还有很多种(具体参见 6.1.2节中 LOTOS
的介绍),另外选择关系通过非形式化的附加规则描述,实
现起来也比较困难。
GOMS把所有的任务都看作是面向 操作 目标的,而忽略了一些
任务所要解决的问题本质以及用户间的个体差异,它的建立
不是基于现有的认知心理学,无法代表真正的认知过程。
人机交互技术编写组 14
6.1.2 LOTOS
LOTOS -Language Of Temporal Ordering
Specification,T.Bolognesi,H.Brinskma,
"Introduction to the ISO Specification Language
LOTOS”,1987,
国际标准形式描述语言,适于描述具有并发、交
互、反馈和不确定性等特点的并发( concurrent)
系统中的行为。
开始作为一种描述网络协议的语言,由于交互系
统、特别是多通道交互系统有并发系统的特点,
因此成为用来描述交互系统的行为模型。
人机交互技术编写组 15
LOTOS基本思想
系统的外部可见行为可以看作是由一个有时序关系的交
互序列组成。
系统由一系列进程组成,进程同环境之间通过称为, 关
口, ( gates)的交互点进行交互。
两个以上的进程在执行同一个外部可见的行为时会发生
交互操作,进行数据交换、信息传递、协调同步等操作。
进程行为用, 行为表达式, 来描述,复杂的行为由简单
的行为表达式通过表示时序关系的 LOTOS算符组合而成。
在将 LOTOS思想用于人机交互的行为模型时,用进程之间
的约束关系来描述交互子任务之间的关系。
人机交互技术编写组 16
LOTOS算符
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执行
人机交互技术编写组 17
LOTOS实例
人机交互技术编写组 18
中国象棋的 LOTOS任务分解实例
人机交互技术编写组 19
LOTOS与 GOMS的结合
LOTOS模型很好的描述了任务之间的时
序约束关系,这些时序约束关系能更好
的描述 GOMS中子目标之间的关系。
用 GOMS模型描述任务的分解过程,而用
LOTOS给出子任务之间的约束关系,这
样就可以增加两种表示模型的表示能力。
人机交互技术编写组 20
结合 GOMS和 LOTOS的中国象棋程序
的行为描述
GOAL:中国象棋
[>,
GOAL:运行
|||,
*GOAL:走棋
ACTION:自动记录棋谱
>>,
GOAL:当前方走
>>,
OPRATOR:拾取棋子
OPRATOR:放置棋子
GOAL:对弈方走
>>
OPRATOR:拾取棋子
OPRATOR:放置棋子
*GOAL:打谱
[],
OPRATOR:加速
OPRATOR:减速
OPRATOR:暂停
OPRATOR:恢复
GOAL:退出
人机交互技术编写组 21
LOTOS总结
LOTOS与 GOMS结合, 可以清楚地了解整个目标层次及各
目标之间的约束关系 。 但与 GOMS同样存在无法描述目标
异常结束的缺陷, 同时当任务进行选择时用什么规则进
行选择并为涉及 。
LOTOS最大的优越性在于可以构造一套现成的自动化工
具, 利用这些工具, 可自动进行错误检测, 但它过于形
式化的记法比较晦涩难懂 。
GOMS和 LOTOS的结合可以很好地描述人机交互的较高级
的任务, 对于原子任务的形式化描述, 上述模型并没有
给出一个比较清晰的描述, 下面讨论的 UAN模型主要用
于原子目标的描述 。
人机交互技术编写组 22
6.1.3 UAN
UAN---User Action Notation
UAN是一种简单的符号语言,主要描述
用户的行为序列以及在执行任务时所用
的界面物理对象。
尽管 UAN属于一种行为模型,但作为一
种任务描述语言,它又涉及一定程度的
系统行为的描述,因而它兼有行为模型
和结构模型的一些特点。
人机交互技术编写组 23
UAN模型的基本思想
预定义一些标志符,
? 用户动作标志符
? 条件标志符
采用一种表格结构来表示任务
界面被分解成一些类似层次结构的异步任务,每个任务的实现都用表
格来描述,用户动作的关联性和时序关系由表格的行列对齐关系和从
上到下、从左到右的阅读顺序来确定。
任务 ( task),任务名称 ( the name of task)
用户行为
界面反馈
界面状态
人机交互技术编写组 24
UAN预定义的动作标志符(部分)
用户动作标志符,
? move_mouse(x,y) 移动鼠
标至 (x,y)
? release_button(x,y) 在
(x,y)位置释放鼠标按钮;
? highlight(icon) 使 icon
高亮显示;
? de_highlight(icon) 取消
icon的高亮显示 。
? 用户动作标志符,
– ~[X],在某个图形对象上
移动鼠标;
– £,按下鼠标;
– ¢,释放鼠标;
– !,使对象高亮显示;
– -!,取消对象的高亮显示
– Display,显示图形对象;
– Erase,取消显示对象。
人机交互技术编写组 25
UAN预定义的条件标志符(部分)
while(condition) TASK
? 当条件 condition为真时,循环执行任务 TASK;
if(condition) then TASK
? 如果条件 condition满足,则执行任务 TASK;
iteration A* or A+
? 表示迭代操作;
waiting
? 表示等待,可以等待一个条件满足,也可以等待任
务中的一个操作执行。
人机交互技术编写组 26
UAN实例 -单通道交互
任务,drag and drop a file to the recycle bin
用户行为 界面反馈 界面状态
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 intersect(bin,x,y)
if intersect(bin,x,y)
人机交互技术编写组 27
UAN实例 -多通道交互
任务,drag and drop a file to the recycle bin
用户行为 界面反馈 界面状态
2D鼠标 语音
then highlight(icon)
show_outline(icon)
then highlight(bin)
then hide(icon)
show_bin_full()
if intersect(icon,x,y)
icon=selected
if intersect(bin,x,y)
if intersect(bin,x2,y2)
mouse_down(x,
y)
drag_icon(x,y)
mouse_up(x,y)
Pronounce
Move_to_re
cycle_bin
人机交互技术编写组 28
UAN总结
UAN模型更接近于实现,界面状态和界面反馈
用一般的程序语言描述,实现起来比较方便,
当然这种描述由于接近于程序语言,因此设计
时需要一定的编程基础
UAN模型在精确刻画各成分之间的各种平行和
串行的时序关系方面尚显不足,任务之间的时
序关系没有明确表示出来,当所描述的界面使
用多种输入设备和有若干可选交互路径时,比
较繁琐。
人机交互技术编写组 29
层次化的界面描述方法
人机交互技术编写组 30
G-U-L模型
可以考虑将 GOMS,UAN,LOTOS中模型结合为一个预
测行为模型,G-U-L模型。
G-U-L运用 GOMS原理为基础进行任务分解,建立基本
的行为模型,原子操作由 UAN模型描述,在此基础上,
运用 LOTOS算符来表示任务目标之间的时序关系。
在 G-U-L模型中没有加入规则,在表示目标之间的关系
中也未考虑同步。这主要考虑到规则的转换要涉及到
推理、建立知识库等问题,而同步的问题的描述和转
换也非常的复杂,这会在工作的初期造成非常大的困
难。
人机交互技术编写组 31
6.2 结构模型
产生式规则 -Production Rule
? 形式化语言的描述,这种结构的方法从理论
上可以引导界面设计者及界面工具的设计者
进行有效的设计。
状态转换网络 -State Transit Network
? 用结构化的方法来描述人机交互的一般过程,
是一种图示化的结构
人机交互技术编写组 32
6.2.1 产生式规则
又称为上下文无关文法,将人机交互对话看作
是一种语言,运用基于语法的方法来描述交互
对话。
产生式规则是一种形式化语言,这些规则可用
于描述人机交互界面。产生式规则的一般形式
是,
? if condition then action
? 这些规则可以表示为不同的形式, 如
? condition → action
? condition,action
人机交互技术编写组 33
产生式规则
所有的规则都是有效的, 并且系统不断用它来检测用
户的输入是否与这些条件相匹配 。
若匹配则激活相应的动作, 这些动作可以是执行应用
程序的一个过程, 也可以是直接改变某些系统状态的
值 。
一般来说,组成界面描述的产生式规则很多,规则定
义的顺序并不重要,只要与规则中的条件相匹配,就
可以激活相应的动作。产生式规则系统可以是事件引
导的,也可以是状态引导的,或者两者都有。
人机交互技术编写组 34
1.事件引导的系统
Sel-line
→
start-line <highlight 'line'>
C-point start-line
→
rest-line <rubber band on>
C-point rest- line
→
rest-line <draw line>
D-point rest- line
→
<draw line><rubber band off>
产生式集合,实现用户在屏幕上绘直线
人机交互技术编写组 35
事件引导的系统
保存内部事件序列
构造一个对话控制器,主要负责事件的
产生和规则的匹配
规则的匹配算法影响系统的性能
人机交互技术编写组 36
事件的主要类型
用户事件( user event),Sel-line表示从菜单中选择
line命令,C-point 和 D-point表示用户在绘图平面上单
击和双击鼠标
内部事件,用于保持对话状态,如 start-line 表示开始
画线后的状态,rest- line表示选择了第一个点之后的
状态。
系统响应事件,以尖括号表示可见或可听的系统响应,
如 <highlight 'line'>,把菜单项 'line' 高亮度显示,
<draw line>表示在屏幕上显示直线,<rubber band
on> 表示橡皮筋绘制方式打开,<rubber band off>
表示橡皮筋绘制方式关闭。
人机交互技术编写组 37
产生式规则的解释
在上面的产生式规则中,第一条规则表示选择
画线命令后,系统状态进入了开始画线状态,
接着把 'line'菜单项高亮度显示;第二条规则表
示,用户在开始画线状态时,在绘图区域单击
鼠标则系统表示已定义了一个点,此时橡皮筋
绘图方式打开;第三条规则表示在定义了一个
(或多个)点后,用户单击鼠标可以连续地定
义点;第四条规则表示双击鼠标则结束画线的
交互过程。
人机交互技术编写组 38
对话控制
对话控制主要负责事件的产生和规则的匹配,可以看
到在每一时刻系统内存中会保存一些内部事件,当产
生一个事件时,可能是用户事件(如单击鼠标),也
可能是内部事件(如时钟事件等)。
对话控制就要将所有的产生式规则与事件集合进行匹
配,这个过程是复杂的而且是耗时的,当产生式很多
并且产生式规则的条件复杂时,匹配算法的效率就显
的更为重要,因此需要设计好的数据结构和匹配算法
来提高匹配规则的效率。
可以将规则和事件进行分组和分层。
人机交互技术编写组 39
2.状态引导的系统
状态引导的系统在系统内存保存的不再
是动态的随时进出的事件,而是一些表
示系统的当前状态的属性,这些属性在
不同的时刻有不同的值。
人机交互技术编写组 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-null start-line highlight-line
Click-point start-line
→
mouse-null rest-line rubber-band-on
Click-point rest- line
→
mouse-null draw-line
Double-click rest-line
→
mouse-null menu draw-line rubber-band-off
人机交互技术编写组 43
状态引导的产生式规则的特点
当产生式规则的条件和状态匹配时将激活该产
生式规则,对于某一特定的属性,如果前面的
状态需要改变成新的状态时才需要在产生规则
的后面标注,例如,在第二条规则中,规则指
定 "Line-state" 属性应设置成 "rest-line",因
为原来的 "start-line"值将丢失,而在第三条规
则中,没有提及 "rest-line"值,因为它已默认,
"Line-state" 属性的值继续保留为 "rest-line"。
人机交互技术编写组 44
状态引导的产生式规则的特点
属性的永久特性有时会引起一些奇怪的
错误, 因此在上述的规则集中, 每一条
产生式规则都要求将鼠标的状态设置为
"mouse-null", 否则, 当用户单击了鼠
标, 激活了第二条规则, 如果不立即将
鼠标的属性设置为 "mouse-null",则会立
即激活第三条规则, 此时系统的状态和
第三条规则的条件是匹配的, 并且会反
复的一直执行下去 。
人机交互技术编写组 45
3.混合引导系统
有的对话过程比较适合于事件引导方式,有的
对话过程适合于状态引导方式,当然也可以将
两者结合起来,例如采用下面的形式,
? 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 = on
select- bold,
Bold = on
→
Bold = off
select-italic,
Italic = off
→
Italic = on
select-italic,
Italic = on
→
Italic = off
select-under,
Underline = off
→
Underline = on
select-under,
Underline = on
→
Underline = off
人机交互技术编写组 48
产生式规则总结
描述操作时序能力强,并发顺序均可
无法描述误操作
界面复杂时,状态、事件复杂,产生式
过多,要求产生式匹配算法性能高
人机交互技术编写组 49
6.2.2 状态转换网络
状态转换网络( STN)的基本思想是定义一个
具有一定数量状态的转换机,称之为有限状态
机 -Finite State Machine(FSM)
FSM从外部世界中接收到事件,并能使 FSM从
一个状态转换到另一个状态。
这里介绍两种最基本的状态转换网络,状态转
换网络( State Diagrams)和扩展状态转换网
络 (State Charts),后者是前者的一个扩展
人机交互技术编写组 50
1.传统的状态转换网络
当发生一个外部或内部事件时,
系统就会从一个状态转换到另外
一个状态,这称为状态转换。
外部事件主要由用户操作外部输
入设备来产生,内部事件可以是
系统产生的事件,如时钟事件,
也可以是为了改变系统的状态和
行为而产生的事件,如当一个任
务完成后可以激活另一个任务等。
源状
态
目标
状态
转换
一个状态转换与一对状态相关联。
一般的系统具有很多个状态,假设系统由 n个状态组成,
状态之间的转换最多可能有 n*(n-1)个。
人机交互技术编写组 51
带条件的状态转换
源状态 目标状态
条件
动作
人机交互技术编写组 52
带条件的状态转换
T2[C2]
T1[C1]
S
E1
E2
S+C1
S+C2
E1
E2
T1
T2
人机交互技术编写组 53
带条件的状态转换实例 (基于鼠标的画图工具 )
draw circle
单击在圆周上
rubber band
单击在中心点
highlight ?circle?
选择 ‘ circle?
Circle1
Menu
Finish Circle2
draw line
双击
rubber band
单击在第一点
highlight ?line?
选择 ‘ line?
Line1 Finish Line2
人机交互技术编写组 54
带条件的状态转换实例 (基于鼠标的画
图工具 )
图 6-8中是一个基于鼠标画图工具,图中
涉及到了状态、转换、条件、动作等元
素。它有一个菜单(有两个选项, circle”
和, line”)和一个绘图平面。若选择
,circle”则要求你确定两个点:第一个点
是圆心,第二个点表示圆周上的任意一
点。第一个点确定后,系统就在圆心和
当前鼠标位置之间画一条, 橡皮圈, 线,
第二个点确定后就画出了一个圆。
人机交互技术编写组 55
传统状态转换模型
状态转换网络比相应的文本解决方案更易于设
计、理解、修改和文档化,它给出了对行为的
精确的、甚至是格式化的定义。
存在着一定的局限性,一个最大的缺陷是需要
定义出系统的所有状态,这对于小型的系统是
没有问题的,但是在一个较大的系统中,系统
会很快崩溃,状态的数目是呈指数级增长的,
同时状态的增长直接导致了状态转换网络过于
复杂、无法实际应用。
人机交互技术编写组 56
2.扩展的状态转换网络
弹出 graphics
子菜单
选择 ‘ graphics?
主菜单
graphics 子菜单
弹出 text 子菜单
选择 ‘ text? text 子菜单
弹出 paint 子菜单
选择 ‘ paint paint 子菜单
人机交互技术编写组 57
带有取消功能的状态转换图
弹出 graphics
子菜单
选择 ‘ graphics?
主菜单
graphics 子菜单
弹出 text 子菜单
选择 ‘ text? text 子菜单
弹出 paint 子菜单
选择 ‘ paint paint 子菜单
ESC
正常完成
正常完成
正常完成
ESC
ESC
人机交互技术编写组 58
带有帮助功能的状态转换
按下 HELP按钮
按下 HELP按钮
从菜单出发
draw circle
单击在圆周上
rubber band
单击在中心点 Circle1 Finish Circle2
帮助子系统
帮助子系统
描述并发任务?
人机交互技术编写组 59
状态转换模型
状态的爆发式增长问题
具有良好的描述串行和顺序行为的能力,
并发及其他行为的描述能力差
虽然是一个结构模型,但难以实现
人机交互技术编写组 60
人机交互的界面的基本原则
对话的独立性
? 对话的独立性指 界面和系统的逻辑业务或数据模型
不互相影响,彼此独立,当交互完成后,再去调用
业务模型的方法进行相应的业务处理。
语义的反馈性
? 语义反馈是指在人机交互过程中要实时反馈界面的
状态和用户操作的细节,以便用户能比较清晰的了
解当前操作的过程,,所见即所得, 就是强调在操
作过程中所看到的就是将来系统处理的结果,这是
一种典型的语义反馈。
人机交互技术编写组 61
软件的四层体系结构
表示层
逻辑对象层
服务对象层
存储层
人机交互技术编写组 62
6.3事件 -对象 (E-O)模型
事件 -对象( Event-Object)模型,将人机交互
活动归结为事件与对象的相互作用。事件是人
机交互活动中传递的信息,对象是交互活动中
的对象;事件引发交互活动,对象是交互活动
的承受者。这种模型同时强调事件和对象在人
机交互中的重要性,模型以事件为驱动,以对
象为核心,具有面向对象的风格。
兼顾了对话独立性原则和语义反馈的要求。
人机交互技术编写组 63
表示层对象 1 表示层对象 2 表示层对象 n …
控制者
逻辑对象 1 逻辑对象 2 逻辑对象 n …
事件 1 事件 2 事件 n
事件 1 事件 2 事件 n
E-O模型系统结构
人机交互技术编写组 64
1.事件的类型
事件根据不同的来源可以分为两种基本
类型:实事件和虚事件。
实事件是用户通过各类交互输入设备输
入而产生。根据现有交互设备,可以将
实事件分为,
? 键码事件,由按键设备产生;
? 定位事件,由指点设备产生;
? 字符串事件,由键盘或语音识别器等产生。
人机交互技术编写组 65
事件的类型
虚事件由用户界面系统或应用程序产生并限于
系统内部流动的各类事件,其作用主要是协调
系统的运行,虚事件可以分为,
? 定时器事件,由系统按一定的时间间隔产生的事件,
? 邮件事件,当有新的邮件收到时产生的事件,一般
的异步事件也可以作为邮件事件来处理。
? 空闲事件,也是一种内部事件,表示系统空闲或再
等待用户输入,空闲事件发生时,系统可以做一些
屏幕更新等处理。
人机交互技术编写组 66
2.事件的结构
事件名
(Name)
类 型
(Type)
来 源
(From)
去 向
(To)
产生时
刻
(Time)
数 据
(Data)
人机交互技术编写组 67
3.对象的类型
根据交互任务类型的不同一般可归纳为
三种基本对象类型,
? ①抽象(概念)交互对象,如磁盘、文件等
抽象的对象;
? ②空间交互对象,表示空间中的物体的对象
等,如三维场景和物体;
? ③时间交互对象,表示与时间相关的对象,
如视频、音频等对象。
人机交互技术编写组 68
对象的类型
对象按功能分类,可分为,
? ①通用对象,在不同的应用中共有的一些对象;
? ②工具对象( Widget Object),用作用户界面中的
各种交互技术(如按钮等);
? ③二维对象,用于二维用户界面;
? ④三维对象,用于三维用户界面;
? ⑤时变对象,适用于随时间变化的动态对象,如在
多媒体用户界面中实现音频、视频等媒体的管理。
人机交互技术编写组 69
对象应该具有的特征
① 对象应以显式的方式接受事件并对此
做出响应;
②能直接利用数据和方法封装的思想实
现对象的独立;
③一个对象可以发送消息给其他对象,
对象之间的通信通过消息发送和接收来
完成,对象的实现方法可采用结构化方
法和面向对象的方法。
人机交互技术编写组 70
4.对象的结构
主要包括三部分,
? 属性集,包括对象 ID、类型、风格( style)、位置
(对于二维、三维情况)、颜色等;
? 方法集,
? 初始化方法:对象属性的初始化;
? 表现方法:提供常规的界面反馈和更新对象的外观;
? 响应方法:响应方法对用户的终结控制动作(如选中菜单
项)调用相应的应用语义函数(包括自身语义和连接语义)
以做出响应,当对象之间存在关联语义时,相应方法还负
责和其他对象进行交互。
? 消息集:包括一组可被对象识别的并激活其相应行
为方法的消息,这些消息分流到上述三个方法中。
人机交互技术编写组 71
5.对象的组织
对象之间有不同的关系,可采用四种典型结构
来组织对象,
? 集合,对象之间无约束关系;
? 线性结构,对象之间有明确的顺序关系,如各输入
字段、列表项等;
? 层次结构,对象之间有层次关系,对象包含数个子
对象,如菜单和菜单项;
? 网状结构,适用于比较复杂的 CAD系统,如 CAD布
线,现在 Web中的导航菜单对象的组织也有采用网
络结构。
人机交互技术编写组 72
6.E-O模型总结
E-O模型具有彻底的面向对象特性,其中对象具
有直接的面向对象的特征,而包括事件、设备的
在内的各种元素也被直接地映射为对象;同时,
事件对象模型内在的事件驱动机制也非常符合交
互式软件的需要。
事件对象模型中事件结构和对象结构的通用性和
开放性,可以支持从简单得到复杂的各类用户界
面的实现,有能力支持包括多媒体、多通道用户
界面和虚拟现实等新型人机交互技术的实现,在
下一章将给出 E-O模型的软件结构和实现支持。
人机交互技术编写组 73
课堂练习
1.写出事件引导的画线的产生式规则
2.写出状态引导的画线的产生式规则
3.画出基于菜单的画图工具的状态转换
图
人机交互技术编写组 74
6.4 行为模型和结构模型的转换
一般来说行为模型主要对设计起指导作
用,在此基础上,设计人员再进行结构
模型(如状态转换网络等)的创建,这
个过程很大程度上取决于设计人员的经
验和对行为模型的理解,
本节主要介绍一种从行为模型到结构模
型的一种转换思想和算法,以实现两种
模型间的自动的转化工作。
人机交互技术编写组 75
6.4.1基本的模型转换整体框架
转换算法
行为模型 (G-U-L)
结构模型 State Charts
GOMS UAN
LOTOS约束规则
用户
Domain
Expert
Designer
图 6-17 模型转换整体框架
人机交互技术编写组 76
模型转换整体框架
整个框架分为三个部分,
? 行为模型使用 G-U-L模型,在这一层将产生一个基
本的预测性的行为模型。
? 结构模型采用层次状态转换网络,它涉及到的元素
有状态、转换、事件、层次结构。不考虑状态转换
网络在转换中条件和同步,可以简化转换工作。
? 用户包含两种用户,领域专家和设计者。 G-U-L模
型的创建主要是由领域专家和设计者合作来完成的,
然后通过模型转换算法转换成为结构模型,最后提
供给设计者使用。
人机交互技术编写组 77
6.4.2 转换算法
1.基本思想
2.基本步骤
3.实例应用
人机交互技术编写组 78
1.基本思想
采用 G-U-L以层次化结构对任务进行建模,包括目标
(包括循环属性)、行为、关系。
状态转换网络表示的是状态之间的转换,也采用层次
化表示,涉及到的主要是状态、转换、事件、行为。
在 G-U-L中体现的层次关系转换到状态转换网络中也体
现出层次的关系,G-U-L中的每个目标都对应一个状态
转换网络。
如果一个目标下层有子目标,对子目标来说,它所对
应的状态网络应该嵌套在上层目标对应的状态网络中。
人机交互技术编写组 79
1.基本思想
在产生的状态转换网络中,有两类事件起作用,
? 一类是外部由用户激活的事件,如“按下鼠标” 事件、“点
击键盘” 事件等;
? 另一类是内部由目标产生的内部事件,这里只定义了“目标
正常结束”,表示目标正常结束时产生的事件。
? 在进行从 G-U-L到状态的转换时,这些事件只是形式上的一个
定义,没有具体的实现过程,如要在某一层出现的第 i个外部
事件用“外部事件 i”来代替,而由某个目标 Ti执行时产生的内
部事件也仅仅用类似于,Ti正常结束事件”来表示,
? 而具体的事件还需要由状态网络进行,系统实现时通过专门
的事件管理器来定义和管理。
? 对 G-U-L中的行为在转换后就成为对应的状态转换网络中的一
个行为。
人机交互技术编写组 80
图 6-18 事件产生过程
G
产生, G正常结束, 事件
S0 ……
F
图 6-18 中描述了一个目标层次中产生事件的过程。
人机交互技术编写组 81
2.基本步骤
对转换后的数据, 存储的是状态转换网络中表示转换
的弧, 如下图 6-19所示,
图 6-19 状态转换网络中弧的表示结构
其中的触发事件就是触发从出发状态到目的状态转换
的事件;
父状态表示的是当前弧所在状态网络的上层状态,可
以是一个抽象出来的状态名;
出发状态
目的状态
触发事件
父状态
行为
人机交互技术编写组 82
2.基本步骤
转换基本步骤
? ( 1)读取存储 G-U-L模型的数据文件,进行解析,
定义一个数组 stn用于存储状态网络中的弧。获取 G-
U-L模型中的最高目标,设为 G0,然后调用 (2)中的
Translate函数,在 Translate执行完毕后,stn中便存
储了转换后的状态网络的数据。函数示意如下,
main()
{
定义一个存储弧的数组 stn[]
读取 G-U-L文件
GOAL G0<-GetSubGoal(null) ; //获取在目标
Translate(G0,&stn); //调用转换函数
}
人机交互技术编写组 83
?( 2)对当前的目标进行处理,如果是原子目标,参考原
子目标的 UAN模型,创建其状态转换网络。否则,获得目
标层次下的数据,包括行为、关系算符及子目标名。通过
关系符号来调用( 3)中相应的关系转换函数,对所有的子
目标进行递归调用。 函数示意假如下,
?Translate( 目标 G,存储数组 stn[] )
?{
?获得目标 G的子目标 subG[]
?switch(关系 )
?{
? case,[]”,选择关系处理
? case,>>”,允许关系处理
? case,|||”,交替关系处理
? case,[>”,禁止关系处理
? }
?//对所有的子目标进行递归调用
? for(int I;I<subG.length;I++)
? Translate(subG[I],stn);
?}
人机交互技术编写组 84
( 3) 定义了 G-U-L的各种关系向状态网络转换的具
体的实现函数,实际上就是生成状态网络中的弧,并
进行存储。在各状态网络中都会有一个初始状态 S。在
每个处理函数中,需要考虑目标具有循环属性的情况,
这在状态转换网络中的体现是某个状态通过一个事件
激活以后能仍然返回到该状态。如果要转换到其他状
态,还需要一个外部事件的作用。如对 *G,如图 6-20
所示。
图 6-20 带有循环属性的目标对应的状态转换图
G正常结束事件
外部事件 S U
人机交互技术编写组 85
G-U-L中各种约束关系对应的状态转换网络
[] (选择 choice),
? 设目标 G下的子目标关系为 [](G0,G1),表示
共有两条路径可以完成目标G。
? 从初始状态 S0出发,有两条弧需要记录,经
过“外部事件 0”到 S1的转换及经过“外部事
件 1”到 S2的转换,记录格式如下,
S0
S1
外部事件 0
G
Null
S0
S2
外部事件 1
G
Null
人机交互技术编写组 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
外部事件 0
S1 S2
S0
产
生G
正
常
结
束
事
件
产
生G
正
常
结
束
事
件
人机交互技术编写组 88
选择”关系状态网络 -考虑了存在目标循环的情
况
图 6-21b 带循环的, 选择, 关系状态图
产
生G
正
常
结
束
事
件
G0正常结束事件
S0
外部事件 1
外部事件 0
G1
正
常
结
束
事
件
产
生G
正
常
结
束
事
件
S2 S1
外
部
事
件2
人机交互技术编写组 89
>>(允许 Enabling),
? 设目标 G下的子目标关系为 >>(G0,G1),在这种关系中完成目
标 G的路径只有一条,当 G0成功结束后才允许 G1执行,这是
一个顺序执行的过程。
? 在转换成状态转换网络后如图 6-22所示。
图 6-22 允许, 关系状态网络
G1正常结束事件
G0正常结束事件
外部事件
S1 S2
S0
产生 G正常结
束事件
人机交互技术编写组 90
从状态 S0在外部事件激发转换至 S1,在 S1状态等待
,G0正常结束事件”发生后转换至 S2;然后在 S2处等
待,G1正常结束事件”转换至 S0,这样表示目标 G执
行完毕,同时发生动作“产生 G正常结束事件”,处理
转换过程中存储所有的弧。这种约束关系允许同一层
次下有多个目标存在,如 >>(G0,G1,……,Gn),这些
目标都是顺序执行。
人机交互技术编写组 91
|||(交替 Interleaving),
? 设目标 G下的子目标关系为 |||(G0,G1),表示两个目标之间一
种任意的组合来执行完成。在转换到状态网络后,如图 6-23
所示,有 S0->S1->S4->S0和 S0->S2->S3->S0两条途径可以
完成目标 G的一次执行。
图 6-23,交替”关系状态网络
G0
正
常
结
束
事
件
S2
G1正常结束事件 G0正常结束事件
外部事件 0
S0
S3? S4
S1
产
生G
正
常
结
束
事
件
产
生G
正
常
结
束
事
件
G01
常
结
束
事
件
外部事件 1
人机交互技术编写组 92
从 S0状态,如果产生“外部事件 0”,依次等待,G0正
常结束事件”、,G1正常结束事件”并最终回到 S0状
态,同理,若产生“外部事件 1”,则会沿着另一条路
径回到 S0。记录下所有状态转换的弧。在有交替关系
的层次中最多只允许有两个状态存在。
人机交互技术编写组 93
[>(禁止 Deactivation),
? 设目标 G下的子目标关系为 [>(G0,G1),一旦 G1任务被执行,
G0便无效 ( 不活动 )。这个关系在转换到状态网络以后与前
面不同的是,在状态 S2被,G1正常结束事件”激活以后,不
会再回到 S0,而是转到了一个新的状态 F。在有禁止关系的层次
中最多只允许有两个目标状态存在。一个典型的例子是 G0=”
运行,, G1=”退出, 。在执行退出以后整个程序结束,也就
无法再回到运行状态了。
G0
正
常
结
束
事
件
产生 G正常结束事件
G1正常结束事件
外部事件 0 外部事件 1
S2
S0
F
图 6-24,禁止”关系状态网络
产
生G
正
常
结
束
事
件
S1
人机交互技术编写组 94
3.实例应用
根据上面的转换算法,在图 6-24a-c中给
出了中国象棋的最高层目标、运行、走
棋三个目标的状态转换网络,它们之间
通过事件的产生和激活完成其层次间的
通信。其他目标的状态网络表示与这三
个图类似,在这里没有列出,
人机交互技术编写组 95
运
行
正
常
结
束
事
件
外部事件 1 外部事件 0
退出正常结束事件
S0
S1 S2 F
图 6-24a 最高层目标状态转换网络
最高层目标
人机交互技术编写组 96
运行
运行
产
生
运
行
正
常
结
束
事
件
产
生
运
行
正
常
结
束
事
件 打
谱
正
常
结
束
事
件
打
谱
正
常
结
束
事
件
S02
外部事件 1
打谱正常结束事件 走棋正常结束事件
外部事件 0
S00
S03 S04
S01
图 6-24b,运行, 目标状态转换网络
人机交互技术编写组 97
走棋
图 6-24c,走棋, 目标状态转换网络
走棋
对弈方走正常结束事件
产生走棋正常结束事件
当前方走正常结束事件
外部事件
S001 S002
S000
人机交互技术编写组 98
习题
6.2 对 6.1题中的 GOMS模型中的原子目标,
创建 UAN模型, 从而进一步了解 UAN模
型的在行为模型中的地位和作用 。 结合
LOTOS算符, 用前面介绍的 G-U-L进一步
完善任务的描述 。
6.3 在 6.2.1中用产生式规则描述了“屏
幕上绘直线”的模型,请试着用状态网
络来进行描述,并比较一下两者之间的
异同。
人机交互技术编写组 99
课堂练习
1 把中国象棋的 G-U-L模型转换到状态网
络模型
? 最高目标
? 运行
? 走棋
2画出窗口系统中 事件注册方式处理流程
图
第 6章 人机交互界面的表示模型
人机交互技术编写组 2
目的
在界面设计的早期阶段,研究建立一种
用户界面表示模型
? 利用形式化的设计语言来分析和表达用户
任务以及用户和系统之间的交互情况;
? 使界面表示模型能方便地映射到实际的设
计实现。
人机交互技术编写组 3
界面模型分类
任务分解和分析
? 能力模型( competence model)
?预测和描述用户合法的交互行为序列
? 行为模型( performance model)
?预测和描述用户合法的交互行为序列
?描述用户的目的
结构模型 constructional model
? 系统组成模型
人机交互技术编写组 4
主要内容
三种模型,
? 行为模型,主要从用户和任务的角度考虑如何来描
述人机交互界面,将详细介绍 GOMS,UAN及
LOTOS模型。
? 结构模型,主要从系统的角度来表示人机交互界面。
重点介绍状态转换网络( STN-State Transition
Network)和产生式规则 (Production Rule)。
? 事件 -对象模型,是一种目前非常流行的面向对象的
表示模型,它将人机交互活动归结为事件与对象的
相互作用。
如何由界面的行为表示模型转换到系统的结构
模型。
人机交互技术编写组 5
参考材料
1 ) The Psychology of Human-Computer
Interaction by S.K,Card et al,
2) Human-Computer Interaction (2nd Edition)
by Alan J,Dix,et al,
3) 董士海等:, 人机交互和多通道用户界面,,
科学出版社,1999,2,
4) A Comparison of Approaches for Specifying
Multi-Modal Interactive Systems,by Joelle
Coutaz et al,
人机交互技术编写组 6
6.1 行为模型
分析人员获取用户需求后,结合领域专
家的意见和指导,获取系统中需要完成
的任务,对任务的主要因素进行详细地
分析,如任务的层次、发生条件、完成
的方法以及它们之间的关系等等。
所有这些内容,都是在行为模型中所要
研究的。
人机交互技术编写组 7
6.1.1 GOMS
1983年由 Card,Morgan和 Newell 提出的。
通过目标 (Goal)、操作 (Operator)、方
法 (Method) 以及选择规则 (Selection)
四个元素来描述用户的行为。
GOMS是在交互系统中用来分析建立用户
行为的模型。它采用, 分而治之, 的思
想,将一个任务进行多层次的细化。
人机交互技术编写组 8
6.1.1 GOMS
1.目标 Goals
目标就是用户执行任务最终想要得到
的结果,它可以在不同的层次中进行定义。
2,操作 Operators
操作是任务分析到最低层时的行为,
是用户为了完成任务所必须执行的基本
动作。
人机交互技术编写组 9
6.1.1 GOMS
3,方法 Methods
方法是描述如何完成目标的过程。一个方法本
质上来说是内部的算法,用来确定子目标序列及
完成目标所需要的操作。
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]
人机交互技术编写组 10
6.1.1 GOMS
4,选择 Selection
选择是用户要遵守的判定规则,以确定在特定环境下
所要使用的方法。
当有多个方法可供选择时,GOMS中并不认为这是一个
随机的选择,而是尽量来预测会使用哪个方法,这需要
根据特定用户、系统的状态、目标的细节来预测要选
择哪种方法。
用户 Sam,
Rule 1,Use the CLOSE-METHOD unless another rule applies
Rule 2,If the application is GAME,use L7-METHOD
人机交互技术编写组 11
GOMS实例
Task:Editing
GOAL:EDIT-MANUSCRIPT
GOAL:EDIT-UNIT-Task repeat until no more unit tasks
GOAL:ACQUIRE-UNIT-TASK
GET-NEXT-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
人机交互技术编写组 12
GOMS应用
作为一种人机交互界面表示的理论模型,
GOMS是人机交互研究领域内少有的几个广
为人知的模型之一,并被称为最成熟的工
程典范,该模型在计算机系统的评估方面
也有广泛的应用。
GOMS can save money!
? 美国电话公司 NYNEX利用 GOMS分析一套即
将被采用的新的计算机系统的应用效果,结
果发现效果不理想,放弃了使用新系统,为
公司节约了数百万的资金。
人机交互技术编写组 13
GOMS的局限性
GOMS没有清楚的描述错误处理的过程,假设用户完全按一种
正确的方式进行人机交互,因此只针对那些不犯任何错误的
专家用户。
GOMS对于任务之间的关系描述过于简单,只有顺序和选择,事
实上任务之间的关系还有很多种(具体参见 6.1.2节中 LOTOS
的介绍),另外选择关系通过非形式化的附加规则描述,实
现起来也比较困难。
GOMS把所有的任务都看作是面向 操作 目标的,而忽略了一些
任务所要解决的问题本质以及用户间的个体差异,它的建立
不是基于现有的认知心理学,无法代表真正的认知过程。
人机交互技术编写组 14
6.1.2 LOTOS
LOTOS -Language Of Temporal Ordering
Specification,T.Bolognesi,H.Brinskma,
"Introduction to the ISO Specification Language
LOTOS”,1987,
国际标准形式描述语言,适于描述具有并发、交
互、反馈和不确定性等特点的并发( concurrent)
系统中的行为。
开始作为一种描述网络协议的语言,由于交互系
统、特别是多通道交互系统有并发系统的特点,
因此成为用来描述交互系统的行为模型。
人机交互技术编写组 15
LOTOS基本思想
系统的外部可见行为可以看作是由一个有时序关系的交
互序列组成。
系统由一系列进程组成,进程同环境之间通过称为, 关
口, ( gates)的交互点进行交互。
两个以上的进程在执行同一个外部可见的行为时会发生
交互操作,进行数据交换、信息传递、协调同步等操作。
进程行为用, 行为表达式, 来描述,复杂的行为由简单
的行为表达式通过表示时序关系的 LOTOS算符组合而成。
在将 LOTOS思想用于人机交互的行为模型时,用进程之间
的约束关系来描述交互子任务之间的关系。
人机交互技术编写组 16
LOTOS算符
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执行
人机交互技术编写组 17
LOTOS实例
人机交互技术编写组 18
中国象棋的 LOTOS任务分解实例
人机交互技术编写组 19
LOTOS与 GOMS的结合
LOTOS模型很好的描述了任务之间的时
序约束关系,这些时序约束关系能更好
的描述 GOMS中子目标之间的关系。
用 GOMS模型描述任务的分解过程,而用
LOTOS给出子任务之间的约束关系,这
样就可以增加两种表示模型的表示能力。
人机交互技术编写组 20
结合 GOMS和 LOTOS的中国象棋程序
的行为描述
GOAL:中国象棋
[>,
GOAL:运行
|||,
*GOAL:走棋
ACTION:自动记录棋谱
>>,
GOAL:当前方走
>>,
OPRATOR:拾取棋子
OPRATOR:放置棋子
GOAL:对弈方走
>>
OPRATOR:拾取棋子
OPRATOR:放置棋子
*GOAL:打谱
[],
OPRATOR:加速
OPRATOR:减速
OPRATOR:暂停
OPRATOR:恢复
GOAL:退出
人机交互技术编写组 21
LOTOS总结
LOTOS与 GOMS结合, 可以清楚地了解整个目标层次及各
目标之间的约束关系 。 但与 GOMS同样存在无法描述目标
异常结束的缺陷, 同时当任务进行选择时用什么规则进
行选择并为涉及 。
LOTOS最大的优越性在于可以构造一套现成的自动化工
具, 利用这些工具, 可自动进行错误检测, 但它过于形
式化的记法比较晦涩难懂 。
GOMS和 LOTOS的结合可以很好地描述人机交互的较高级
的任务, 对于原子任务的形式化描述, 上述模型并没有
给出一个比较清晰的描述, 下面讨论的 UAN模型主要用
于原子目标的描述 。
人机交互技术编写组 22
6.1.3 UAN
UAN---User Action Notation
UAN是一种简单的符号语言,主要描述
用户的行为序列以及在执行任务时所用
的界面物理对象。
尽管 UAN属于一种行为模型,但作为一
种任务描述语言,它又涉及一定程度的
系统行为的描述,因而它兼有行为模型
和结构模型的一些特点。
人机交互技术编写组 23
UAN模型的基本思想
预定义一些标志符,
? 用户动作标志符
? 条件标志符
采用一种表格结构来表示任务
界面被分解成一些类似层次结构的异步任务,每个任务的实现都用表
格来描述,用户动作的关联性和时序关系由表格的行列对齐关系和从
上到下、从左到右的阅读顺序来确定。
任务 ( task),任务名称 ( the name of task)
用户行为
界面反馈
界面状态
人机交互技术编写组 24
UAN预定义的动作标志符(部分)
用户动作标志符,
? move_mouse(x,y) 移动鼠
标至 (x,y)
? release_button(x,y) 在
(x,y)位置释放鼠标按钮;
? highlight(icon) 使 icon
高亮显示;
? de_highlight(icon) 取消
icon的高亮显示 。
? 用户动作标志符,
– ~[X],在某个图形对象上
移动鼠标;
– £,按下鼠标;
– ¢,释放鼠标;
– !,使对象高亮显示;
– -!,取消对象的高亮显示
– Display,显示图形对象;
– Erase,取消显示对象。
人机交互技术编写组 25
UAN预定义的条件标志符(部分)
while(condition) TASK
? 当条件 condition为真时,循环执行任务 TASK;
if(condition) then TASK
? 如果条件 condition满足,则执行任务 TASK;
iteration A* or A+
? 表示迭代操作;
waiting
? 表示等待,可以等待一个条件满足,也可以等待任
务中的一个操作执行。
人机交互技术编写组 26
UAN实例 -单通道交互
任务,drag and drop a file to the recycle bin
用户行为 界面反馈 界面状态
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 intersect(bin,x,y)
if intersect(bin,x,y)
人机交互技术编写组 27
UAN实例 -多通道交互
任务,drag and drop a file to the recycle bin
用户行为 界面反馈 界面状态
2D鼠标 语音
then highlight(icon)
show_outline(icon)
then highlight(bin)
then hide(icon)
show_bin_full()
if intersect(icon,x,y)
icon=selected
if intersect(bin,x,y)
if intersect(bin,x2,y2)
mouse_down(x,
y)
drag_icon(x,y)
mouse_up(x,y)
Pronounce
Move_to_re
cycle_bin
人机交互技术编写组 28
UAN总结
UAN模型更接近于实现,界面状态和界面反馈
用一般的程序语言描述,实现起来比较方便,
当然这种描述由于接近于程序语言,因此设计
时需要一定的编程基础
UAN模型在精确刻画各成分之间的各种平行和
串行的时序关系方面尚显不足,任务之间的时
序关系没有明确表示出来,当所描述的界面使
用多种输入设备和有若干可选交互路径时,比
较繁琐。
人机交互技术编写组 29
层次化的界面描述方法
人机交互技术编写组 30
G-U-L模型
可以考虑将 GOMS,UAN,LOTOS中模型结合为一个预
测行为模型,G-U-L模型。
G-U-L运用 GOMS原理为基础进行任务分解,建立基本
的行为模型,原子操作由 UAN模型描述,在此基础上,
运用 LOTOS算符来表示任务目标之间的时序关系。
在 G-U-L模型中没有加入规则,在表示目标之间的关系
中也未考虑同步。这主要考虑到规则的转换要涉及到
推理、建立知识库等问题,而同步的问题的描述和转
换也非常的复杂,这会在工作的初期造成非常大的困
难。
人机交互技术编写组 31
6.2 结构模型
产生式规则 -Production Rule
? 形式化语言的描述,这种结构的方法从理论
上可以引导界面设计者及界面工具的设计者
进行有效的设计。
状态转换网络 -State Transit Network
? 用结构化的方法来描述人机交互的一般过程,
是一种图示化的结构
人机交互技术编写组 32
6.2.1 产生式规则
又称为上下文无关文法,将人机交互对话看作
是一种语言,运用基于语法的方法来描述交互
对话。
产生式规则是一种形式化语言,这些规则可用
于描述人机交互界面。产生式规则的一般形式
是,
? if condition then action
? 这些规则可以表示为不同的形式, 如
? condition → action
? condition,action
人机交互技术编写组 33
产生式规则
所有的规则都是有效的, 并且系统不断用它来检测用
户的输入是否与这些条件相匹配 。
若匹配则激活相应的动作, 这些动作可以是执行应用
程序的一个过程, 也可以是直接改变某些系统状态的
值 。
一般来说,组成界面描述的产生式规则很多,规则定
义的顺序并不重要,只要与规则中的条件相匹配,就
可以激活相应的动作。产生式规则系统可以是事件引
导的,也可以是状态引导的,或者两者都有。
人机交互技术编写组 34
1.事件引导的系统
Sel-line
→
start-line <highlight 'line'>
C-point start-line
→
rest-line <rubber band on>
C-point rest- line
→
rest-line <draw line>
D-point rest- line
→
<draw line><rubber band off>
产生式集合,实现用户在屏幕上绘直线
人机交互技术编写组 35
事件引导的系统
保存内部事件序列
构造一个对话控制器,主要负责事件的
产生和规则的匹配
规则的匹配算法影响系统的性能
人机交互技术编写组 36
事件的主要类型
用户事件( user event),Sel-line表示从菜单中选择
line命令,C-point 和 D-point表示用户在绘图平面上单
击和双击鼠标
内部事件,用于保持对话状态,如 start-line 表示开始
画线后的状态,rest- line表示选择了第一个点之后的
状态。
系统响应事件,以尖括号表示可见或可听的系统响应,
如 <highlight 'line'>,把菜单项 'line' 高亮度显示,
<draw line>表示在屏幕上显示直线,<rubber band
on> 表示橡皮筋绘制方式打开,<rubber band off>
表示橡皮筋绘制方式关闭。
人机交互技术编写组 37
产生式规则的解释
在上面的产生式规则中,第一条规则表示选择
画线命令后,系统状态进入了开始画线状态,
接着把 'line'菜单项高亮度显示;第二条规则表
示,用户在开始画线状态时,在绘图区域单击
鼠标则系统表示已定义了一个点,此时橡皮筋
绘图方式打开;第三条规则表示在定义了一个
(或多个)点后,用户单击鼠标可以连续地定
义点;第四条规则表示双击鼠标则结束画线的
交互过程。
人机交互技术编写组 38
对话控制
对话控制主要负责事件的产生和规则的匹配,可以看
到在每一时刻系统内存中会保存一些内部事件,当产
生一个事件时,可能是用户事件(如单击鼠标),也
可能是内部事件(如时钟事件等)。
对话控制就要将所有的产生式规则与事件集合进行匹
配,这个过程是复杂的而且是耗时的,当产生式很多
并且产生式规则的条件复杂时,匹配算法的效率就显
的更为重要,因此需要设计好的数据结构和匹配算法
来提高匹配规则的效率。
可以将规则和事件进行分组和分层。
人机交互技术编写组 39
2.状态引导的系统
状态引导的系统在系统内存保存的不再
是动态的随时进出的事件,而是一些表
示系统的当前状态的属性,这些属性在
不同的时刻有不同的值。
人机交互技术编写组 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-null start-line highlight-line
Click-point start-line
→
mouse-null rest-line rubber-band-on
Click-point rest- line
→
mouse-null draw-line
Double-click rest-line
→
mouse-null menu draw-line rubber-band-off
人机交互技术编写组 43
状态引导的产生式规则的特点
当产生式规则的条件和状态匹配时将激活该产
生式规则,对于某一特定的属性,如果前面的
状态需要改变成新的状态时才需要在产生规则
的后面标注,例如,在第二条规则中,规则指
定 "Line-state" 属性应设置成 "rest-line",因
为原来的 "start-line"值将丢失,而在第三条规
则中,没有提及 "rest-line"值,因为它已默认,
"Line-state" 属性的值继续保留为 "rest-line"。
人机交互技术编写组 44
状态引导的产生式规则的特点
属性的永久特性有时会引起一些奇怪的
错误, 因此在上述的规则集中, 每一条
产生式规则都要求将鼠标的状态设置为
"mouse-null", 否则, 当用户单击了鼠
标, 激活了第二条规则, 如果不立即将
鼠标的属性设置为 "mouse-null",则会立
即激活第三条规则, 此时系统的状态和
第三条规则的条件是匹配的, 并且会反
复的一直执行下去 。
人机交互技术编写组 45
3.混合引导系统
有的对话过程比较适合于事件引导方式,有的
对话过程适合于状态引导方式,当然也可以将
两者结合起来,例如采用下面的形式,
? 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 = on
select- bold,
Bold = on
→
Bold = off
select-italic,
Italic = off
→
Italic = on
select-italic,
Italic = on
→
Italic = off
select-under,
Underline = off
→
Underline = on
select-under,
Underline = on
→
Underline = off
人机交互技术编写组 48
产生式规则总结
描述操作时序能力强,并发顺序均可
无法描述误操作
界面复杂时,状态、事件复杂,产生式
过多,要求产生式匹配算法性能高
人机交互技术编写组 49
6.2.2 状态转换网络
状态转换网络( STN)的基本思想是定义一个
具有一定数量状态的转换机,称之为有限状态
机 -Finite State Machine(FSM)
FSM从外部世界中接收到事件,并能使 FSM从
一个状态转换到另一个状态。
这里介绍两种最基本的状态转换网络,状态转
换网络( State Diagrams)和扩展状态转换网
络 (State Charts),后者是前者的一个扩展
人机交互技术编写组 50
1.传统的状态转换网络
当发生一个外部或内部事件时,
系统就会从一个状态转换到另外
一个状态,这称为状态转换。
外部事件主要由用户操作外部输
入设备来产生,内部事件可以是
系统产生的事件,如时钟事件,
也可以是为了改变系统的状态和
行为而产生的事件,如当一个任
务完成后可以激活另一个任务等。
源状
态
目标
状态
转换
一个状态转换与一对状态相关联。
一般的系统具有很多个状态,假设系统由 n个状态组成,
状态之间的转换最多可能有 n*(n-1)个。
人机交互技术编写组 51
带条件的状态转换
源状态 目标状态
条件
动作
人机交互技术编写组 52
带条件的状态转换
T2[C2]
T1[C1]
S
E1
E2
S+C1
S+C2
E1
E2
T1
T2
人机交互技术编写组 53
带条件的状态转换实例 (基于鼠标的画图工具 )
draw circle
单击在圆周上
rubber band
单击在中心点
highlight ?circle?
选择 ‘ circle?
Circle1
Menu
Finish Circle2
draw line
双击
rubber band
单击在第一点
highlight ?line?
选择 ‘ line?
Line1 Finish Line2
人机交互技术编写组 54
带条件的状态转换实例 (基于鼠标的画
图工具 )
图 6-8中是一个基于鼠标画图工具,图中
涉及到了状态、转换、条件、动作等元
素。它有一个菜单(有两个选项, circle”
和, line”)和一个绘图平面。若选择
,circle”则要求你确定两个点:第一个点
是圆心,第二个点表示圆周上的任意一
点。第一个点确定后,系统就在圆心和
当前鼠标位置之间画一条, 橡皮圈, 线,
第二个点确定后就画出了一个圆。
人机交互技术编写组 55
传统状态转换模型
状态转换网络比相应的文本解决方案更易于设
计、理解、修改和文档化,它给出了对行为的
精确的、甚至是格式化的定义。
存在着一定的局限性,一个最大的缺陷是需要
定义出系统的所有状态,这对于小型的系统是
没有问题的,但是在一个较大的系统中,系统
会很快崩溃,状态的数目是呈指数级增长的,
同时状态的增长直接导致了状态转换网络过于
复杂、无法实际应用。
人机交互技术编写组 56
2.扩展的状态转换网络
弹出 graphics
子菜单
选择 ‘ graphics?
主菜单
graphics 子菜单
弹出 text 子菜单
选择 ‘ text? text 子菜单
弹出 paint 子菜单
选择 ‘ paint paint 子菜单
人机交互技术编写组 57
带有取消功能的状态转换图
弹出 graphics
子菜单
选择 ‘ graphics?
主菜单
graphics 子菜单
弹出 text 子菜单
选择 ‘ text? text 子菜单
弹出 paint 子菜单
选择 ‘ paint paint 子菜单
ESC
正常完成
正常完成
正常完成
ESC
ESC
人机交互技术编写组 58
带有帮助功能的状态转换
按下 HELP按钮
按下 HELP按钮
从菜单出发
draw circle
单击在圆周上
rubber band
单击在中心点 Circle1 Finish Circle2
帮助子系统
帮助子系统
描述并发任务?
人机交互技术编写组 59
状态转换模型
状态的爆发式增长问题
具有良好的描述串行和顺序行为的能力,
并发及其他行为的描述能力差
虽然是一个结构模型,但难以实现
人机交互技术编写组 60
人机交互的界面的基本原则
对话的独立性
? 对话的独立性指 界面和系统的逻辑业务或数据模型
不互相影响,彼此独立,当交互完成后,再去调用
业务模型的方法进行相应的业务处理。
语义的反馈性
? 语义反馈是指在人机交互过程中要实时反馈界面的
状态和用户操作的细节,以便用户能比较清晰的了
解当前操作的过程,,所见即所得, 就是强调在操
作过程中所看到的就是将来系统处理的结果,这是
一种典型的语义反馈。
人机交互技术编写组 61
软件的四层体系结构
表示层
逻辑对象层
服务对象层
存储层
人机交互技术编写组 62
6.3事件 -对象 (E-O)模型
事件 -对象( Event-Object)模型,将人机交互
活动归结为事件与对象的相互作用。事件是人
机交互活动中传递的信息,对象是交互活动中
的对象;事件引发交互活动,对象是交互活动
的承受者。这种模型同时强调事件和对象在人
机交互中的重要性,模型以事件为驱动,以对
象为核心,具有面向对象的风格。
兼顾了对话独立性原则和语义反馈的要求。
人机交互技术编写组 63
表示层对象 1 表示层对象 2 表示层对象 n …
控制者
逻辑对象 1 逻辑对象 2 逻辑对象 n …
事件 1 事件 2 事件 n
事件 1 事件 2 事件 n
E-O模型系统结构
人机交互技术编写组 64
1.事件的类型
事件根据不同的来源可以分为两种基本
类型:实事件和虚事件。
实事件是用户通过各类交互输入设备输
入而产生。根据现有交互设备,可以将
实事件分为,
? 键码事件,由按键设备产生;
? 定位事件,由指点设备产生;
? 字符串事件,由键盘或语音识别器等产生。
人机交互技术编写组 65
事件的类型
虚事件由用户界面系统或应用程序产生并限于
系统内部流动的各类事件,其作用主要是协调
系统的运行,虚事件可以分为,
? 定时器事件,由系统按一定的时间间隔产生的事件,
? 邮件事件,当有新的邮件收到时产生的事件,一般
的异步事件也可以作为邮件事件来处理。
? 空闲事件,也是一种内部事件,表示系统空闲或再
等待用户输入,空闲事件发生时,系统可以做一些
屏幕更新等处理。
人机交互技术编写组 66
2.事件的结构
事件名
(Name)
类 型
(Type)
来 源
(From)
去 向
(To)
产生时
刻
(Time)
数 据
(Data)
人机交互技术编写组 67
3.对象的类型
根据交互任务类型的不同一般可归纳为
三种基本对象类型,
? ①抽象(概念)交互对象,如磁盘、文件等
抽象的对象;
? ②空间交互对象,表示空间中的物体的对象
等,如三维场景和物体;
? ③时间交互对象,表示与时间相关的对象,
如视频、音频等对象。
人机交互技术编写组 68
对象的类型
对象按功能分类,可分为,
? ①通用对象,在不同的应用中共有的一些对象;
? ②工具对象( Widget Object),用作用户界面中的
各种交互技术(如按钮等);
? ③二维对象,用于二维用户界面;
? ④三维对象,用于三维用户界面;
? ⑤时变对象,适用于随时间变化的动态对象,如在
多媒体用户界面中实现音频、视频等媒体的管理。
人机交互技术编写组 69
对象应该具有的特征
① 对象应以显式的方式接受事件并对此
做出响应;
②能直接利用数据和方法封装的思想实
现对象的独立;
③一个对象可以发送消息给其他对象,
对象之间的通信通过消息发送和接收来
完成,对象的实现方法可采用结构化方
法和面向对象的方法。
人机交互技术编写组 70
4.对象的结构
主要包括三部分,
? 属性集,包括对象 ID、类型、风格( style)、位置
(对于二维、三维情况)、颜色等;
? 方法集,
? 初始化方法:对象属性的初始化;
? 表现方法:提供常规的界面反馈和更新对象的外观;
? 响应方法:响应方法对用户的终结控制动作(如选中菜单
项)调用相应的应用语义函数(包括自身语义和连接语义)
以做出响应,当对象之间存在关联语义时,相应方法还负
责和其他对象进行交互。
? 消息集:包括一组可被对象识别的并激活其相应行
为方法的消息,这些消息分流到上述三个方法中。
人机交互技术编写组 71
5.对象的组织
对象之间有不同的关系,可采用四种典型结构
来组织对象,
? 集合,对象之间无约束关系;
? 线性结构,对象之间有明确的顺序关系,如各输入
字段、列表项等;
? 层次结构,对象之间有层次关系,对象包含数个子
对象,如菜单和菜单项;
? 网状结构,适用于比较复杂的 CAD系统,如 CAD布
线,现在 Web中的导航菜单对象的组织也有采用网
络结构。
人机交互技术编写组 72
6.E-O模型总结
E-O模型具有彻底的面向对象特性,其中对象具
有直接的面向对象的特征,而包括事件、设备的
在内的各种元素也被直接地映射为对象;同时,
事件对象模型内在的事件驱动机制也非常符合交
互式软件的需要。
事件对象模型中事件结构和对象结构的通用性和
开放性,可以支持从简单得到复杂的各类用户界
面的实现,有能力支持包括多媒体、多通道用户
界面和虚拟现实等新型人机交互技术的实现,在
下一章将给出 E-O模型的软件结构和实现支持。
人机交互技术编写组 73
课堂练习
1.写出事件引导的画线的产生式规则
2.写出状态引导的画线的产生式规则
3.画出基于菜单的画图工具的状态转换
图
人机交互技术编写组 74
6.4 行为模型和结构模型的转换
一般来说行为模型主要对设计起指导作
用,在此基础上,设计人员再进行结构
模型(如状态转换网络等)的创建,这
个过程很大程度上取决于设计人员的经
验和对行为模型的理解,
本节主要介绍一种从行为模型到结构模
型的一种转换思想和算法,以实现两种
模型间的自动的转化工作。
人机交互技术编写组 75
6.4.1基本的模型转换整体框架
转换算法
行为模型 (G-U-L)
结构模型 State Charts
GOMS UAN
LOTOS约束规则
用户
Domain
Expert
Designer
图 6-17 模型转换整体框架
人机交互技术编写组 76
模型转换整体框架
整个框架分为三个部分,
? 行为模型使用 G-U-L模型,在这一层将产生一个基
本的预测性的行为模型。
? 结构模型采用层次状态转换网络,它涉及到的元素
有状态、转换、事件、层次结构。不考虑状态转换
网络在转换中条件和同步,可以简化转换工作。
? 用户包含两种用户,领域专家和设计者。 G-U-L模
型的创建主要是由领域专家和设计者合作来完成的,
然后通过模型转换算法转换成为结构模型,最后提
供给设计者使用。
人机交互技术编写组 77
6.4.2 转换算法
1.基本思想
2.基本步骤
3.实例应用
人机交互技术编写组 78
1.基本思想
采用 G-U-L以层次化结构对任务进行建模,包括目标
(包括循环属性)、行为、关系。
状态转换网络表示的是状态之间的转换,也采用层次
化表示,涉及到的主要是状态、转换、事件、行为。
在 G-U-L中体现的层次关系转换到状态转换网络中也体
现出层次的关系,G-U-L中的每个目标都对应一个状态
转换网络。
如果一个目标下层有子目标,对子目标来说,它所对
应的状态网络应该嵌套在上层目标对应的状态网络中。
人机交互技术编写组 79
1.基本思想
在产生的状态转换网络中,有两类事件起作用,
? 一类是外部由用户激活的事件,如“按下鼠标” 事件、“点
击键盘” 事件等;
? 另一类是内部由目标产生的内部事件,这里只定义了“目标
正常结束”,表示目标正常结束时产生的事件。
? 在进行从 G-U-L到状态的转换时,这些事件只是形式上的一个
定义,没有具体的实现过程,如要在某一层出现的第 i个外部
事件用“外部事件 i”来代替,而由某个目标 Ti执行时产生的内
部事件也仅仅用类似于,Ti正常结束事件”来表示,
? 而具体的事件还需要由状态网络进行,系统实现时通过专门
的事件管理器来定义和管理。
? 对 G-U-L中的行为在转换后就成为对应的状态转换网络中的一
个行为。
人机交互技术编写组 80
图 6-18 事件产生过程
G
产生, G正常结束, 事件
S0 ……
F
图 6-18 中描述了一个目标层次中产生事件的过程。
人机交互技术编写组 81
2.基本步骤
对转换后的数据, 存储的是状态转换网络中表示转换
的弧, 如下图 6-19所示,
图 6-19 状态转换网络中弧的表示结构
其中的触发事件就是触发从出发状态到目的状态转换
的事件;
父状态表示的是当前弧所在状态网络的上层状态,可
以是一个抽象出来的状态名;
出发状态
目的状态
触发事件
父状态
行为
人机交互技术编写组 82
2.基本步骤
转换基本步骤
? ( 1)读取存储 G-U-L模型的数据文件,进行解析,
定义一个数组 stn用于存储状态网络中的弧。获取 G-
U-L模型中的最高目标,设为 G0,然后调用 (2)中的
Translate函数,在 Translate执行完毕后,stn中便存
储了转换后的状态网络的数据。函数示意如下,
main()
{
定义一个存储弧的数组 stn[]
读取 G-U-L文件
GOAL G0<-GetSubGoal(null) ; //获取在目标
Translate(G0,&stn); //调用转换函数
}
人机交互技术编写组 83
?( 2)对当前的目标进行处理,如果是原子目标,参考原
子目标的 UAN模型,创建其状态转换网络。否则,获得目
标层次下的数据,包括行为、关系算符及子目标名。通过
关系符号来调用( 3)中相应的关系转换函数,对所有的子
目标进行递归调用。 函数示意假如下,
?Translate( 目标 G,存储数组 stn[] )
?{
?获得目标 G的子目标 subG[]
?switch(关系 )
?{
? case,[]”,选择关系处理
? case,>>”,允许关系处理
? case,|||”,交替关系处理
? case,[>”,禁止关系处理
? }
?//对所有的子目标进行递归调用
? for(int I;I<subG.length;I++)
? Translate(subG[I],stn);
?}
人机交互技术编写组 84
( 3) 定义了 G-U-L的各种关系向状态网络转换的具
体的实现函数,实际上就是生成状态网络中的弧,并
进行存储。在各状态网络中都会有一个初始状态 S。在
每个处理函数中,需要考虑目标具有循环属性的情况,
这在状态转换网络中的体现是某个状态通过一个事件
激活以后能仍然返回到该状态。如果要转换到其他状
态,还需要一个外部事件的作用。如对 *G,如图 6-20
所示。
图 6-20 带有循环属性的目标对应的状态转换图
G正常结束事件
外部事件 S U
人机交互技术编写组 85
G-U-L中各种约束关系对应的状态转换网络
[] (选择 choice),
? 设目标 G下的子目标关系为 [](G0,G1),表示
共有两条路径可以完成目标G。
? 从初始状态 S0出发,有两条弧需要记录,经
过“外部事件 0”到 S1的转换及经过“外部事
件 1”到 S2的转换,记录格式如下,
S0
S1
外部事件 0
G
Null
S0
S2
外部事件 1
G
Null
人机交互技术编写组 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
外部事件 0
S1 S2
S0
产
生G
正
常
结
束
事
件
产
生G
正
常
结
束
事
件
人机交互技术编写组 88
选择”关系状态网络 -考虑了存在目标循环的情
况
图 6-21b 带循环的, 选择, 关系状态图
产
生G
正
常
结
束
事
件
G0正常结束事件
S0
外部事件 1
外部事件 0
G1
正
常
结
束
事
件
产
生G
正
常
结
束
事
件
S2 S1
外
部
事
件2
人机交互技术编写组 89
>>(允许 Enabling),
? 设目标 G下的子目标关系为 >>(G0,G1),在这种关系中完成目
标 G的路径只有一条,当 G0成功结束后才允许 G1执行,这是
一个顺序执行的过程。
? 在转换成状态转换网络后如图 6-22所示。
图 6-22 允许, 关系状态网络
G1正常结束事件
G0正常结束事件
外部事件
S1 S2
S0
产生 G正常结
束事件
人机交互技术编写组 90
从状态 S0在外部事件激发转换至 S1,在 S1状态等待
,G0正常结束事件”发生后转换至 S2;然后在 S2处等
待,G1正常结束事件”转换至 S0,这样表示目标 G执
行完毕,同时发生动作“产生 G正常结束事件”,处理
转换过程中存储所有的弧。这种约束关系允许同一层
次下有多个目标存在,如 >>(G0,G1,……,Gn),这些
目标都是顺序执行。
人机交互技术编写组 91
|||(交替 Interleaving),
? 设目标 G下的子目标关系为 |||(G0,G1),表示两个目标之间一
种任意的组合来执行完成。在转换到状态网络后,如图 6-23
所示,有 S0->S1->S4->S0和 S0->S2->S3->S0两条途径可以
完成目标 G的一次执行。
图 6-23,交替”关系状态网络
G0
正
常
结
束
事
件
S2
G1正常结束事件 G0正常结束事件
外部事件 0
S0
S3? S4
S1
产
生G
正
常
结
束
事
件
产
生G
正
常
结
束
事
件
G01
常
结
束
事
件
外部事件 1
人机交互技术编写组 92
从 S0状态,如果产生“外部事件 0”,依次等待,G0正
常结束事件”、,G1正常结束事件”并最终回到 S0状
态,同理,若产生“外部事件 1”,则会沿着另一条路
径回到 S0。记录下所有状态转换的弧。在有交替关系
的层次中最多只允许有两个状态存在。
人机交互技术编写组 93
[>(禁止 Deactivation),
? 设目标 G下的子目标关系为 [>(G0,G1),一旦 G1任务被执行,
G0便无效 ( 不活动 )。这个关系在转换到状态网络以后与前
面不同的是,在状态 S2被,G1正常结束事件”激活以后,不
会再回到 S0,而是转到了一个新的状态 F。在有禁止关系的层次
中最多只允许有两个目标状态存在。一个典型的例子是 G0=”
运行,, G1=”退出, 。在执行退出以后整个程序结束,也就
无法再回到运行状态了。
G0
正
常
结
束
事
件
产生 G正常结束事件
G1正常结束事件
外部事件 0 外部事件 1
S2
S0
F
图 6-24,禁止”关系状态网络
产
生G
正
常
结
束
事
件
S1
人机交互技术编写组 94
3.实例应用
根据上面的转换算法,在图 6-24a-c中给
出了中国象棋的最高层目标、运行、走
棋三个目标的状态转换网络,它们之间
通过事件的产生和激活完成其层次间的
通信。其他目标的状态网络表示与这三
个图类似,在这里没有列出,
人机交互技术编写组 95
运
行
正
常
结
束
事
件
外部事件 1 外部事件 0
退出正常结束事件
S0
S1 S2 F
图 6-24a 最高层目标状态转换网络
最高层目标
人机交互技术编写组 96
运行
运行
产
生
运
行
正
常
结
束
事
件
产
生
运
行
正
常
结
束
事
件 打
谱
正
常
结
束
事
件
打
谱
正
常
结
束
事
件
S02
外部事件 1
打谱正常结束事件 走棋正常结束事件
外部事件 0
S00
S03 S04
S01
图 6-24b,运行, 目标状态转换网络
人机交互技术编写组 97
走棋
图 6-24c,走棋, 目标状态转换网络
走棋
对弈方走正常结束事件
产生走棋正常结束事件
当前方走正常结束事件
外部事件
S001 S002
S000
人机交互技术编写组 98
习题
6.2 对 6.1题中的 GOMS模型中的原子目标,
创建 UAN模型, 从而进一步了解 UAN模
型的在行为模型中的地位和作用 。 结合
LOTOS算符, 用前面介绍的 G-U-L进一步
完善任务的描述 。
6.3 在 6.2.1中用产生式规则描述了“屏
幕上绘直线”的模型,请试着用状态网
络来进行描述,并比较一下两者之间的
异同。
人机交互技术编写组 99
课堂练习
1 把中国象棋的 G-U-L模型转换到状态网
络模型
? 最高目标
? 运行
? 走棋
2画出窗口系统中 事件注册方式处理流程
图