我国唯一的项目管理信息化门户网站,国内项目管理软件资讯服务提供商

登录 注册
当前位置:首页 > IT信息化 > 正文

基于CMM和工作流的软件项目管理系统的研究

2018-12-13 来源:《微计算机信息》作者:广东工业大学 孙延海 李振坤 梁海健 袁宜英
      摘要:探讨了一个用工作流技术构建的软件项目管理系统,该系统以工作流引擎为核心、以基于CMM的数据模型为基础、由工作流管理模块和应用程序模块组成,通过核心工作流的定义和执行来实施对软件项目的跟踪管理,能很好的满足现代软件开发过程对项目管理的要求。
      关键词:工作流;CMM;软件项目管理;元数据;制品
 
      1引言
      随着软件需求的日益增长和软件开发环境的日趋复杂化,软件产品的规模急剧增加,软件项目管理的规范化程度已经逐渐成为制约软件项目成败的瓶颈。软件项目管理是一个复杂的过程,人为的按照既定标准去管理一个软件项目是很困难的,往往会因为人的主观随意性而出现许多纰漏,因此开发一个符合CMM标准的软件项目管理系统(SPMS)来管理和控制软件开发是很有必要的。
      工作流是使业务过程的部分或全部自动执行的技术,使用工作流可以实现高效的线性工作流程,如果用于构建软件项目管理系统,则可以将软件开发过程中的各种文档、程序和任务等在参与软件开发的各种角色之间进行共享和传递,并能有效的重用项目成果和实施变更控制,以完成软件开发任务。因此,本文将讨论一个用工作流技术构建的符合CMM标准的软件项目管理系统来辅助管理软件项目的开发过程。
      2关于CMM与工作流
      2.1CMM
      CMM是软件能力成熟度模型(theCapabilityMaturityModelforSoftware)的简称,由美国卡耐基•梅隆大学软件工程研究所于1987年提出,目前已经成为评价软件组织的软件过程成熟度和帮助软件组织改善软件产品质量的标准。
      基于组织对某些关键过程域(KPA)的支持,CMM定义了5个软件过程成熟度等级,分别是:初始级、可重复级、已定义级、管理级和优化级;针对每一个等级都定义了一系列软件开发过程中需要进行的活动和活动完成对改进软件过程所要达到的目标。
      为了明确项目组成人员的职责,CMM划分出了不同的软件角色和软件组织,软件角色主要有:高级经理、项目经理、项目软件经理、一线软件经理、软件任务组长和工程师及开发人员;CMM中典型的软件组织有如下几种:软件工程组、软件过程组、质量保证组、测试组和配置管理组。
      通过CMM中对软件角色和软件组织的定义,可以规范管理软件项目开发中的各类资源,以保证软件开发过程的正确实施,并得到每个阶段预期的软件制品。
      2.2工作流
      工作流是一个业务过程的全部或部分自动执行,可以通过将业务活动分解为定义良好的任务、角色、规则和过程来实施业务流程的监管和控制,以提高组织的工作效率,并改进其业务流程。
      工作流只是一种概念逻辑,要实现它必须建立工作流管理系统。工作流管理系统是指定义、管理和执行工作流的系统,一般由三部分组成,即工作流建模模块,工作流执行模块和工作流监控模块。工作流建模模块主要是用来定义和维护工作流模型,工作流执行模块主要是给工作流提供一个运行时环境以完成与用户的交互等功能,而工作流监控模块主要是实时的监控工作流实例的执行状态以便在出现运行异常时及时进行处理。
      使用工作流技术构建软件项目管理系统可以将系统的过程逻辑和应用逻辑分离,使系统具备良好的可维护性和可扩充性,可以通过更改工作流模型来改变系统的功能而不必修改应用程序,这为有效的实施变更管理提供了保证。
      3软件项目管理的业务需求
      要构建软件项目管理系统首先要明确软件项目管理的业务需求。软件项目管理和一般项目管理一样要在进度、成本、质量上寻求一种平衡以按预定计划完成项目,如表1所示:
表1软件项目管理基本任务
      除具有上述基本需求以外,软件开发的特殊性使得软件项目管理必须具备良好的变更管理功能来处理由客户需求的频繁变更引起的项目计划调整和产品返工。因此软件项目需要以迭代方式进行开发,其业务流程可以描述为如图1所示的形式:
图1软件项目管理业务流程图
      4系统架构与描述
      4.1系统架构设计
      CMM强调把人员、组织和先进的技术方法融入到整个软件开发过程中,并在开发过程中通过有机的组织和协调来提高软件组织的过程能力和成熟度。如果将CMM中定义的软件角色和软件组织视作资源,将软件开发过程中形成的各种文档、程序等视作制品,则可以建立基于CMM的由过程数据、资源数据、制品数据组成的三维数据模型作为构建软件项目管理系统的基础。因此根据软件项目管理的需求,以关系数据库作为存储场所来存放所有的应用程序数据、元数据和工作流模型数据,以工作流引擎为核心,可以建立软件项目管理系统的架构如图2所示:
      为了管理上述各类数据还定义了相应的功能模块,下面将进行详细描述。
      4.2形式化描述
图2软件项目管理系统架构
      4.2.1数据模型描述
      要在软件项目管理系统中实施CMM来管理软件项目和改善软件组织的过程能力,首先必须在系统中定义管理活动所需要的各项数据,然后才能利用工作流技术来具体实现这些管理活动,如质量保证、配置管理和变更管理等等。该系统的数据模型的形式化描述如下:
      (1)过程数据:过程数据主要是记录软件开发过程中的各项任务,采用任务分解的方式将一个软件开发任务分解为一系列的子任务。其形式化描述如下:
      Errand
      Milepost_num,Resource,Output>
      其中:Project表示任务所属项目;Edition表示任务的基线版本号,提供了变更管理的可能性;Pre_errand表示其前置任务集合,任务的执行必须在其前置任务全部执行完毕之后;Father_errand表示任务的父任务;Status表示任务的状态,制定、执行或完成;Cost表示任务的开销;Time_limit表示任务的完成时限,以便适时的对任务责任人进行提醒;Milepost_num表示该任务的里程碑标号,若是里程碑则其完成会触发项目的阶段评审;Resource表示任务的责任人或组织,来自于系统的资源数据;Output表示任务完成后形成的制品,作为制品管理的输入。
      (2)资源数据:资源是指CMM中所定义的各种软件角色和软件组织的实例化,每个软件组织由若干个软件角色组成。资源数据的形式化描述如下:
      Personnel
      Organization
      其中:Personnel为个人资源;ID表示其员工编号,Organization表示其所属的软件组织,Role表示其软件角色(项目经理、软件任务组长、工程师等),Experience表示其经验值,Position表示其在组织中的职位,Performance表示其工作绩效。Organization为组织资源;Name表示组织的名称,Department表示组织所属的部门,Skill表示组织的技术职能,Performance表示组织的绩效。
      在资源管理中,通过定义各个Personnel之间的关系可以定义其权限范围。
      (3)制品数据:在软件开发的过程中会产生大量的文档或程序,该系统中将这些文档和程序统一视作制品来进行管理,按照其产生的不同阶段可以分为管理制品、需求制品、设计制品、实现制品和实施制品。制品数据的形式化描述如下:
      Produce
      其中:Project表示制品所属的项目,Edition表示制品的版本,Type表示制品的类型(程序、文档),Phase表示制品的产生阶段,Errand表示产生制品的任务,Quality表示制品的质量、Size表示制品的大小。
      通过对制品数据的规范化管理可以实现严格的版本控制,从而为软件配置管理和变更管理提供保障,还可以通过定期审核基线制品数据来保证软件质量。
      4.2.2工作流描述
      工作流管理模块主要是进行工作流的定义和维护、过程的实例化以及实施工作流执行时的监控和管理功能。首先按照软件项目管理的业务流程来定义工作流,并将定义的结果保存在工作流模型库中,工作流模型定义好之后即可根据具体项目进行过程的实例化,随后即进入工作流的执行阶段。在执行阶段,工作流管理模块的主要功能是对工作流的执行过程进行监控,能随时掌握工作流实例的执行状态,并根据需要进行调整,如暂停、挂起或恢复某些过程实例等。工作流的形式化描述如下所示:
      Workflow
      Activity_Set
      Switch_Function(Activity_Set×Rule→Activity_Set)
      其中:Workflow为工作流;Activity_Set表示工作流的活动集,每个活动集中包含若干个工作流活动;Status表示工作流实例的状态,如执行、挂起、结束等;Rule为工作流的过程规则集;Switch_Function为工作流活动转换函数,描述的是工作流活动在某一规则的作用下转换到其后继工作流活动。Activity_Set中,Name为工作流活动的名称;Resource为工作流活动的执行者;Status为工作流活动的状态;Application为工作流活动所调用的应用程序;Metadata为工作流活动所使用的元数据。Activity_Set中的元素构成了工作流有向图中的节点,而节点之间的连线则对应其转换函数。
      4.2.3元数据描述
      应用程序模块主要是定义工作流活动所需要的各种应用程序以供工作流活动在执行时进行调用。由于不同的工作流活动所对应的应用数据格式可能会有所不同,比如项目的评审阶段和项目变更处理阶段所操作的应用数据就不相同,如果对不同的工作流活动都定义不同的应用程序,则系统的开发难度会显著增加,这显然是不可行的。所以在这里引入了元数据(Metadata)的概念,所谓的元数据就是关于数据的数据(dataaboutdata),它记录了数据的产生、数据的定义以及数据之间关系的种种属性,包括数据描述、数据结构等,每个工作流活动的应用数据可以采用元数据来表示和产生。元数据的形式化描述如下所示:
      Metadata
      其中:Fieldname表示应用数据的字段名,Type表示字段类型,Table表示字段所属的应用数据表,Restrict表示字段的约束关系如主键或外键等,Description为字段的其它属性描述如是否允许空值等等。
      采用了元数据以后,应用程序对数据的操作可以统一的通过元数据来进行,从而实现了应用程序的重用,减少了系统实现的开销。元数据通过元数据管理模块来定义和维护。
      5系统实现
      考虑到软件开发过程中各种资源的分散性以及人员的流动性,系统在实现时采用了由客户端、WEB服务器和数据库服务器组成的三层体系结构。采用这种结构的优点是能较好的满足分布式开发环境下的软件项目管理要求。
      在该系统中,WEB服务器采用的是Apache公司的Tomcat5.0,数据库服务器采用的是Microsoft公司的SQLServer2000企业版。为了使系统具有良好的可移植性和安全性,采用了具有平台无关性的Java技术,即JSP/Servlet+JavaBean来实现。通过使用JavaBean可以使页面的功能逻辑代码与界面代码相分离,从而加快了系统的开发和测试速度,也便于后期的维护。用户可以通过浏览器方便的使用该系统。
      6结束语
      本文首先分析了现代软件项目管理的特点,然后讨论了一个以基于CMM的数据模型为基础、以工作流引擎为核心的由工作流管理模块和应用程序模块组成的软件项目管理系统的设计与实现。该系统一方面采用了将应用逻辑和过程逻辑分离的工作流技术,使其具备良好的可维护性和可扩充性;另一方面采用了基于CMM的由过程数据、资源数据和制品数据组成的三维数据模型,使得使用该系统进行软件项目管理可以充分的跟踪CMM中定义的软件开发过程中需要进行的一系列活动,以帮助软件组织持续的改进软件过程能力、开发出高质量的软件产品。
      参考文献
      [1]WalkerRoyce,周伯生等译.软件项目管理--一个统一的框架[M].北京:机械工业出版社,2002.269-271.
      [2]林枫,王月忠.智能化锂离子电池管理系统的设计与实现[J].微计算机信息,2005,3:78-80作者简介:孙延海(1982-),男,山东莱芜人,硕士研究生,主要研究方向:计算机网络与分布式系统,email:keen_sea@163.com;李振坤(1949-),男,广东广州人,副教授,硕士生导师,主要研究方向:计算机网络与分布式系统,电子商务,软件项目管理(广东工业大学计算机学院副院长,计算机工程研发中心主任);梁海健(1980-),男,广东清远人,硕士研究生,主要研究方向:计算机网络与分布式系统;袁宜英(1980-),女,湖南汉寿人,硕士研究生,主要研究方向:数字媒体工程。(510090广东广州广东工业大学计算机学院)孙延海李振坤梁海健袁宜英(FacultyofComputer,GuangdongUniversityofTechnology,GuangzhouGuangdong510090)Sun,YanhaiLi,ZhenkunLiang,HaijianYuan,Yiying(本文于2006年发表于《微计算机信息》)
分享到:

免责声明:
  1、项目管理信息化网发布的所有资讯与文章是出于为业界传递更多信息之目的,并不意味着赞同其观点或证实其描述。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请浏览者仅作参考,并请自行核实相关内容。
  2、本站部分内容转载于其他网站和媒体,版权归原作者或原发布媒体所有。如文章涉及版权等问题,请联系本站,我们将在两个工作日内进行删除或修改处理。敬请谅解!

延伸阅读:

more>

会议活动

more>

公开课

more>

PMO

Copyright © 2021 项目管理信息化网 版权所有 京ICP备17062359号-9 如转载本站文章,请注明原作者和原发布媒体

本着互联网分享精神,本站部分内容转载于其他网站和媒体,如内容涉及版权等问题,请联系本站进行删除或修改处理

客服电话:010-89506650 89504891 非工作时间可联系:18701278071(微信) QQ在线:574888227

新闻与原创文章投稿:tougao#cpmta.com 客服邮箱:info#cpmta.com(请将#换成@)

我国唯一的项目管理信息化门户网站,国内项目管理软件资讯服务提供商,隶属卓橡公司

项目管理信息化微信公众号

PMO大会微信公众号