软件过程改进

时间:2023.10.6

  软件过程改进【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)是一个过程改进成熟度模型,旨在用于改进由软件工程学会开发的产品和服务。


第二篇:职业规划是一个不断进行改进调整的过程


  职业规划不能纸上谈兵。人在变化、社会也在变化,职业规划是一个不断改进调整的过程,因而大学生的项目书、计划书同样需要不断思考。思考除了自己之外还有社会上等很多不确切的因素。比如设定了一个目标,如果去实习、见习、职业体验的话,很可能会发现与原来的想法有差异,也可能是自己很难甚至做不到的。所以,职业规划千万不要纸上谈兵。学生们怎么去做规划,怎么一步一步走下去,其实是有具体的操作方式的,比如量表、价值澄清法等。

  职业规划的关键并不在于纸上写了多少,写得多好。职业咨询是针对问题对有需求的人来做的。真正解决方案的内容基本上不超过一千个字。对于一个真正合适的职业规划,很多东西是在咨询者自己的心里。自己内心深层次的认同才会有动力来执行,否则就成了纸上谈兵。

  在大学阶段制定规划,如果要切合实际、切实可行,在校期间要结合学习、社会实践、人际关系的建立,这是一个阶段。另外一个阶段是毕业后,在校期间所制定的规划更多地把注意力放在校期间规划的制定,而不是毕业后。毕业后的规划不需太细,但要有一个五年、十年长远的目标,不一定要规划出详细的道路,因为这是学生不可预见的。离开校园来到企业需要细化规划,或者调整大学期间不合理的规划,这样才能顺利实现对接。

  总之,大学生要做好职业规划,但绝不能止于规划。站在人的生涯角度来看,职业规划不单单是发现问题才想到去解决问题,它一定是伴随着人的一生。通过职业规划可以让人们不断认识自我、分析自我、规划自我、实现自我的过程,因而职业规划是人一辈子的事,需要长期关注。而对于处在职业探索初期的大学生们来说,需要在前期制定好职业规划的基础上,经过实际的感受和不断摸索,才能最终找到正确的职业定位以及未来发展的长远目标。

更多相关推荐:
计算机毕业论文开题报告范文

1.本课题的研究意义在internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用.因此网站建设在internet应用上的地位显而易见,它…

计算机毕业论文开题报告范文

1.本课题的研究意义在internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用.因此网站建设在internet应用上的地位显而易见,它…

山西农业大学计算机毕业论文基本要求

信息科学与工程学院计算机科学与技术专业本科生毕业论文基本规范要求毕业设计教学过程是教学计划的重要组成部分,此项工作对培养学生综合运用多学科的理论、知识与技能,解决实际问题的能力,树立严肃认真的科学态度和严谨求实…

如何来计算机毕业论文选题

众所周知,撰写毕业论文是本科各专业学生毕业前必须进行的一项重要工作,也是自考学生在毕业之前最后的一项学习任务。毕业论文的撰写要求学生综合使用在自学考试中学到的知识,解决实际间题或讨论实践中的话题。它主要考查大家…

计算机毕业论文提纲

计算机毕业论文提纲发布时间:20xx-09-15来源:应届毕业生求职网一、本科学生毕业论文的目的和内容本科学生在毕业之前必须做毕业论文,其目的是通过毕业论文,让学生独立开发一个具体的计算机应用项目,系统地进行分…

计算机毕业论文范文

计算机毕业论文范文摘要:计算机课程是一门独立的知识性与技能性相结合的基础性学科。计算机学科教学应在培养学生能力、全面提高学生素质方面发挥其独特的优势。本文结合实际对于其中的一些问题提出了解决方案。关键词:计算机…

计算机毕业论文

从自然灾害通信需求看无线电台站的应用前景来源:www.zdlunwen.com通信在抢险救灾工作中起着关键作用。是确保灾区信息及时联络的重要手段是救灾工作指挥协调、组织的重要保障。正是由于通信作用非常关键。往往…

计算机毕业论文范文

摘要:计算机课程是一门独立的知识性与技能性相结合的基础性学科。计算机学科教学应在培养学生能力、全面提高学生素质方面发挥其独特的优势。本文结合实际对于其中的一些问题提出了解决方案。关键词:计算机基础教育;一体化教…

中专计算机毕业论文

中专计算机教学现状及变革研究摘要:随着社会的发展和职业教育的变化,计算机教学也要适应新形势的发展进行变革。本文分析了当前中等职业技术学校计算机教学现状及存在的突出问题,并结合职业教育发展和社会对人才的需要提出了…

计算机毕业设计实习报告范文

计算机毕业设计实习报告范文计算机毕业设计实习报告范文实习报告主要包括三部分1实习机构介绍2实习方式内容3实习心得体会我写的时候在里面加了点东西实习目标实习时间实习督导实习遇到的问题和困难某某写的范文实习目的通过...

计算机专业实习报告范文大全

计算机专业实习报告范文一暑假已经结束我在xxxxxxxxxx的实习也划上了一个完美的句号第一次感觉到暑假过得这么的快也是第一次感觉到暑假过得是这样的充实已经习惯了早上7点起床不再是因为假期而生活懒散赶车上班感觉...

20xx计算机毕业论文格式要求

计算机毕业论文格式要求一毕业论文打印格式要求正文宋体小四用B5纸打印二毕业论文内容格式要求论文要有题目摘要目录正文参考文献1题目应简洁明确有概括性字数不宜超过20个字2摘要要有高度的概括力语言精练明确中文摘要约...

计算机毕业论文(40篇)