• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

软件组织开发能力的评估程序和管理规范研究

发布: 2008-3-26 13:22 | 作者: 李兴兵 | 来源: 不详 | 查看: 31次 | 进入软件测试论坛讨论

领测软件测试网 1. 开展软件开发能力评估的必要性
    国际学术界和工业界一致公认,软件产业的发展将经历三个不同的阶段。第一阶段是70年代中期至90年代中期的软件结构化生产阶段,该阶段是以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征。从80年代中期开始,软件生产开始进入以过程为中心的第二阶段,以个体软件过程PSP(Personal Software Process)、过程成熟度模型CMM和群组软件过程TSP(Team Software Process)为标志,这个阶段预计在2005年前后结束。而从1995年开始,国际上已经逐步进入以软件过程、面向对象和构件重用等三项技术为基础的软件工业化生产的第三阶段。我国一些先进的软件公司也已经开始从第二阶段过渡到第三阶段。
    我国的软件开发行业目前还处于软件结构化生产阶段,刚刚开始向以过程为中心的第二阶段过渡,这也就是说,我国的大部分软件开发组织的过程能力成熟度还有待于进一步提高和改进,这主要表现在:
    第一、 相当多的软件开发单位对软件开发的过程管理不规范,所生产的软件系统质量达不到客户方要求,容易产生因质量问题所引起的软件危机,软件开发中还存在比较大的潜在风险。
    第二、 软件开发单位的开发过程混乱而无序,只重视先进技术在软件开发中的作用,忽视了软件开发过程对于软件质量的影响。开发过程的不标准性既不利于组织本身软件过程能力的提高,同时也妨碍了软件开发组织与国际先进开发管理规范的接轨。
    第三、 各软件开发单位对软件产品的开发中不遵循软件工程的要求,其软件开发过程能力的不成熟,不利于软件项目采办中做出正确的决策。并且,客户方对软件开发组织的开发过程也不能进行很好地监控。
    基于以上几点原因,要想加快我国软件行业的发展,提高软件开发水平和质量,促使软件开发单位严格按照软件工程的要求开发软件,则必须对软件开发单位的开发能力和过程能力进行客观公正的评估,督促各开发单位从根本上提高自身的软件开发过程能力,从而保证软件项目的高质量和低风险。
    2. 国内外软件开发组织进行软件开发能力评估的现状
    20世纪80年代,美国工业界和政府部门开始认识到,软件过程能力的不断改进才是增进软件开发组织的开发能力和提高软件质量的第一要素。在这种背景下,由美国卡内基-梅隆大学软件工程研究所(SEI)研制并推出了软件能力成熟度模型SW-CMM,随着软件产业界对软件过程能力改进的不断研究,CMM逐渐成为了评估软件开发过程的管理以及工程能力的标准。
    CMM评估在软件产业界的开展,极大地推动了软件开发组织的过程能力成熟度的提高,并且将软件开发和生产从原来的结构化生产阶段推进到了以过程为中心的生产阶段。美国、印度等软件大国率先接受并实施了基于CMM的评估和改进,并取得了明显的效益。自1987年到2000年6月,向SEI报告的CMM软件过程评估多达1654次,被评估组织1269个,受评估的项目6784个。其中从1996年到2000年6月,就有901个软件组织接受了评估,被评估的项目为4174个。
    我国软件组织对于CMM评估的实施起步较晚,目前仍然处于起步阶段,具体现状可以概括如下:
    第一、 我国正在由结构化生产方式向以过程为中心的生产方式和工业化生产方式前进。许多软件企业已经认识到利用CMM改进软件过程,实施科学化、系统化管理以提高软件组织的过程能力成熟度的重要性,因而具备了开展CMM评估的强大动力。
    第二、 目前实施CMM评估还存在一定的困难。这主要表现在许多软件组织不熟悉CMM的概念,缺乏软件工程理论和实践方面的经验,组织内的成员、特别是高层领导对CMM评估的重视程度不够,使得评估的具体工作得不到有效实施。
    第三、 软件开发过程很不规范,缺少必要的文档化的过程描述,特别是缺少工作文档、工作量统计文档和风险管理文档。缺乏对软件过程和产品的测量,没有足够的软件过程历史数据,很难基于历史数据对软件开发的工作量和进度进行估计。
    尽管如此,到目前为止,我国也已经有数家软件企业成功开展了CMM评估,并分别通过了CMM各个级别的认证。在评估过程中,不仅积累了丰富的经验,而且还培训了大量具有初步经验的评估人员,有的软件公司甚至已经培养出了自己的主任评估师。
    我国的软件开发行业要想从根本上提高自身的软件过程能力,保证所开发软件的质量,缩短开发周期和减少费用,就必须紧跟国际和国内先进企业的步伐,尽快在软件开发过程中实施CMM评估和改进,有能力的软件开发企业应该率先申请进行CMM认证,形成适合于自身的软件开发管理规范。
    3. 软件开发能力评估程序
    当然,CMM作为一个较好的软件改善框架,只是给出做什么,并没有给出如何做。因此要想在软件行业中成功实施CMM,还必须认真研究如何遵循CMM模型进行具体操作的问题。
    1) 实施软件开发能力评估的战略考虑
    在软件开发企业中实施CMM评估,不能够照本宣科、生搬硬套国外软件公司的实施评估的方法,而要考虑软件组织自身的现状和评估所需要的人力财力物力等因素。对于我国大部分的软件开发组织来讲,基于CMM对软件开发过程进行评估和改进是一个全新的课题,实施CMM评估不仅需要大量的时间和资金投入,而且还会从根本上影响到软件组织的企业文化,并要求组织成员的软件开发理念也相应发生根本性改变。因此,对软件开发能力进行CMM评估不可能一步到位,而应该分阶段、分层次进行实施。
    具体来说,软件开发组织中实施CMM评估应该按照以下两个阶段进行:
    第一阶段:申请评估的软件开发组织首先应该自己组织CMM培训,强化组织成员的CMM理念,在整个组织中树立起过程管理和质量管理意识,并着重培养一批具有初步经验的CMM实施管理人员。在此基础上,选取一些合适规模的中小型项目进行试点,初步积累一些实施CMM的经验,为进行正式的CMM评估打下基础。
    第二阶段:在第一阶段取得收获的基础上,聘请有实施CMM成功经验的单位作为咨询顾问,在组织内全面实施CMM。并且在咨询专家的指导下提出评估申请,并着手准备组织预评估和正式评估。
    2) 基于CMM评估的具体实施过程
    根据评估中的侧重点,软件开发能力的评估也可以有多种方法。在基于CMM模型的评估中所采用的方法是SEI所发布的CBA IPI方法。当然,根据被评估单位的具体情况,评估方法和程序也可以有所改变,但其基本的过程仍然是遵循CBA IPI方法的。CBA IPI方法以CMM为参考模型,以CMM评估框架CAF(CMM Appraisal Framework)为设计要求,由一组专业评估团队对组织的软件过程进行评估,找出组织当前软件过程的强项和弱点并依据CMM中关键过程域KPA(Key Process Area)的目标要求对组织的软件过程进行评级,从而提出最终评估报告的评估方法。
    基于CMM的评估程序一般由三个步骤组成:
    第一、 计划准备阶段。这一阶段的主要任务是在接到软件组织的评估申请后进行受理和实地考察,完成具体评估前的准备工作,制定出评估的具体计划。这一阶段的主要工作包括以下几项:1、界定评估范围,确定评估目标。2、制定调查问卷,选择组织参与者。3、制定评估计划,组织和培训评估团队。4、宣传评估的意义、目标、基本方法和过程。5、进行问卷调查并分析汇总,进行文档的前期查阅以确定准备内容的完整性。
    第二、 评估执行阶段。这一阶段的主要任务是在组织中选取软件项目进行审查,对组织的软件开发能力成熟度进行定量、定性和综合评估,确定组织的资质等级并颁发资质证书等。其中具体工作包括:1、召开动员会,明确目标,取得组织参与者的支持。2、与组织参与者进行深度交谈、文档查阅及必要的演示说明。3、对收集到的信息进行确认、归类和汇总。4、分析、总结与归纳通过评估发现的组织过程的强项和弱点。5、将初步发现的组织强项和弱点向组织参与者报告说明并征求反馈意见。6、根据反馈意见作进一步验证评估和必要的修正、补充。7、确认评估内容的完整性后进行CMM等级评定。
    第三、 评估报告阶段。这一阶段的主要任务是将评估结果报告给受评估的组织,并给出相应的反馈改进意见。具体工作有:1、向组织参与者报告说明评估结果并取得共识。2、向组织管理层报告说明评估结果取得认同以及对进一步的软件过程改进(SPI)计划的支持。
    4. 关键过程域的管理规范
    以上所述的评估程序是参考CMM模型而建立的,其评估过程中所依据的是CMM模型等级中所规定关键过程域的目标要求。因此,要保证软件开发组织中实施CMM评估的有效性,就必须在开展CMM评估的同时,研究、建立和完善CMM中所给出的软件需求管理、软件项目策划、软件跟踪和监督、软件(子)合同管理、软件过程文档管理、软件标准化、软件质量保证、软件配置管理、软件维护、集成软件管理、软件产品工程化、组织协调、同行专家评审、预防缺陷、技术变更管理、过程变更管理、组织过程管理和培训过程管理等18个关键过程域的管理规范。在制定这些管理规范的工作中需要注意以下几点:
    第一、 要以CMM模型中所规定关键过程域为参考,所制定的各关键过程域的管理规范应尽量接近国际标准,做到与国际接轨,以树立起权威性。
    第二、 在每一个关键过程域中,不能照搬照抄CMM中所规定的关键实践,而应该根据软件组织的具体情况进行合理的裁剪和解释。
    第三、 在实现各关键过程域的过程中,CMM模型各级别之间的关键过程域的划分并不是一层不变的,可以根据具体情况进行灵活变更。比如,对于某些特定领域的应用软件来说,有些开发组织虽然不一定能够完全达到CMM5级水平的能力成熟度,但在实施评估时仍然可以将CMM5中的缺陷预防这一关键过程域的目标要求纳入到评估的指标体系中来,以符合软件对于软件质量的高要求。
    5. 软件开发能力评估中可能会遇到的问题
    前面说过,CMM评估对大多数软件开发组织来说是个新事物,组织中的绝大部分成员对其并不是很了解,因此,在实施评估中不可避免地会遇到这样那样的问题。根据我国软件开发组织中的实际情况,在实施CMM评估是大概会出现以下几方面的情况:
    首先,实施CMM评估将会改变开发组织的企业文化和员工的开发理念,因而在执行中可能会有很大阻力。以前的软件开发组织在对软件开发过程进行管理时,往往只注重项目进度,而很少考虑到软件的质量保障和过程管理等问题。对于一个项目负责人来说,可能只是关心每天、每周的软件开发进度,而不注重由于过程管理不规范而带来的质量隐患;对于软件开发人员来说,往往习惯于按照自己喜欢的方式完成眼前的开发任务,排斥使用既耗时又费力的各种开发规范,也懒得填写开发过程中的各种文档,通常的做法是完成软件开发之后再回过头来写文档,不能真正发挥规范文档的作用;而对于软件开发组织的高层领导来说,可能只会着眼于组织近期所产生的效益,对于近期内作用并不明显、却又需要投入大量资金和时间的CMM评估往往并不能给以真正的支持。
    其次,在实施CMM评估过程中只注重CMM认证的广告效应,为评估而评估,而忽略了进行CMM评估的真正目的。CMM评估只是一种手段,其最终目的是实现软件开发组织过程能力的不断提高。如果在评估过程中,被评估单位本末倒置,只是为了追求短期的经济效益,却不根据评估结果和反馈意见对软件开发过程管理进行有效的改进,CMM评估的实施往往就会流于形式,而不能从根本上改进软件组织的开发过程能力。
    第三,目前在软件开发组织中实施CMM评估,还存在一定的技术阻力。这主要表现在两方面:一方面,由于对CMM标准的要求不熟悉,在管理过程中所编写的过程文档质量较差;另一方面,项目经理对文档要求不理解,或者操作方法不熟练,从而导致执行的结果与要求相差甚远。
    第四,在实践方面,没有实施CMM评估的具体经验,缺乏有经验的评估人员。
    根据以上几点考虑,要想在软件开发组织中成功实施CMM评估,需要做好以下几方面工作:
    第一、 在整个组织内宣传CMM软件开发过程理念,从思想上引起对CMM评估的重视,尤其是要得到组织高层领导的支持和组织的政策扶持。
    第二、 对组织内的相关人员进行CMM培训和软件工程相关知识的培训,提高组织成员实施CMM的技能。
    第三、 加强与同行之间的交流,借鉴国内外软件组织进行CMM评估的成功经验,并根据自身实际情况灵活运用。
    第四、 评估程序和管理规范力争做到与国际接轨,树立起行业权威性,在软件的开发过程管理中形成共识。
    第五、 将开展CMM评估的出发点放在改善软件开发组织的过程能力成熟度上,制定合理的过程管理规章制度,严格执行,避免流于形式。
    6. 结束语
    目前我国软件产业方兴未艾,实施CMM可以从根本上改变我国的软件工程文化,改善软件人员素质,这对于提高软件企业素质、增强软件企业的国际竞争力以及软件的出口创汇都有着很重要的作用。这种行业环境为软件开发过程能力评估的开展创造了有利的外部条件。同时,当今国外软件开发组织对于我国软件行业的冲击对于软件组织所造成的压力,形成了在软件开发组织中开展CMM评估的内在要求。并且,鉴于信息产业在国家建设中的重要地位,在软件开发组织中开展CMM评估得到了政策方面的倾斜和资金上的支持,这一点为在软件开发组织内开展CMM评估创造了外部条件。因此,尽管在实施中存在不少困难,但这并不能阻止软件开发能力评估的开展。尽快进行这方面的研究工作,不仅具有重要的理论意义,而且还会产生巨大的应用价值。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: 管理规范


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网