终端用户开发中的人机交互技术研究

2013-08-15 00:45
长春教育学院学报 2013年2期
关键词:终端用户用户界面编程语言

王 喆

终端用户开发中的人机交互技术研究

王 喆

终端用户开发EUD(End-User Development)是一个新兴的多学科交叉领域,其目的是帮助普通用户开发满足自己需要的软件,以满足常规开发时难以预见的用户需求。人机交互是终端用户开发中的关键技术。本文总结了终端用户开发中的人机交互技术,并结合实例进行了阐述。实践证明,理想的终端用户软件工具是缓坡系统。

终端用户开发;人机交互;用户界面;编程心理学;可视化编程

王喆/辽宁铁道职业技术学院技术教育中心主任,讲师(辽宁锦州121000)。

在常规软件开发中,开发人员实现系统的所有功能,用户的需要、目标和情境上下文只能在设计时预定。在投入使用时用户经常发现系统并不适合他们的任务,这要求开发人员修改现有的系统,反复的修改系统会造成资源的巨大浪费,而且仍然无法解决使用时难以预见的问题。为解决使用时这种难以预见的问题和尽量满足不同用户的需要,软件开发者将很少有人用到的功能都加入到程序中,但仍然无法完全解决使用时的问题。如果每个用户能增加他们自己想要的功能,程序将变得非常简单,因此需要发展终端用户编程。当软件产品和Internet变得无处不在之时,就更需要发展终端用户编程。据卡耐基-梅隆大学的Brad Myers预测,到2012年就有9000万终端用户开发者,而职业编程者只有300万,终端用户开发研究的重要性已经相当明显。终端用户开发不仅在个性化计算机应用程序和书写程序中使用,而且还能在从未看到底层编码的情况下设计新的计算机程序。

终端用户是指在日常生活或工作中为满足某种需要而使用计算机应用软件的人,但软件开发并不是他们的主要工作。终端用户开发从字面上看,是普通用户开发满足自己需要的软件;而从技术角度看,终端用户开发定义为终端用户制造应用软件的方法和技术的集合。EUD是一个学科间问题,它涉及人机交互HCI(Human-Computer Interaction)、软件工程、认知科学、经济问题、终端用户的组织影响等,但从终端用户及EUD的定义来看,终端用户开发问题主要是用户界面与人机交互问题。本文主要阐述EUD中的人机交互技术及其应用。

一、EUD中的人机交互技术

终端用户开发人员是普通用户而不是程序员,他们既没有时间也不愿意学习,所以终端用户软件工具必须在易用和强大之间作合理妥协,需要充分利用人机交互技术并把它应用于终端用户开发中。

(一)编程语言设计的心理学指导

编程的一种定义是将自然语言作为表达方式的心理计划转换成计算机可执行代码的处理过程。编程语言越接近编程者的心理计划,转化处理就越容易。传统的编程语言要求编程者在任务和代码之间做巨大的转换。如果计算机语言能够让人们以自然的表达方法表达数据和算法,这种转换的困难将大大减小。理想的编程语言应能够直接映射到算法设计者或编程者的思维方式。

早在1985年,编程语言研究强调技术方面而忽略了心理学方面。正是从那时起,编程心理学PoP(Psychology of Programming)及相关领域取得了很大进步,但是一直独立于技术研究,新语言仍然产生于技术需求。如果PoP研究要对新语言的设计产生影响,对技术人员来说,它必须是可见的,并且是易用的形式。而从目前来看,指导语言设计决策的标准一直基于技术目标,忽略了HCI和PoP的技术与标准,而它们本应包含在语言设计的指导和策略中。

HCI领域有很多通用原则和启发性规则可以应用到编程系统设计中,如保持一致性、尽量简单、使用用户语言、预防错误、帮助用户编程。[4]认知元框架(cognitive-dimensions framework)为评估编程系统提供了一种具体的指导,如相容性、扩散性、隐藏依赖、过早提交和可视性,然而这些元不是相互独立的,一次性优化它们是困难的。

(二)终端用户编程环境中的HCI技术

编程环境帮助用户构建程序的思想有着悠久的历史。自从Cornell程序合成器出现以来,语法指导的编辑器一直用来帮助排除语法错误,当然也有许多改进。如:Visual Basic通过上下文相关的弹出式菜单来插入格式化代码,但不限制用户录入什么;Alice中所有的编程都是通过拖拽语句来完成,并使用弹出式菜单来制定参数,只允许输入语法正确的语句。

调试也是使编程环境有效易用的关键部分。目前,虽然有许多工具可以帮助调试,但是Keheo,Stasko和Taylor的研究表明,这些工具对于终端用户来讲都不是特别有帮助。在1997年4月,ACM提供了一个专版来交流调试的新思想、新工具,但是其中提到的调试工具至今没有一个得到广泛使用的。

WYSIWYT(What You See IsWhat You Test)是美国俄勒冈州立大学提出一种终端用户测试方法,该方法利用可视的方法来让用户更清晰了解系统内部测试过程,使用户更容易找出问题所在。该方法目前应用于基于spreadsheet的终端用户开发中,允许用户增量编辑、测试和调试公式。经验表明,WYSIWY方法对用户是有帮助的。但是,即使使用了辅助可视化方法,在作了一些测试以后,有时用户仍然很难想出合适值来揭开这种未测试关系,所以引入了HMT(Helpme test)特征。HMT寻找合适测试值的努力对用户来说是透明的,也就是说,用户能看到寻找过的值。经验表明,行为透明增加了HMT的可理解性。在WYSIWYT中也有断言(asser-tions)特征,其主要目的是防止输入错误值。经验表明,在测试时使用断言比不使用断言更有效。

从HCI角度,充分考虑终端用户编程环境的易用性有助于降低用户的学习成本,减轻学习负担,减少用户的调试时间和纠错时间,使用户不再把编程看成是负担,同时也会增加用户的满意度。另外,终端用户编程环境还应能随着目标世界或需求的变化而作适应性演化,以用户能理解的方式解释构建系统中出现的各种问题。

二、人机交互技术应用

上面这些技术在EUD工具的开发中得到了广泛的应用。HANDS(Human-centered Advances for Novice Development of Software)是为儿童开发的自然编程系统。HANDS语言接近于儿童语言,儿童学会在学会编程前就能利用HANDS解决问题。此系统充分利用了儿童的思维模型和语言结构。

Alice是快速虚拟现实原型构建系统。它支持交互式3D图形编程,利用人素(human factor)经验研究与HCI技术在一定程度上克服了学生学习计算机编程的困难。主要体现在:一是学生直接在界面上拖拽命令,而非依据模糊语法规则来输入,从而保证编程格式的正确性。二是通过提供动画、3D虚拟对象使面向对象的编程具体化,通过讲故事使得编程容易学习、令人感兴趣。

Forms/3是声明型、基于spreadsheet的可视化编程语言,支持可视化数据抽象特征,采用声明性方法支持事件相关的编程。在使用Forms/3时,编程者能通过直接操纵的方式建立单元格,然后定义单元格间的各种规则。

Peridot是图形用户界面的生成工具,它采用可视化编程、示范编程、约束、推理等技术来帮助普通用户建立用户界面。当设计用户界面时,终端用户利用可视化编程技术直接建立图形化用户界面,Peridot利用示范编程从样例中推断出对象间的约束关系并生成相应程序代码。

Garnet是基于X/11 Lisp的综合用户界面开发环境,能帮助用户制造图形化、高交互、直接操纵的用户界面。不需要常规编程就能生成用户界面的所有方面是Garnet项目的重要目标之一。Garnet还允许用户画样例图来展示用户界面的外观,然后论证用户界面对终端用户输入的响应。示范技术在Garnet的各种高层工具中广泛使用。

三、思考

最近,EUD开始应用到可定制和可扩展应用程序中。然而,很少有人剪裁Office产品和best-of-breed应用程序。企业资源计划ERP(Enterprise Resource Planning)和基于组件的解决方案也不容易使用,只有专家才能利用它建立应用程序。EUD要摆脱这种困境,那么与EUD相关的技术必须取得进步,更易用的编程语言将是解决这些问题的关键。

为解决广泛的问题,C++、Java等通用语言必须具有柔韧性,但柔韧性带来了复杂性,导致用户的学习曲线陡直上升。如果EUD要降低学习负担,需要跨越设计、选择、协作、使用、理解和信息六种与学习编程相关的障碍。

在用户界面方面,目前正处于无所不在的Post-WIMP时代,笔式用户界面、多通道用户界面、语音界面开始进入应用阶段,如果把这些用户界面技术应用到终端用户环境中去,必然使编程用户界面更加易用,从而大幅度改善终端用户的开发能力。

总之,人机交互技术是当今终端用户开发的主要支撑,理想的终端用户软件工具是缓坡系统,用户不必先学习大量的新技术、新概念就能开始使用它,利用它开发软件的难度应随开发范围、灵活性呈阶梯式增加。

四、结论

人机交互技术是终端用户开发的主流关键技术。本文首先阐述了当前终端用户开发中的主要人机交互技术,然后探讨了它们在终端用户软件工具的应用。实践证明,它们提高了终端用户软件工具的可用性,最后探讨了终端用户开发中面临的人机交互问题。

[1]Christopher Scaffidi,Mary Shaw,and Brad Myers.An Approach for Categorizing End User Programmers to Guide Software Engineering Research.Proceedings of the ACM Symposium on End-User Software Engineering.Missouri,USA,May 2005,1-5

[2]Cypher,A.Watch What IDo:Programming by Demonstration.The MITPress,Cambridge,1993

[3]Hoc,J.-M.And Nguyen-Xuan,A.,Language Semantics,Mental Models and Analogy,in Psychology of Programming,J.-M.Hoc,et al.,Editors.Academic Press.London.1990,139-156

[4]Pane,JF and Myers,BA.The influence of the psychology of programmingon language design:Project status report,in AF Blackwell and E.Bilotta (eds.)Proceedings of PPIG 12,Cozenza Italy,2000,193-208

[5]Green,T.R.G.and Petre,M.Usability analysis of visual programming environments:a‘cognitive dimensions’framework.Journal of Visual Languages and Computing,1996,7(2):131-174

TP32

A

1671-6531(2013)01-0131-02

郭一鹤

猜你喜欢
终端用户用户界面编程语言
基于JavaScript编程语言之 闭包技术在焦点轮播上的应用
基于CiteSpace的国外用户界面体验图谱量化分析
Java编程语言的特点与应用
物联网用户界面如何工作
浅谈不同编程语言对计算机软件开发的影响
UI用户界面色彩设计研究
组播环境下IPTV快速频道切换方法
面向对象Web开发编程语言的的评估方法
一种基于负载平衡的网络接入选择方法*
基于B/S的跨平台用户界面可配置算法研究