最终用户开发(End-user development ,EUD)是
计算机科学和人机交互领域的一个研究课题,使最终用户能够描述计算机编程中的活动或技术。非计算机专业开发人员可以使用EUD工具来创建或修改软件构件(描述的自动化的行为)和复杂的数据对象而无需具备某种编程语言的特定知识。最流行的EUD工具是电子表格。
定义
围绕最终用户开发的早期尝试表现在利用添加简单的脚本编程语言以扩展和适应现有的应用程序,如办公系统套件。
近期的研究尝试使编程更接近最终用户的需要。例如使用案例进行程序设计(Programmingby example,PbE)减少了用户学习的经典编程语言中的抽象概念。另外,一些新的软件工具(如RAPTOR)的引进,用户可以创建问题求解所需的一些基本算法,并将其转换成为可行的应用程序。
有两个基本的原因使得EUD流行开来,其一是因为企业正面临着拖延的项目和使用EUD能有效地完成项目的时间缩短。第二个原因是,软件开发工具功能更强大,更易于使用。
Lieberman等人。提出了如下的定义:
最终用户开发可以被定义为一组方法,技术和工具,使非专业的软件开发人员用户在软件系统应用中,可以在某些点上来创建,修改或扩展软件的组件。
这些组建可能是由最终用户定义的对象,描述了一些自动化的行为或控制序列,如数据库请求或语法规则,其编程范式,可以是通过演示编程(programming by demonstration)、案例编程(programming with examples),可视化编程(visual programming),或宏制作(macro generation);其它用户也可以选择备选的参数来预定应用程序的行为。
案例
使用面向最终用户的工具和方法创建的3D模型(如Sketchup);
图形艺术家使用动画脚本来描述角色、环境和如何使用移动角色的来产生动画;
配置文件使得程序和数据之间的界线变得模糊(例如的,电子邮件过滤器列表的标准和动作执行的顺序)
参与开源项目的软件包的开发,用户贡献的代码包含在主程序包中- 在某些情况下,最终用户参与全面的开发
最近的许多游戏都发布着游戏的修改,引入用户自己定义的角色,环境等
在客户关系关系系统中呼叫中心的交互脚本
工作流应用程序中使用的过程模型
由企业家、工程师和科学家编写的原型系统和特定领域中的演示或测试具体的理论程序
在计算机模拟的科学模型
自动化办公生产力套件和图形应用程序的扩展脚本或/和宏(macros)。
使用应用程序定义的软件创建的模拟
电子表格模型,例如,用于预算或风险分析
可视化编程,,如RAPTOR、AgentSheets,LabVIEW或LEGO MINDSTORMS的视觉语言的形式。
网页- 纯HTML或HTML和脚本
维基- 最终用户协作开发过程