面向团队协同的集成PM、WfMS和SCM的软件支撑平台框架研究
0 引言
ERP业务架构平台层的主要目的之一在于为基于业务流程建模为导向的、以大规模系统化复用为指导思想的、以组件组装及框架代码生成为主要方式的多团队协同开发提供有效支持。
W.M.P.van der Aalst(2001)认为[1]:当前的工作流系统通常假定每个工作项(WorkItem)是由单个的执行者(Worker)完成的,故不能对团队协同方式的工作项执行提供支持。文献[2]对支持团队开发的企业组织模型进行了研究,给出了包含组织纵向和横向结构的组织元模型,通过将组织规则和组织结构的分离,实现在组织结构不变的情况下,通过修改组织规则以达到提高企业敏捷性的目的;文献[3]针对工作流系统对动态团队和不确定任务支持的要求,利用面向对象建模团队的组织结构,采用OCL语言规范化描述团队内部结构约束和团队-任务约束,用来解决团队对应的工作流任务不确定问题;Action Technologies公司提供的Action Workflow着重支持以员工和/或团队间通信为主的过程[4];文献[5]进一步对基于工作流的ERP系统开发与实施方法进行了研究。
本文认为,现有研究中在对团队工作流与行业版ERP构建相结合方面还很缺乏,在对协同任务内容描述与集成领域也需做进一步的研究。通过简单集成现有工作流管理系统和群件产品尚不能对行业版ERP研发中各种协同活动提供有效支持。研究发现,适用于行业版ERP构建业务平台的工作流管理具有一些新的特点和需求,表现在:
(1)行业版ERP构建工作流是项目驱动的,ERP研发项目任务、核心工作流中任务流及活动流网络在任务内容上具有分层递进性。任务及活动的输入、输出中涉及对复用资产库及软件制品的配置管理。
(2)在行业版ERP系统的构建过程中,既存在大量的非结构化的、自发的沟通与协同活动,也存在一些结构化的、有组织的管理与控制过程,并且这些性质各异的过程和活动往往交织在一起。因此,能够有效支持行业版ERP构建的工作流管理平台必须具有较好的适应性。
(3)行业版ERP构建任务的执行者在更多情况下表现为一组相互协作的团队,如:可复用组件的获取(生产)团队、组件使用团队、面向行业领域工程的需求获取团队、系统测试团队等。在面向特定行业构建行业版ERP系统的过程中,需要这些团队在各自的任务领域具有很大的决策自主性,可以灵活设置局部工作流程,并且这些流程在团队整体协同过程中经常发生调整。
(4)项目团队成员具有动态性和不确定性,如:特定成员可以同时担当多个角色,参与到几个不同团队中,而且在不同阶段还可能发生角色的转换。这使得在工作流定义阶段任务指派规则难以确定,而过于精确的定义则缺乏灵活性和可操作性。其次,将不同性质而又有关联关系的任务指派给不同的协作团队、团队成员等去执行,会带来很多需要解决的问题,如:人员分工、安全维护、多用户数据管理等。
(5)除了对开发团队资源进行集成外,还要体现对各目标行业业务知识、企业(行业)模型及其他各类软件组件的重用的考虑,以便对目标行业族ERP系统的整个生命周期进行有效管理与控制。
1 面向行业版ERP构建的工作流协同开发平台框架总体考虑
(1)对集成项目管理功能的考虑 在工作流管理中集成项目管理功能是可行的[6,7]。项目管理用于描述协同产品开发的任务结构及过程控制,工作流用于描述协同产品开发的业务流程;项目管理的目标是在一定的时间、成本、质量等约束条件下,保证项目的顺利完成,工作流管理则通过业务过程的自动化及监控保障各子任务得到及时处理;项目管理关注协同开发所涉及的工期、资源、进度、成本、质量等内容,各子任务具有明确的开始时间和结束时间,属于企业管理范畴,而工作流管理关注业务流程的建模及运行控制,属于过程自动化范畴。可见,二者的管理层次、关注点是不同的,具有互补性。通过项目管理与工作流管理的集成,可将项目中任务的内部过程"可视化",即将具体的产品开发业务过程与特定的项目管理相联系,及时获取项目的进展情况,提高协同开发过程的管理水平和管理效率。项目管理与工作流管理的集成可克服工作流中缺乏对任务工期优化、成本控制及多工作流系统之间的相互协调等不足。
(2)对集成软件配置管理功能的考虑 软件配置管理[8](Software Configuration Management,SCM)是指一套按规则管理软件开发和维护其中各种中间软件产品的方法,它研究怎样在不同时刻标识软件系统的配置,以便系统化地控制配置的变化,以及在整个软件生命周期内维护配置的完整性和可追溯性,主要包括配置识别、变化控制、状态记录报告以及审计等4种活动。现有的软件配置管理支持平台,通常提供版本控制、项目管理、成员权限控制、BUG追踪、邮件列表等功能[9,10],这些功能满足了项目开发的基本需要的最小子集,但功能之间呈现离散状态,相互之间缺乏有机融合。而借助工作流技术中的"流程路由"则可以有机整合这些离散的功能集,表现在软件开发过程支持上,就是可以实现集成的配置管理。同样地,可实现对复用库的集成管理。
(3)对团队协同开发支持的考虑 可通过综合多种途径实现对团队协同开发活动的支持:○1集成项目管理工具,实现对开发任务的分解,分解的结果体现为各开发团队(如:组件生产团队、行业ERP构建团队、管理团队)提供任务列表及关联约束信息;○2在工作流建模元模型层次,提供用于团队建模的支持元素,如:融入组织建模的相关概念(部门、团队、人员、角色等)、支持流程定义的逐步求精等;○3融入主流群件产品及工具,如:即时通讯工具、Email、BBS等,支持开发人员之间的消息发布与及时沟通。
2 面向行业版ERP构建的工作流协同开发平台框架
基于以上分析,现提出基于工作流的协同开发环境体系结构,见图1。
该协同开发环境体系结构以工作流建模与执行为核心,完全兼容工作流联盟给出的通用工作流产品结构[10]。通过扩展工作流定义工具的能力,提供协同建模管理器以支持对多团队、分布式、逐步求精的建模方式;通过软件总线整合其他协同开发的相关平台工具,主要有:项目管理工具、复用库管理工具、配置管理工具、外部应用、群件系统等,从而对基于软件资产复用方式的、以多团队协同方式构建行业版ERP系统提供全面的支持。面向行业版ERP构建的工作流协同开发平台框架主要涉及两项关键技术,包括:支持多团队协同开发的工作流建模技术,工作流管理与项目管理、软件配置管理的集成技术。