1.07k likes | 1.44k Views
人机交互 界面表示模型. 王辉 huiw@suda.edu.cn. 目的. 在界面设计的早期阶段,研究建立一种用户界面表示模型 利用形式化的设计语言来分析和表达用户任务以及用户和系统之间的交互情况; 使界面表示模型能方便地映射到实际的设计实现。. 界面模型分类. 任务分解和分析 能力模型( competence model ) 预测和描述用户合法的交互行为序列 行为模型( performance model ) 预测和描述用户合法的交互行为序列 描述用户的目的 结构模型 constructional model 系统组成模型. 主要内容. 三种模型:
E N D
人机交互界面表示模型 王辉 huiw@suda.edu.cn
目的 • 在界面设计的早期阶段,研究建立一种用户界面表示模型 • 利用形式化的设计语言来分析和表达用户任务以及用户和系统之间的交互情况; • 使界面表示模型能方便地映射到实际的设计实现。 人机交互技术
界面模型分类 • 任务分解和分析 • 能力模型(competence model) • 预测和描述用户合法的交互行为序列 • 行为模型(performance model) • 预测和描述用户合法的交互行为序列 • 描述用户的目的 • 结构模型 constructional model • 系统组成模型 人机交互技术
主要内容 • 三种模型: • 行为模型,主要从用户和任务的角度考虑如何来描述人机交互界面,将详细介绍GOMS,UAN及LOTOS模型。 • 结构模型,主要从系统的角度来表示人机交互界面。重点介绍状态转换网络(STN-State Transition Network)和产生式规则 (Production Rule)。 • 事件-对象模型,是一种目前非常流行的面向对象的表示模型,它将人机交互活动归结为事件与对象的相互作用。 • 如何由界面的行为表示模型转换到系统的结构模型。 人机交互技术
参考材料 • 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.1 行为模型 • 分析人员获取用户需求后,结合领域专家的意见和指导,获取系统中需要完成的任务,对任务的主要因素进行详细地分析,如任务的层次、发生条件、完成的方法以及它们之间的关系等等。 • 所有这些内容,都是在行为模型中所要研究的。 人机交互技术
6.1.1 GOMS • 1983年由Card, Morgan和Newell 提出的。 • 通过目标(Goal)、操作(Operator)、方法(Method) 以及选择规则(Selection) 四个元素来描述用户的行为。 • GOMS是在交互系统中用来分析建立用户行为的模型。它采用“分而治之”的思想,将一个任务进行多层次的细化。 人机交互技术
6.1.1 GOMS 1.目标 Goals 目标就是用户执行任务最终想要得到的结果,它可以在不同的层次中进行定义。 2.操作 Operators 操作是任务分析到最低层时的行为,是用户为了完成任务所必须执行的基本动作。 人机交互技术
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] 人机交互技术
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 人机交互技术
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 人机交互技术
GOMS应用 • 作为一种人机交互界面表示的理论模型,GOMS是人机交互研究领域内少有的几个广为人知的模型之一,并被称为最成熟的工程典范,该模型在计算机系统的评估方面也有广泛的应用。 • GOMS can save money! • 美国电话公司NYNEX利用GOMS分析一套即将被采用的新的计算机系统的应用效果,结果发现效果不理想,放弃了使用新系统,为公司节约了数百万的资金。 人机交互技术
GOMS的局限性 • GOMS没有清楚的描述错误处理的过程,假设用户完全按一种正确的方式进行人机交互,因此只针对那些不犯任何错误的专家用户。 • GOMS对于任务之间的关系描述过于简单,只有顺序和选择.事实上任务之间的关系还有很多种(具体参见6.1.2节中LOTOS的介绍),另外选择关系通过非形式化的附加规则描述,实现起来也比较困难。 • GOMS把所有的任务都看作是面向操作目标的,而忽略了一些任务所要解决的问题本质以及用户间的个体差异,它的建立不是基于现有的认知心理学,无法代表真正的认知过程。 人机交互技术
6.1.2 LOTOS • LOTOS -Language Of Temporal Ordering Specification, T.Bolognesi, H.Brinskma, "Introduction to the ISO Specification Language LOTOS”, 1987. • 国际标准形式描述语言,适于描述具有并发、交互、反馈和不确定性等特点的并发(concurrent)系统中的行为。 • 开始作为一种描述网络协议的语言,由于交互系统、特别是多通道交互系统有并发系统的特点,因此成为用来描述交互系统的行为模型。 人机交互技术
LOTOS基本思想 • 系统的外部可见行为可以看作是由一个有时序关系的交互序列组成。 • 系统由一系列进程组成,进程同环境之间通过称为“关口”(gates)的交互点进行交互。 • 两个以上的进程在执行同一个外部可见的行为时会发生交互操作,进行数据交换、信息传递、协调同步等操作。 • 进程行为用“行为表达式”来描述,复杂的行为由简单的行为表达式通过表示时序关系的LOTOS算符组合而成。 • 在将LOTOS思想用于人机交互的行为模型时,用进程之间的约束关系来描述交互子任务之间的关系。 人机交互技术
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执行 人机交互技术
LOTOS实例 人机交互技术
中国象棋的LOTOS任务分解实例 人机交互技术
LOTOS与GOMS的结合 • LOTOS模型很好的描述了任务之间的时序约束关系,这些时序约束关系能更好的描述GOMS中子目标之间的关系。 • 用GOMS模型描述任务的分解过程,而用LOTOS给出子任务之间的约束关系,这样就可以增加两种表示模型的表示能力。 人机交互技术
结合GOMS和LOTOS的中国象棋程序的行为描述 >> OPRATOR:拾取棋子 OPRATOR:放置棋子 *GOAL:打谱 []: OPRATOR:加速 OPRATOR:减速 OPRATOR:暂停 OPRATOR:恢复 GOAL:退出 GOAL:中国象棋 [>: GOAL:运行 |||: *GOAL:走棋 ACTION:自动记录棋谱 >>: GOAL:当前方走 >>: OPRATOR:拾取棋子 OPRATOR:放置棋子 GOAL:对弈方走 人机交互技术
LOTOS总结 • LOTOS与GOMS结合,可以清楚地了解整个目标层次及各目标之间的约束关系。但与GOMS同样存在无法描述目标异常结束的缺陷,同时当任务进行选择时用什么规则进行选择并为涉及。 • LOTOS最大的优越性在于可以构造一套现成的自动化工具,利用这些工具,可自动进行错误检测,但它过于形式化的记法比较晦涩难懂。 • GOMS和LOTOS的结合可以很好地描述人机交互的较高级的任务,对于原子任务的形式化描述,上述模型并没有给出一个比较清晰的描述,下面讨论的UAN模型主要用于原子目标的描述。 人机交互技术
6.1.3 UAN • UAN---User Action Notation • UAN是一种简单的符号语言,主要描述用户的行为序列以及在执行任务时所用的界面物理对象。 • 尽管UAN属于一种行为模型,但作为一种任务描述语言,它又涉及一定程度的系统行为的描述,因而它兼有行为模型和结构模型的一些特点。 人机交互技术
任务(task):任务名称(the name of task) 用户行为 界面反馈 界面状态 UAN模型的基本思想 • 预定义一些标志符: • 用户动作标志符 • 条件标志符 • 采用一种表格结构来表示任务 • 界面被分解成一些类似层次结构的异步任务,每个任务的实现都用表格来描述,用户动作的关联性和时序关系由表格的行列对齐关系和从上到下、从左到右的阅读顺序来确定。 人机交互技术
UAN预定义的动作标志符(部分) • 用户动作标志符: • move_mouse(x,y) 移动鼠标至(x,y) • release_button(x,y) 在(x,y)位置释放鼠标按钮; • highlight(icon) 使icon高亮显示; • de_highlight(icon) 取消icon的高亮显示。 • 用户动作标志符: • ~[X],在某个图形对象上移动鼠标; • £, 按下鼠标; • ¢,释放鼠标; • !, 使对象高亮显示; • -!, 取消对象的高亮显示 • Display,显示图形对象; • Erase, 取消显示对象。 人机交互技术
UAN预定义的条件标志符(部分) • while(condition) TASK • 当条件condition为真时,循环执行任务TASK; • if(condition) then TASK • 如果条件condition满足,则执行任务TASK; • iteration A* or A+ • 表示迭代操作; • waiting • 表示等待,可以等待一个条件满足,也可以等待任务中的一个操作执行。 人机交互技术
任务: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) UAN实例-单通道交互 人机交互技术
UAN实例-多通道交互 人机交互技术
UAN总结 • UAN模型更接近于实现,界面状态和界面反馈用一般的程序语言描述,实现起来比较方便,当然这种描述由于接近于程序语言,因此设计时需要一定的编程基础 • UAN模型在精确刻画各成分之间的各种平行和串行的时序关系方面尚显不足,任务之间的时序关系没有明确表示出来,当所描述的界面使用多种输入设备和有若干可选交互路径时,比较繁琐。 人机交互技术
层次化的界面描述方法 人机交互技术
G-U-L模型 • 可以考虑将GOMS、UAN、LOTOS中模型结合为一个预测行为模型:G-U-L模型。 • G-U-L运用GOMS原理为基础进行任务分解,建立基本的行为模型,原子操作由UAN模型描述,在此基础上,运用LOTOS算符来表示任务目标之间的时序关系。 • 在G-U-L模型中没有加入规则,在表示目标之间的关系中也未考虑同步。这主要考虑到规则的转换要涉及到推理、建立知识库等问题,而同步的问题的描述和转换也非常的复杂,这会在工作的初期造成非常大的困难。 人机交互技术
6.2 结构模型 • 产生式规则-Production Rule • 形式化语言的描述,这种结构的方法从理论上可以引导界面设计者及界面工具的设计者进行有效的设计。 • 状态转换网络-State Transit Network • 用结构化的方法来描述人机交互的一般过程,是一种图示化的结构 人机交互技术
6.2.1 产生式规则 • 又称为上下文无关文法,将人机交互对话看作是一种语言,运用基于语法的方法来描述交互对话。 • 产生式规则是一种形式化语言,这些规则可用于描述人机交互界面。产生式规则的一般形式是: • if condition then action • 这些规则可以表示为不同的形式,如 • condition →action • condition:action 人机交互技术
产生式规则 • 所有的规则都是有效的,并且系统不断用它来检测用户的输入是否与这些条件相匹配。 • 若匹配则激活相应的动作,这些动作可以是执行应用程序的一个过程,也可以是直接改变某些系统状态的值。 • 一般来说,组成界面描述的产生式规则很多,规则定义的顺序并不重要,只要与规则中的条件相匹配,就可以激活相应的动作。产生式规则系统可以是事件引导的,也可以是状态引导的,或者两者都有。 人机交互技术
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> 1.事件引导的系统 产生式集合,实现用户在屏幕上绘直线 人机交互技术
事件引导的系统 • 保存内部事件序列 • 构造一个对话控制器,主要负责事件的产生和规则的匹配 • 规则的匹配算法影响系统的性能 人机交互技术
事件的主要类型 • 用户事件(user event),Sel-line表示从菜单中选择line命令,C-point 和D-point表示用户在绘图平面上单击和双击鼠标 • 内部事件,用于保持对话状态,如start-line 表示开始画线后的状态,rest- line表示选择了第一个点之后的状态。 • 系统响应事件,以尖括号表示可见或可听的系统响应,如<highlight 'line'>,把菜单项'line' 高亮度显示,<draw line>表示在屏幕上显示直线,<rubber band on> 表示橡皮筋绘制方式打开,<rubber band off>表示橡皮筋绘制方式关闭。 人机交互技术
产生式规则的解释 • 在上面的产生式规则中,第一条规则表示选择画线命令后,系统状态进入了开始画线状态,接着把'line'菜单项高亮度显示;第二条规则表示,用户在开始画线状态时,在绘图区域单击鼠标则系统表示已定义了一个点,此时橡皮筋绘图方式打开;第三条规则表示在定义了一个(或多个)点后,用户单击鼠标可以连续地定义点;第四条规则表示双击鼠标则结束画线的交互过程。 人机交互技术
对话控制 • 对话控制主要负责事件的产生和规则的匹配,可以看到在每一时刻系统内存中会保存一些内部事件,当产生一个事件时,可能是用户事件(如单击鼠标),也可能是内部事件(如时钟事件等)。 • 对话控制就要将所有的产生式规则与事件集合进行匹配,这个过程是复杂的而且是耗时的,当产生式很多并且产生式规则的条件复杂时,匹配算法的效率就显的更为重要,因此需要设计好的数据结构和匹配算法来提高匹配规则的效率。 • 可以将规则和事件进行分组和分层。 人机交互技术
2.状态引导的系统 • 状态引导的系统在系统内存保存的不再是动态的随时进出的事件,而是一些表示系统的当前状态的属性,这些属性在不同的时刻有不同的值。 人机交互技术
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﹜ 画线操作在系统中的五个属性 人机交互技术
对象的状态 • 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),显示控制器根据上面的状态做出相应的显示控制。 人机交互技术
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 状态引导的产生式规则(画直线) 人机交互技术
状态引导的产生式规则的特点 • 当产生式规则的条件和状态匹配时将激活该产生式规则,对于某一特定的属性,如果前面的状态需要改变成新的状态时才需要在产生规则的后面标注,例如,在第二条规则中,规则指定"Line-state" 属性应设置成"rest-line" ,因为原来的"start-line"值将丢失,而在第三条规则中,没有提及"rest-line"值,因为它已默认,"Line-state" 属性的值继续保留为"rest-line"。 人机交互技术
状态引导的产生式规则的特点 • 属性的永久特性有时会引起一些奇怪的错误,因此在上述的规则集中,每一条产生式规则都要求将鼠标的状态设置为"mouse-null" ,否则,当用户单击了鼠标,激活了第二条规则,如果不立即将鼠标的属性设置为"mouse-null",则会立即激活第三条规则,此时系统的状态和第三条规则的条件是匹配的,并且会反复的一直执行下去。 人机交互技术