UIMS的基本思想是:用户的应用程序可以被认为是应用程序设计人员要完成的许多任务(task)。而要完成每一个任务都要若干个动作(action),如掀键盘上的键、按功能键、按鼠标键等。用户每做这一动作,我们称之为事件(event)。为了使用户能够明确地指定要从事哪一个任务,我们将这些任务列表于屏幕上,供用户选择,这个屏幕上的列表选择项称为菜单(menu)。由于一项菜单一般是与一项任务联系起来的,亦把一个菜单称为一个任务。称之为菜单时,强调它在屏幕上的显示;称之为任务时,强调它与应用函数的联系。由于任务的性质和内容不定,事件的发生亦是随机的。所以,UIMS用任务与事件的名称就抽象地概括了人机界面的设计规律,从而是通用的。
UIMS可以有两种程序进程控制方式,设计人员可采用某一种,亦可以兼而有之,由应用程序设计人员自己决定。这两种控制方式是:UIMS控制方式和程序控制方式。对于UIMS控制方式,只要程序设计员将应用函数与任务联系起来,UIMS一旦选择了此项任务,就会自动执行应用函数。2
UIMS的一个很重要的功能就是实现界面的对话结构(或称对话语法)。UIMS分析用户的操作,调用适当的应用程序,显示该应用程序的输出,并随时显示该应用程序可用的用户界面选择项。正如其名字所指的那样,UIMS由设计师定义,由程序员实现,用于管理用户界面。
UIMS通常采用软件工具箱的形式,该软件工具箱中带有程序员可调用的各种函数。UIMS通常适用于一种特定的语言,并经常只适合于在一种或一类计算机系统上使用。UIMS的典型问题之一就是较强的系统依赖性,未来的UIMS将向系统设计师提供一系列扩展的支持功能,包括提供一个带有各种非常有效的小器具的扩展的小器具工具盒,把图形生成支持功能改进到远远超过GKS标准、支持更一般的剪裁、搬移和UNDO操作,提供上下文有关的帮助,拥有维护用户概貌并修整用户界面的显示以满足用户要求的能力。3
用户界面管理系统由两部分组成。其一是构造用户界面的工具集,称为用户界面开发环境或设计环境(UIDE),其二是用户界面运行支持系统,称为用户界面系统(UIS),它与应用系统的功能核心共同组成该应用系统。4
发展历史W.Newman在1968年建立的“反馈处理器”是最早的UIMS。但UIMS作为专门术语是D.J.Kasik在1982年首次提出的。早期UIMS的功能仅限于原型构造或显示管理,可用性较差。1982年召开的图形输入交互技术(GIlT)研讨会首次阐述了UIMS的概念、作用及结构模型等,此后UIMS有较快发展,出现了TIGER,GWUIMS,Alberta UIMS等实验系统。80年代中后期出现了一些商品化UIMS,我国也研制了一些突验性系统。4
早期的界面工具是一种界面或原型的构造工具,也包括一些“应用生成器”。 它们给程序员提供设计辅助工具,具有有限的功能,产生的界面往往用BNF形式的语言描述,从可用性来讲比较差。 这类工具如Hanau及Lenorovitz研制的IDS,Mason及Carey研制的ACT/1,Wong及Reid研制的FLAIR等。
1982年在图形输入交互技术(Graphical Input Interaction Technique,GILT)的研讨会上,进一步阐明了用户界面管理系统的概念,确定了它的作用、类型和逻辑模型。在这以后,用户界面管理系统有很大发展,其中若干系统有一定代表性,如Kasik的TIGER,Buxton的MENULAY,Kamran的Abstract Interaction Handler,以及后来的GWUIMS,Ehrich等的DMS,Olsen等的SYNG(Syntax directed Graphics)及MIKE(Menu Interaction Kontrol Environment),Wasserman等的RAPID/USE,Apollo公司的Domain/Dialogue Manager,Granor等的GUIDE(Graphical User Interface Development Environment),Enter/Act及SmethersBarnes Prototyper,等等商用产品。其他还有Rubel的BLOX,Hayes的COUSIN(Cooperative User Interface),Hill的Sassafras及M.Green的University ofAlberta UIMS等。
这一时期的用户界面管理系统不仅在最终用户、非程序员使用的界面开发上有很大进展,而且在异步对话、事件模型、支持直接操作等技术方面有很多成果。但总的来看,用户界面管理系统在应用方面还没有很大突破,人们还不能十分容易地生成界面,这里原因之一是因为用户界面的复杂性及现有工具尚难使用。
1986年在西雅图举行的“用户界面管理软件工具”研讨会上哺",对用户界面管理系统的研究进行了回顾,并进一步深入探讨了若干新问题。随着X窗口系统及面向对象技术的广泛重视和推广,基于图形交互方式、采用面向对象技术的用户界面管理系统开始出现,这类系统如GWUIMS,NEXT公司的Interface Builder及SUN公司的Openwindows Developer’S Guide等。国内也已开展这方面的研制工作,这些系统中不少是基于窗口系统的对象类上开发的,往往不采用语言的描述方法生成界面,而选用交互对话直接操作而生成图形用户界面,因而可减轻界面开发人员的工作量。1
模型这里讨论的模型是指一个用户界面管理系统的结构模型或框架,而不是指界面的表示模型。随着用户界面管理系统的发展,其模型也有很多改进,下面对一些主要模型作几点说明。
(1)GlIT模型
在GIlT(Graphical Input Interaction Technique)工作小组的报告中,对用户界面管理系统的模型作了说明,它指出UIMS的角色是在最终用户和应用程序之间进行协调,并说明了UIMS应着重于图形支持方面。该报告指出,在GIIT会议上及1980年SeillacII会议上讨论的最合适的交互系统模型分为三个部分:一为应用程序,二为用户界面管理器,三为图形系统。在这个模型中,并未出现最终用户的连接。对于界面的实现,该模型采用一个“用户界面管理器”来接受并存储界面的表示。
GIIT模型说明,人机界面管理系统(称之为界面管理器)是建立在图形系统之上的。但该模型在若干重要1司题上并未说明,例如用户界面管理器是否处理所有的图形输入和输出,语法和词法反馈怎样产生,用户界面管理器能见到多少应用程序,能否直接修改应用程序的数据等。
(2)Seeheim模型
Seeheim模型是体现分离用户界面和应用功能设计思想的UIMS模型的最早和最知名的模型。Seeheim模型是在德国Seeheim举行的国际用户界面管理系统研讨会上提出的。该模型基于对话独立性概念,即会话与应用通过一个控制单元实现松散耦合来实现其联系,这一控制单元定义了对话和应用间的关系,传输运行时标记的往来。5
Seeheim模型,它把用户界面管理系统分成三部分:表示部件、对话控制及应用接口。该模型基于对话独立性原则,并体现了最终用户的位置。它只是用户界面的一个“执行”模型,并不能反映整个用户界面软件的生存期,而且对于直接操作的图形用户界面的设计不适用,因为它要求一致的、连续的语义反馈。1
(3)Lantz等的参考模型
Lantz等于1987年提出了有关交互软件、窗口系统及并发任务的一种参考模型。该模型仿着重于执行,而不是设计。该模型包含四个主要部分:
1)硬设备。这是指支持应用程序用户界面的输入输出设备,包括显示零、键盘及鼠标器等。
2)工作站接口。工作站接口是硬设备与系统之间的基本接口,它的主要功能是用虚设备来隐藏硬设备的具体细节,同时它也提供对多任务的基本支持。工作站接口只提供一组相对较低级的输入输出原语,而这种原语是与媒体有关的。
3)对话管理部件。对话管理部件负责将来自工作站接口的输入输出原语组织成交互技术,并为各具体应用任务选择特定的交互技术。对话管理部件在用户与应用程序之阆提供实际的对话控制,包括对应用的激发及对其响应的处理。
4)工作站管理部件。工作站管理部件可包含在应用部分这一层内。这是一种层次较高的管部部件,它提供多任务及多设备时工作站管理的策略,处理多道的对话任务,它为设备的共享提供策略,负责各种对话的切换。1
控制结构用户界面管理系统的一个重要作用是将应用程序与它的交互部分分别设计与实现。从应用代码和交互部分的相互关系来看,UIMS的控制结构可分为三种类型:
(1)外部控制型
这是指当用户使用应用系统时,通过用户界面管理系统对输入进行响应,然后根据输入要求来激发应用的各种模块。应用程序本身被编程为分离的功能子模块,当需要时这些功能子模块对于UIMS是可调用的。现有的大多数用户界面管理系统采用这种模式的控制结构。
(2)内部控制型
此时由应用程序负责各软件包之间的控制流向,一旦用户需要时由应用程序发请求以得到各种抽象设备的支持。严格地讲,这种结构是一种用户界面管理工具箱。着认为UIMS必须把对话说明工具与运行时支持环境统一集成的话,这种类似子例程库的工具包不能称为用户界面管理系统。
(3)并行控制型
在这种结构中应用程序与UIMS并行运行,它们及图形系统均在同等层次上,它们之间的通讯与协调是通过具有多任务设施的并发进程来进行的,通过进程间通讯机制来交换信息。1