人机交互基础教程第6章人机交互界面表示模型与实现_第1页
人机交互基础教程第6章人机交互界面表示模型与实现_第2页
人机交互基础教程第6章人机交互界面表示模型与实现_第3页
人机交互基础教程第6章人机交互界面表示模型与实现_第4页
人机交互基础教程第6章人机交互界面表示模型与实现_第5页
已阅读5页,还剩128页未读 继续免费阅读

下载本文档

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

文档简介

1、第6章 人机交互界面表示模型与实现 6.1 6.1 人机交互界面表示模型人机交互界面表示模型在人机交互界面设计的早期阶段,设计者需要有一种用户界面表示模型和形式化的设计语言来分析和表达用户任务以及用户和系统之间的交互情况,并且这个界面表示模型能方便地映射到实际的设计实现。 三种模型:行为模型,主要从用户和任务的角度考虑如何来描述人机交互界面,将详细介绍GOMS, LOTOS、UAN及任务模型。结构模型,主要从系统的角度来表示人机交互界面。重点介绍状态转换网络(STN-State Transition Network)和产生式规则 (Production Rule)。表现模型,主要介绍人机界面表

2、现的具体描述方法。介绍如何由界面的行为表示模型转换到系统的结构模型。6.1 6.1 人机交互界面表示模型人机交互界面表示模型6.1.1 6.1.1 行为模型行为模型 首先,分析人员获取用户需求,结合领域专家的意见和指导,获取系统中需要完成的任务,对任务的主要因素进行详细地分析,如任务的层次、发生条件、完成的方法以及它们之间的关系等等。这就是行为模型要研究的。 下面就从模型的基本原理、实例、局限性等几个方面详细介绍四种常见的行为模型。6.1 人机交互界面表示模型1 GOMS( Goal, Operator, Method, Selection )在Moran & Newall的人机交互心

3、理学中首次提出的一种用于评估人机交互界面的模型: a set ofGoalsGoals, a set ofOperatorsOperators, a set ofMethodsMethodsfor achieving the goals, and a set ofSelections rulesSelections rulesfor choosing among competing methods for goals. GOMS模型能帮助设计师与工程师精确分析、描述用户使用系统的过程,从而评估不同解决方案在时效上的相对有效性。 它采用“分而治之”的思想,将一个任务进行多层次的细化,通过目标 (

4、Goal)、操作(Operator)、方法 (Method) 以及选择规则 (Selection rule) 四个元素来描述用户行为。6.1 人机交互界面表示模型l目标目标 目标就是用户执行任务最终想要得到的结果。它可以在不同的层次中进行定义。 eg:“编辑一篇文章”-“编辑文章”(高层); “删除字符”(低层)l操作操作 操作是任务分析到最底层时的行为,是用户为了完成任务所必须执行的基本动作。l方法方法 方法是描述如何完成目标的过程。一个方法本质上来说是一个内部算法,用来确定子目标序列及完成目标所需要的操作。6.1 人机交互界面表示模型6.1 人机交互界面表示模型在Macintosh下,关闭

5、一个窗口有两种方法:1)从菜单中选择CLOSE菜单项,也可以按L7键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-KEYl选择规则选择规则 选择规则是用户要遵守的判定规则,以确定在特定环境下所使用的方法。当有多个方法可供选择时,GOMS中并不认为这是一个随机的选择,而是尽量预测可能会使用哪个方法。 用户Sam如果在玩游戏,使用

6、L7关闭窗口,否则使用CLOSE菜单项: Rule 1: Use the CLOSE-METHOD unless another rule applies Rule 2: If the application is GAME, use L7-METHOD6.1 人机交互界面表示模型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:EXECUT

7、E-UNIT-TASK GOAL:LOCATE-LINE select:USE-QS-METHOD USE-LF-METHOD GOAL:MODIFY-TEXT select:USE-S-METHOD USE-M-METHOD VERIFY-EDIT Task:Editing子目标间关系:顺序关系,选择关系任务任务EditingEditing的的GOMSGOMS描述实例描述实例一个例子:目标A:在windows explorer里删除文件目标A-1:选择文件选择:目标A-1-1:键盘-tab-方法 目标A-1-2:鼠标-方法确认-选择目标A-2:删除操作选择*: 目标A-2-1:键盘-删除-方

8、法 敲击-删除 目标A-3:确认删除 目标A-2-2:右键-弹出菜单-方法 移动鼠标-到文件图标上 点击-鼠标右键 定位-删除命令 移动鼠标到删除命令 点击-鼠标左键 目标A-3:确认删除 目标A-2-3:拖拽方法 移动鼠标到文件图标上 左键点击文件图标 定位-回收站 移动鼠标到回收站 松开鼠标左键因为有3种删除方法,选择规则:如果手当前在键盘上,选择A-2-1键盘删除方法;如果手不在键盘上,并且回收站可见,选择A-2-3拖拽方法否则选择A-2-2右键-弹出菜单-方法GOMSGOMS应用应用作为一种人机交互界面表示的理论模型,GOMS是人机交互研究领域内少有的几个广为人知的模型之一,并被称为最

9、成熟的工程典范,该模型在计算机系统的评估方面也有广泛的应用。GOMS can save money!美国电话公司NYNEX利用GOMS分析一套即将被采用的新的计算机系统的应用效果,结果发现效果不理想,放弃了使用新系统,为公司节约了数百万的资金。GOMSGOMS的局限性的局限性GOMS模型将用户与计算机的交互(可以是物理的、认知上的或感性上的)减到最初等级别。 GOMS模型能帮助设计师与工程师精确分析、描述用户使用系统的过程,从而评估不同解决方案在时效上的相对有效性。不同的GOMS的变形方法可以让人们精确的研究以及预测不同类型的用户界面。GOMS提供一个可以计算并测量的时间开销评估方法,具有实验

10、可操作性以及高度精确性。评估者需要仔细调研所有的用户完成任务所需的操作步骤,这样一来用户完成任务所需要的时间可以通过每个步骤的单位时间叠加得到。GOMS模型的不足用户的行为会受到外界环境影响等因素而变得不可预测性。该模型理论是建立在每个原子操作的时间是一定的,并且在没有出错的情况下完成任务的一系列操作的时间和,并且,模型是建立在用户知道任务该如何完成的情况下,GOMS没有清楚的描述错误处理的过程,它假设用户完全按一种正确的方式进行人机交互,因此针对的是专家用户而不是新手用户。 因此只针对那些不犯任何错误的专家用户。该模型考虑的是界面可用性而不是功能性,如果考虑功能性,那么评估的就是系统应该执行

11、哪个功能。另外用户的偏好、习惯以及身体上的限制(残疾)是未知的,所有用户都被视为同一个,这也是GOMS模型的限制。GOMS对于任务之间的关系描述过于简单,只有顺序和选择。事实上任务之间的关系还有很多种.GOMS把所有的任务都看作是面向操作目标的,而忽略了一些任务所要解决的问题本质,它的建立不是基于现有的认知心理学,无法代表真正的认知过程。 在GOMS模型推出后,创始人又推出了简化版的GOMS模型KLM(Keystroke-level model)击键模型,KLM模型只保留了O,而把GMS都去掉了。它适用于预测文本输入,预测方程相对简单,而且好处在于能迅速作出比较。KLM击键模型是一个时间评估方

12、法。这个模型运用于很多人机交互的领域,它将用户的交互行为分解为几个元动作,每个元动作都在测试时得出操作时长,通过用户的实际操作时间与标准时间的对比,判断设计结构的优劣。2 LOTOS(Language Of Temporal Ordering Specification) 时序关系说明语言是一种作为国际标准的形式描述语言,它提供了一种通用的形式语义,可保证描述不存在二义性,便于分析和一致性测试理论的研究。 6.1 人机交互界面表示模型 其开始是作为一种描述网络协议的语言,由于交互系统、特别是多通道交互系统有并发系统的特点,因此成为用来描述交互系统的行为模型。 其基本思想是用一套形式化和严格的表

13、示法来刻画系统外部可见行为之间的时序关系,系统由一系列进程组成,进程同环境之间通过称为“关口”(gates)的交互点进行交互。两个以上的进程在执行同一个外部可见的行为时会发生交互,进行数据交换、信息传递、协调同步等操作。 进程行为用“行为表达式”来描述,复杂的行为由简单的行为表达式通过表示时序关系的LOTOS算符组合而成。 将LOTOS思想用于人机交互的行为模型时可以用进程之间的约束关系来描述交互子任务之间的关系。 l下面给出LOTOS模型中定义的基本算符: T1 | T2(交替Interleaving):T1和T2两个任务相互独立执行,可按任意顺序执行,但永远不会同步。 T1 T2(选择Ch

14、oice):需要在T1,T2中选择一个执行,一旦选择某一个后,必须执行它直到结束,在这中间另一个再无执行机会。任务如何来选择,并没有给出一定的形式化描述。6.1 人机交互界面表示模型 T1 | a1,.,an | T2(同步Synchronization):任务T1,T2必须在动作(a1,,an)处保持同步。 T1 T2(禁止Deactivation):一旦T2任务被执行,T1便无效(不活动)。 T1 T2(允许Enabling):当T1成功结束后才允许T2执行。6.1 人机交互界面表示模型LOTOSLOTOS实例实例中国象棋LOTOS的图形描述6.1 人机交互界面表示模型LOTOSLOTOS

15、与与GOMSGOMS的结合的结合LOTOS模型很好的描述了任务之间的时序约束关系,这些时序约束关系能更好的描述GOMS中子目标之间的关系。用GOMS模型描述任务的分解过程,而用LOTOS给出子任务之间的约束关系,这样就可以增加两种表示模型的表示能力。 结合结合GOMSGOMS和和LOTOSLOTOS的的中国象棋程中国象棋程序的行为描序的行为描述述GOAL:中国象棋 : GOAL:运行 |: *GOAL:走棋 ACTION:自动记录棋谱 : GOAL:当前方走 : OPRATOR:拾取棋子 OPRATOR:放置棋子 GOAL:对弈方走 OPRATOR:拾取棋子 OPRATOR:放置棋子 *GOA

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

17、模型主要用于原子目标的描述。 3 UAN(User Action Notion) 用户行为标注是一种简单的符号语言,着眼于用户和界面两个交互实体的描述,主要描述用户的行为序列以及在执行任务时所用的界面。 尽管UAN属于一种行为模型,但作为一种任务描述语言,它又涉及一定程度的系统行为的描述,因而它兼有行为模型和结构模型的一些特点。 UAN模型的标识符主要有两种:用户动作标识符和条件选择标识符。6.1 人机交互界面表示模型l用户动作标识符用户动作标识符 在UAN的表示模型中有一些常用的已经预定义的符号,用来表示常见的用户界面的交互动作。如:move_mouse(x,y) 移动鼠标至(x,y);re

18、lease_button(x,y) 在(x,y)位置释放鼠标按钮;hightLight(icon) 使icon高亮显示;de_highlight(icon) 取消icon的高亮显示。6.1 人机交互界面表示模型l条件选择标识符条件选择标识符 除了表示动作的符号,UAN模型还包含表示条件及选择的标识符,主要有以下几种: while while(condition) TASK 当条件condition为真时,循环执行任务TASK; if if(condition) thenthen TASK 如果条件condition满足,则执行任务TASK;waitingwaiting 表示等待,可以等待一个条

19、件满足,也可以等待任务中的一个操作执行。6.1 人机交互界面表示模型采用一种表格结构来表示任务界面被分解成一些类似层次结构的异步任务,每个任务的实现都用表格来描述,用户动作的关联性和时序关系由表格的行列对齐关系和从上到下、从左到右的阅读顺序来确定。任务(task):任务名称(the name of task)用户行为界面反馈界面状态UANUAN实例实例- -单通道交互单通道交互UANUAN实例实例- -多通道交互多通道交互UANUAN总结总结UAN模型更接近于实现,界面状态和界面反馈用一般的程序语言描述,实现起来比较方便,当然这种描述由于接近于程序语言,因此设计时需要一定的编程基础UAN模型在

20、精确刻画各成分之间的各种平行和串行的时序关系方面尚显不足,任务之间的时序关系没有明确表示出来,当所描述的界面使用多种输入设备和有若干可选交互路径时,比较繁琐。 G-U-LG-U-L模型模型可以考虑将GOMS、UAN、LOTOS中模型结合为一个预测行为模型:G-U-L模型。G-U-L运用GOMS原理为基础进行任务分解,建立基本的行为模型,原子操作由UAN模型描述,在此基础上,运用LOTOS算符来表示任务目标之间的时序关系。在G-U-L模型中没有加入规则,在表示目标之间的关系中也未考虑同步。这主要考虑到规则的转换要涉及到推理、建立知识库等问题,而同步的问题的描述和转换也非常的复杂,这会在设计工作的

21、初期造成非常大的困难。习题习题 对“图书管理系统”中的原子目标,创建UAN模型,从而进一步了解UAN模型在行为模型中的地位和作用。结合LOTOS,用前面介绍的G-U-L进一步完善任务的描述。35LOTOS图分析:对于图书管理系统,在运行和退出两个进程中只能选择其中的一个, 借书和用户借阅是两个相对独立的,不会同步执行,当输入借阅图书编号后就可以借阅图书了。LOTOS图可以清楚地了解整个目标层次中各目标之间的约束关系,但是无法描述目标异常结束的情况,同时当任务进行选择时以什么规则进行选择也是一个问题。UANUAN模型模型分析:(1)用户行为mouse_down(x,y)表示用户首先在点(x,y)

22、处单击鼠标,这时界面if intersect(button,x,y)button=select判断在(x,y)处是否与图标“button”相交,如果是,则将“button”的状态设为selected。界面反馈show book(bookid) 和 borrow(bookid)任务:Borrow books in library用户行为界面状态界面反馈mouse_down(x,y) click_button(button)if intersect (button, x, y) button=selctedif intersect(bookid)then show book(bookid) bor

23、row(bookid)G-U-L描述:Task 图书管理系统GOAL:图书管理:GOAL:运行 | | |: *GOAL:借书 ACTION:自动搜索图书 : GOAL:用户借阅 : OPRATOR:输入借阅图书编号 OPRATOR:借阅图书:退出分析:从上面的描述来看,最高层目标“图书管理”被分解为“运行”和“退出”两个子目标,它们之间是禁止关系,即目标“退出”禁止了目标“运行”的执行,表示在“退出”目标执行以后,“运行”目标就无法执行了。“运行”目标分解为“借书”和“用户借阅”,“借书”目标执行“自动搜索图书”任务,而“用户借阅”目标执行“输入借阅图书编号”和“借阅图书”的操作。产生式规则

24、-Production Rule形式化语言的描述,这种结构的方法从理论上可以引导界面设计者及界面工具的设计者进行有效的设计。 状态转换网络-State Transit Network用结构化的方法来描述人机交互的一般过程,是一种图示化的结构产生式规则又称为上下文无关文法,将人机交互对话看作是一种语言,运用基于语法的方法来描述交互对话。产生式规则是一种形式化语言,其规则可用于描述人机交互界面。一般形式是:if condition then action这些规则可以表示为不同的形式:condition actioncondition:action所有的规则都是有效的,并且系统不断用它来检测用户的输

25、入是否与这些条件相匹配。若匹配则激活相应的动作,这些动作可以是执行应用程序的一个过程,也可以是直接改变某些系统状态的值。一般来说,组成界面描述的产生式规则很多,规则定义的顺序并不重要,只要与规则中的条件相匹配,就可以激活相应的动作。产生式规则系统可以是事件引导的,也可以是状态引导的,或者两者都有。 产生式集合,实现用户在屏幕上绘直线 用户事件(user event),Sel-line表示从菜单中选择line命令,C-point 和D-point表示用户在绘图平面上单击和双击鼠标 内部事件,用于保持对话状态,如start-line 表示开始画线后的状态,rest- line表示选择了第一个点之后

26、的状态。 系统响应事件,以尖括号表示的可见或可听的系统响应,如,把菜单项line 高亮度显示,表示在屏幕上显示直线, 表示橡皮筋绘制方式打开,表示橡皮筋绘制方式关闭。 在上面的产生式规则中,第一条规则表示选择画线命令后,系统状态进入了开始画线状态,接着把line菜单项高亮度显示;第二条规则表示,用户在开始画线状态时,在绘图区域单击鼠标则系统表示已定义了一个点,此时橡皮筋绘图方式打开;第三条规则表示在定义了一个(或多个)点后,用户单击鼠标可以连续地定义点;第四条规则表示双击鼠标则结束画线的交互过程。 对话控制主要负责事件的产生和规则的匹配,可以看到在每一时刻系统内存中会保存一些内部事件,当产生一

27、个事件时,可能是用户事件(如单击鼠标),也可能是内部事件(如时钟事件等)。对话控制就要将所有的产生式规则与事件集合进行匹配,这个过程是复杂的而且是耗时的,当产生式很多并且产生式规则的条件复杂时,匹配算法的效率就显的更为重要,因此需要设计好的数据结构和匹配算法来提高匹配规则的效率。状态引导的系统在系统内存保存的不是动态的随时进出的事件,而是一些表示系统的当前状态的属性,这些属性在不同的时刻有不同的值。Mouse有4个不同的状态 mouse-null(鼠标空闲),select-line(选择线命令),click-point(单击鼠标),double-click(双击鼠标),当用户对鼠标进行操作时M

28、ouse自动设置成相应的状态;Line-state用于保持当前会话的状态:分别是menu(可选命令状态),start-line(开始绘制线),rest-line(已经定义点);后三个属性用于控制系统响应:其中Rubber-band表示橡皮筋绘制的开和关状态,Menu表示任何项也没有选中(highlight-null)、选中绘直线命令(highlight-line)或选中绘圆命令(highlight-circle), Draw表示什么也不画状态(draw-nothing)或画直线状态(draw-line),显示控制器根据上面的状态做出相应的显示控制。Select-linemouse-null s

29、tart-line highlight-lineClick-point start-linemouse-null rest-line rubber-band-onClick-point rest- linemouse-null draw-lineDouble-click rest-linemouse-null menu draw-line rubber-band-off有的人机对话过程比较适合于事件引导方式,有的人机对话过程适合于状态引导方式,当然也可以将两者结合起来,例如采用下面的形式来描述一个产生式规则: event: condition action 事件用来激活产生式规则,如果条件不满

30、足,即当前系统内存中的状态和产生式的规则不匹配,则无法激活规则,另外当状态改变时,产生式规则中的action本身也可以产生新的事件,从而可以激活另一条规则。 Bold:off, on Italic:off, onUnderline: off, on 图6-2 粗体/斜体/下划线对话框 文本样式 根据用户点击鼠标的位置不同,可能产生三个事件:select-bold, select-italic, select-under,该对话过程有下面六个产生式规则定义。 斜体下划线加粗加粗select- bold:Bold = offBold = onselect- bold:Bold = onBold =

31、 offselect-italic:Italic = offItalic = onselect-italic:Italic = onItalic = offselect-under:Underline = offUnderline = onselect-under:Underline = onUnderline = offevent: condition action 描述操作时序能力强,并发、顺序均可无法描述误操作界面复杂时,状态、事件复杂,产生式过多,要求产生式匹配算法性能高状态转换网络(STN)的基本思想是定义一个具有一定数量状态的转换机,称之为有限状态机-Finite State Ma

32、chine(FSM)。是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。FSM从外部世界中接收到事件,并能使FSM从一个状态转换到另一个状态。本章介绍两种最基本的状态转换网络,状态转换网络(State Diagrams)和扩展状态转换网络(State Charts),后者是前者的一个扩展 当发生一个外部或内部事件时,系统就会从一个状态转换到另外一个状态,这称为状态转换。外部事件主要由用户操作外部输入设备来产生,内部事件可以是系统产生的事件,如时钟事件,也可以是为了改变系统的状态和行为而产生的事件,如当一个任务完成后可以激活另一个任务等。源状态目标状态转换一般的系统具有很多个状态,

33、假设系统由n个状态组成,状态之间的转换最多可能有n*(n-1)个。简单的三状态FSM最多可能有6个状态转换选项条件(conditions),表示导致状态的改变的条件;选项动作(actions),表示系统在改变状态时将执行什么动作。当系统在某一状态S时,如果满足条件C1,系统将发生状态转换T1,而转换到状态E1.如果满足条件C2,系统将发生状态转换T2,而转换到状态E2.现在将条件C1、C2和状态融合则得到右图所示的基本状态转换网络。draw circle单击在圆周上rubber band单击在中心点highlight circle选择 circle Circle1MenuFinish Circ

34、le2draw line双击rubber band单击在第一点highlight line选择 lineLine1Finish Line2图中涉及到了状态、转换、条件、动作等元素。它有一个菜单(有两个选项“circle”和“line”)和一个绘图平面。若选择“circle”则要求你确定两个点:第一个点是圆心,第二个点表示圆周上的任意一点。第一个点确定后,系统就在圆心和当前鼠标位置之间画一条“橡皮圈”线,第二个点确定后就画出了一个圆。 draw circle单击在圆周上rubber band单击在中心点highlight circle选择 circle Circle1MenuFinish Cir

35、cle2draw line双击rubber band单击在第一点highlight line选择 lineLine1Finish Line2状态Menu表示系统正在等待用户选择Circle或Line的一种状态。Circle1是等待用户选择圆心的状态,Circle2是选择圆心后正在等待确定圆周上一个点的状态。状态之间是一些有向线段,表示触发转换的事件和条件以及转换发生时的动作。状态转换网络的优点状态转换网络比相应的文本解决方案更易于设计、理解、修改和文档化,它给出了对行为的精确的、甚至是格式化的定义。存在着一定的局限性最大的缺陷是需要定义出系统的所有状态,这对于小型的系统是没有问题的,但是在一个

36、较大的系统中,系统会很快崩溃,状态的数目是呈指数级增长的,同时状态的增长直接导致了状态转换网络过于复杂、无法实际应用。 该图是层次的状态转换网络,类似于前面的状态转换网络,但是增加了复合状态,如图中的矩形框所示,每个矩形框都表示相关子菜单的所有的状态转换网络。描述并发任务?状态转换模型的优缺点状态转换模型的优缺点优点具有良好的描述串行和顺序行为的能力比相应的文本解决方案更易于设计、理解、修改和文档化它给出了对行为的精确的、甚至是格式化的定义缺点状态的爆发式增长问题并发及其他行为的描述能力差虽然是一个结构模型,但难以实现行为模型和结构模型的转换行为模型和结构模型的转换 转换算法 行为模型(G-U

37、-L) 结构模型State ChartsGOMSUANLOTOS约束规则用户D o m a i n ExpertDesigner 模型转换整体框架整个框架分为三个部分: 行为模型使用G-U-L模型,在这一层将产生一个基本的预测性的行为模型。 结构模型采用层次状态转换网络,它涉及到的元素有状态、转换、事件、层次结构。不考虑状态转换网络在转换中条件和同步,可以简化转换工作。 用户包含两种用户,领域专家和设计者。G-U-L模型的创建主要是由领域专家和设计者合作来完成的,然后通过模型转换算法转换成为结构模型,最后提供给设计者使用。 转换转换算法算法 1.基本思想 2.基本步骤 3.实例应用 651.1

38、.基本思想基本思想 采用G-U-L以层次化结构对任务进行建模,包括目标(包括循环属性)、行为、关系。状态转换网络表示的是状态之间的转换,也采用层次化表示,涉及到的主要是状态、转换、事件、行为。在G-U-L中体现的层次关系转换到状态转换网络中也体现出层次的关系,G-U-L中的每个目标都对应一个状态转换网络。如果一个目标下层有子目标,对子目标来说,它所对应的状态网络应该嵌套在上层目标对应的状态网络中。 661.1.基本思想基本思想在产生的状态转换网络中,有两类事件起作用:一类是外部由用户激活的事件,如“按下鼠标” 事件、“点击键盘” 事件等;另一类是内部由目标产生的内部事件,在这里只定义了“目标正

39、常结束”,表示目标正常结束时产生的事件。67在进行从G-U-L到状态的转换时,这些事件只是形式上的一个定义,没有具体的实现过程,如要在某一层出现的第i个外部事件用“外部事件i”来代替,而由某个目标Ti执行时产生的内部事件也可以用“Ti正常结束事件”来表示,而具体的事件还需要由状态网络进行,系统实现时通过专门的事件管理器来定义和管理。 在G-U-L中的一个行为在转换后就成为对应的状态转换网络中的一个行为。 2.2.基本步骤基本步骤对转换后的数据,存储的是状态转换网络中表示转换的弧,如下图所示: 状态转换网络中弧的表示结构 其中的触发事件就是触发从出发状态到目的状态转换的事件;父状态表示的是当前弧

40、所在状态网络的上层状态,可以是一个抽象出来的状态名;692.2.基本步骤基本步骤转换基本步骤(1)首先读取存储G-U-L模型的数据文件,进行解析,定义一个数组stn用于存储状态网络中的弧。获取G-U-L模型中的最高目标,设为G0,然后调用Translate函数,在Translate执行完毕后,stn中便存储了转换后的状态网络的数据。函数示意如下:main()定义一个存储弧的数组stn读取G-U-L文件GOAL G0”: 允许关系处理 case “|”: 交替关系处理 case “”: 禁止关系处理 /对所有的子目标进行递归调用 for(int I;I(G0,G1),在这种关系中完成目标G的路径

41、只有一条,当G0成功结束后才允许G1执行,这是一个顺序执行的过程。在转换成状态转换网络后如图6-17所示。 76图6-17 允许”关系状态网络G1正常结束事件G0正常结束事件外部事件S1S2S0产生G正常结束事件G2正常结束事件G0正常结束事件外部事件S1S3S0产 生 G正常结束事件S2G1正常结束事件(G0,G1,G2)从状态S0在外部事件激发转换至S1,在S1状态等待“G0正常结束事件”发生后转换至S2;然后在S2处等待“G1正常结束事件”转换至S0,这样表示目标G执行完毕,同时发生动作“产生G正常结束事件”,处理转换过程中存储所有的弧。这种约束关系允许同一层次下有多个目标存在,如(G0

42、,G1,Gn),这些目标都是顺序执行。 78“交替交替” ” 关系状态网络关系状态网络设目标G下的子目标关系为|(G0,G1),表示两个目标之间一种任意的组合来执行完成。在转换到状态网络后,如图6-18所示,有S0-S1-S4-S0和S0-S2-S3-S0两条途径可以完成目标G的一次执行。 79图6-18 “交替”关系状态网络G0正常结束事件S2G1正常结束事件G0正常结束事件 外部事件0S0S3S4S1产生G正常结束事件产生G正常结束事件G1常结束事件 外部事件1“禁止禁止” 关系状态网络关系状态网络设目标G下的子目标关系为(G0,G1),一旦G1任务被执行,G0便无效(不活动)。这个关系在

43、转换到状态网络以后与前面不同的是,在状态S2被“G1正常结束事件”激活以后,不会再回到S0,而是转到了一个新的状态F。一个典型的例子是G0=”运行”,G1=”退出”。在执行退出以后整个程序结束,也就无法再回到运行状态了。 山东大学计算机学院80G0正常结束事件产生G正常结束事件G1正常结束事件外部事件0外部事件1S2S0F图6-19 “禁止”关系状态网络产生G正常结束事件S13.3.实例应用实例应用 根据上面的转换算法,在后面的图中给出了中国象棋的最高层目标、运行、走棋三个目标的状态转换网络,它们之间通过事件的产生和激活完成其层次间的通信。81最高层目标 82运行正常结束事件外部事件1外部事件

44、0退出正常结束事件S0S1S2F图6-20a 最高层目标状态转换网络83运行 产生运行正常结束事件产生运行正常结束事件走棋正常结束事件打谱正常结束事件S02外部事件1打谱正常结束事件走棋正常结束事件外部事件0S00S03S04S01图6-20b “运行”目标状态转换网络走棋 84图6-20c “走棋”目标状态转换网络走棋 对弈方走正常结束事件产生走棋正常结束事件当前方走正常结束事件外部事件S001S002S0006.1.4 6.1.4 表现模型表现模型 表现模型(PM)描述了用户界面的表现形式,由层次性的交互对象组成。交互对象一般由抽象交互对象和具体交互对象组成。l以管理信息系统为例,其交互界

45、面主要是由填表界面组成的,填表的用户界面由两种元素组成,一个是界面元素,一个是面板。界面元素由界面元素属性以及对几何对象、内容与绘制对象的描述组成。面板则继承了界面元素的模型定义,还添加了可包含的界面元素的列表和布局的定义。6.1 6.1 人机交互界面表示模型人机交互界面表示模型在一个填表界面中,可以有很多面板,这些面板以链表形式组织。每个表面板或是嵌套面板,或是包含很多界面元素,这就形成了森林的结构。森林的每棵树是一个面板,树的根节点是整个面板对象。面板用户界面的图形显示面板用户界面的数据结构表示面板用户界面的绘制面板用户界面的逻辑组织结构面板用户界面的各种重叠的面板以链表的形式来存储,每个

46、面板的的显示是有顺序,显示策略是:被选中的面板显示在屏幕的最上层。假设有A、B、C、D四个面板依次按照字母顺序排列,即面板A的显示在屏幕的最上层。如果选中了面板C,那么面板C的显示就会在屏幕最上层,而其他三个面板的优先级按照原来的先后顺序排列。l面板间的关系面板间的关系 Jacob Eisenstein将面板间的关系定义为并列、嵌套、依赖三种。并列关系是指两个面板在功能上独立,没有任何其他关系。嵌套关系是指面板A在面板B的内部,面板A包含面板B。依赖关系分为两种,一类是界面内部的依赖,即父子关系面板,父子关系是指面板B依赖于面板A的某个界面元素开启显现活动的命令开关,这样就称面板A是面板B的父

47、面板。另一类依赖关系是对服务的依赖,面板依赖于某个服务的存在而显现。6.1 6.1 人机交互界面表示模型人机交互界面表示模型面板界面可以分为三类:独立显现的面板一般是可以单独运行的应用程序界面面板面板是用户定义的可以嵌套到任意面板的而且不能独立显示的界面块。原子面板是面板中的最小的单位,是不可再分的面板 界面描述语言一般分为两类:命令式语言(Imperative Language)和陈述式语言(Declarative Language)。命令式语言要求编程人员明确的指定如何执行任务,陈述性语言要求编程人员只需指定任务要做什么,陈述性语言要比命令式的语言更为抽象。从知识的表示方法来看,知识一般有

48、陈述性表示,和过程性表示两大类。陈述性表示只给出事物本身的属性及事物之间的相互关系。过程性知识给出解决一个问题的具体过程。6.2 6.2 界面描述语言界面描述语言用户界面标记语言(UIML)6.2 6.2 界面描述语言界面描述语言语言的基本表示结构扩展界面标记语言(XIML) 6.2 6.2 界面描述语言界面描述语言XML语言的基本表示结构 XML用户界面语言XUL XUL提供了创建现代图形界面大多数元素的能力。能够满足特定设备的普遍需求,对开发者来说,也已经足够强大,能够创建复杂的界面。6.2 6.2 界面描述语言界面描述语言窗口系统对交互系统实现的支持窗口系统提供设备独立性和资源的共享,在

49、窗口系统,程序员不用担心输入和输出设备的初始化,应用程序从窗口系统管理器接收事件请求流,完成相应的交互操作。窗口系统还强调为程序员提供硬件设备独立性,交互系统的实现建立在一个抽象的设备上,这可以使交互系统的开发变得简单,也使交互系统的移植非常方便。窗口系统为单一输入输出设备建立多个抽象设备来实现其资源的共享。从应用的角度看,每个应用程序独立地对设备进行操作,另一方面,窗口系统还为每个窗口提供一个抽象显示设备,可以为每个活动的抽象显示设备建立一个窗口来实现。 6.3.1 6.3.1 窗口系统结构窗口系统结构 窗口系统一般有三种结构:1.在各个应用程序内部实现和管理多任务,由于每个应用程序都需要处

50、理复杂的多任务管理,且移植起来不方便,这种结构有一定的缺点。 2.在操作系统核心集中处理多任务管理,应用程序不再对多任务进行管理,由于过分的依赖操作系统,应用程序需要处理因操作系统的不同而引起的差异,因此移植起来也不太方便。 3.多任务的管理可由独立的管理程序进行管理,应用程序通过调用该管理程序提供的接口来实现对多任务的管理和设备的独立性操作,因为该管理程序可以在不同的操作系统下运行,因而基于此管理程序开发的交互系统是最容易移植的。 一种客户一种客户/ /服务器结构服务器结构 资源管理器 是整个窗口系统的核心,负责多任务的管理,并通过设备驱动程序来管理外部设备 。设备驱动程序 负责外部设备的驱

51、动,接受输入设备的输入,并将输入数据转换成统一的格式,通过设备驱动程序实现设备的独立性 。抽象终端 负责和客户应用程序的接口,对每个应用程序由窗口管理程序为其分配一个抽象终端。当外部设备产生一个输入请求,如鼠标单击某一个窗口内的一点,资源管理程序从设备驱动程序获得鼠标数据,产生鼠标驱动事件,并将该事件分发给与该窗口相对应的抽象终端,与抽象终端相对应的应用程序接受事件并进行相应的处理。实现时,客户程序和服务器程序可以在一台机器上,也可以分布在不同的机器上。 在客户/服务器结构中,交互系统的应用程序通过调用服务器端一个独立的管理程序来管理多任务和提供设备的独立性,相当于客户-服务器结构中的客户。交

52、互应用一般来讲是由用户驱动的,即用户从外部设备上输入数据,应用程序的动作由用户输入来决定,应用程序可以采用下面的两种控制流程实现用户的交互。 服务器把用户的输入作为事件送给客户应用程序,对服务器而言,要决定把输入事件送给哪个客户程序。客户应用程序对传给它的所有事件都做出响应,不同的事件采取不同的处理方式窗口系统为每一个应用程序建立一个事件处理中心,事件处理中心负责事件的处理。应用程序将自己感兴趣的事件处理事先通过登记注册的方式通知事件处理中心,注册时同时告诉事件处理中心当事件产生时,应用程序需要进行的处理(回应过程)。 当事件处理中心从窗口系统接收一个事件,就分析这个事件属于哪个应用程序,然后

53、把事件和控制转向该事件注册的回应过程,处理完后,回应过程把控制返还给事件处理中心,事件中心继续接收事件或者请求终止。 这种方式的好处是一般应用程序不需要设计事件处理循环,只关心应用程序需要处理哪些交互事件,当事件发生时应用程序如何处理。当应用程序不需要处理某个事件时,应用程序还可以随时取消注册。因为如果只处理注册的事件,事件处理中心处理事件的效率就会比较高。 6.3.3 6.3.3 交互组件开发包交互组件开发包 对于一般的窗口系统,输入和显示是分离的,许多语言提供了用于开发交互系统的开发软件包,交互系统开发软件包在支持窗口管理的基础上增加了另一种抽象,它把输入和输出的行为结合起来。按钮交互对象

54、行为6.3 窗口系统6.3.4 6.3.4 交互框架交互框架桌面应用框架6.3 窗口系统下拉菜单示例工具栏示例6.3 窗口系统树形菜单示例状态栏示例标签页方式工作区示例6.3 窗口系统6.3.5 MVC6.3.5 MVC模式和基于模式和基于StrutsStruts的实现的实现 MVC(Model View controller)模型最初是在Smalltalk程序语言中被用来构建用户界面的,是目前广泛流行的一种软件设计模式。MVC把一个应用的输入、处理、输出流程按照模型 (model)、视图(View)和控制(Controller)的方式进行分离,形成模型层、视图层、控制层三个层次。视图(视图(

55、ViewView)视图代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交给模型(Model)处理。 模型模型 (model) (model)模型负责业务流程/状态的处理以及业务规则的制定业务流程的处理过程对其它层来说是透明的,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心,模型包含完成任务所需要的所有的行为和数据。MVC并没有提供模型的设计方法,而

56、只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。控制(控制(ControllerController)控制器将模型映射到界面中,处理用户的输入,每个界面有一个控制器。是一个接收用户输入、创建或修改的模型对象。在需要时还负责创建其它的界面和控制器。决定哪些界面和模型组件在某个给定的时刻应该是活动的,负责接收和处理用户的输入,来自用户输入的任何变化都被从控制器送到模型 。MVCMVC的目的的目的 MVC的目的是增加代码的重用率,减少数据表达、数据描述和应用操作的耦合度。 使得软件可维护性,可修复性,可扩展性,灵活性以及封装性大大提高。由于数据和应用的分开,在新的数据源加入和数据显示变化

57、的时候,数据处理也会变得更简单。 MVCMVC的优点的优点可以为一个模型在运行时同时建立和使用多个视图 视图与控制器的可接插性,允许更换视图和控制器对象,而且可以根据需求动态地打开或关闭、甚至在运行期间进行对象替换 模型的可移植性,因为模型是独立于视图的,所以可以把一个模型独立地移植到新的平台工作 MVCMVC模型的不足模型的不足 增加了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率 视图与控制器间的过于紧密的连接。视图与控制器是相互分离、但又确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的

58、 视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据 Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。这个框架之所以叫Struts,是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷时候的基础支撑。2. Struts的体系结构 Struts的体系结构实现了MVC模式的概念,它将这些概念映射到web应用程序的组件和概念中。2. Struts的体系结构StrutsStruts结构对结构对MVCMVC模型的实现模型的实现视图(View)JSP页面和表示组件基于Struts的应用程序中的视图部分通常使用JSP技术来构建。每一视图都是

59、采用了定制标签库的JSP页面,这些定制标签库由Struts Framework提供。全部表单元素都是用定制标签编码的,所以这些页面能够很方便地同控制器进行交互每个表单都通过映射JSP到servlet的请求这一方式指向控制器的特定入口点。 StrutsStruts结构对结构对MVCMVC模型的实现模型的实现控制器(Controller)ActionServlet和ActionMapping 应用程序的控制器从客户端接收请求,决定执行什么业务逻辑,然后将产生下一步用户界面的责任委派给一个适当的视图组件。在Struts中,控制器的基本组件是ActionServlet类的servlet。这个servl

60、et通过定义一组映射(由Java接口ActionMapping描述)来配置。每个映射定义一个与所请求的URI相匹配的路径和一个 Action类(一个实现Action接口的类)完整的类名,这个类负责执行预期的逻辑,然后将控制分派给适当的视图组件来创建响应。 StrutsStruts结构对结构对MVCMVC模型的实现模型的实现模型(model)系统状态和商业逻辑JavaBeans 在struts中,模型分为两个部分:系统的内部状态、可以改变状态的操作(事务逻辑)。内部状态通常由一组ActionForm JavaBean表示。根据设计或应用程序复杂度的不同,这些Bean可以是自包含的并具有持续的状态,或只在

温馨提示

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

评论

0/150

提交评论