人机交互:第7章 软件结构与实现_第1页
人机交互:第7章 软件结构与实现_第2页
人机交互:第7章 软件结构与实现_第3页
人机交互:第7章 软件结构与实现_第4页
人机交互:第7章 软件结构与实现_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

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

文档简介

1、交互技术制作小组,第1,7章软件结构和实现,交互技术制作小组,2,内容摘要,为窗口系统支持交互系统实现的窗口系统提供设备独立性和资源共享,在窗口系统中,程序员输入输出应用程序接收来自窗口系统管理员的事件请求流,并完成适当的交互操作。 用户界面管理系统UIMS UIMS是一种支持抽象级别的交互系统实现的开发环境,为交互系统的实现提供了高级别的支持。 帮助实现复杂的人机交互系统的软件体系结构是E-O模型Seeheim模型MVC模型代理模型,人机交互技术制作组,3,7.1窗口系统,窗口系统向程序员提供交互系统的实现建立在抽象设备上,抽象设备的操作通过设备驱动程序转换为具体设备的操作,交互系统的开发变

2、得简单,交互系统的移植也非常方便。 交互技术制作集团、4、7.1窗口系统、窗口系统在单个输入输出设备上建立多个抽象设备,实现其资源共享。 每个抽象设备可以视为窗口的独立输入/输出设备,窗口系统同时控制这些设备。 从应用程序的角度来看,各应用程序独立地操作设备,而窗口系统则通过为每个活动的抽象显示设备设置窗口,为各窗口提供抽象显示设备。 设备独立性和多任务管理是窗口系统最重要的两个特性。 人机交互技术创作组、5、5、5,7.1.1窗口系统结构、窗口系统一般有三种结构:在各应用程序内部实现和管理多任务。 因为每个应用程序都需要处理复杂的多任务管理,所以移植很不方便。 应用程序必须处理操作系统差异的

3、差异,因为它在操作系统核心集中处理多任务管理,应用程序不再管理多任务,并且过于依赖操作系统。 多任务的管理可以通过独立的管理程序来管理,应用程序调用该管理程序提供的接口来实现多任务的管理和设备的独立性操作,该管理程序可以在不同的操作系统上运行,因此基于该管理程序、人机交互技术创建组、6、客户/服务器结构、图7-1客户/服务器结构、人机交互技术创建组、7、服务器侧执行的三个程序、资源管理器是整个窗口系统的核心设备驱动程序负责驱动外部设备,接受输入设备的输入,将输入数据转换为统一的格式,通过设备驱动程序实现设备的独立性。 抽象终端负责与客户端应用程序的接口,并由窗口管理程序为每个应用程序分配抽象终

4、端。人机交互技术创作组、8、工作方式、外部设备在某个窗口内点击点,资源管理程序就从设备驱动程序中获取鼠标数据,生成鼠标驱动事件,并使该事件对应于该窗口在实现中,客户端程序和服务器程序可以分布在一台机器上或分布在另一机器上。 交互技术创建小组,设计了9,9,7.1.2交互应用程序,在客户端/服务器结构中,交互系统的应用程序通过调用服务器端的独立管理程序来管理多任务,设备的独立性交互应用通常由用户主导,即,用户从外部装置输入数据,且应用的操作由用户输入来确定,应用可以使用以下两个控制流来实现用户的交互。交互技术制作组,10,1 .应用程序内部事件处理循环,交互技术制作组,11,事件处理循环的程序代

5、码,while (1) read _ event (my event ) switch (/*处理对应事件1的动作*/break的casetype _ 2: do _ type2_ process (); break; casetype _ n : do _ typen _ process (); break; 交互技术创建小组、12、2 .事件登记方式、窗口系统为每个应用设立事件处理中心,事件处理中心负责处理事件。 应用通过事先登记自己感兴趣的事件处理来通知给事件处理中心,并且通知在登记时事件处理中心发生时应用应该执行的处理(应答处理)。 事件处理中心从窗口系统接收事件,分析该事件属于哪个应

6、用,将事件和控件转移到事件登记的响应过程中,并且在处理完毕后,响应过程将控件返回到事件处理中心交互技术创建组,13,交互技术创建组,14,2 .事件注册方法,此方法的优点在于,一般的应用程序不需要设计事件处理周期,应用程序不需要处理哪个交互事件如果应用程序不需要处理事件,则应用程序可以随时取消注册。 为了仅处理已注册的事件,事件处理中心以相对有效的方式处理事件。 用Java语言进行图形接口的交换采用了这种事件登记方法。 以下程序列表7-2说明了应用程序如何通知注册事件,以及事件处理程序如何调用应用程序的回调函数。 交互技术编制小组,15,程序清单7-2 quit.java import jav

7、a.awt.* . import Java.awt.event.* clisquteextendsformingimplementsactionlistenerbuttoncancelbutton,okButton; 公共quit () cancel button=new button (cancel ); ok button=new button (ok ) set layout (new flowlayout (); add (取消按钮) add (确定按钮) addwindowlistener (newprogramterminator (); cancel button.addacti

8、onlistener (this ); ok button.addactionlistener (this ),交互式人机技术创作组,16,公开的voidactionperformed (actionevent event ) buttonc if (click button=cancel button ) settitle (youclickdccancel ) else/theeventivesourcesisokbuttonsettitle (youclickedtook ) classprogramterminatorimplementswondownetwonerpublevoidw

9、indowclosing (windoweventevent ) system.exit (0)人机交互技术17 publicvoidwidewindowactivated (windowsevent ) publicvoidwindowclosed (windowseventevent ) publicvoidwindowindeactivet 公共voidwwindowiconified (windoweventevent )公共voidwowiconified (windoweventevent )公共voidwindowindowopened (window f.set bounds

10、(100,100,200, 70) f.setVisible(true ),人机交互技术创建组,18,2 .事件注册方法,在上述程序中,应用程序创建窗口对象时,通过addWindowListener方法, 通知事件处理中心应用程序需要处理关闭窗口的事件,当用户用鼠标单击窗口右上角的小关闭按钮时,事件处理程序自动调用ProgramTerminator方法在这个程序中使用了交互系统开发包的交互对象Button,在7.2节中详细讨论了交互系统开发包,在图7-4中显示了程序初始的显示画面。图7-4 Quit.java的执行结果、人机交互技术创作组、19、7.2交互系统开发包、一般窗口系统、输入和显示是

11、分离的。 交互系统开发包在支持窗口管理的基础上,还添加了另一个抽象,用于连接输入输出的行为。 从用户的角度来看,图形用户界面WIMP的重要特征是将I/o行为连接到屏幕上的独立对象上。来自鼠标硬件设备的输入(鼠标的移动)和显示器上的鼠标输出(小箭头光标和窗口内的坐标位置)是分离的。 屏幕上的光标的移动与鼠标的物理移动密切相关,当鼠标在桌面上移动时,屏幕上的光标也移动。 视觉光标和物理设备被称为“鼠标”。 交互技术制作小组,20,交互系统开发包,图7-5说明了用按钮连接输入和输出的方法。 用户将鼠标移动到按钮上时,画面的光标会发生变化,指示用户点击鼠标来选择按钮,此时用户按下鼠标按钮后,画面上的按

12、钮会变亮,感觉像按下键盘上的按钮,鼠标按钮会被打开。人机交互技术制作组,21,人机交互技术制作组,22,输入和输出融合,一般来说,窗口系统提供上述简单的输入和输出融合,在复杂的情况下输入和输出融合需要程序员实现。 程序员为了实现输入和输出的融合,需要在窗口系统的基础上提供支持更高级的对话系统的实现的对话系统开发包。 交互系统开发包向程序员提供了一组预定义的交互对象。 编程人员可以使用这些组件来创建自己的应用程序,也称为交互接口元素或窗口组件。的。 交互的对象有预先定义的行为,用户可以根据自己的需要来选择使用。交互技术创建组、23、对象之间的关系可以根据用户的需要定制交互对象,以提供交互对象的灵

13、活性,程序员可以按自己的要求定制交互对象。 例如,在创建特殊按钮时,按钮的标签可以是程序员设定的参数。 复杂交互可以由小、简单的对象构成,整个应用程序可以被视为一系列交互的集合。 这些对象存在固定关系,并且交互动作描述了整个应用的含义。人机交互技术创建组,24,交互对象和交互系统开发包的特性,这些组件可以定义为一种交互对象,这样的交互对象可以是一个对象。 复杂的交互可以通过简单的交互来构建。 实例和继承是面向对象的编程的基础,类可以看作是交互对象的模板.的。 交互式技术开发组,25,交互式系统开发包的面向对象特性,交互式系统开发包是面向对象的,但是这是开发的应用程序所需要的语言必须支持面向对象

14、的概念程序员通过在程序Quit.java中设置两个按钮交互对象(如cancelButton和okButton )的不同实例属性的值,在编译程序时设置了显示文本,来确定交互对象的、交互式技术创建组、26、Java语言交互式系统开发包、抽象窗口包AWT(Abstract Windowing Toolkit )映射到相应的Java,如按钮、菜单、对话框等创建一个交互式对象,例如Dialog程序员是直接使用这些类还是使用子类。 在某种意义上,这些类规定了交互对象的行为。 利用子类,可以很容易地增设新属性。 在人机交互技术描述组、27、JAVA包事件处理机制和AWT1.0中,程序员必须继承按钮的子类,以

15、指定按钮的行为为AWT1.1或更高版本。 虽然程序员使用与传统回调进程相似的方法来指定按钮的行为,但此处注册的不是回调函数,而是诸如ProgramTerminator实例之类的事件侦听对象,该实例使用Quit.Java处理窗口事件交互技术创建小组28、7.3用户界面管理系统UIMS由用户界面管理系统UIMS (用户界面管理系统) UIMS提供,用户界面管理系统UIMS比包更高级别以非常友好的方式与用户交互,以支持维护可以为用户提供一致的人机界面,开发者几乎可以自由地使用该开发工具进行软件开发。 人机交互技术创建组,29,UIMS,支持交互系统开发的UIMS的概念结构,该结构分离应用程序的意义和

16、分开应用程序的表现部分的应用程序和表现,应用程序和表现之间的内在关系人机对话技术创作小组,30,7.3.1 uims作为概念结构,对话独立性是人机对话研究领域的主要问题,主要强调业务(应用程序的意义)和提供给用户的界面分离,第6章从界面显示模式的角度出发人机交互技术创建小组,31,交互独立性的优点,(1)可移植性:通过应用程序的开发和设备相关的接口分离,应用程序可以用于不同的系统。 (2)可重用性:对话独立性增加了要素的可重用性,从而节省开发费用。 人机交互技术制作小组,32,交互独立性的优点,(3)界面的多样性:为提高应用程序界面的灵活性,为同一应用程序开发不同形式、不同风格的界面,与不同用户不同(4)自定义界面:交互界面可以根据设计者和用户的习惯和风格来设计,提高程序的开发

温馨提示

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

评论

0/150

提交评论