王涛 邵国强 蔡朝晖
摘要:BPM思想有助于组织机构提升业务运营效率,打通部门隔离及集成既有业务系统,支撑组织机构更好地管理业务流程和IT技术资源,从而在竞争中取得优势。在开发流程驱动型软件时,现有的软件开发方法存在些许不足,该文提出了一种新的基于BPM的PDSD开发方法模型,以期为此类软件的开发提供借鉴和参考。模型主要从IT实现的角度切入,将主要开发过程划分为四个阶段,分别是:代入式流程实践、层次性流程建模、服务化既有系统和组件化软件实现,并通过高校毕设支持系统的开发实现做了示例性说明。
关键词:BPM;PDSD模型;流程驱动;业务管理
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)24-0064-03
Method on Process Driven Software Development Based on BPM
WANG Tao, SHAO Guo-qiang, CAI Zhao-hui
(College of Computer Science and Information Technology, Daqing Normal University, Daqing 163712, China)
Abstract: BPM has the merits of improving the efficiency of organizations business operations, linking different departments, and integrating existing software systems, which helps to better manage the processes and it resources. There are some shortcomings when developing the process driven software using the classical methods. A new method model named PDSD has been proposed to provide some references. This model focuses on the perspective of it implementation, and it divides the development process into four phases, which are immersed experiencing, hierarchical process modeling, publicizing service interface of existing system and component-based software implementation. A demo about the development of graduation project support system is provided to exemplify the usage of PDSD model.
Key words: BPM; PDSD model; process driven; business management
1 概述
在激烈的竞争中,各组织机构的业务运营效率高低对其发展极为关键。然而在不同组织内部,普遍存在着各种异构自治的信息系统,如人事系统、财务系统、ERP系统等。这些系统往往分散在不同的职能部门,支持特定领域的业务运作,但系统间往往并不能互联互通,形成了一个个的信息孤岛。针对此问题,基于业务流程管理BPM思想的解决方案是:以业务流程为中心全面串联组织的运营活动,打通“部门墙”,让流程可以无障碍地连通各系统,并形成驱动整个组织机构运转的动力[1]。
“组织机构运营的过程,实质就是众多流程执行的过程[2]”,如何对组织机构的生产运营活动进行梳理和规划,设计出合理的业务流程,并提供信息化支撑,就成为人们迫切需要解决的问题。而传统开发方法如瀑布式或敏捷式开发在应用到流程驱动型软件时,往往并不能深刻反映流程运转的全貌,容易带来需求与实现的脱节或造成开发时间的浪费[3]。为提升对流程驱动型软件开发的支持,ISO组织于2013年底通过了BPMN2.0.2建模和执行标准[4]。依据此标准,各种流程建模工具和业务流程引擎产品涌现[5-7],建模工具辅助业务人员和开发人员进行流程方面需求和设计的沟通,流程引擎则封装了驱动业务活动流转的逻辑和Web服务集成的逻辑。如何整合现有的软件开发思想、方法、过程和工具,本文将结合基于BPM的高校毕设支持系统的研发,为流程驱动型软件的开发提供一种开发思路,并命名为PDSD开发方法。
2 PDSD开发方法模型
该模型主要从IT实现的角度切入,将主要开发周期划分为四个阶段,如图1所示。
2.1 代入式流程实践
需求分析人员化身为办理业务的当事人,亲身实际地从业务流程的起点出发,准备所需材料,参与到具体的工作场景当中。每到一个新的任务办理节点,则由另外的需求人员充当该业务阶段的办理人,在工作人员指导下完成每个业务阶段的活动。通过这种身份代入的方式,熟悉业务,梳理流程,汇总业务流程数据。
在该阶段,要着重关注这几方面的内容:
1)业务链的价值,即该业务流程完成后的产出是否对组织完成其职能有实质性意义,若没有则忽略该流程。
2)业务链所涉及的组织结构,如人员、职位、角色、部门的关系,和用到的既有业务系统功能。
3)业务链中每个具体活动的属性。包括名称、参与者、时间限制、业务数据。
4)业务链中活动与活动间的路由流转规则。包括业务规则、条件判断、并发与否等。
2.2 层次性流程建模
在该阶段由最终用户、需求人员和设计人员一起将调研好的流程模型化。模型化即使用流程建模工具如Activiti Modeler等用图形化符号表征业务实际开展情形。
在初级的层次上,由最终用户和需求人员选用基本的BPMN元素绘制草图,以便于相互间的沟通。该层次绘制的模型图着重在于其描述和分析层面的功能,可以不那么严谨和规范,但整体的流程脉络和走向结构不能有大的偏差。该阶段可以与前一阶段的流程实践部分形成迭代,相互印证。
在高级的层次上,由需求人员和设计人员使用更为具体、承载明确语义的BPMN元素绘制面向执行的业务流程图。该流程图将依据初级层次的草图进行绘制,但更加强调流程执行的细节信息,绘制时需要设置好活动及流转的各种属性。这需要对建模规范有全面的理解和掌握,并能顺利地将需求信息与模型图建立合理完善的对应关系。可以在此模型图基础上搭建快速原型,与最终用户进行协商修改和确认。
2.3 服务化既有系统
对流程图中涉及与原有业务系统产生交互的活动,则需要使用粗粒度服务化的理念去思考和审视,进行异构系统的集成。由流程引擎担当待开发新系统的调度中心,让原有业务系统各司其职,用流程把这些服务串接起来。
新系统搭建采用以服务为导向的架构体系,对既有业务系统进行服务化改造。改造的方式可以采用基于SOA的ESB技术体系,也可以采用更为轻量级的基于REST的API。借助流程引擎发布的Web服务搭建流程中心,实现对流程和各业务系统的统一管理。
2.4 组件化软件实现
对新系统中需要实现的本地业务功能,依据组件化开发原则,按照活动类型分情况处理。若是用户类型的人工活动,则更多地需要注意人与系统的交互体验,以及角色与功能权限的对应关系。若是自动化活动,则更多关注于业务逻辑过程的实现,注重数据结构和算法的设计。活动的流转逻辑,则调用流程引擎的接口实现。
实现业务流程时,同一活动内以及前后活动间运转数据的协调也极为关键。业务数据一般从用户处收集或是从某些业务系统提取,在流程执行时对业务数据进行更新,同时需要设置流程变量以进行整个流程级别的状态保存和结果记录。此外,本地应用与Web服务之间的数据交换也需要进行良好设计。
3 模型的适应场景
BPM思想融合了业务流程管理和IT技术支撑,本文提出的基于BPM的PDSD方法模型拓宽了流程驱动型软件开发的途径,便利了开发中的交流与协作,缩短了开发周期,带来了更好的产品输出和用户满意度。典型的可应用场景特征如:有多角色参与的业务流程,跨部门甚至跨组织的业务流程,有多种异构业务系统需要进行整合集成;而不适用的场景特征有:不涉及多人交互的单任务型需求,纯自动化过程型的业务处理需求等。
4 模型的应用案例
待开发的高校毕设支持系统涉及多种用户角色(学生、教师、学院领导、教务处),需要多部门(学院、教务处)协作才能完成如选题、改题、指导与检查、答辩、优秀论文公示等业务流程,教务处原有业务系统:教务管理系统--主要功能有学生和教师信息管理、成绩管理等,毕业论文管理系统—主要功能有毕业论文的上传、下载等。在此,仅选取其中的选题流程做示例性说明。
通过使用代入式流程实践,可以得出如下需求信息:选题这一流程是毕设过程的必经阶段,有现实意义;涉及人员有学生、教师、系主任,需要用到教务管理系统中的毕设题目备案功能;涉及的活动有教师发布选题和任务书、学生甄选题目、学生提交开题报告、指导教师审阅开题报告、系主任审阅开题报告、教务管理系统进行选题备案。
层次性建模阶段,通过最终用户和需求分析人员协作,绘制的初级层次流程图如图2所示。
经由需求分析人员和设计人员的进一步细化,绘制的高级层次流程图如图3所示。此外还需要在每个活动和流转上进行更多属性的设置,将需求信息更全面地融入到流程图中。
采用BPM平台如Activiti基于服务化理念搭建了流程中心,架构如图4所示,其中需要对教务管理系统毕设题目备案功能进行服务化改造。
基于组件化进行选题流程实现的逻辑如下:业务组件主要有Title题目组件,主要承载教师填写的题目信息数据和处理逻辑;TitleSelection选题组件,主要承载选题结果数据和处理逻辑,以及处理与教务管理系统的Web服务交互逻辑;TitleProcession选题过程组件,主要负责关联业务与流程,承载流程执行过程中的审批意见等信息,并作为流程变量随流程一起流转。
5 结束语
PDSD方法聚焦BPM思想中的IT实现视角,整合了现有软件开发的部分思想,提供了一种新的流程驱动型软件开发的思路。通过应用该方法模型,可以为流程驱动型软件的开发带来指导和便利。未来随着云计算和移动互联网的普及,流程型软件的应用会更加便利化和贴近生活化。依托云服务平台的流程中心会提供后端高可靠易拓展的强大支持能力,客户端的表现形式也将多样化,现今常见的流程运营模式也许将会随着移动App和各种传感器的应用而产生重大变革。总之,基于BPM的流程型软件将有更加广阔的舞台。
参考文献:
[1] 辛鹏, 荣浩. 流程的永恒之道[M]. 北京: 人民邮电出版社, 2014: 147-160.
[2] 李·克拉耶夫斯基, 拉里·里茨曼. 运营管理——流程与价值链[M]. 7版. 北京: 人民邮电出版社, 2007: 1-20.
[3] Matt Cumberlidge. Business Process Management with JBoss jBPM[M]. Packt Publishing Ltd. Birmingham, UK, 2007: 6-16.
[4] Object Management Group. Business Process Model and Notation[S]. Object Management Group, Inc., US, 2013.
[5] IBM中国开发中心BPM团队. IBM BPM实战指南[M]. 北京: 希望电子出版社, 2014.
[6] Matjaz B Juric. Design Principles for Process-driven Architectures Using Oracle BPM and SOA Suite 12c[M]. Second Edition. Packt Publishing Ltd. Birmingham, UK, 2015.
[7] 闫洪磊. Activiti实战[M]. 北京: 机械工业出版社, 2015.