计算机网络毕业论文

软件过程改进

时间:2021-02-13 12:19:26 计算机网络毕业论文 我要投稿

软件过程改进

  软件过程改进【1】

  【摘 要】软件行业的人们通常都会感到“软件危机”的痛苦。

  为解决该危机,必须进行软件过程管理与软件过程改进。

  本文首先提出了过程思维的这一新理论概念;其次剖析了软件过程改进的框架;最后给出软件过程的评估方法。

  【关键词】软件过程管理 软件过程改进 过程思维 CMM

  一、产生背景

  目前,软件行业正处于从手工作坊到在其它工业生产中普遍使用的工程化的进化之中。

  人们通常都会感到“软件危机”的痛苦:软件的推出总是晚于计划,而成本却往往高于预算,但功能却往往没有预先设计的那么多,并且后期对软件产品的维护比较困难。

  为了解决这个危机,软件开发领域中已经逐步开始引入软件过程管理与软件过程改进的概念。

  软件过程改进是指在软件开发过程中除了应用先进的软件开发技术和软件开发方法外,还有一整套的软件管理和改进技术。

  常见的软件过程改进方法有:CMM、ISO9000、ISO/IEC 15504 等,其中CMM又是事实上的软件过程改进的工业标准。

  二、过程思维

  “为了解决软件问题,重要的第一步就是将整个软件开发任务看作一个可控的,可度量的以及可改进的过程。”,倡导过程思维的先驱Watts Humphrey在他的著作中是这么阐述过程的。

  过程思维也是一种自然的思维方式,我们所拥有的知识和经验实际上也是采用和过程相类似的方法保存在大脑中;但过程思维方式和传统思维方式有所不同。

  对于一个软件项目组的成员来说,如果每个成员都能采用相同的过程思维方法,将会统一各个成员的工作目标,为实现最终的目标而共同努力。

  如果软件的开发没有围绕过程为中心进行,往往会导致软件开发过程的混乱,使得开发人员不得不到处救急,来维护软件。

  三、软件过程改进的框架

  当有效的软件过程环境建立好了以后,过程环境中的机制有利于我们建立过程文化和过程架构。

  软件过程改进的战略应该建立在当前的软件过程改进环境下的一个整体框架之上。

  这些整体框架中标识出了软件过程改进中必须包括的关键的领域。

  下面我们介绍一种软件过程的改进框架。

  该软件过程的改进框架包括以下四个方面的内容:

  (一)软件过程架构:支持过程环境需要两种类型的架构。

  一为组织及管理方面的架构,包括角色和职责;另一为技术方面的架构,包括技术工具和相关的设备。

  (二)软件过程改进规划图:它指定一个将要采用的软件过程模型,并且规划出实现高效的软件过程的步骤。

  软件过程改进规划图为我们指明了实现软件过程所要经历的各个阶段及层次以及为了实现这些目标所必经的关键点。

  这些过程模型可以是CMM/CMMI或者ISO/IEC 15504等。

  (三)软件过程评估方法:它指出对组织当前软件过程,活动以及架构进行评估所采用的方法及技术.通常评估是根据软件过程改进规划图而进行的。

  (四)软件过程改进计划:为进行软件过程改进,根据评估中所发现的各种问题,提出相应的改进解决方案。

  通过实施软件过程改进计划,可以提高现有的软件过程水平。

  构成框架的这四个部分是相互关联的,任何一个软件过程的改进策略都应该包括这几个部分,否则会造成冲突。

  通常是先根据软件过程改进规划图对已有的架构进行评估,然后制定软件过程改进计划,再进行改进,从而达到改进规划图中的软件过程成熟度的级别。

  四、基于CMM的软件过程改进

  在软件过程改进中,关键要做好软件过程改进规划图的分析工作,并在此基础上进行软件过程评估分析。

  下面结合CMM(Capability Maturity Model for Software---软件能力成熟度模型)综合分析软件过程改进。

  (一)软件过程改进规划图

  软件过程改进规划图会划分出过程改进中不同的阶段,并告诉我们在每一个阶段过程应该具备的特点和属性。

  软件过程改进规划图中应该先定义好目标,然后通过过程改进活动提高整个组织的能力成熟度,并且达到最终的目标。

  目前最为著名的过程改进规化图是由美国卡内基――梅隆大学软件工程研究所(SEI)提出的能力成熟度模型(CMM)。

  CMM主要用于软件开发过程和软件开发能力的评估和改进,其目的是让从事软件开发的公司和人员从被动地去解决所碰到的难题转变为以成熟的、规范化的方式来解决问题,从而提高软件企业生产软件的能力和水平。

  (二)软件过程评估

  软件过程评估是对一个组织的软件过程进行评估与检查。

  软件过程评估可以为我们提供关于当前组织内部所采用的软件过程状态的基本情况描述,而它正是我们进行软件过程改进的基础。

  软件分析业中经常使用CMM进行过程评估与改进。

  CMM是一个框架,是软件组织提高过程能力的一种途径。

  CMM在设计时就以考虑到各种使用问题,所以评估组可以将CMM作为他们对组织内已存在过程进行评估的基础,从而确定出过程的强项和弱点(与CMM中过程定义有关的内容)。

  这种评估方法通常分被描述为基于CMM的评估。

  五、结束语

  要克服软件生产中的这些不如人意的地方,我们就必须采用系统的改进方法。

  对一个软件而言,要降低成本,提高效率,提高软件的质量,一个规范化的,系统的软件过程和质量改进方法是非常重要的。

  总之,要有效的进行软件的开发,必须进行软件过程的改进,就必须要有效的过程环境,为了使过程环境更加有效,我们需要以下角色和机制的支持:明确的过程职责;关于过程的培训;对过程的度量;对过程执行情况的监控;来自于过程使用者的反馈;来自于外部环境的反馈;过程的强制和检测。

  这样才能进行有效的过程改进,从而最终实现我们的目标以及提高软件的质量。

  参考文献:

  [1]吴天荣,智明.CMM在软件过程中的一些思考[J].福建电脑,2007,(5).

  [2]刘莉,傅英亮,陶强.基本质量的软件过程研究[J].计算机工程与设计,2007,(5).

  [3]陈新炜.软件外包服务中的CMM应用[J].商场现代化,2007,(1).

  [4]李兴峰,冯苗.CMM在教学信息平台开发中的实施[J]. 中国水运,2007,(12).

  软件过程改进研究【2】

  摘要:为增强软件企业的国际竞争能力,软件企业实施过程改进非常重要。

  过程改进的实施保证了一个项目软件研发能够达到较高水平,其意义不仅仅是对软件开发的过程进行管理,同时也最大程度地降低了企业的成本,产品质量和用户满意度也有所提高,是一种高效的管理方法。

  介绍了软件过程改进的基本理念,对sPI中的CMM和CMMI进行了阐述,同时作了简单的对比。

  关键词:软件过程;过程改进;CMM;CMMI

  1、过程概念

  要想开发出客户需要的产品,就必须使用合适的方法、技术以及工具。

  过程即是人、方法、技术和工具这4项关键因素的集合。

  过程它不单单是一堆文档,有效的过程环境还包括了过程的定义、过程的培训、过程的监控与强制三个方面。

  人们用以开发和维护软件及其相关产品的一组活动、方法、实践和变换被定义为软件过程。

  过程改进(Process Improvement):是指根据企业的现状及发展需求,优化流程制度,努力提高人们在过程中的工作能力,最终“提升产品质量、生产率并降低成本”。

  过程改进是企业谋求进步的需要。

  软件过程改进(SPI)是一个长期的投资。

  定义清晰的、可测量的目标,对提供指导和帮助改进开发的策略来讲是必要的,也为改进结果的客观测量提供了可能。

  SPI的基本理念是质量形成于过程。

  过程改进能够带来效益。

  节省资金和商业改善措施可以将软件过程改进和商业结果联系起来,这些改进又可以融合到软件过程改进中。

  这些因素包括:产品质量的提高、上市时间的缩短和生产率的提高。

  从改进后的过程对软件质量的影响可以看到软件质量的提高,从而导致使用该软件的产品或服务质量的提高。

  产品质量的提高最终可以减少产品的缺陷、提高满意度、减少退货以及避免媒体舆论的压力等。

  成熟的过程有助于采用有效的方式引进新技术,利用这种方式可以更快地把新技术引入到产品中,从而获得竞争上的优势。

  2、核心原则

  软件过程可以定义为对整个软件生命周期的管理与工程化过程及支持进程的规范说明。

  过程的使用者为软件工程师和项目经理,过程的结果则是软件程序、系统以及文档。

  软件过程改进的要求导致了软件过程重要性的提高,从而产生过程分析和评估的方法。

  注重问题、强调知识创新、鼓励参与、领导层的统一和计划不断地改进是SPI的5条核心原则,是从实践中发展而来、相互关联的SPI哲学,对SPI工作具有非常重要的指导作用。

  软件过程改进成功的关键因素在于我们应当像对待真正的“项目”一样去看待软件过程改进计划,也就是说,我们要为其分配资源、进行管理、编写阶段性的计划、制定质量以及配置管理计划等。

  过程改进的核心是解决问题,它为过程改进人员指明了目标、明确了方法。

  “改进是一种知识的创新,而SPI是受知识驱动的”。

  它强调了知识创新在SPI中的重要性,同时也指出注重知识创新的同时对知识的传播和扩散也不容忽视。

  改进活动可以用作一个模型和一个机制,用来试验所期望的各种不同的过程和行为。

  一个典型的原则是运用改进尘埃来试验修订的管理过程,如新版的计划、跟踪等等。

  新的方法可能因为影响太小而“失败”。

  这种意义上的失败意味着新的过程不如预期的那样好,这是第一次试验一个新的或修订的过程时一个共同缺点。

  任何这样的指导原则应该被文档化,以改进活动战略行动计划中的指导部分。

  3、软件能力成熟度模型(CMM)

  CMM——能力成熟度模型,最早的前身是1986年由美国卡内基一梅隆大学的软件工程研究所(Software En-gineering Institute,SEI)受美国国防部委托研制的一种评估软件承包商能力的办法。

  在SEI中,CMM被定义为:对于软件组织在定义、实现、度量、控制和改善其软件过程中各个发展阶段的描述。

  它的意义不仅仅是对软件开发的过程进行管理,更重要的是它还是一种高效的管理方法,有助于组织最大程度地管理和降低开发成本,提高软件质量和用户满意度。

  软件过程的不断改进是基于许许多多小的、不断进化的步骤,并不是一次革命性的创新且能在较短时间内实现的。

  CMM主要用于软件过程的改进(SPI)、软件过程的评估(SPA)和软件能力评估(SCE)。

  CMM组织如图1所示,有5个等级,旨在增加软件过程成熟度行动按优先级排序。

  CMM由低到高分为5个级别,分别是初始级、可重复级、定义级、管理级和优化级。

  成熟度等级是向成熟软件组织前进途中的阶梯,每一个成熟度等级都为过程继续改进提供一个基石。

  在每一级中,定义了达到该级过程管理水平所应解决的关键问题和关键过程。

  每一较低级别是达到较高级别的基础。

  每个成熟度等级都刻画了不同软件组织所处特定过程的本质或关键属性。

  4、能力成熟度模型集成(CMMI)

  CMMI是CMM模型的最新版本。

  1981年,美国卡内基一梅隆大学软件工程研究所(SEI),应美国联邦政府的要求开发一种用于评价软件承包商能力并帮助其改善质量的方法。

  用于开发的能力成熟度集成(CMMI)是一个过程改进成熟度模型,旨在用于改进由软件工程学会开发的产品和服务。