● 摘要
近年来,企业的业务越来越灵活,而软件技术虽然发展迅速,但是面对灵活多变的业务需求,往往难以应付。这是因为软件是由软件开发人员来设计,而需求是由软件的最终用户,即企业业务人员来提供,软件开发人员需要和业务人员沟通才能理解需求,设计出符合需求的软件。而需求也在不断发生变化,软件开发人员和业务人员就需要不断沟通,协商需求。这样,一方面,需求的沟通需要一定的时间,由于需求变化所引起的反复沟通则需要更多的时间;另一方面,需求沟通过程中由于双方对需求理解的不同,往往容易产生需求和软件设计不一致的情况。这两方面的原因就造成了软件开发不能满足业务发展的需要。那么,如何解决软件开发人员和业务人员之间的需求“障碍”,就成为一个研究的重点。一种思路就是让熟悉需求的业务人员直接“编程”,即屏蔽软件开发的技术细节,让业务人员能够直接从业务角度透明的使用和配置服务资源,按需即时构造应用,而软件开发人员则致力于基础技术平台和构件资源的构建,不再需要过多的考虑繁杂的业务需求。这种把以技术为中心的软件开发转移到以业务为中心的软件开发的新的软件开发模式,一般称为业务端编程或最终用户编程。业务端编程的一个主要的技术支撑就是面向服务的软件体系结构[1-3] (Service-Oriented Architecture,简称SOA)的相关技术。为了能让业务用户通过配置服务资源即时的构建应用,首先要向用户提供大量可用的服务资源,而这些服务资源的实现要依赖于SOA。同时SOA可以将已有业务应用资源统一以服务的形式呈现给业务用户,为业务端编程提供了良好的支持。本文使用业务过程建模和面向服务的方法学,依赖通过收集Web服务和其它类型的构件建立起来的虚拟构件库,使得企业业务过程建模过程中定义的业务功能可以自动转化为可以实际运行的应用,无须从头开始开发应用,从而达到业务端编程目的。由于缩短了构建应用的周期,使得需求可以及时得到验证,并能及时反馈需求的变化,软件开发效率大大提高。主要研究内容和创新性贡献包括如下几个方面:1、 提出一种最终用户编程语言。由于最终用户以业务过程建模的方式进行编程,所以在本文范围内,最终用户编程语言又称为面向最终用户编程的业务过程建模语言。具体包括提出最终用户编程语言,该语言的元模型及其形式化模型。最终用户编程语言是最终用户直接使用的语言,具有可视化,拖拽式,易于使用等特点,为最终用户编程提供了编程语言支持。与其他语言相比,该语言具有面向服务、支持业务过程协作、互操作和过程复用机制,并且支持可视化图符定制和元模型扩展,由该语言建立的业务过程模型可以经过实例化转化为实际可执行业务应用。2、 提出支持最终用户编程的业务服务推荐系统,在此基础上提出了最终用户编程方法。以业务应用执行日志为基本数据,基于贝叶斯网络[4] 建立业务服务推荐系统,用于在编程过程中指导没有编程经验的最终用户进行编程。最终用户以业务过程建模的方式,借助于推荐系统的帮助,完成业务过程模型的构造,并最终实例化为业务应用,达到即时软件开发的目标,即业务端编程的目标。3、 提出了一种基于WordNet[5]本体标注和概率潜在语义分析[6](Probabilistic Latent Semantic Analysis,简称PLSA) 技术的服务匹配方法OntoPLSA,将业务层面的活动自动映射到技术层面的构件资源,从而将业务过程模型自动转化为可执行的业务应用。将业务过程模型自动转化为可执行的业务应用,可以有效的减少开发人员的工作量,提高开发效率,同时还可以减少人为失误,为快速构建应用系统和应对需求变更提供了保障,是整个业务端编程的关键所在。本文提出了一种基于WordNet本体标注和PLSA的服务匹配方法OntoPLSA,通过将业务活动自动匹配到具体的技术构件,使得业务过程模型转化为能够实际执行的业务应用。4、 实现了一个业务端编程支持工具VBPT(Visual Business End Programming Tool)。实现了一个支持业务端编程方法的支持工具。包括业务过程模型构建工具,业务服务推荐系统、服务匹配和虚拟构件库等模块。业务端编程工具的实现使得本文的业务端编程理论得到了实践和证明。并为业务端编程的实用化提供了有价值的参考。