涉密软件项目开发过程管理机制的研究
2014-02-27张圆圆
张圆圆 刘 琪
(中国电子科技集团公司电子科学研究院 北京 100041)
0 引言
软件开发技术及工程管理技术的不断提高,为涉密软件研发机构提供了良好的发展机遇,同时也提出了严峻的挑战。一方面,涉密软件产品事关国家安全,对产品的性能和质量都有极其严格的要求;另一方面,如何在涉密软件产品项目研制过程中,妥善做好涉密数据、文件的保密管理工作,做到秘密不失,是一个亟待解决的问题。
为了对涉密软件项目进行更加科学的过程管理,建立长效管理机制,加强对涉密单位的保密监督,本文针对涉密软件项目研制的特点,结合软件工程化管理及软件过程改进理念,提出了将工作流技术应用于涉密软件项目过程管理的设计方案,在不断改进软件过程的同时,对各类项目管理过程进行建模,通过执行工作流程,实现项目管理过程的自动化流转、各类纸质审批单据电子化、以及数据存取控制自动化等等功能;而通过对工作流状态进行跟踪和查询,可以大大简化保密检查的工作强度,从而促使软件开发项目组能够在项目开发的整个生命周期妥善管理各类涉密配置项及文档、数据的保密管理工作,保证项目开发安全、顺利地进行。
1 基于CMM的涉密软件项目开发过程管理的工作流模型
CMM(Capability Maturity Model,软件成熟度模型)[1]是90年代初提出的一套软件过程管理模型,用来协助软件开发人员持续改进流程的成熟度以及软件质量,不断提高软件研制过程的工程化程度,从而达到在预算范围内,按时、按质生产出合格软件产品的目的。在此基础上,军方于2008年提出了军用软件研制能力成熟度模型[2](Capability maturity model for m ilitary software development,GJB 5000A-2008,以下简称5000A),通过分级定义涉密软件研制方的主要管理过程域及工程实践集,为项目组织提供一条软件过程改进(Software Process Improvement,SPI)的持续进化路径,以及进行组织的软件过程能力评估(Software Process Assessment,SPA)的方法。5000A分为五个成熟度等级:初始级,可重复级,已定义级,已管理级,以及优化级。每一成熟度等级由若干个关键过程域(Key Process Area,KPA)构成,每个KPA由若干相关实践组成,当这些实践被全部实现时,就能满足该过程域的改进目标。
工作流(work flow)[3]是业务流程在计算机支持下的自动化执行过程。工作流管理系统预先定义业务过程的执行过程、规则及参与者,在工作流引擎的驱动下,使文档、数据、代码等业务产品及业务操作在不同的参与者之间进行自动传递和执行。一个完整的工作流管理系统应该具有三个方面的功能特性:一是对工作流程的建模和定义;二是在运行环境中驱动并控制工作流程,实现业务的自动流转;三是能够自动将操作和数据分发给具有操作权限的用户进行处理。
对于涉密软件开发项目来说,有了工作流管理系统的支持,可以很方便的通过在流程的各个阶段对各个角色的权限定义来最终实现基于工作流的数据存取控制;同时,对工作流程的建模过程,也正是在项目管理过程中不断积累工作经验,固化软件开发过程中的标准、规程及方法,从而建立标准过程集(库)的过程,是达到CMM 3级——已定义级的必要条件和基础。换言之,使用工作流管理系统对涉密软件项目进行管理,可以将软件企业对项目软件过程能力的持续改进,体现在对日常业务流程的持续修正、更新和剪裁,使之不断科学化的过程中。
下面以某单位涉密软件项目开发系统为例,说明日常涉密软件项目开发流程化管理系统的设计。下图为该单位的开发系统流程图。
工作流定义:在实际项目过程管理过程中,通过不断的过程资产积累,以及对CMM标准过程集进行适当的剪裁,根据需要抽取过程域中的某些共用实践及专用实践,组成具有一定执行顺序的工作流。工作流程的定义是对项目管理过程的建模过程,其开发可以是瀑布式的,也可以采用螺旋型渐进开发方式,先生成一个相对简单的工作流原型,并工作过程中不断改进。
权限管理:采用电子权限认证系统实现工作流程中的用户权限管理。每个系统操作人员对应一个USB KEY,用来唯一确定登录系统的人员身份。根据组织视图中的不同职能岗位划分角色,将用户指派为一种或几种角色,通过角色所赋予的权限来进行审批、资源访问等操作。工作流定义人员对工作流程的每个步骤指定特定的角色来进行操作[4]。用户、角色、以及操作权限之间的关系如图二所示。
图2 用户、角色、操作权限关系图
工作流运转过程:在日常项目管理过程中,当需要执行某个操作时,就由具有操作权限的人员启用相应的工作流程。流程可以进行人工启动,或由工作流引擎在满足启动条件时作为子流程自动启动。流程启动后,工作流引擎驱动流程按顺序流转,并对流程中相应操作所指定的角色开放相应的操作权限,提示角色所属人员执行相应操作以使工作流转,直至流程结束。下面以配置管理流程中的配置项[5](需求规格说明书)变更流程及涉密文件归档及打印流程为例,说明工作流管理系统在涉密项目中的工作方式。
图3 涉密软件开发项目工作流程定义示意图
操作留痕及查询审计:工作流管理系统可以将工作人员进行的各类操作自动留痕,并提供丰富的查询功能,方便涉密项目保密检查人员及软件过程能力评估人员进行查询审计。流程运行过程中,为方便各类操作人员了解流程运转情况,查询相关电子文档,填写审核意见,可以将流程操作界面制作成电子表单的形式。每启动一个工作流程,系统即自动生成一个唯一的流程序号,该序号可以与流程发起人,流程参与人,流程状态(进行中,已完成,挂起等等),流程运行时间段,以及项目编号,配置项编号,操作类型等等一起作为关键字进行查询。并将流程过程中的输入、输出与流程本身关联起来,方便进行项目查询与跟踪,从而在很大程度上简化日常涉密检查的工作强度。
2 结语
综上所述,在当前形势下,涉密软件项目研发领域机遇与挑战并存,唯有学习并运用先进的软件项目管理手段,才能有效提高软件质量。使用工作流技术,将涉密项目管理操作过程与项目软件管理过程结合并固化,能够大大提高日常各项保密管理操作的工作效率,保证涉密科研项目的研制过程安全顺利地进行。
[1]Raynus J.CMM软件过程改进指南[M].邱仲潘等译.北京:电子工业出版社,2002.
[2]军用软件研制能力成熟度模型 GJB 5000A-2008
[3]基于CMM I的配置管理工作流模型的研究与实现,谢芸,合肥工业大学,2006.5
[4]雷建云,基于工作流的数据存取权限管理[J].微计算机应用,2005(26)4:452-454.
[5]徐晓春,李高健 软件配置管理 清华大学出版社 2002,7