论文部分内容阅读
软件产业的发展对整个国民经济的发展有着极为重要的作用。在我国,软件产业大规模发展较晚;目前,整个产业的结构中以200人以下的中小型软件企业数目最多。但中小型软件企业在生产过程、管理中尚存在着极大的问题,具体表现在产品质量不稳定、生产效率低下、生产成本得不到较好控制。
软件过程改进(Software Process improvement,SPI)是用来帮助软件企业对其软件制作过程制定改进计划、规划改进措施以及实施改进。它针对软件企业的软件生产过程,也就是软件产品的生产过程,当然也包括软件维护之类的维护过程进行改进。
由美国卡内基梅隆大学的软件工程研究所(SEI)创立的CMM(CapabilityMaturity Model软件能力成熟度模型)认证评估,在过去的十几年中,对全球的软件产业产生了非常深远的影响。CMM共有五个等级,分别标志着软件企业能力成熟度的五个层次。从低到高,软件开发生产计划精度逐级升高,单位工程生产周期逐级缩短,单位工程成本逐级降低。据SEI统计,通过评估的软件公司对项目的估计与控制能力约提升40%到50%,生产率提高10%到20%,软件产品出错率下降超过1/3。
CMMI的全称为:Capability Maturity Model Integration,即能力成熟度模型集成。CMMI是CMM模型的最新版本,CMMI是一个体系,它只规定了软件开发过程能力的各种级别的特点以及改进的目标,但对如何实现这些能力和目标没有详细的指导,而且,由于软件应用领域很多,各个机构特点不尽相同,没有一个统一的详细指南可以解决所有机构面临的问题,因此,各个机构必须结合自身的特点来量体裁衣,构建自己的软件开发过程。
所谓软件外包就是一些发达国家的软件公司将他们的一些非核心的软件项目通过外包的形式交给人力资源成本相对较低的国家的公司开发,以达到降低软件开发成本的目的。众所周知,软件开发的成本中70%是人力资源成本,所以,降低人力资源成本将有效地降低软件开发的成本。软件过程改进/过程改进(Software Process improvement,SPI)帮助软件企业对其软件(制作)过程的改变(进)进行计划、(措施)制定以及实施。软件项目的过程改进利用的模型中最为适合的模型是CMMI模型,该模型将软件开发的不同阶段分为不同的PA(ProcessArea过程域),每个过程域,都有一些特殊目标和通用目标,通过相应的特殊实践和通用实践来实现这些目标。当一个过程域的所有特殊实践和通用实践都按要求得到实施,就能实现该过程域的目标。
CMMI的成功实施与两个因素密切相关:一是工具,二是使用工具的人。大多数的企业在实践中过于注重技术,而忽视了人或者业务流程的改变,现实的中小型软件外包企业的软件开发流程中或多或少地存在着问题,小会影响成本,增加项目开发的风险,大会影响到软件质量从而失去客户。进行CMMI实施,能改变中小型软件外包企业流程中存在的问题,降低企业的软件开发成本,提升企业的软件质量,为软件外包企业赢得客户。
软件外包企业实施CMMI的关键点在于以下三个部分过程的改进,首先是需求管理、需求开发过程,在需求管理中使用《用户需求说明书》和《产品需求规格说明书》进行评审确认,使后续的工作有据可循,并使用需求跟踪矩阵对需求的不一致进行跟踪、查找、消除。其次是配置管理过程,中国的中小型软件企业一般都不重视配置管理,因而经常导致文档的残缺或代码的管理混乱,而CMMI在配置管理过程中利用配置管理对已经开发完成的配置项进行控制和管理,以确保各配置项在整个软件生命周期中的完整性、一致性和可追溯性,并在产品发行前进行严格的配置审查和发行检查。最后是质量管理过程,质量是产品的生命线,而软件产品由于不可视,使得这条生命线的管理更加困难,在CMMI质量管理过程中包括了质量保证、同行评审和测试验证三个流程,中小型软件外包企业可以针对自身特点对其进行剪裁替代,测试验证在软件质量管理中具有核心地位,利用测试保证提供给最终用户的软件产品具有一定可信度的质量评价。
由于利用CMMI过程进行软件项目开发的关键在于以下三部分.首先在项目开始初期必须对CMMI标准过程进行相关剪裁,CMMI标准过程是一个十分复杂的过程,更由于其具有的不确定性,一定要做到有备无患,制定出针对中小型软件外包企业某个项目的单独开发流程,对冗余流程进行删除,对相似流程进行替代.其次在整个软件开发过程中,每个过程都产生了相应的大量文档,需要将需求管理,配置管理,质量管理等CMMI过程完美融合到项目开发过程中,并持续地进行实施.最后真理来自于实践,每个项目结束后都必须对项目进行评估总结,形成经验介绍文档,得出适合企业的CMMI过程改进步骤。相信随着越来越多的软件项目按照CMMI标准过程进行开发,越来越多的成功经验将为我们所利用和借鉴。