第7章软件结构与实现 人机交互技术编写组
人机交互技术编写组 1 第7章 软件结构与实现
内容提要 ◆窗口系统对交互系统实现的支持 窗口系统提供设备独立性和资源的共享,在窗口系统,程序 员不用担心输入和输出设备的初始化,应用程序从窗口系统 管理器接收事件请求流,完成相应的交互操作 用户界面管理系统UIMS UIMS是抽象层次更高的支持交互系统实现的开发环境,为交 互系统实现提供更高层支持 支持复杂人机交互系统的实现的软件体系结构 ■包括EO模型 ■ Seeheim模型 MVC模型 智能体模型 人机交互技术编写组
人机交互技术编写组 2 内容提要 窗口系统对交互系统实现的支持 ◼ 窗口系统提供设备独立性和资源的共享,在窗口系统,程序 员不用担心输入和输出设备的初始化,应用程序从窗口系统 管理器接收事件请求流,完成相应的交互操作。 用户界面管理系统UIMS ◼ UIMS是抽象层次更高的支持交互系统实现的开发环境,为交 互系统实现提供更高层支持。 支持复杂人机交互系统的实现的软件体系结构 ◼ 包括E-O模型 ◼ Seeheim模型 ◼ MVC模型 ◼ 智能体模型
7.1窗口系统 ◆窗口系统强调为程序员提供硬件设备独立性, 交互系统的实现建立在一个抽象的设备上,对 抽象设备的操作通过设备驱动程序转换成具体 的设备上的操作,这可以使交互系统的开发变 得简单,也使交互系统的移植非常方便 人机交互技术编写组
人机交互技术编写组 3 7.1窗口系统 窗口系统强调为程序员提供硬件设备独立性, 交互系统的实现建立在一个抽象的设备上,对 抽象设备的操作通过设备驱动程序转换成具体 的设备上的操作,这可以使交互系统的开发变 得简单,也使交互系统的移植非常方便
7.1窗口系统 ◆窗口系统为单一输入输出设备建立多个抽象设 备来实现其资源的共享。每个抽象设备都可看 作一个窗口的独立的输入输出设备,窗口系统 为这些设备提供并发控制。从应用的角度看, 每个应用程序独立地对设备进行操作,另一方 面,窗口系统还为每个窗口提供一个抽象显示 设备,这可以通过为每个活动的抽象显示设备 建立一个窗口来实现。 ◆设备独立性和多任务管理是窗口系统的最重要 的两个特性。 人机交互技术编写组
人机交互技术编写组 4 7.1窗口系统 窗口系统为单一输入输出设备建立多个抽象设 备来实现其资源的共享。每个抽象设备都可看 作一个窗口的独立的输入输出设备,窗口系统 为这些设备提供并发控制。从应用的角度看, 每个应用程序独立地对设备进行操作,另一方 面,窗口系统还为每个窗口提供一个抽象显示 设备,这可以通过为每个活动的抽象显示设备 建立一个窗口来实现。 设备独立性和多任务管理是窗口系统的最重要 的两个特性
7.1.1窗口系统结构 ◆窗口系统一般有三种结构 在各个应用程序内部实现和管理多任务,由于每个 应用程序都需要处理复杂的多任务管理,并且移植 起来不方便 在操作系统核心集中处理多任务管理,应用程序不 再对多任务进行管理,由于过分的依赖操作系统, 应用程序需要处理因操作系统的不同而引起的差异 多任务的管理可由独立的管理程序进行管理,应° 程序通过调用该管理程序提供的接口来实现对多任 务的管理和设备的独立性操作,该管理程序可以在 不同的操作系统下运行,因而基于此管理程序开发 的交互系统是最容易移植的 人机交互技术编写组
人机交互技术编写组 5 7.1.1窗口系统结构 窗口系统一般有三种结构: ◼ 在各个应用程序内部实现和管理多任务,由于每个 应用程序都需要处理复杂的多任务管理,并且移植 起来不方便。 ◼ 在操作系统核心集中处理多任务管理,应用程序不 再对多任务进行管理,由于过分的依赖操作系统, 应用程序需要处理因操作系统的不同而引起的差异。 ◼ 多任务的管理可由独立的管理程序进行管理,应用 程序通过调用该管理程序提供的接口来实现对多任 务的管理和设备的独立性操作,该管理程序可以在 不同的操作系统下运行,因而基于此管理程序开发 的交互系统是最容易移植的
一种客户/服务器结构 客户 客户应用程序 客户应用程序 客户应用程序 抽象终端抽象终端 抽象终端 服务器 资源管理器 设备驱动程序 设备 窗口2 鼠标 窗口1 键盘 窗口n 图7-1客户/服务器结构 人机交互技术编写组 6
人机交互技术编写组 6 一种客户/服务器结构 客户 客户应用程序 客户应用程序 ﹒﹒﹒ 客户应用程序 抽象终端 抽象终端 ﹒﹒﹒ 抽象终端 资源管理器 设备驱动程序 服务器 设备 鼠标 窗口1 窗口2 窗口n 键盘 图7-1 客户/服务器结构
服务器端运行的三部分程序 ◆资源管理器 是整个窗口系统的核心,负责多任务的管理,并通 过设备驱动程序来管理外部设备。 ◆设备驱动程序 负责外部设备的驱动,接受输入设备的输入,并将 输入数据转换成统一的格式,通过设备驱动程序实 现设备的独立性。 ◆抽象终端 ■负责和客户应用程序的接口,对每个应用程序由窗 口管理程序为其分配一个抽象终端。 人机交互技术编写组
人机交互技术编写组 7 服务器端运行的三部分程序 资源管理器 ◼ 是整个窗口系统的核心,负责多任务的管理,并通 过设备驱动程序来管理外部设备 。 设备驱动程序 ◼ 负责外部设备的驱动,接受输入设备的输入,并将 输入数据转换成统一的格式,通过设备驱动程序实 现设备的独立性 。 抽象终端 ◼ 负责和客户应用程序的接口,对每个应用程序由窗 口管理程序为其分配一个抽象终端
工作方式 ◆当外部设备产生一个输入请求,如鼠标单击某 个窗口内的一点,资源管理程序从设备驱动 程序获得鼠标数据,产生鼠标驱动事件,并将 该事件分发给与该窗口相对应的抽象终端,与 抽象终端相对应的应用程序接受事件并进行相 应的处理。 ◆实现时,客户程序和服务器程序可以在一台机 器上,也可以分布在不同的机器上。 人机交互技术编写组
人机交互技术编写组 8 工作方式 当外部设备产生一个输入请求,如鼠标单击某 一个窗口内的一点,资源管理程序从设备驱动 程序获得鼠标数据,产生鼠标驱动事件,并将 该事件分发给与该窗口相对应的抽象终端,与 抽象终端相对应的应用程序接受事件并进行相 应的处理。 实现时,客户程序和服务器程序可以在一台机 器上,也可以分布在不同的机器上
7.1.2设计交互应用程序 ◆在客户/服务器结构中,交互系统的应用程序 通过调用服务器端一个独立的管理程序来管理 多任务和提供设备的独立性,相当于客户-服务 器中结构中的客户 ◆交互应用一般来讲是由用户驱动的,即用户从 外部设备上输入数据,应用程序的动作由用户 输入来决定,应用程序可以采用下面的两种控 制流程实现用户的交互。 人机交互技术编写组
人机交互技术编写组 9 7.1.2设计交互应用程序 在客户/服务器结构中,交互系统的应用程序 通过调用服务器端一个独立的管理程序来管理 多任务和提供设备的独立性,相当于客户-服务 器中结构中的客户。 交互应用一般来讲是由用户驱动的,即用户从 外部设备上输入数据,应用程序的动作由用户 输入来决定,应用程序可以采用下面的两种控 制流程实现用户的交互
1.应用程序内部事件处理循环 客户应用程序 开始 读输入 服务器 设备 过程输入 结束 图7-2事件处理循环 人机交互技术编写组 10
人机交互技术编写组 10 1.应用程序内部事件处理循环 设备 客户应用程序 开始 读输入 过程输入 退出? 结束 服务器 图7-2事件处理循环