1、 浅谈运用软件过程模型规范旅团自主软件开发 摘 要:随着部队官兵科技素质的提升,旅团级单位初步具备了小型软件开发能力。但局限于软件开发人员技术水平参差不齐,开发过程又受到部队各项制度约束和各种任务活动的冲击,时间难保障、管理难自主,致使软件开发工作效率低下,软件开发失败的多,长效的少。运用软件过程改进模型CMM 和ISO9001来管理软件开发工作,形成组织严密,运行高效的软件开发机制,这样既可有效地节省资金,又能充分利用部队自身人力资源。关键词:软件;软件过程;CMM;ISO9001随着军队信息化建设水平和人才队伍的不断发展,旅团级单位初步具备了小型软件开发能力。这些自主开发的软件,如果能够广
2、泛应用于部队模拟训练、日常管理、自主教育等方面,既可以提高官兵的训练成绩,提升部队正规化管理水平,也可以拓展官兵自主学习的渠道。但局限于本单位挑选出的软件开发人员,数量有限、技术有限,加之开发过程又受到部队各项制度约束和各种任务活动的冲击,软件开发工作在时间上难以保障、管理上难以自主,直接导致开发工作效率低下,软件生命周期不长。为此,我们借鉴国际软件界公认的软件工程学中软件能力成熟度模型( CMM)来指导和规范旅团单位自主软件开发。这一模型,既可以科学地评定软件开发单位的软件能力成熟度等级,也可以用来帮助软件开发单位自检,了解自己的强项和弱项,从而不断地完善单位的软件开发过程,确保软件质量、提
3、高软件开发效率。1 自主软件开发组织中过程改进所面临的困难软件界从过程改进中所获的经验主要是源于大型组织执行CMM 或建立ISO9001 质量体系。尽管进程改进模型没有否定它们在组织中的应用,但合适的数据很少。面对着公布的少量证据, 很难去为软件组织建立一个ISO9001合适的质量体系。通过分析,我们认为困难主要表现的三个方面。1.1 关于组织结构中相关的困难通常,旅团自主软件组织都会忽略对任务、职责以及过程的正式定义。他们只关心日常事务,从不做长期规划。关系到组织结构,软件初始过程的困难被归纳为以下几点:(1)缺乏有质量意识的人员。在软件开发组织一般没有人员具有软件过程改进经验或接受过培训。
4、大多数开发人员对组织质量的基本情况毫无所知。虽然他们知道概念和技术,但仍可能缺乏一种对解释他们自己组织所要求的质量模型基本原则的理解。(2)人员数量较少,没有成立专项过程改进小组。过程改进的努力对于大多数高技术人员成为了一种额外责任。然而这些人很少有改变现状的推动力,因为在当前结构中已经形成了这样的现状。(3)有限的经费。旅团自主组织的软件开发,通常运作小预算,甚至是没有预算。软件开发的最初投资即改进工作(如评估和培训)也几乎没有落实。因此,对这种自组织的软件开发而言, 为一个长期过程改进项目投入资源更加困难。(4)当前过程的状况。通常这种组织软件开发,大多片面追求开发进度,依托技术牛人单打独
5、斗,其他人员旁边打打下手,不会采取CMM等软件管理方法。(5) 非软件过程的问题。软件开发组织常常缺乏与软件开发不直接关联的组织过程的成熟度需求。这在解决相关软件开发中的问题时带来了更多的困难。进一步说, 它要求过程改进能在更多新领域中实行。(6)缺乏定量的数据。这种软件组织一般不能收集资料以度量过程和性能。这与他们未定义过程及他们运作的开发模式紧密相联。然而由于组织起步前的状况是未知的, 并且很难去定量起步时的早期结果,所以缺乏定量的数据,这将为软件过程起步的带来困难。1.2 关于软件过程改进模型的困难CMM 和 ISO9001 这些广泛适用于软件过程改进的模型,它们从小型软件组织中继承了许
6、多问题, 归纳为以下几点:(1)缺乏指导。质量模型, 特别是ISO9001, 解释那些已有的质量体系要素, 然而对在何处开始, 如何建立这些属性等问题上未能提供任何指导。CMM在这点上比ISO9001好, 定义关键过程域将依靠现有的过程状况而着手。然而对小组织而言, 没有资源去并行地开始所有关键过程域, 也没有指导如何去进行。当以一个错误的顺序进行时, 那么一个特定的过程域改进成果可能对开发者而言是肤浅的, 结果是失败的。(2)缺乏行为知识。那些在软件过程改进上缺乏专家见解的小型软件组织,对于如何在其公司内运用一个质量模型的需求还需要详细的指导。在模型中行为知识缺乏, 部分原因在于所它依赖组织
7、的状况、规模及资源。然而模型能提供一个定制框架, 特别是在改进的初始阶段。(3)假设有多个领域的专家知识。现在的过程改进模型蕴含地假定了一个软件组织有资源去组成不同的小组, 同时处理不同的过程问题。大部分需要在组织中建立的过程( 例如度量程序) , 要求非常专业的知识。小组织由于人员受限,不能使模型适应于他们的现实需要。2 在自主软件开发组织中软件过程改进:一种模型及其执行引用一个例子:某软件公司( 以下称为A公司) 为了面向国际市场, 选用ISO9001质量模型来提高质量。由于在A 公司和ISO9001咨询公司内缺乏软件质量方面的专家,迫使A公司寻求外界的顾问帮助。A公司由7名程序员组成,它
8、的主要产品是几个应用的集成系统,它为产品分发部门提供一完整解决方案。系统按小公司提出的要求定制。产品由600多个程序、总计40万行C语言代码组成。本文提出了一种软件过程模型即模型的每个活动都要求所有相关人员的参与,有时甚至是整个开发小组,而小规模的组织使得这种参与可能性更高。因此在组织内部应将软件过程改进职责和积极性落实到所有员工。该模型综合了CMM 定义关键过程域、ISO9001 和ISO90003的需求和建议。模型为过程改进提供工作计划, 并使ISO9001和 CMM 需求适应了小组织的现实。为了在组织中不让少数开发人员负担过重, 同时保持必须的质量要素, 过滤和改进待启动的活动、待产生的
9、文档、待建立的角色。模型包括以下三个阶段。2.1 准备阶段本阶段的主要目标是为过程改进启动准备组织。明确告知所有雇员目标、潜在的收益, 以及起步的风险。每个人应该知道所期望的是什么, 以及这些研究如何影响他们的日常活动。在准备阶段, 组织需要完成以下三个活动:建立顶层管理约定。顶层管理约定是对任何质量起步阶段所必须的。如果顶层管理未展开这个项目, 那么在行动前建立约定。论证顶层管理约定。一旦制定顶层管理的约定, 管理者将向所有的雇员证实。这可以通过一个预备会议,也可通过在资源分配和重构方面的改进活动持续支持。评估过程当前状况。如果按照正式的CMM和ISO9001评估, 小组织的评估过程可能会提
10、供不正确的数据。面对面,自由式会见所有与软件开发相关联的个人, 是在该模型中使用的一项技术。会见围绕一套问卷,参照为随后控制阶段定义的关键过程域,调查已有的软件实践。这些自由式的会见也提供了组织的文化信息,对明确改进初期潜在的障碍非常有效。该活动的结果以报告形式提交给顶层管理部门。2.2 控制阶段控制阶段的主要目标是建立严格的约定、成本、进度、变化的管理, 所有这些都必须确保开发处于控制之下。为了能达到这个目标,引入的模型能够引导组织重点关注项目的计划及跟踪、配置管理以及产品工程等三个关键域。一个典型的小型软件组织缺乏对这些过程域的明确规程, 但如果在一个域中存在这些规程,那么注意力将转向其它
11、的。软件开发部门为每个过程域分配 1至2人,形成多个研究小组, 这些小组将从事以下活动, 这些活动的进度依赖于软件开发小组的工作量,而其中有些活动能够同时进行。(1)短训班。在通过有关特殊过程域的一般概念、技术的短期培训之后, 采用短训班的形式讨 论如何在组织内应用这些概念和技术, 以及提交给整个软件开发小组的工具的有效性。(2)工具的选择。基于在短训班中建立的知识, 在组织内选择使用一个合适的工具。工具选择的准 则是由使用它的人来决定。除了每个过程域标准需求, 还要考虑它易于被学习, 价格合适, 以及广泛的可利用率, 并易于集成到当前环境中。(3)定义过程。基于在短训班上讨论过的信息,以及所
12、选工具的特性, 定义在特定过程域内待执行的活动。如果组织的目标是ISO9001认证,这些定义将形成质量体系的规程。对另一些组织, 定义在这些过程域中如何实施,将有助于改进相关过程。(4)集成。一旦所有的小组都完成其独立的研究,需要举行几个集成会议以解决在不同过程域中的冲突。这些会议将有助于开发小组彼此了解, 简化他们的日常活动, 使他们所需建立的文档最少。已定义的所有过程应保持一致性。(5)试验项目。在试验项目中为了明确实际问题以及效果如何, 应对所选择的工具、所定义的规程进行试验。因为这些活动中的大部分对软件小组而言是新的,一些问题也许只会在执行中碰到。2.3 稳定阶段在稳定阶段, 在建立产
13、品的组织和过程以及过程的质量中,严格运用产品工程。需求管理、正式测试和评审、质量保证是需要注意的过程域。在早期阶段定义的生命周期又依据这个阶段的结果来扩展。另一个要执行的关键任务是建立度量程序。一旦过程稳定,其中一些在控制阶段确定的数据收集表单将被用于收集相关的过程信息。在控制阶段同样的活动将在新过程域中执行。换句话说,需求管理、测试和质量保证的工作组即将形成,每个小组将遵循短训班- 试验项目周期。3 解决措施在前面部分所讨论的模型提出了在小组织过程改进中的困难。其解决措施如表1 所示。困难解决措施缺乏质量意识在组织内开设短训班扩展知识人员有限涉及整个软件开发小组。模型假定人数资金人限当前过程
14、的状况非软件问题软件开发小组过程改进的首创精神缺乏定量数据增加度量程序的引入要假设具备不同领域的专业知识每个过程域都由一个咨询员支持,在组织内通过短训班扩展知识表 1尽管在小组织建立相关质量体系只有很少的数据和经验, 但在小组织建立质量体系有其根本的重要性,因为大部分软件组织只有20个或更少的软件开发者。在我们对小型软件组织正在进行的改进过程研究中观察到了独特的困难,但广泛应用过程改进的模型对小组织而言有固有的困难。因为他们不提供所需指导,也未能从小中获益。另外, 小组织的结构和他们运作的市场不具有广泛应用的过程改进模型所论述的特性。依据两个最广泛应用的过程改进模型CMM和 ISO9000来开发并实施一个工作计划,在小组织中建立一个ISO9001的质量体系。 这个计划的推广是作为小型软件开发单位的改进过程模型而提出的。执行模型结果是有推动作用的, 它为小组织的软件过程改进提供了很多所需引导。4 结论通过分析小型软件组织和旅团自主软件组织在人员结构的相似性,借鉴小型软件组织的广泛应用的软件能力成熟度模型(CMM)来规范和指导旅团自主软件开发工作。实践证明,在旅团自主软件开发中按照软件能力成熟度模型(CMM)对组织过程进行改进,能够保证软件开发工作高效运行。5 -全文完-