电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

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

89页
  • 卖家[上传人]:我***
  • 文档编号:136786165
  • 上传时间:2020-07-02
  • 文档格式:PPT
  • 文档大小:188KB
  • / 89 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、人机交互技术编写组,1,第7章 软件结构与实现,人机交互技术编写组,2,内容提要,窗口系统对交互系统实现的支持 窗口系统提供设备独立性和资源的共享,在窗口系统,程序员不用担心输入和输出设备的初始化,应用程序从窗口系统管理器接收事件请求流,完成相应的交互操作。 用户界面管理系统UIMS UIMS是抽象层次更高的支持交互系统实现的开发环境,为交互系统实现提供更高层支持。 支持复杂人机交互系统的实现的软件体系结构 包括E-O模型 Seeheim模型 MVC模型 智能体模型,人机交互技术编写组,3,7.1窗口系统,窗口系统强调为程序员提供硬件设备独立性,交互系统的实现建立在一个抽象的设备上,对抽象设备的操作通过设备驱动程序转换成具体的设备上的操作,这可以使交互系统的开发变得简单,也使交互系统的移植非常方便。,人机交互技术编写组,4,7.1窗口系统,窗口系统为单一输入输出设备建立多个抽象设备来实现其资源的共享。每个抽象设备都可看作一个窗口的独立的输入输出设备,窗口系统为这些设备提供并发控制。从应用的角度看,每个应用程序独立地对设备进行操作,另一方面,窗口系统还为每个窗口提供一个抽象显示设备,这可

      2、以通过为每个活动的抽象显示设备建立一个窗口来实现。 设备独立性和多任务管理是窗口系统的最重要的两个特性。,人机交互技术编写组,5,7.1.1窗口系统结构,窗口系统一般有三种结构: 在各个应用程序内部实现和管理多任务,由于每个应用程序都需要处理复杂的多任务管理,并且移植起来不方便。 在操作系统核心集中处理多任务管理,应用程序不再对多任务进行管理,由于过分的依赖操作系统,应用程序需要处理因操作系统的不同而引起的差异。 多任务的管理可由独立的管理程序进行管理,应用程序通过调用该管理程序提供的接口来实现对多任务的管理和设备的独立性操作,该管理程序可以在不同的操作系统下运行,因而基于此管理程序开发的交互系统是最容易移植的。,人机交互技术编写组,6,一种客户/服务器结构,图7-1 客户/服务器结构,人机交互技术编写组,7,服务器端运行的三部分程序,资源管理器 是整个窗口系统的核心,负责多任务的管理,并通过设备驱动程序来管理外部设备 。 设备驱动程序 负责外部设备的驱动,接受输入设备的输入,并将输入数据转换成统一的格式,通过设备驱动程序实现设备的独立性 。 抽象终端 负责和客户应用程序的接口,对每个

      3、应用程序由窗口管理程序为其分配一个抽象终端。,人机交互技术编写组,8,工作方式,当外部设备产生一个输入请求,如鼠标单击某一个窗口内的一点,资源管理程序从设备驱动程序获得鼠标数据,产生鼠标驱动事件,并将该事件分发给与该窗口相对应的抽象终端,与抽象终端相对应的应用程序接受事件并进行相应的处理。 实现时,客户程序和服务器程序可以在一台机器上,也可以分布在不同的机器上。,人机交互技术编写组,9,7.1.2设计交互应用程序,在客户/服务器结构中,交互系统的应用程序通过调用服务器端一个独立的管理程序来管理多任务和提供设备的独立性,相当于客户-服务器中结构中的客户。 交互应用一般来讲是由用户驱动的,即用户从外部设备上输入数据,应用程序的动作由用户输入来决定,应用程序可以采用下面的两种控制流程实现用户的交互。,人机交互技术编写组,10,1.应用程序内部事件处理循环,人机交互技术编写组,11,事件处理循环的程序代码,while(1) read_event(myevent); switch(myevent.type) case type_1: do_type1_process(); /*处理对应事件1的动

      4、作*/ break; case type_2: do_type2_process(); break; case type_n: do_typen_process(); break; ,人机交互技术编写组,12,2.事件注册方式,窗口系统为每一个应用程序建立一个事件处理中心,事件处理中心负责事件的处理。应用程序将自己感兴趣的事件处理事先通过登记注册的方式通知事件处理中心,注册时同时告诉事件处理中心当事件产生时,应用程序需要进行的处理(回应过程)。 当事件处理中心从窗口系统接收一个事件,分析这个事件属于哪个应用程序,然后把事件和控制转向该事件注册的回应过程,处理完后,回应过程把控制返还给事件处理中心,事件中心继续接收事件或者请求终止。,人机交互技术编写组,13,人机交互技术编写组,14,2.事件注册方式,这种方式的好处是一般应用程序不需要设计事件处理循环,只关心应用程序需要处理哪些交互事件,当事件发生时应用程序如何处理。当应用程序不需要处理某个事件时,应用程序还可以随时取消注册。因为只处理注册的事件,事件处理中心处理事件的效率相对比较高。Java语言中图形界面的交互就是采用的这种事件注册方

      5、式,下面的程序清单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 actionPerfo

      6、rmed(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(Windo

      7、wEvent 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交互系统开发软件包,一般的窗口系统,输入和显示是分

      8、离的。 交互系统开发软件包在支持窗口管理的基础上增加了另一种抽象,它把输入和输出的行为结合起来。 从用户角度讲,图形用户界面WIMP非常重要的特征就是将输入和输出行为与屏幕上的一个独立的对象连接在一起。 鼠标自硬件设备的输入(鼠标的移动)与显示屏上鼠标的输出(小的箭头光标或窗口内坐标的位置)是分离的。 屏幕上光标的移动和鼠标的物理运动密切相关,即当鼠标在桌面上移动时,屏幕上的光标也跟着移动。 视觉上的光标与物理的设备都称为“鼠标” 。,人机交互技术编写组,20,交互系统开发软件包,图7-5说明了如何将输入和输出通过一个按钮联系在一起。 当用户移动鼠标到按钮时,屏幕的光标变换形状,提示用户可以单击鼠标,以选中按钮,如果此时用户按鼠标上的按键,屏幕上的按钮变亮,就像按下键盘上的某些键一样,让用户感到确实按下了屏幕上的按钮,释放鼠标键,屏幕上的按钮变暗,就像真正释放屏幕上的按钮。,人机交互技术编写组,21,人机交互技术编写组,22,输入和输出的融合,一般来说,窗口系统提供了上述简单的输入和输出的融合,复杂情况下输入输出的融合需要程序员来实现。 为了帮助程序员实现输入和输出融合,需要在窗口系统

      9、之上,提供更高层的对交互系统实现的支持交互系统开发软件包。 交互系统开发软件包为程序员提供一组已经定义好的交互对象,也称为交互界面元素或窗口组件,程序员可以使用这些组件编写自己的应用程序。 交互对象有预先定义好的行为,用户可以根据自己的需要选择使用。,人机交互技术编写组,23,对象之间的关系,为了提供交互对象灵活性,交互对象可以根据用户的需要进行定制,程序员可以根据自己特殊的要求调用交互对象。 例如:当创建一个特别的按钮时,按钮上的标签可以是程序员设置的一个参数. 较复杂的交互对象可以由较小的、简单的对象构建,整个应用可以看作是一组交互对象的集合,这些对象存在着一定的关系,交互对象的行为描述了整个应用的语义。,人机交互技术编写组,24,交互对象和交互系统开发软件包的特性,这些组件可以被定义为一类交互对象,这类交互对象可以在一个应用中多次激活,不同的实例可以有微小的区别。 复杂的交互对象可以由简单的交互对象构建。 实例和继承是面向对象程序设计的基石,类可以看作交互对象的模板。,人机交互技术编写组,25,交互系统开发软件包的面向对象特性,交互系统开发软件包是面向对象的,但这并不意味着开发的应用程序所需要的语言必须支持面向对象的概念,也可以使用非面向对象的程序设计语言。 程序员通过设置不同的实例属性的值来调整交互对象的行为和外观,这些属性可以在实例程序编译之前设置,如在程序Quit.java中两个按钮交互对象cancelButton 和 okButton,这些按钮的显示文本在程序编译时已经设定。,人机交互技术编写组,26,Java语言中的交互系统开发软件包,抽象窗口工具包 AWT(Abstract Windowing Toolkit) 它将交互对象,诸如:按钮、菜单、对话框等映射到相应的Java 的类Button、 Menu、Dialog 程序员要么直接使用这些类,要么使用它们的子类。 从某种意义上讲,这些类规范了交互对象的行为。 利用子类可以很容易增设新的属性,人机交互技术编写组,27,JAVA软件包的事件处理机制,在AWT1.0,程序员需要通过继承按钮的子类

      《人机交互:第7章 软件结构与实现》由会员我***分享,可在线阅读,更多相关《人机交互:第7章 软件结构与实现》请在金锄头文库上搜索。

      点击阅读更多内容
    TA的资源
  • 2020届中考英语备考复习-作文课件

    2020届中考英语备考复习-作文课件

  • 2019年中考英语复习-专题十五-交际运用(试卷部分)课件

    2019年中考英语复习-专题十五-交际运用(试卷部分)课件

  • 2019届二轮复习-高中英语-情态动词和虚拟语气课件

    2019届二轮复习-高中英语-情态动词和虚拟语气课件

  • 2019届一轮复习苏教版物质的跨膜运输课件

    2019届一轮复习苏教版物质的跨膜运输课件

  • 2019年北师大版英语单元复习课件::Unit17Laughter课件北师大版选修6

    2019年北师大版英语单元复习课件::Unit17Laughter课件北师大版选修6

  • 2021届新中考物理冲刺备考复习-力-弹力-重力课件

    2021届新中考物理冲刺备考复习-力-弹力-重力课件

  • 2019届一轮复习人教版种群的特征和数量变化课件

    2019届一轮复习人教版种群的特征和数量变化课件

  • 2020年高考地理一轮复习--等高线地形图-课件

    2020年高考地理一轮复习--等高线地形图-课件

  • 2019版高考英语一轮复习-Unit-1-Living-well课件

    2019版高考英语一轮复习-Unit-1-Living-well课件

  • 2019届一轮复习人教版孟德尔的遗传定律——基因分离定律课件

    2019届一轮复习人教版孟德尔的遗传定律——基因分离定律课件

  • 2019届高三第二轮复习专题二万有引力定律及其应用课件

    2019届高三第二轮复习专题二万有引力定律及其应用课件

  • 2020最新部编版语文五年级上册23-鸟的天堂课件含课后练习

    2020最新部编版语文五年级上册23-鸟的天堂课件含课后练习

  • 2020版高考(浙江)一轮复习:第7讲-细胞呼吸课件

    2020版高考(浙江)一轮复习:第7讲-细胞呼吸课件

  • 2020年新教材高中英语UNIT4HISTORYANDTRADITIONSSectionⅢDiscoveringUsefulStructures课件必修第二册

    2020年新教材高中英语UNIT4HISTORYANDTRADITIONSSectionⅢDiscoveringUsefulStructures课件必修第二册

  • 2019届高考历史二轮复习阶段三专题十三罗斯福新政与当代资本主义的新变化课件2

    2019届高考历史二轮复习阶段三专题十三罗斯福新政与当代资本主义的新变化课件2

  • 2019版高考生物二轮复习-专题三-细胞的生命历程-考点9-细胞分裂过程图像和坐标曲线的识别课件

    2019版高考生物二轮复习-专题三-细胞的生命历程-考点9-细胞分裂过程图像和坐标曲线的识别课件

  • (通史版)2021版高考历史一轮复习第4部分高考讲座(三)2高考非选择题(12分开放探究题)规范答题讲练课件

    (通史版)2021版高考历史一轮复习第4部分高考讲座(三)2高考非选择题(12分开放探究题)规范答题讲练课件

  • 2019届高三地理复习第五讲--《区际联系与区域协调发展》课件

    2019届高三地理复习第五讲--《区际联系与区域协调发展》课件

  • 2021人教部编版历史九年级上册习题课件:第18课美国的独立

    2021人教部编版历史九年级上册习题课件:第18课美国的独立

  • 2020学年新教材高中英语Unit1FoodforthoughtPeriodTwoStartingout课件

    2020学年新教材高中英语Unit1FoodforthoughtPeriodTwoStartingout课件

  • 点击查看更多
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.