电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPT文档下载
分享到微信 分享到微博 分享到QQ空间

人机交互:第7章 软件结构与实现

  • 资源ID:136786165       资源大小:188KB        全文页数:89页
  • 资源格式: PPT        下载积分:20金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要20金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

人机交互:第7章 软件结构与实现

人机交互技术编写组,1,第7章 软件结构与实现,人机交互技术编写组,2,内容提要,窗口系统对交互系统实现的支持 窗口系统提供设备独立性和资源的共享,在窗口系统,程序员不用担心输入和输出设备的初始化,应用程序从窗口系统管理器接收事件请求流,完成相应的交互操作。 用户界面管理系统UIMS UIMS是抽象层次更高的支持交互系统实现的开发环境,为交互系统实现提供更高层支持。 支持复杂人机交互系统的实现的软件体系结构 包括E-O模型 Seeheim模型 MVC模型 智能体模型,人机交互技术编写组,3,7.1窗口系统,窗口系统强调为程序员提供硬件设备独立性,交互系统的实现建立在一个抽象的设备上,对抽象设备的操作通过设备驱动程序转换成具体的设备上的操作,这可以使交互系统的开发变得简单,也使交互系统的移植非常方便。,人机交互技术编写组,4,7.1窗口系统,窗口系统为单一输入输出设备建立多个抽象设备来实现其资源的共享。每个抽象设备都可看作一个窗口的独立的输入输出设备,窗口系统为这些设备提供并发控制。从应用的角度看,每个应用程序独立地对设备进行操作,另一方面,窗口系统还为每个窗口提供一个抽象显示设备,这可以通过为每个活动的抽象显示设备建立一个窗口来实现。 设备独立性和多任务管理是窗口系统的最重要的两个特性。,人机交互技术编写组,5,7.1.1窗口系统结构,窗口系统一般有三种结构: 在各个应用程序内部实现和管理多任务,由于每个应用程序都需要处理复杂的多任务管理,并且移植起来不方便。 在操作系统核心集中处理多任务管理,应用程序不再对多任务进行管理,由于过分的依赖操作系统,应用程序需要处理因操作系统的不同而引起的差异。 多任务的管理可由独立的管理程序进行管理,应用程序通过调用该管理程序提供的接口来实现对多任务的管理和设备的独立性操作,该管理程序可以在不同的操作系统下运行,因而基于此管理程序开发的交互系统是最容易移植的。,人机交互技术编写组,6,一种客户/服务器结构,图7-1 客户/服务器结构,人机交互技术编写组,7,服务器端运行的三部分程序,资源管理器 是整个窗口系统的核心,负责多任务的管理,并通过设备驱动程序来管理外部设备 。 设备驱动程序 负责外部设备的驱动,接受输入设备的输入,并将输入数据转换成统一的格式,通过设备驱动程序实现设备的独立性 。 抽象终端 负责和客户应用程序的接口,对每个应用程序由窗口管理程序为其分配一个抽象终端。,人机交互技术编写组,8,工作方式,当外部设备产生一个输入请求,如鼠标单击某一个窗口内的一点,资源管理程序从设备驱动程序获得鼠标数据,产生鼠标驱动事件,并将该事件分发给与该窗口相对应的抽象终端,与抽象终端相对应的应用程序接受事件并进行相应的处理。 实现时,客户程序和服务器程序可以在一台机器上,也可以分布在不同的机器上。,人机交互技术编写组,9,7.1.2设计交互应用程序,在客户/服务器结构中,交互系统的应用程序通过调用服务器端一个独立的管理程序来管理多任务和提供设备的独立性,相当于客户-服务器中结构中的客户。 交互应用一般来讲是由用户驱动的,即用户从外部设备上输入数据,应用程序的动作由用户输入来决定,应用程序可以采用下面的两种控制流程实现用户的交互。,人机交互技术编写组,10,1.应用程序内部事件处理循环,人机交互技术编写组,11,事件处理循环的程序代码,while(1) read_event(myevent); switch(myevent.type) case type_1: do_type1_process(); /*处理对应事件1的动作*/ break; case type_2: do_type2_process(); break; case type_n: do_typen_process(); break; ,人机交互技术编写组,12,2.事件注册方式,窗口系统为每一个应用程序建立一个事件处理中心,事件处理中心负责事件的处理。应用程序将自己感兴趣的事件处理事先通过登记注册的方式通知事件处理中心,注册时同时告诉事件处理中心当事件产生时,应用程序需要进行的处理(回应过程)。 当事件处理中心从窗口系统接收一个事件,分析这个事件属于哪个应用程序,然后把事件和控制转向该事件注册的回应过程,处理完后,回应过程把控制返还给事件处理中心,事件中心继续接收事件或者请求终止。,人机交互技术编写组,13,人机交互技术编写组,14,2.事件注册方式,这种方式的好处是一般应用程序不需要设计事件处理循环,只关心应用程序需要处理哪些交互事件,当事件发生时应用程序如何处理。当应用程序不需要处理某个事件时,应用程序还可以随时取消注册。因为只处理注册的事件,事件处理中心处理事件的效率相对比较高。Java语言中图形界面的交互就是采用的这种事件注册方式,下面的程序清单7-2说明了应用程序如何通知注册事件,事件处理中心通过什么方式调用应用程序的回调函数。,人机交互技术编写组,15,程序清单7-2 quit.java import java.awt.*; import java.awt.event.*; class Quit extends Frame implements ActionListener Button cancelButton, okButton; public Quit() cancelButton = new Button("Cancel"); okButton = new Button("OK"); setLayout(new FlowLayout(); add(cancelButton); add(okButton); addWindowListener(new ProgramTerminator(); cancelButton.addActionListener(this); okButton.addActionListener(this); ,人机交互技术编写组,16,public void actionPerformed(ActionEvent event) Button clickedButton = (Button) event.getSource(); if (clickedButton = cancelButton) setTitle("You clicked CANCEL"); else /the event source is okButton setTitle("You clicked OK"); class ProgramTerminator implements WindowListener public void windowClosing(WindowEvent event) System.exit(0); ,人机交互技术编写组,17,public void windowActivated(WindowEvent event) public void windowClosed(WindowEvent event) public void windowDeactivated(WindowEvent event) public void windowDeiconified(WindowEvent event) public void windowIconified(WindowEvent event) public void windowOpened(WindowEvent event) public static void main(String args) Quit f = new Quit(); f.setBounds(100,100,200,70); f.setVisible(true); ,人机交互技术编写组,18,2.事件注册方式,在上面的程序中,当应用程序创建窗口对象时,通过addWindowListener方法通知事件处理中心该应用程序需要处理窗口关闭事件,并且当用户用鼠标器单击窗口右上角的小关闭按钮时,事件处理程序会自动调用ProgramTerminator的一个方法,结束当前的应用程序,在该程序中还用到了交互系统开发软件包中的交互对象Button,在7.2节中将仔细讨论交互系统开发软件包, 图7-4说明了程序初始的显示画面。,图7-4 Quit.java运行结果,人机交互技术编写组,19,7.2交互系统开发软件包,一般的窗口系统,输入和显示是分离的。 交互系统开发软件包在支持窗口管理的基础上增加了另一种抽象,它把输入和输出的行为结合起来。 从用户角度讲,图形用户界面WIMP非常重要的特征就是将输入和输出行为与屏幕上的一个独立的对象连接在一起。 鼠标自硬件设备的输入(鼠标的移动)与显示屏上鼠标的输出(小的箭头光标或窗口内坐标的位置)是分离的。 屏幕上光标的移动和鼠标的物理运动密切相关,即当鼠标在桌面上移动时,屏幕上的光标也跟着移动。 视觉上的光标与物理的设备都称为“鼠标” 。,人机交互技术编写组,20,交互系统开发软件包,图7-5说明了如何将输入和输出通过一个按钮联系在一起。 当用户移动鼠标到按钮时,屏幕的光标变换形状,提示用户可以单击鼠标,以选中按钮,如果此时用户按鼠标上的按键,屏幕上的按钮变亮,就像按下键盘上的某些键一样,让用户感到确实按下了屏幕上的按钮,释放鼠标键,屏幕上的按钮变暗,就像真正释放屏幕上的按钮。,人机交互技术编写组,21,人机交互技术编写组,22,输入和输出的融合,一般来说,窗口系统提供了上述简单的输入和输出的融合,复杂情况下输入输出的融合需要程序员来实现。 为了帮助程序员实现输入和输出融合,需要在窗口系统之上,提供更高层的对交互系统实现的支持交互系统开发软件包。 交互系统开发软件包为程序员提供一组已经定义好的交互对象,也称为交互界面元素或窗口组件,程序员可以使用这些组件编写自己的应用程序。 交互对象有预先定义好的行为,用户可以根据自己的需要选择使用。,人机交互技术编写组,23,对象之间的关系,为了提供交互对象灵活性,交互对象可以根据用户的需要进行定制,程序员可以根据自己特殊的要求调用交互对象。 例如:当创建一个特别的按钮时,按钮上的标签可以是程序员设置的一个参数. 较复杂的交互对象可以由较小的、简单的对象构建,整个应用可以看作是一组交互对象的集合,这些对象存在着一定的关系,交互对象的行为描述了整个应用的语义。,人机交互技术编写组,24,交互对象和交互系统开发软件包的特性,这些组件可以被定义为一类交互对象,这类交互对象可以在一个应用中多次激活,不同的实例可以有微小的区别。 复杂的交互对象可以由简单的交互对象构建。 实例和继承是面向对象程序设计的基石,类可以看作交互对象的模板。,人机交互技术编写组,25,交互系统开发软件包的面向对象特性,交互系统开发软件包是面向对象的,但这并不意味着开发的应用程序所需要的语言必须支持面向对象的概念,也可以使用非面向对象的程序设计语言。 程序员通过设置不同的实例属性的值来调整交互对象的行为和外观,这些属性可以在实例程序编译之前设置,如在程序Quit.java中两个按钮交互对象cancelButton 和 okButton,这些按钮的显示文本在程序编译时已经设定。,人机交互技术编写组,26,Java语言中的交互系统开发软件包,抽象窗口工具包 AWT(Abstract Windowing Toolkit) 它将交互对象,诸如:按钮、菜单、对话框等映射到相应的Java 的类Button、 Menu、Dialog 程序员要么直接使用这些类,要么使用它们的子类。 从某种意义上讲,这些类规范了交互对象的行为。 利用子类可以很容易增设新的属性,人机交互技术编写组,27,JAVA软件包的事件处理机制,在AWT1.0,程序员需要通过继承按钮的子类

注意事项

本文(人机交互:第7章 软件结构与实现)为本站会员(我***)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.