第2章 相关理论及文献综述
2.1 软件项目管理
2.1.1 项目管理
项目管理这个概念,最早是在第二次世界大战中美国研制原子弹的曼哈顿计划中提出的。经过长期的发展,项目管理的概念在不断的成熟,形成了完整的学科体系,构建了一些专门进行项目管理研究、实践的项目管理协会组织。如,美国的项目管理协会 PMI、欧洲的国际项目管理协会 IPMP 等17.从欧洲国际项目管理协会历年的会议主题中,可以看出项目管理研究从起步到现代化过程经历了四个阶段:第一阶段是上世纪 60 年代末到 70 年代,这个阶段项目管理的研究,主要关注的是项目管理相关理论的研究、项目管理方法的研究等。特别突出的研究重点就是网络计划评审(PERT)10;第二阶段是上世纪 70 年代末到 80年代,这个阶段项目管理的研究,突破了传统的理论基础、管理方法和管理组织的研究,开始研究项目管理对于社会产生的影响;第三阶段是上世纪 80 年代末到 90 年代,这个阶段项目管理的研究,充分凸显了实践性,侧重于项目管理、组织及社会的关系;第四阶段则是 90 年代末至今,随着信息技术的发展,传统的纵向经济运营模式逐级向横向模式转变,项目管理专家和学者更加关注于项目的具体管理,如质量管理、成本管理、进度管理等。
软件质量的好坏是系统安全平稳运行的根本,因而在软件项目管理领域,质量管理是核心,也是当前研究的重点问题。
2.1.2 软件项目管理
软件项目管理是为了对软件项目相关的各项因素,如人力资源、成本、进度、质量、风险等方面进行分析、预测和管理,以保障软件项目能够在计划的时间、成本范围内,保障高质量地完成软件产品的活动。具体来说,软件项目管理的内容主要有五方面:
(1) 软件进度管理;(2) 软件质量管理;(3) 软件成本管理;(4) 软件风险管理;(5) 软件配置管理。
软件项目管理活动是必须的。薛四新和贾郭军在《软件项目管理》一书中阐述了软件项目管理的原因:
(1) 软件开发和生产是一项系统性的工作,是知识密集型的智力活动,同时也是劳动密集型和资金密集型的系统性工作,软件开发项目包含各种容易出错的手工劳动,如编码等;(2) 由于现代化技术发展迅速,用户对软件的需求变得更加频繁,很难有效地控制项目计划;(3) 软件开发和生产项目资源单一,人力资源是软件项目的主要资源;(4) 项目成果具有不可见性,这就导致了软件项目管理困难,难以控制时间进度和质量,无法保证可靠性;(5) 软件项目生命周期系统性强,软件项目生命周期由分析需求、设计概要、详细设计以及编码和测试、维护等阶段组成;(6) 软件开发过程中,人与软件因素相关性强,不同的人对于事物描述有着不同的方式,容易导致沟通困难等问题。
着名的软件工程专家 B·W·Boehm 在上世纪八十年代初,通过研究,总结出了软件开发的基本原则,一共七条9.这七条基本原则既是软件项目管理的基本原则,也是进行软件项目管理的普遍性原则。这七条基本原则是:
(1) 通过分阶段的方式对于生命周期计划进行严格的控制和管理;(2) 必须贯彻执行阶段评审;(3) 坚持软件质量产品控制;(4) 软件开发时采用现代程序设计技术进行;(5) 项目管理成果必须能够明确清楚的审查;(6) 软件开发小组应该精简,人员保障专业;(7) 坚持不断改进软件工程实践。
2.2 CMM 理论综述
2.2.1 CMM 国内外研究现状
CMM 是由美国国防部和卡内基·梅隆大学软件工程研究所(简称 SEI,即 SoftwareEngineering Institute)受美国国防工业协会委托开发和制订的,于 1991 年开始在美国应用,并逐渐在世界各地得到广泛推广。1987 年,汉弗莱的成熟度框架在 SEI 技术报告中发表,这份报告同时还发表了汉弗莱成熟度框架初期的成熟度提问单,为软件组织提供了评估软件过程的一种方法。在此基础上,汉弗莱又进行了深入的研究,为了对软件过程成熟度进行估计,又研制出了软件能力评价方法和软件过程评估方法4.SEI 将几年来的关于成熟度框架理论和方法在软件过程中应用的经验进行总结,进一步扩展和深化了成熟度框架模型。SEI 于 1999 年又针对不同的特定领域开发出了不同的工程模型,如人力资源(P-CMM)模型、系统工程(SE-CMM)模型、软件获取(SA-CMM)模型、集成系统产品开发(IPD-CMM)模型、系统安全工程(SSE-CMM)模型和小组软件过程 (TSP)模型等等。进而,为了减少分别应用各个模型时重复工作并消除不一致性,SEI 在 CMM 的基础上推出了 CMMI 模型16.
当前,国外关于软件危机的研究,主要集中在如何解决软件危机、如何提升软件质量的问题上,其中,特别是采用软件工程方法的理念和角度,从技术方面研究软件质量提升的措施,如研究软件开发模型,创新软件开发方法等。当然,也有很大一部分学者指出,应该从软件管理的角度提升到软件质量上去。如,软件项目质量管理等。Robert T·Futrell,Donald F·Shafer, Linda I·Shafer 在《Quality Software Project Management》一文中指出,项目软件质量管理是提升软件质量的重要措施,应该加强对软件项目管理知识框架的研究,构建和完善软件成熟度 CMM 体系和标准,推进软件过程质量的全面可控,提升软件质量,最终解决软件危机6.弗雷特尔在《高质量软件项目管理》管理一书中,阐述了软件项目管理作为提升软件质量的关键,应该将 CMM 模型和 CMMI 模型与软件项目管理结合起来,充分发挥 CMM 模型的作用,构建软件项目质量管理模型,从五个标准等级全面提升软件质量。通过软件过程评估和软件能力评价两种方法,实现软件质量的管理和控制。
随着信息化进程的快速推进,软件项目管理理念引入我国,我国软件企业开始越来越关注软件项目管理方法的应用。CMM 认证体系和 ISO9000 认真的引入,使我国企业对于软件项目管理的认识得到了深化。众多软件管理学者和企业也积极寻找解决软件危机的办法。当然,就目前而言,我国软件项目质量管理研究还处于起步阶段。一方面需要借鉴国外现有的 CMM 模型以及认证标志体系,另一方面又必须结合我国软件企业规模小、资金少和人员流动频发的实际情况,需要充分考虑实施时的可操作性和实践性问题。我国于 1992 年颁布了第一套软件工程国家规范《计算机软件工程规范国家标准汇编》,而目前为止最全面的软件工程国家规范是《计算机软件工程规范国家标准 2003》。这些标准对我国软件的标准化生产起到了重要作用。
我国信息产业部在中国电子技术标准化研究所和友和咨询公司的基础上,组织协调了我国软件经验丰富的专家和其他软件企业人员,构建了一个软件科研小组。此小组充分借鉴了国外 CMM 和 ISO/IEC TR 15504 等国际标准的经验,并且将我国多年来软件工程的标准化的理论和实践与之相结合,发布了《关于贯彻软件能力评估标准的通知》,对软件能力评估试点工作安排进行了部署。目前主要还是试点工作,没有完全在软件行业普遍推广1.苏秦在《软件过程质量管理》一书中,阐述了 CMM 模型和标准并不是适合所有的软件企业。
软件企业必须结合自己的实际情况和各自特定需求,结合 CMM 模型和标准设计出适合企业发展的软件质量管理模型。因而,软件企业必须从自身的组织结构、技术基础以及软件开发过程和业务环境等实际出发,充分研究 CMM 成熟度工程模型和思想,充分发挥其作用,以合适的软件质量管理方法,来实施软件过程管理,提高软件质量。
CMM 认证进入我国软件领域多年来,已经对我国软件产业的健康发展,作出了巨大贡献。
但是,一些软件企业还存在以获得证书为根本目的,忘记了 CMM 认证是改进软件生产过程的根本目的。这也直接导致使我国一些通过 CMM5 级的企业的项目,存在平均延期率依然在25%以上,并且数据不稳定的隐患情况。尤为不幸的是,目前还没有任何公开数据表明,我国通过 CMM 高级别认证的企业,提高了生产效率,降低了成本,提高了产品质量。事实上,一些企业公司通过 CMM 认证的目的,并不是为了提升能力,而是为了需要时使用。
CMM 成熟度模型是用于产品开发(或服务)的过程中,改进成熟度的软件项目管理模型,是一套融合多学科、可扩充产品集合的模型。该模型包含了从软件需求提出、软件设计、编码、测试、交付运行到维护的整个软件周期里,各个软件过程的各项基本要素,是软件过程的有机汇集,旨在为软件企业改进其过程,提高其软件产品或服务的开发、采购以及维护能力提供指导。
2.2.2 CMM 的管理思想
CMM 的管理思想来源于产品质量管理理念。上世纪 30 年代,休哈特(Walter Shewart)发表了《统计质量控制原理》,首次提出了质量控制原理。之后朱兰(Josehp Juran)和戴明(W·Edwards)在休哈特的基础上,进一步论证和发展了质量控制原理。实施上,克劳斯比(Philip Crosby)出版的名为《Quality is free》(质量免费)一书中,首次将质量原理转化为成熟度框架。克劳斯比指出质量管理成熟度网络在实践中的五个进化阶段。
后来,IBM 的 Rom Radice(拉迪斯)及同事在 Watts Humphrey(汉弗莱)的指导下,将克莱斯比的质量管理成熟度网络实践阶段进一步改进,应用到软件项目质量过程中。汉弗莱于 1986 年将成熟度框架理论带入 SEI,最终阐述了现代意义上的成熟度等级的概念。
1987 年,汉弗莱的成熟度框架在 SEI 技术报告中发表,在此基础上,又研制出了软件能力评价方法和软件过程评估方法。SEI 总结了从 1990 年以来的关于成熟度框架理论和方法在软件过程中应用的经验,进一步扩展和深化了成熟度框架模型。当前,软件能力成熟度模型 2.0 版已经修订问世。CMM 的软件质量管理思想也不断地优化和完善。
2.2.3 CMM 软件成熟度的评估方法
软件评估方法由于目的不同,一般有软件过程评估和软件能力评价两种。CMM 成熟度模型制定了一个结合两种方法的一般性参考框架,拥有共同的步骤,如图 2-1 所示:
软件过程评估及软件能力评价的第一步就是选择评估小组。评估小组的成员应该是具备软件工程和管理专业知识,并且拥有软件管理丰富经验的专家组成。评估小组也必须接受系统的、专业的 CMM 理念和评估及评价具体实施细节的培训。第二步则是评估单位代表进行软件过程成熟度问卷的设置,并且由评估单位代表回答评估小组提出的诊断性问题。第三步则是评价小组对于成熟度问卷及诊断性回答进行相应的分析,明确与答案相吻合的问答,确定进一步探查的领域。进一步被探查的领域应该是和 CMM 关键过程域相对应的。第四步是对被评估单位进行现场访问,会谈和文档评审。在进行了相应分析之后,根据分析结果,评估小组组织座谈会,复审文档,明确软件开发遵循的软件过程2.进而,以 CMM 关键过程域和关键实践作为依据,通过专业人员进行确定该机构关键过程域的实施与关键过程域目标是否相吻合。第五步是评价小组制列出调查结果清单,明确机构软件过程中的优势和劣势。调查结果是软件过程评估中实现过程改进的基础,同时也是软件能力评价中对软件承制方实行风险分析的一部分。第六步是评估小组准备一个软件关键过程剖面图。这个剖面图表明了该机构在哪些区域已经满足关键过程域的目标,哪些区域还未满足。
2.2.4 CMM 的五级标准
根据过程能力逐渐成熟的理念,CMM 的实施可以划分为五级,每一个级别都对于该级过程管理水平以及必须解决的问题和关键过程,进行了明确的定义和阐述。同时,每一级别是逐渐上升的,每一个低级别都是较高一个级别实现的基础。在软件开发过程中,应该使用 CMM 理念一级级地提高软件开发质量和生产能力3.CMM 五级标准模型如表 2-1 所示。本文第 3、4、5 章中涉及到的关键过程域,将在 2.2.5 中做详细介绍。
2.2.5 CMM 模型中的关键过程域
本文在针对 A 软件项目做分析研究时,用到的关键过程域主要有:需求管理(CMM2 级)、软件项目计划(CMM2 级)、软件质量保证(CMM2 级)、软件配置管理(CMM2 级)、培训程序(CMM3 级)和组间协调(CMM3 级),如图 2-2 所示,用下划线标出。
2.2.5.1 需求管理
需求管理的目的,是在顾客和将处理顾客需求的软件项目之间,建立对顾客需求的共同理解。
需求管理,包括和顾客一起建立和维护有关软件项目需求的协议。该协议称作“分配给软件的系统需求”.“顾客”可解释为系统工程组、销售组、另一个内部组织、或者一个外部顾客。协议既包括技术需求、又包括非技术需求(例如交付日期)。该协议形成估计、策划和跟踪整个软件生存周期内软件项目活动的基础。
将系统需求分配给软件、硬件和其它系统成分的工作,可能由软件工程组之外的组(例如系统工种组)完成,软件工种组可能对此分配无直接控制,在项目约束范围内,软件工程组采取恰当步骤,以保证对分配给软件的需求建档,并加以控制。该组负责处理分配给软件的系统需求。
为实现此控制,软件工种组评审初始的和经修改的分配给软件的系统需求,以便在它们被纳入软件项目之前,使问题得以解决。每当改变分配给软件的系统需求时,都要调整受到影响的软件计划,工作产品和活动,使其与更新后的需求保持一致。
2.2.5.2 软件项目计划
软件项目计划的目的是为完成软件工程和管理软件项目制定合理的计划。
软件项目计划包含估计待完成的工作,建立必要的缩写和确定进行该工作的计划。
软件项目计划首先作出有关待完成的工作和其它定义及界定软件项目的约束和目标(由需求管理关键过程区域的实践所建立的)的陈述。软件计划的过程包括以下步骤:估计软件工作产品规模及所需的资源,制定时间表,鉴别和评估软件风险和协商约定。为了制定软件计划(即计划开发计划),可能需要重复地通过这些步骤。
该计划提供完成和管理软件项目活动的基础,并按照软件项目的资源、约束和能力,阐述对软件项目的顾客作的约定。
2.2.5.3 软件质量保证
软件质量保证的目的是向管理者提供适当的对软件项目正使用的过程和正构造产品的可视性。
软件质量保证包括评审和审计软件产品和活动以验证它们符合适用的规程和标准,给项目和其它有关的经理提供这些评审和审计的结果。
在软件项目的早期阶段,软件质量保证组与软件项目一起工作,制定计划、标准和规程等。这些计划、标准和规程,将增加软件项目的价值,并将满足项目和组织方针上的限制。
通过参与制定计划、标准和规程,软件质量保证组帮助确保它们适合项目的需要,并且帮助验证它们对完成整个软件生存周期中的评审和审计将是适用的。软件质量保证组在整个生存周期评审项目活动中,审计软件工作产品,并就软件项目是否正遵守已制定的计划、标准和规程等,给管理者提供可视性。
首先,在软件项目内部处理符合性的问题上,如果可能的话,就地解决它。对于那些无法在软件项目内部解决的问题,软件质量保证组逐级上递该问题到管理者的恰当层次,以求得解决。
这个关键过程区域,只包括该组履行软件质量保证功能的实践。而识别软件质量保证组要评审和(或)审计的具体的活动和工作产品的实践,一般包含在其它关键过程区域的验证实施共同特点中。
2.2.5.4 软件配置管理
软件配置管理的目的,是建立和维护在项目的整个软件生存周期中,软件项目产品的完整性。
软件配置管理包括标识,在给定时间点上软件的配置(即选定的软件工作产品及其描述),系统地控制对配置的更改、并维护在整个软件生存周期中配置的完整性和可跟踪性。
置于软件配置管理之下的工作产品,包括交付给顾客的软件产品(例如软件需求文档和代码),以及与这些软件产品等同的产品项或生成这些软件产品所要求的产品项(例如编译程序)。
建立一个软件基线库,当软件基线形成时,就将它们纳入该库。通过软件配置管理的更改控制和配置审计功能,系统地控制基线的更改和那些利用软件基线库构造成的软件产品的发行。
这个关键过程区域,仅包括实施软件配置管理功能的实践。而标识具体的配置项或单元的实践,则包含在描述每个配置项或单元的开发和维护的关键过程区域中。
2.2.5.5 培训程序
培训程序关键过程区域的目的是培育个人的技能和知识,使他们能有效地和效率高地履行其职责。
培训程序的活动首先分别识别出组织、项目和个人所需要的培训,然后根据结果计划和展开培训,以满足所识别的需求。
每个软件项目都要评价执行项目所需要的技能需求,并决定如何才能让相关人员获得这些技能。某些技能可通过非正式的载体有效地传授(例如在职培训、师徒培训等),而其它的技能则需要较正式的培训载体(例如课堂培训、网络培训等)才能有效地传授。实施培训程序的活动时,必须根据具体情况选择和使用最恰当的培训方式。
2.2.5.6 组间协调
组间协调的目的是建立软件工程组与其它工程组一起积极参与的方式,使得项目能够更有效地满足顾客的需要。
组间协调包括软件工程组和其它项目工程组一起参与阐述系统层的需求、对象和问题。
项目工程组的代表,当适时与顾客和最终用户一起工作,参与建立系统层的需求、对象和计划。这些需求、对象和计划将成为全部工程活动的基础。
组间协调活动对组间的技术工作界面和相互作用加以计划和管理,以保证整个系统的质量和统一性。各项目工程组的代表必须参与定期的技术评审和内部交流,以保证所有工程组都清楚各组的状态和计划,并保证系统和组间的问题受到恰当的关注和处理。
2.3 基于 CMM 的软件质量管理综述
2.3.1 基于 CMM 的软件项目文献综述
1987 年,汉弗莱的成熟度框架在 SEI 技术报告中发表。这份报告同时还发表了汉弗莱成熟度框架初期的成熟度提问单,为软件组织提供了评估软件过程的一种方法。在此基础上,汉弗莱又进行了深入的研究。他为了对软件过程成熟度进行估计,又研制出了软件能力评价方法和软件过程评估方法。SEI 总结了从 1990 年以来,将几年来的关于成熟度框架理论和方法,在软件过程中应用的经验,进一步扩展和深化了成熟度框架模型。基于 WatsHumphery(软件成熟度运动的先驱)等人的工作,SEI 的 Mark Pauk 等人建立了第一个 CMM模型框架,即软件工程 CMM.SEI 于 1999 年又针对不同的特定领域开发出了不同的工程模型。如,人力资源(P-CMM)模型、系统工程(SE-CMM)模型、软件获取(SA-CMM)模型、集成系统产品开发(IPD-CMM)模型,以及系统安全工程(SSE-CMM)模型和小组软件过程(TSP)模型等等。进而,为了减少分别应用各个模型时重复工作,并消除不一致性,SEI在 CMM 的基础上推出了 CMMI 模型16.1991 年,SEI 推出了 SW-CMM1﹒0 版本,1993 年推出CMM1﹒1 版本;CMM(Capability Maturity Model)是指软件能力成熟度模型。该模型按软件过程的不同成熟度,划分了 5 个等级,由低到高分别是初始级、可重复级、已定义级、已管理级、优化级。CMM 给出了从混乱的个别过程,达到成熟的规范化过程的一个进化框架。
软件组织可以通过它去定义、实施、测量、控制和改进自己的软件过程。1997 年秋,美国国防部对 SEI 的活动,进行了评审。评审活动集中在成熟度集成框架及其相关产品上。当时,SEI 已经开始研究 CMMI.主要的工作是支持过程和产品的改进,减少分别应用各个模型时重复工作并消除不一致性。其目的是将已有的 CMM 模型集成为一个统一的、可扩展的框架,以便改进组织的过程,从而提高对产品开发和维护或服务地管理能力,并支持将来集成其他学科的 CMM.它既可供目前正在使用各个 CMM 的组织使用,又能供初步接触 CMMI 概念的组织使用,同时还与 ISO/IECTR15504 兼容。2001 年 9 月 SEI 推出了 CMMI 模型。
我国于 1992 年颁布了第一套软件工程国家规范《计算机软件工程规范国家标准汇编》。目前,最全面的国家标准汇编是《计算机软件工程规范国家标准 2003》12.这些标准对我国软件的标准化生产起到了重要作用。我国信息产业部在中国电子技术标准化研究所和友和咨询公司的基础上,组织协调了我国软件经验丰富的专家和其他软件企业人员,构建成软件科研小组,充分借鉴了国外 CMM 和 ISO/IEC TR 15504 等国际标准的经验,并且将我国多年来软件工程的标准化的理论和实践相结合,于 2001 年 4 月 13 日发布电子行业标准 SJ/T11234-2001《软件过程能力评估模型》和 SJ/T 11235-2001《软件能力成熟度模型》,并于2001 年 11 月 19 日发布《关于贯彻软件能力评估标准的通知》,对软件能力评估试点工作安排进行了部署30.目前主要是试点工作,还没有完全在软件行业普遍推广。
2.3.2 CMM 的应用研究综述
CMM 被应用于多个不同领域的系统开发中,该标准基于众多软件专家的实践经验,侧重于软件开发过程的管理及工程能力的提高与评估,是国际上流行的软件生产过程标准和软件企业成熟度等级认证标准。CMM 提供了一套国际标准的管理方法论,是对自身软件过程进行评价和改进的行动指南。王艳慧在《CMM 理论在“住房公积金监管系统”中的应用》一文中,在《住房公积金监管系统》项目中应用 CMM 理论指导软件开发过程的改进活动。根据 CMM 成熟度等级认证标准结合项目实际情况,采用 CMM2级的4个关键过程域,需求管理、软件项目计划、软件项目跟踪与监控、软件质量保证。制定出符合项目需求和管理的规范与过程,将 CMM 理论应用于软件开发过程中,对项目进行各个环节的工作进行改进,总结过程改进效果和经验,指出在“住房公积金监管系统”的开发和改进中,取得了良好的效果。顾启海在《一种新的基于 CMMI 的中小软件企业软件开发过程改进实施模型研究》一文中,研究了软件过程改进的相关概念、几种常见的软件生命周期模型和过程改进模型,分析了我国中小软件企业的软件过程现状,探讨了 CMMI 的学科模型、过程域、两种模型表示法及其各自优缺点、CMMI 过程裁剪,提出了一种新的基于 CMMI 的中小企业软件过程改进实施模型,并通过一个案例验证了此实施模型有效21.而饶友民在《基于 CMM 技术的钢管混泥土专家系统的设计与开发》一文中,介绍了 CMM 这个新的软件方法,并且运用这种技术和传统的专家系统相结合,设计了一种基于 CMM 技术的钢管混凝土专家系统。结合具体的案例进行了实践性的研究,扩展了 CMM 的研究领域。
2.3.3 基于 CMM 的软件开发项目管理研究方向
软件项目管理理论是项目管理学、管理学、经济学等研究的重要课题之一。它随着项目工程行为理论、系统工程等理论的迅速发展而诞生发展。近几年来,将 CMM 软件成熟度模型,应用到软件开发项目管理过程中的研究取得了长足的进展,也已经成为了软件工程和项目管理理论中关注度较高的领域之一19.软件质量是贯穿软件生命周期的一个极其重要的问题,是软件开发过程中所使用的各种开发技术和验证方法的最终体现,因此,为确保软件质量,结合各种技术、方法和手段提出一种行之有效的软件开发模式,优化软件开发过程是很有现实意义的。通过对相关文献的阅读和整理,结合实际工作,认为 CMM 软件项目开发过程的优化进一步研究的方向,表现在以下一些方面:
(1) 基于 CMM 的软件开发项目理论的完善
基于 CMM 软件开发项目管理理论已经取得了一定的发展,特别是将 CMM 软件成熟度模型应用到软件项目开发过程的优化中,能够有效地提升软件产品的质量。在软件项目管理体系下,一些学者深入研究 CMM 模型在软件项目开发过程中的具体应用,将 CMM 模型与软件项目开发的实施过程和步骤相结合,致力于完善 CMM 软件成熟度模型和软件项目开发过程优化理论,促进 CMM 模型在软件项目开发过程优化中的应用实践的深入,完善相关理论,促进软件开发项目管理实践活动的系统化和科学化。
(2) 软件开发过程优化的创新研究
要实现软件开发过程理论和实践的优化和突破,就必须有所创新,通过新技术、新方法、新思想来实现软件项目开发过程的优化。CMM 软件成熟度模型作为国际认可的标准,应用于软件开发项目中,能够使软件通过 CMM 认证达到要求,提升软件质量。上海贝尔于 2002 年提出了“精简并行过程”(Simplified Parallel Process,SPP)。SPP 是基于 CMMI 以及软件工程和项目管理知识,而创作的一种“软件过程方法和规范”.CMMI 是 SPP 的主要参考标准,但 SPP 并不是对 CMMI 进行简化处理后的结果。两者都是用于指导软件过程改进的方法论,CMMI 主要论述“应当做什么才能使软件过程能力达到 CMMI 某种级别”,而 SPP则论述“应当怎样做才能使软件过程能力达到 CMMI3 级水平”.因此,在软件开发过程优化研究进一步发展过程中,应该探索将 CMMI 标准模型应用其中,将 CMMI 模型和软件开发过程相结合,探索新的研究领域,创新软件开发过程,提升软件质量。
(3) 基于 CMM 模型的软件开发过程的实验研究
软件开发是一项系统性极强的工程,将 CMM 模型应用到软件开发过程中,构建和优化软件开发过程及模型涉及的因素比较多,在实践中会因为模型的复杂性而到出现一些问题。
随着现代化科学信息技术的不断发展,计算方法的优化,应用神经网络、遗传算法等人工智能系统对软件项目风险管理实践进行仿真和数值计算,不仅对现实中软件工程项目风险管理信息系统的发展具有重要意义,也是将 CMM 模型应用到软件开发过程的优化研究中,深入发展了一个全新研究领域,对于推进 CMM 模型和软件开发过程的优化具有重要意义。