




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
人机交互设备概述1、总体概述(历史、工作原理、产品)人机交互界面作为一个独立的、重要的研究领域受到了世界各计算机厂家的关注。并成为90年代计算机行业的又一竞争领域。从计算机技术的发展过程来看,人机交互界面技术还引导了相关软硬件技术的发展,是新一代计算机系统取得成功的保证。80年代已来,计算机的软件和硬件技术取得了较大的发展,同时,计算机的使用者也从计算机专家迅速扩大到了广大未受过专门训练的普通用户,由此极大地提高了用户界面在系统设计和软件开发中的重要性,强烈地刺激了人机交互界面的进步。人-计算机的交互作用是通过用户界面来实现的。与传统人-机系统不同的是,人-计算机系统中的交互形式已成为用户与计算机两个“智能系统”之间的通讯和对话。在计算机技术发展的初期,由于系统的运行速度慢、价格昂贵并且可靠性差,不可能进行交互使用,用户必须调整自己的行为去适应机器的要求。因此,与计算机使用中的其它问题相比,界面只是一个小问题。随着计算机性能的提高,系统能够用一部分资源来处理人-计算机界面,用户界面设计开始引起人们的注意。用户界面的发展对计算机系统整体性能的提高所具有的重要性已经得到了人们的高度重视,与此同时,围绕人机建模业已形成了计算机产业又一新的竞争领域。在美国人机建模研究在信息技术中被列为与软件和计算机并列的六项国家关键技术之一,并被认为“对于计算机工业有着突出的重要性,对其它工业也是很重要的”。美国国防关键技术计划不仅把人机交互界面列为软件技术发展的重要内容之一,而且还专门增加了与软件技术并列的人-系统界面一项内容。日本也提出了FPIEND21计划(FuturePersonalizedInformationEnviromentDevelop-ment),其目标就是要开发21世界的计算机界面。进入九十年代计算机软件开发已进入了以开发软件工具和建立软件开发环境为目标的时代。作为支持人机交互软件开发环境的用户界面管理系统UIMS正日益受到人们的关注和重视。今后UIMS将有可能进入各类实际软件开发环境,成为继DBMS之后的又一个重要的软件开发环境和工具。2、关键技术软件界面是人-机之间的信息界面,从某种意义上讲,它比硬件和工作环境更为重要。优化软件界面就是要合理设计和管理人-机对话的结构。对话的结构设计一般可分为初始设计、形式评价和总结评价三个阶段。2.1人类工程学(1)人类工程学中人的特性人在系统中是主体,任何先进的机器都是由人设计的,由人操纵的,所以系统工作效率的优劣、安全性,很大程度上决定于人的工作状况。人类工程学中要研究人对外界信息的感知特性,人对信息的加工、处理及思维能力,人的学习、记忆特性,人的自身节率等等。1)人的感觉功能a.视觉人们通过视觉器官认识外界事物,由大脑产生正确的思考,视觉对劳动的产量、质量及安全均有影响,还影响到劳动者的心理活动过程。b.听觉人耳对声音响度的感觉主要是和声强有关。人接受听觉信息要比接受视觉信息快。据测定,人的听觉反应时间约为120-150ms,较光信息快30-50ms。听觉信号常用于报警。c.触觉等人们通过触觉器官接受物体的空间位置、形状、表面情况和原材料等信息。2)人的信息处理及输出特性a.人的反应时间操作者在操纵、监视设备时,从出现信号刺激到采取相应动作,存在一个反应时间。人体的运动系统反应速度比较缓慢,神经肌肉接头的反应延迟时间为0.1-0.2s.b.人的信息传输信息在神经系统中的传输,是由不同的感觉通道,传输不同的信息,如视觉系统的单个神经纤维能传输不同的颜色信息,信息的传输速率是一个重要的物理量。3)人机分工设计人机交互界面,进行人机分工时,要充分发挥人机的各自特点。可采用最大最小原则,即人承担的工作量应尽量少或最少,机器承担的工作量应最大,在最大限度利用机器的同时,充分发挥人的积极因素。人机结合并充分注意人的主导地位,将有效地保证系统的可靠性和寿命。(2)计算机辅助设计和计算机图形学中的人的因素利用CAD技术并结合CAM技术可以大大缩短产品的设计-制造周期,CAD已经成为制造业中求生存的一种主要手段。CAD中主要的人的因素问题有:CAD硬件中的图形终端、输入装置和菜单设计,CAD系统中人的信息加工能力,如有关CAD显示的视觉、CAD中的空间推理、CAD中的问题解决及运动反应等过程;CAD系统中人机功能分配;CAD系统中的工作设计、人员选拔和训练等。(3)计算机辅助制造中的人的因素CAM可被广义地认为是在制造业的管理、控制和运行中有效地应用计算机的一项新技术,其最终目标是要建成CIMS,它将是一项在21世纪最具竞争力的技术。认知工程学在CAM领域的主要研究内容:自动化与工作分片、CAM中的人的决策和自动化制造中人的监控。2.2人机界面设计原则(1)媒体最佳组合媒体界面的成功并不在于仅向用户提供丰富的媒体,而应在了解媒体的功能、选择方法的基础上,在相关理论的指导下,在语义层上将各种媒体有机地结合起来以更有效地传递信息。(2)界面分析与规范在人机界面设计中,首先应进行界面设计分析,即收集有关用户及其应用环境信息以后,进行用户特性分析,用户任务分析,记录用户有关系统的概念、术语,这项工作可与应用系统分析结合进行。分析任务中对界面设计要有界面规范说明,选择界面设计类型,并确定设计的主要组成部分。由于人机界面是为适合人的需要而建立的,所以要清楚使用该界面用户的类型,要了解用户使用系统的频率、用途及对用户的综合知识和智力的测试,这些均是用户设计中的内容。在此基础上产生任务规范说明,进行任务设计。任务设计的目的在于重新组织任务规范说明以产生一个更有逻辑性的编排。设计应精心地分别给出人与计算机的活动,使设计者较好地理解在设计一个界面时所遇到的问题,这样形成系统操作手册、训练文件和用户指南的基础。在考虑用户工作方式及系统环境和支持等因素下,精心任务设计。任务确定之后,要决定界面类型。目前有多种人机界面设计类型,各有不同的品质和性能,因此设计者要了解每种类型的优点和限制。大多数界面使用一种以上的设计类型。下表列出了常用界面类型的优缺点。表13.图标:用图像代表功能非常容易学,易用(鼠标操作〕,语言独立性强,编程较容易占具屏幕可观的空间,表达抽象概念描述力差,需文字解释,需图形硬件和软件支持初学者。有形成国际会话语言的趋势4.表格填写使用速度快、易用、容易掌握仅适合于数据输入,不高级数据录入中用得最广泛的会话类型,用于显示和恢复界面,编辑初始界面5.命令语言(单字命令到复杂语法的命令〕使用功能强,灵活,是界面可控制系统的高级方法,对屏幕空间使用十分经济学习困难(学习代码和语言条款〕,用户需要系统功能的某些知识,使用困难,研究该界面工作量大会使用复杂命令界面的熟练用户,用户发起和控制的对话6.自然语言自然的交流难于编程实现,语言识别困难,会出现二义性,输入慢在有限制的问题中使用,可用于用户发出的会话2.3菜单屏幕设计的一些准则(1)按任务语义来组织菜单(单一菜单、线状序列、树状结构、非循环和循环的网络结构〕;(2)广而浅的菜单树优先于窄而浅的菜单树;(3)用图形、数字或标题来显示位置;(4)用选项名称来作树的标题;(5)根据含义将选项分组;(6)根据含义将选项排序;(7)选项力求简短,以关键词开始;(8)语法、布局、用词前后一致;(9)允许超前键入、超前跳转或其它捷径;(10)允许跳转到前层的菜单和主菜单;(11)考虑联机求助、新颖选择机制、响应时间、显示速率和屏幕尺寸。2.4错误处理在一个交互系统中,由于操作者的个人原因,经常会产生误操作,包括键入错误、数据输入错误等。同样,在用户编制的程序或设备连接时也可能会有错误。一个好的交互系统不能要求操作者不犯错误,但应该具有较强的处置各种错误的能力,除了在软件设计时注意各种容错机制、鲁棒性技术及各种诊断措施以外,在计算机用户界面上应提供各种避免用户操作错误的提示及各种错误信息的分析。(1)错误输入1)数据录入错误在各类数据处理软件中,数据录入的错误是经常发生的薄弱环节,为了减少用户在录入时的错误,应采用一系列措施。a.对用户输入在屏幕上予以“回答”;b.对用户在屏幕上的交互输入,应提供暂存文件以记录全部输入,以便全部数据输入完后或临时需要时进行检查和确认;c.对用户各种输入应提供检查;d.对于数据库中的重要数据,必须进行严格的复查核对。2)控制输入控制输入的内容与用户界面的风格、控制方式有关。在有的菜单选项用户界面上,往往提供一组编号菜单项,用户输入一个号码后,立即可进入该号指定的项目。采用这种方法虽然可以减少按键,提供操作效率,但在误按号码后将会引起错误。a.对错误命令应提供反馈信息,告诉用户正确的命令格式及参数;b.对文件操作的命令只对该文件的副本进行,以便在必要时仍可从文件的原稿中恢复;c.对一些影响重大的命令需要由用户再次确认;d.建立命令的历史文件,这是对系统进行恢复的最有效措施,它对于不同开发阶段的错误情况获取都是有用的。3)其它错误在一个交互系统中,各个部分都可能出现错误,包括硬件错误和软件错误。在设计系统时,应允许采用不同厂商的设备,且设备不同也不应引起错误,这就是设备的独立性问题。4)错误信息如何向用户提供确切的错误信息是系统设计中的一个重要问题。过去有许多用户不爱使用某些系统,并不是因为其功能太弱,而是因为遇到错误时提示用户的信息太少。一个好的用户界面,不仅应该具有容错、检错的能力,而且在错误出现后,应让用户清楚了解其错误的性质和位置,以便由用户克服其错误,下面是有关错误信息的设计原则:a.尽可能使错误信息准确和定位;b.应指明用户针对这类错误应如何做;c.语言应简洁、明确,尽可能用通俗易懂的词汇;d.避免使用指责性语言,语气尽可能友善,但应给以告诫;e.对于错误信息应该根据系统的实际情况进行分层提示;f.应保持错误信息的风格一致,包括信息出现的位置,是否用对话框或窗口,术语及缩写等;g.尽可能采用可视的图形信息及音响效果。2.5人机界面设计的评价评价是人机界面设计的重要组成部分,但往往被设计者忽视。通常评价在最后产品上进行,但若在系统设计初期就进行,或对原型进行评价,就能及早发现设计缺陷,避免人力、物力的浪费。对界面设计的质量评价通常可用四项基本要求衡量:(1)界面设计是否有利于用户目标的完成?(2)界面学习和使用是否容易?(3)界面使用效率如何?(4)设计的潜在问题有那些?而对界面的总体设计和具体功能块设计,则可用上面提到的各类界面设计准则根据其应用对象进行综合测试。具体要求的界面品质,可照以下几项参考:(1)适应性。衡量界面在帮助用户完成一项或多项任务时的满意程度。(2)有效性。度量指标错误率、任务完成时间、系统各设备使用率等。(3)易学习性。从系统开始使用一段时间后,错误率下降的情况、完成任务时间减少的情况、正确调用设备及命令的情况以及用户知识增加的情况来评测。(4)系统设备及功能使用面。若有些设备或功能任何用户都未用过,则可能设计有误。(5)用户满意程度。以用户满意程度、发现问题多少及使用兴趣来衡量。界面评估采用的方法已由传统的知觉经验的方法,逐渐转为科学的系统的方法进行。传统经验方法有如下几种:(1)实验方法。在确定了实验总目标及所要验证的假设条件后,设计最可靠的方法是随机和重复测试。(2)监测方法。即观察用户行为。观察方法有多种,如直接监测,录像监测,系统监测等。(3)调查方法。这种方法可为评价提供重要数据,在界面数据的任何阶段均可使用。调查方法可以采用调查表(问卷〕或面谈方式。调查收集到的大多是主观数据,主要了解用户使用该界面的情况,对界面的态度和意见。3、相关产品.1X窗口系统窗口系统是控制位图显示设备与输入设备的系统软件。它所管理的资源有屏幕、窗口、象素映象(pixmap)、色彩表、字体、光标、图形资源及输入设备。窗口系统向用户提供下列界面:1)应用界面2)编程界面3)窗口管理界面美国国家标准技术委员会于1990年5月把窗口系统X.11.3版本正式发布为美国国家标准文件(编号为FIPS-PUB-158)。该标准共包括4个内容:(1)X协议(Xprotocol)X窗口系统实际上由核心协议所定义。协议包括四个方面:请求(request)、回答(reply)、出错(error)及事件(event)。X协议共有120个请求,可扩充至256个。整个协议描述客户与服务器进程通讯的语法结构与语义。(2〕X库函数(Xlib)X库函数是X窗口系统的C语言编程界面,是向应用程序员提供的低级编程界面。X库把参数封装为协议请求,利用IPC机制发射给服务器进程。X库共有320多个函数,可分为系统功能(连接的建立与撤除等)、窗口功能(窗口属性与操作)、通讯功能(图原、通讯属性、正文字体、区域、图像等)、色彩功能(色彩表操作)、事件功能(输入事件及窗口事件处理)及其它功能(原子、实用函数)。(3)X工具箱本征函数(Xtoolkitintrinsics)X工具箱是在X库上的高级编程界面。它向用户提供菜单、对话框、图符等各种图形界面元素的编程手段。X工具箱包含两部分:Widget集及Intrinsics函数集。前者是具有一定风格及外观的图形界面元素对象集,它与特定风格有关;后者是利用这些对象编程时的通用函数,共有270个函数,包括界面函数与应用程序联系的“回调函数”等。(4)字体标准格式(BDF,BitmapDistributedFormat)这是X窗口系统所提供各种字体的标准位图(bitmap)的组成规定。X窗口系统的一个重要设计思想是提供实现各种界面的机制,而不是策略。由于上述四部分只规定了应用程序员的编程接口,因而不同厂商或用户可在它们之上实现各种窗口管理程序及界面外观。由此,X窗口系统成为工作站各用户界面的基础、事实上的工业标准。窗口是X窗口系统的一个重要资源,是屏幕上的一个矩形区域(透明窗口无此区域边框〕。它实质上是位图输出设备及输入设备的一个抽象,有自己的坐标及感兴趣的事件等。X窗口系统有一个根窗口覆盖整个屏幕,应用程序的窗口均为根窗口的子窗口。这样所有窗口构成了树形结构,子窗口大小不能超出父窗口。X窗口系统中窗口的树形结构为应用程序的多级抽象提供了清晰的概念。X窗口系统的运行环境应该是在具有进程间通信机制的操作系统上工作,例如有TCP/IP(支持Socket机制〕网络协议的UNIX操作系统上工作。此时,应在后台运行服务器进程(XServer)、窗口管理程序(uwm)及终端仿真程序(Xterm)。有以上三个进程,就可以在窗口系统下执行各种命令,用鼠标或键盘管理窗口,运行各种应用程序。X窗口提供了极强的显示管理及输入设备的管理功能,是工作站上CAD软件及其用户界面的主要支撑环境,已成为工作站窗口系统事实上的工业标准。X窗口系统也要求可观的计算机资源。3.2OSF/Motif和OPENLOOKX窗口系统提供了一系列构造用户界面的机制,包含协议、库函数、工具箱本征函数及字体格式等。但它并不提供某种具体的用户界面风格。在X窗口系统之上已经构造了具有不同用户界面风格的高级界面对象集,通常称为WidgetSet。它们各有不同的视感(look&feel),其中对象可以包括窗口、菜单、对话框、按钮、图符、边框等。一种风格的某种WidgetSet为用户提供了一种外观统一的图形用户界面,也为应用程序员提供了面向对象的应用编程界面(API〕。OSF/Motif是由开放软件基金会(OSF〕1989年发布的图形用户界面规范。它以UNIX操作系统用X窗口系统为软件平台,吸取了IBMOS/2的PresentationManager,MS-Dos及HPnewware界面风格的特点,提供了风格(style)、窗口管理、工具箱、用户界面语言(UIL〕等一系列机制及规定。OSF/Motif已在多种硬件平台及操作系统上工作。OPENLOOK是由UNIX国际1988年发布的图形用户界面规范,它已作为UNIX系统第四、第五版本发布的重要组成部分正式使用。它也在许多工作站上实现并推广使用。3.3Windows1986年Microsoft公司为IBM个人计算机的DOS环境开放了Windows窗口系统,后来经过大量改进,于1990年正式发布了Windows3.0版本。由于该窗口系统在储存管理上突破了原来DOS640KB的限制,从而具有强的功能,为在DOS环境提供了可实用的图形用户界面。MS-Windows的出现,使得DOS环境下的大量CAD/CAM软件有了十分强的窗口环境支持,从而使得CAD/CAM的用户界面更加方便、一致。MS-Windows已成为在DOS环境图形用户界面的主要产品。Windows窗口系统是基于核心的窗口系统(Windows95,Windows98,WindowsNT),其核心功能放在操作系统内。由于Windows窗口环境具有风格一致的操作界面,在Windows环境下开发的应用软件具有同样的界面风格因而易学易用。这种通用的操作系统为界面各种对象的设计提供了过程化设计的平台和工具箱,从而使界面设计实现容易。4、典型应用(案例分析)4.1界面工具系统(FITOOL)开发与实现(1)研究背景:计算机用户界面是计算机系统的重要组成部分,它直接关系到整个计算机系统的可使用性和效率。经验表明开发高质量的用户界面,需花费大量的人力物力,且开发周期较长。传统的用户界面的设计与描述是基于"嵌入"方式进行的,应用程序设计人员在设计软件时,是按功能及界面两方面要求混合编写用户界面和应用功能两部分程序。这种开发方式忽略了用户界面的个性,使程序复杂化,可维护性差。当前计算机软件的开发已不再是将用户界面和应用功能两部分混合编写了。而是越来越倾向于二者分别编写,单独编译,再连接成可执行文件。这是因为对不同的应用系统,用户界面部分在逻辑上和处理方法上具有高度的相似性。而让软件开发人员花费大量的时间与精力去开发一个很类似又不具有通用性的用户界面程序显然是不可取的。因此开发能够用规范化和规模化生产的方法自动生成一致性的用户界面的工具是用户界面研究的内容。用户界面管理系统(UIMS)就是一种开发用户界面的软件工具。UIMS支持用户界面的表示、设计、实现、原型、执行、评估和维护。UIMS能够为整个环境提供一个友好一致的人机界面,使用户能以极其友好的方式几乎能随心所欲地使用此环境进行软件开发,即使得此环境具有友好的交互介质、友好的界面方式、友好的屏幕式样。(2)UIMS的表示方法:UIMS的表示方法主要包含人机界面的规格说明和它与人文因素、应用程序及其数据结构的联系等。UIMS逻辑结构模型中几个主要层次的表示方法,其中除了对话层的表示方法比较成熟、研究成果丰富外,其它层次的表示方法尚有待发展。1)外形层的表示方法外形层的表示方法主要涉及用户输入输出信息的处理。需要解决如下问题:a.如何处理和表示图形的输入输出。b.如何适应多媒体的需要,将输入输出信息扩充到视频、语音、动画、仿真等。c.如何适应智能人机界面规格说明的需要,即信息流的内外映射中如何包含简单的基于人机界面设计规格的决策,使一对一映射的关系扩充到多对一、多对多的映射关系。2)对话层的表示方法:对话层的表示方法比较多,GreenM(1986),MyersBA(1989)等曾先后对对话层的表示方法进行了如下分类:a.基于语言的表示方法即界面设计者用一种专门的人机界面描述语言UIDL来说明界面。这种语言可能有多种形式:菜单网络、状态转换图、上下文无关文法、事件语言、面向对象语言等。语言的主要任务是说明界面对话层的语法,即输入输出动作的合法顺序。菜单网络:是最简单的表示方法,即支持菜单的层次或网络结构。状态转换图:一个状态转换网络是由一组状态组成。在由每个状态出发的边上标志出一个输入词码,它能引起转移到该边另一端的状态。除输入词码外,有些系统的边上标出了被调用的应用子程序和被显示的输出内容。但是使用这种方法,界面和应用程序的联系是通过很多全程变量实现的,所有的状态必须有清楚的边来反映所有可能出现的错误输入和公用命令。上下文无关文法:即使用上下文无关文法来描述用户和程序之间的对话,且大多以编译器为基础。事件语言:在事件语言中,输入词码被认为是事件并立即送事件处理器.这些处理器能产生输出事件,改变系统的内部状态,或调用应用子程序.面向对象语言:即提供一个面向对象的框架,设计者在该框架内编写界面程序。b.基于图形的表示方法:基于图形的UIMS让用户或至少部分地让用户使用鼠标器直接将对象放到屏幕上来定义界面.它把界面的图示表示作为最重要的一个方面,而图形工具是说明这种表示的最合适的方法。c.基于应用语义过程的表示方法:即从应用的语义过程规格说明自动生成界面,并且让设计者修改界面以改进它的性能。3)应用层的表示方法:目前应用界面模型和应用层的表示方法很不成熟,仍旧处于发展初期。作为可供实用的实用界面模型,至少必须包含如下三个内容:a.它必须包含与用户和人机界面有关的应用数据结构的说明;b.它必须包含人机界面调用的应用子程序的说明,例如子程序名、运算对象等.这实际上是定义了人机界面和应用程序之间的界面;c.必须列举应用程序对用户的限制.从而使人机界面排除了许多可能引起语义错误的操作,避免了对应用程序的破坏。正在研究的应用层的表示方法有两类:一是对象—算子法.对象对应于应用程序的数据结构,算子对应于人机界面调用的应用子程序。二是基于关系和一阶逻辑.关系用来表示应用程序中的数据结构,而一阶逻辑模型的说明用来表示应用子程序。4.2系统结构FITOOL支持用户界面管理系统(UIMS)的Seeheim模型,基于Motif和X-Windows,运行于UNIX操作系统。FITOOL对话层的表示方法采用面向对象表示方法结合图形表示方法,使系统具有直接操纵的特点。FITOOL由如下几部分组成:(结构图见图4-1)a.窗口编辑器窗口编辑器管理并生成各种初始化窗口。用户若要创建界面必须先运行此模块,这既是初始化界面结构也是初始化管理内部数据结构的链表。b.原始构件编辑器原始构件编辑器提供了各种界面构件,用户可按自己的需求用鼠标点取相应的界面构件,并可对其进行任意配置,直到满意为止。c.管理器编辑器管理器编辑器提供了各种界面管理器构件,这些构件有的可以管理一个后代,有的可以管理若干个后代,用户可按自己对界面总体的要求需求用鼠标点取合适的界面管理器构件,并可对其资源进行任意配置,直到满意为止。图4-1FITOOL结构图d.菜单编辑器菜单编辑器可以单独进行使用,用户可以创建下拉式菜单,选项式菜单,弹出式菜单,菜单可以是文字式,图符式或图符文字混合式。e.对话框编辑器对话框编辑器提供了各种对话形式,用户可按要求自行创建和配置。f.资源修改模块资源修改模块可单独运行以对所产生的界面的任何部分进行资源的重新配置。g.界面浏览器;界面浏览器可以浏览用户已有的界面(文件),并可以重用之。h.界面/应用对话编辑器界面/应用对话编辑器用来定义用户界面与应用程序之间的数据的传递及动作的响应。i.源代码生成器源代码生成器用于生成用户界面源程序(包括C文件和UIL件).j.中英文文本编辑器中英文文本编辑器可进行任何文字编辑操作。k.编译与连接模块。编译与连接模块用于编译并连接用户界面源程序生成执行文件。4.3系统功能使用本文描述的工具,界面设计人员不需要专门掌握一种用户界面描述语言,而是通过界面编辑器来直接操纵屏幕上的可视对象,生成和修改用户界面原型,并能将结果立即显示在屏幕上,达到"所见即所得(WYSIWYW)"的效果。使用FITOOL,用户可以任意布置自己的用户界面,并最后得到相应的用户界面及其源程序,并可以和应用程序进行联编,最后形成可用的执行文件。使用FITOOL,用户需做如下工作:(1).描述,即理解应用程序,确定用户界面外观和交互行为.a.确定所需的用户界面构件:按照最终用户界面的外观和功能进行界面布局描述和设计,这部分工作可以在稿纸上完成,并列出所需要的界面构件名称及最终的配置。b.确定界面的层次关系:有了界面的布局,启动FITOOL,运行相应模块按步骤创建用户界面。c.确定界面与应用程序的对话结构:按应用程序对界面响应的要求,定义应用与用户界面之间的数据传递及相应的对话框。(2)构造用户界面a.运行窗口编辑器,创建并管理各种初始化窗口。用户若要创建界面必须先运行此模块,这既是初始化界面结构也是初始化管理内部数据结构的链表。b.管理器编辑器提供了各种界面管理器构件,这些构件有的可以管理一个后代,有的可以管理若干个后代,用户可按自己对界面总体的要求需求用鼠标点取合适的界面管理器构件,并可对其资源进行任意配置,直到满意为止。c.原始构件编辑器提供了各种界面构件,用户可按自己的需求用鼠标点取相应的界面构件,并可对其进行任意配置,直到满意为止。d.菜单编辑器可以单独进行使用,用户可以创建下拉式菜单,选项式菜单,弹出式菜单,菜单可以是文字式,图符式或图符文字混合式。e.对话框编辑器提供了各种对话形式,用户可按要求自行创建和配置。f.资源修改模块可单独运行以对所产生的界面的任何部分进行资源的重新配置。g.界面浏览器可以浏览用户已有的界面(文件),并可以重用之。h.界面/应用对话编辑器用来定义用户界面与应用程序之间的数据的传递及动作的响应。i.源代码生成器用于生成用户界面源程序(包括C文件和UIL文件)。j.中英文文本编辑器可进行任何文字编辑操作。例如:编辑任何程序语言的源程序或任何中英文文本文件。k.编译与连接模块用于编译并连接用户界面源程序生成执行文件。因此用户可按事先确定的界面层次关系,用鼠标选取相应的界面构件,并定制相应的资源,可随时对字体和颜色进行修改以满足自己的要求,最后组装成自己的界面。并可得到相应的源程序(*.c、*.h、*.uil),经编译后得到对应的目标文件(*.o、*.uid),和应用程序对应的目标文件(*.o)进行连接后可得到相应的执行文件。(3〕测试用户界面.将生成的源程序与应用程序的目标文件经连接后生成可执行文件,经运行如发现不合要求,可进行相应的修改,直到满足要求。最后生成最终用户界面(包括永久对象和临时对象)和源程序。4.4系统实现系统的实现采用C++、C语言、Motif及其用户界面语言uil混合编写而成。Motif基于X—Windows的Xt工具箱(XtIntrinsics),是一个用C语言实现、支持面向对象体系的程序库;C++则是由C语言发展而来,但它直接提供面向对象式的编程方法。Motif内部使用的面向对象式体系对Motif的应用程序来说不会有丝毫的影响,因为它提供面向函数的接口,调用程序对Motif及XtIntrinsics内部实现的细节不必深究。因此从表面上看,Motif和其他C语言库没有任何区别。C++的设计允许程序员轻易地使用象Motif这样的C语言库。C++还为面向对象设计方法和系统软件设计方法的结合提供了简易的方法,它使得程序在受益于面向对象技术的同时不失掉C的高效性,更不必重新设计象X和Motif这样的标准C库函数。(1)OSF/Motif与C++混合编程用C++的面向对象的特性进行程序设计,并假设程序中的类代表令人感兴趣的体系结构单元。用C++类封装widget集合以创建一用户界面组成部件的类,将Motifwi-dget作为基本单元来构造它们的界面。一个组成部件不仅封装了一个widget集合,而且定义了整个组成部件的行为。1)创建用户界面组成部件用C++类封装widget集合以创建用户界面组成部件的技术。即使用C++创建高一级的、将一个或多个widget组合成一个逻辑群的用户界面组成部件。这样做的目的是不用分离的类替换widget,而是用基本的Motifwidget,将一个应用程序及其界面的关键组成部件作为类实现。这样的话,Motif本身是否是面向对象的并不重要,C++程序员可以直接调用Xt和Motif的函数来创建基本的Motifwidget。使用C++类组合一组widget以创建更复杂的用户界面组成部件。并且在一个C++类中,可以创建widget,并指定其资源和赋值回调等。这样,一个C++类不仅封装一个widget集合,而且定义了整个组成部件的行为。其意图是不仅仅用一个类替换一个widget集合,而是创建一个应用程序所要求的基本类,其中某些类使用widget实现一用户界面组成部件。虚拟与回调(作为静态成员函数实现)的组合提供了创建抽象用户界面组成部件的一种方法.基类可以由组成部件支持的widget,以及整体布局,而将组成部件的具体行为留给派生类。2)用户界面组成部件的协议定义一个简单的协议,即使所有用户界面组成部件能保证在不同组成部件之间的一致性,并且使不同的组成部件很容易地在一起工作。●组成部件在类的构造函数中创建一个或多个widget。通常情况下,回调与其它创建也在构造函数中处理,每个组成部件创建一个单独的widget,是为基widget。使它作为类所表示的widget树的根,其它所有widget都是它的孩子。●组成部件将一个widget作为构造函数中的一个参数。该widget作为该组成部件的基widget的父亲。●组成部件将它创建的widget子树的根赋给一个保护的实例变量.●组成部件将一个字符串作为构造函数的一个参数。●每个组成部件类提供一访问方式,用来查询子树的根widget。然而一个组成部件类的目标是封装一个widget的单独逻辑集合的行为,偶尔需要类公开widget树的根widget。●组成部件类允许widget子树由类封装,以进行处理或不处理。组成部件就作为一个逻辑群处理,并且只有widget子树的根被处理或不处理。其它widget应在创建时在构造函数中被处理,而此时不处理根widget。●组成部件处理其widget树中widget的析构函数.当一个对象被清除时,它所封装的widget也应被清除。3)基类的定义与实现BasicComponent类BasicComponent类实现一些对所有组成部件类都有用的基本特性。UIComponent类UIComponent类是由BasicComponent类派生得到的,但增加了处理widget析构,并且使用资源管理程序定做和初始化类。(2)Motif与C++类混合编程的应用框架创建一个应用框架用来定义一个应用程序的总体结构。和其它框架一样,类和框架配合的好要比任何一个类的函数性要重要的多。框架的本意是依靠获取应用程序的共同元素来简化编写Motif应用程序的任务。尽管Xt和Motif提供一个比Xlib更高层的的接口,但是绝大多数的Motif和Xt应用程序仍然包括数量惊人的重复代码。例如所有的Motif应用程序必须初始化XtIntrinsics,打开和X服务器的联系,进入事件循环,以及其它等等。对每一个应用程序来说,复制实现这些步骤的代码是没有什么理由的。我们可以把这些步骤放在一个类中,其他的应用程序就可以复用它。我们也可能抽取典型的Motif应用程序的控制结构部分,尽管许多特殊的细节在不同的应用程序间是有差别的。Motif应用程序所共有的一些特点:●初始化XtIntrinsics;●打开和X服务器的联系;●创建一个Shellwidget作为其它widget的父亲;●创建一个或一个以上widget定义用户界面;●进入事件循环来处理事件。大部分Motif应用程序中main()主体是非常类似的。绝大多数程序都执行上面的步骤,而很少有不同的。实际上,如果我们忽略不同的应用程序间的细小差别,我们可看到几乎每一个Xt应用程序都包含相同的语言并且遵循相同的形式。程序和程序之间,重复地为每个程序打开这些语句是一个时间上的浪费。一个功能更强的方法是抽取一个应用程序的骨架,放在一个类中。应用程序可以通过实例化这个类,或者创建一个从这个类派生出来的新类来复用公共的代码段。使用一个类来获取应用程序的共同特点比拷贝上面显示的样板有几个优点。首先,一旦程序设计者作了一份样板的拷贝,他或她就丧失了跟踪原始代码的能力。然而,那些仅是简单地实例化一个封装这个代码的对象的程序,可以从修改错误和改进中获益,因为它们只需要与一个修改过的版本重新连接。基于面向对象理论的应用程序可以通过派生出一个新类修改已生成代码的行为。因为改变只是对一个派生类做的,而对原始类未作改动,所以要复原至最初的行为就容易得多了。确定任何在发展过程中带入的新错误完全包容在新代码中,也变得容易多了。Application类:Application类处理初始化和所有基于Xt的应用程序通用的事件处理步骤。Motif应用程序只是简单地实例化一个Application对象,而不是调用类似XtAppInitialize()或XtAppMainLoop()的Xt函数。程序可以从Application类中派生出新类也可以直接实例化。Application类在构造函数中不创建任何widget。Application类为在整个应用程序中都可能需要的一些数据提供存储的空间。框架支持应用程序的多顶层窗口。一个方法是创建一个唯一的顶层的窗口作为应用程序的主窗口。所有其它的窗口都是弹出Shell,它们的父亲是那个主窗口。另一种方法是创建一个唯一的Shell,它永远不出现在屏幕上.所有其它的窗口必须是这个主Shell的弹出儿子.在这个模型中,所有顶层窗口等价对待,彼此间是兄弟关系,一个窗口逻辑上可以是应用程序的顶层窗口。可以定义一个MainWindow类以提供应用程序中顶层窗口的基本屏幕布置。基于这个框架的应用程序不必定义main()。函数main()定义框架的一部分,并且管理调用Application::initialize()成员函数以及进入事件循环。隐藏main()允许框架管理比所有应用程序必须执行的例程初始化更多的事情,即每一个程序都是Application类的一个实例。应用程序的创建就是简单地由实例化一个Application对象完成的。对话类:为了一些特殊意图,在屏幕上现实相对时间较短的对话窗口,是许多交互式应用程序的一个共同特点。管理带有许多输入,控制或者选项的应用程序的一种方法是把用户界面中不常使用的部分放在几个分开的对话窗口中,只有当需要时才显示,对话窗口可以有几种不同的使用方法。对话类依赖Application类,因为对话需要一个父widget。因此要强迫应用程序传送一个widget给post()方法作为父亲使用,但是允许有不同的父亲。为了不使高速缓存复杂化,这里使用Application类的Shellwidget以保证所有的对话有相同的父亲,在屏幕上集中了对话。命令类:在交互式应用程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025技术转让合同
- 信息素养考试试题及答案
- 公务员面试题解读及答案
- 2025西山煤电井下岗位高校毕业生招聘500人(山西)笔试参考题库附带答案详解
- 2025辽宁省能源产业控股集团所属抚矿集团招聘90人笔试参考题库附带答案详解
- 2025福建福州左连房地产开发有限公司项目建设合同制人员招聘34人笔试参考题库附带答案详解
- 2025湖南永州市潇湘兴业集团公司选聘急需紧缺专业人才25人笔试参考题库附带答案详解
- 2025-2030不粘锅产业规划专项研究报告
- 2025建筑项目劳动合同范本
- 2025浙江温州市公用事业发展集团有限公司招聘54人(第一批)笔试参考题库附带答案详解
- 高中数学不等式教学中的认知障碍诊断与干预机制研究
- 宁夏低空经济发展现状与策略实施路径探索
- 2024年西安市曲江第三中学行政人员及教师招聘考试真题
- 《化学键的断裂与形成》课件
- 2025年江苏泰州市泰兴经济开发区国有企业招聘笔试参考题库含答案解析
- 2025年山东省济南中考一模英语试题(含答案)
- 广西《健康体检重要异常结果管理规范》(材料)
- 2025-2030中国藜麦行业市场发展趋势与前景展望战略研究报告
- 驾培行业营销方案
- 学校校服定制合同协议
- 慢性肾脏病患者管理及一体化治疗
评论
0/150
提交评论