自20世纪90年代初业务流程重组(business process reengineering,BPR)的概念提出以后,过程工程被公认为企业提高生产率、改善产品和服务质量、增强竞争能力的关键。软件过程也是一种企业过程,类似于BPR的研究,软件过程改进(software process improvement,SPI)逐渐成为软件工程领域和软件体系结构领域的重要研究方向之一。一方面伴随着IS09000和CMM在软件业的声誉鹊起,SPI研究的深度和广度在不断扩展;另一方面,20世纪90年代中期以后软件过程和业务过程的研究出现了融合的趋势,许多业务过程的管理思想逐渐应用于软件企业。例如,Aoyma把“敏捷制造”的概念引入到软件工程,形成了一种全新的软件开发模式——敏捷软件过程(agile software process)。针对BPR理论和实施的脱节情况,提供了成熟的工作流解决方案。依据相似性,软件过程也可以作为工作流来进行分析,这样的工作流的成功经验可以进一步应用于软件工程中。
SPI的研究范围,从深度上可分为方法学、技术和工具3个层次,从广度上包括过程、产品、资源、组织、度量等要素,其中,度量是核心。方法学是指采用何种改进思想,如CMM和SPICE等,都是改进的指导框架。技术是指在指导框架约束下所采用的改进手段,如采用PSEE(process centered software engineering environment)环境,或者采用工作流技术。在选择好改进手段后,需要合适的开发工具,PSEE环境就有众多实现工具,比如OIKOS、EPOS、SPADE和北大青鸟等。方法学层还可以继续细分,如RUP是CMM思想的具体实施办法,它介于方法学和技术之间,可称为技术方法层。本文的研究可归结到技术层和工具层,即根据RUP指导,采用工作流作为支撑技术。由于软件过程定义是SPI的一个关键因素,且仿真是软件工程的使能技术,是增强过程定义能力的有效手段,所以笔者尝试用工作流仿真的方法贯穿于SPI实施的全过程。针对SPI研究的技术层面,本文将提出一个支持SPI的工作流实施框架和软件工作流元模型,然后进一步阐述工具层面的仿真执行机制,最后给出一个软件过程的仿真实例。
1 支持SPI的工作流实施框架
工作流技术日益成熟,已经成为支持BPR的强大使能工具,同时随着软件工业和传统工业相互借鉴的发展趋势,工作流技术可以应用于软件过程的研究,包括建模、仿真部分和具体执行部分。将工作流仿真技术贯穿到SPI的整个生命周期,图1就是一个以工作流技术为支撑的SPI实施框架。面对业务目标、业务流程、竞争环境和技术机会的不断变化,软件项目、生产线和企业必须不断地适应这种情况,结果就出现了大量的反馈现象。图1包括4个反馈环节,它们使企业在定量度量的基础上,可以确定且演化分析、管理和改进策略。这些策略有助于采用合适的目标和方法来管理、完成项目,提高企业的软件生产率、速度和质量,并且能预测和利用变化,而不是消极地应付变化。
图1 支持SPI的工作流实施框架
2 软件工作流元模型
在并行工程的研究过程中,为了描述产品开发过程所涉及的各个要素之间的复杂关系,本文提出了P_PROCE(process,product,resource,or ganization,control&evaluation)参考模型。它是一个集成化的多视图模型,以产品开发过程为核心,对产品、资源和组织进行综合评价和控制,并以评价和控制的结果指导产品开发过程的重组,达到产品开发过程的优化运行和管理。后来随着研究领域的扩展(如软件工程),该模型也根据RUP思想进行了相应的扩充,并逐步发展为图2所示的软件工作流元模型。其目的是为了建立一个相对通用的指导模型,以后具体的建模就在该模型的约束框架下进行,可以确保各个实际模型的同构性。控制和评价以度量的方式体现出来,度量目标的最初来源是业务目标,它具体可分解为针对过程、产品、资源和组织的度量。该模型的最大特点是把各要素以及它们的度量结合在一起,从建模时就为仿真的评价问题做好准备。
图2 软件工作流元模型
为了对模型进行形式化的描述,采用对象约束语言OCL(object constraint language)。它是UML的有机组成部分,一方面可以形式化描述UML类模型,另一方面可以定义完整性约束。即在集合论的基础上,描述类中的变量和类之间的关系。OCL是种类型语言,基本要素是类型和表达式,表达式的基本成分是对象和特性。
OCL不仅可以用模型结构描述软件工作流元模型实体,而且可以用表达式描述实体间的完整性约束关系。表达式中self表示一个类的实例,通过由“·”操作符以及类图中的角色关联组成的导航路径,可以很方便地从一个对象引用到另一个对象本身或其属性。除去常见的简单数据类型的操作外,OCL还提供了众多的集合操作,如select、reject、collect、forAll、exists和iterate操作等。约束关系可作为元模型的性质,其中既包括对基本的结构需求的约束,也包括对属性的约束。
3 仿真实例与结果分析
下面将以一个工作流软件开发过程为例进行仿真实验。为叙述方便,图3仅列出了一小部分活动,但它包括了基本的工作流环节,足以说明问题。图3是依据模型所描述的各要素间的关系,建立起的一个支持ECA规则的具体的模型。其中包括两类结点和两类关系。两类结点是活动(矩形表示)和逻辑(圆形表示),活动包括一般活动和开始/结束活动,均标注有id号;逻辑包括各种常见的工作流控制环节(串行、分支、子流程、反馈等),也编上了相应的序号。两类关系是控制流(实线箭头表示)和数据流(虚线箭头表示)。有阴影的活动是父活动的,表示它还有下层子活动,如活动2“系统分析”。元模型中的产品、资源、组织和度量信息均以属性的形式构造于各个活动当中,例如活动5“评审”。逻辑结点表示活动的执行关系,逻辑结点1的内容“EndOf(1)ORRule(4,2)”可以解析为“活动1结束或者满足逻辑结点4中的规则2”,在这种条件下活动2才有可能执行。就软件开发过程而言,数据流里主要包括文档和代码对象,把其状态(分为active和inactive)也作为一种控制条件,结合常规的活动状态(waiting、ready、running和end)一起控制流程的运行。
图3 工作流软件开发过程
对仿真结果进行度量需要一系列指标,从图2的元模型可知,整个指标体系是从过程、资源、组织、产品的角度进行分类的,对于软件过程改进而言,过程指标是最重要的一组指标,其他指标仅起辅助作用。
对图3过程进行30次仿真,然后按照计划评审技术中的简便方法计算期望值E=(4m+a+b)/6,其中,m表示最可能的值,a表示最乐观的估计,b表示最悲观估计。如果想改进软件过程,有2种方式,一种是流程结构上的调整,如增删活动;另一种是参数上的调整,如调整“评审”的通过率。由软件开发的特点很容易想到“评审”活动是一个关键活动,如果将其进行调整,必将引起指标值的较大变化。如果提高通过率,显然会减少时间、降低成本,但错误数就有可能上升;如果在子流程中增加一个“分析评审”活动,如图4所示,显然会减少错误数,但时间、成本有可能上升。
图4 改进的系统分析子流程
4 结语
SPI研究的内容非常丰富,研究方法也很多。本文从SPI的技术层面和工具层面进行了探讨,借鉴并行工程领域的成功经验,采用相对成熟的工作流技术,尤其是仿真来涉足软件工程领域的热点问题,在本文的基础上还需要做进一步的工作。根据CMM各级特点,对仿真的要求是有差异的,仿真度量也存在一个逐渐提高的能力成熟度问题,度量指标在各个级别应该是可以适当裁减的。软件过程仿真是最近几年的研究热点,其手段以系统动力学为主,系统动力学对影响因子间关系的研究比较充分,应该可以结合到离散事件仿真的整体框架之中。此外仿真还需要解决历史数据的挖掘问题,从中得到仿真环境的参考设置,增加仿真实验的可信度。仿真指标可以用AHP或其他多目标分析方法进行综合处理,定量地得到各组仿真结果的优劣,而不是仅仅通过主观判断,这样便于将来对输入参数进行自动优化,例如采取遗传算法或模拟退火算法等优化方法。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文网址:http://www.toberp.com/html/consultation/1082059622.html