- 相关推荐
软件过程改进
软件过程改进【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)是一个过程改进成熟度模型,旨在用于改进由软件工程学会开发的产品和服务。
CMMI模型由多个过程域(Process Ar-ea,PA)组成,每个过程域包含一组特定实践(SpecificPractice,SP)和公共实践(Generic Practice,GP)。
CMMI的本质是软件管Nn-程的一部分。
当前,软件管理工程的核心问题是SPI。
多年来,随着计算机的发展,人们认识到改善软件生产过程可以高效、高质量和低成本地开发软件。
采用能力模型来指导组织的过程改进是基于模型的过程改进,稳定的改善过程能力,该组织也能变得更加成熟。
该模型广泛适用于政府机构、软件和硬件开发公司。
在CMM中,该模型只有一种表示法,即阶段式表示法。
CMM的阶段式表示法将软件组织的成熟度划分为5个等级。
在CMMI中,该模型采用了两种表示法:阶段式表示法和连续式表示法。
为了保持软件组织之间的能力成熟度比较,CMMI保留了CMM中的阶段式表示法。
但是,为了促进软件组织更加切合实际地进行内部软件过程改进,CMMI增加了连续式表示法。
CMMI的两种表示法是有区别的:阶段式表示法把过程域分成5个成熟度等级,指出达到每一成熟度等级必须实施哪些过程域;成熟度等级提供一个阶段式的流程改进建议顺序。
一个成熟度等级包括多个过程域,每个过程域包含共性目标和特定目标,以及共性实践和特定实践。
连续式表示法则将过程域分为四大类型:过程管理、项目管理、工程以及支持。
对于每个大类中的过程域,又进一步分为“基础的”和“高级的”过程域,在按照连续式表示方法实施CMMI的时候,一个组织可以把项目管理或者其它某类的实践一直做到最好,而其它方面的过程区域可以不必考虑。
5、结语
CMM偏向于软件开发过程的管理及工程能力的提高与评估,主要应用于软件承包能力的评价,是改善软件质量的一种方法。
而CMMI是各个进程关键的元素,在很多领域里面是一个集成的点。
只有正确使用CMMI,才能根据组织的业务目标帮助企业确定组织内需要改革的领域,最终实现价值最大化。
基于度量的软件过程改进的研究【3】
摘要:软件开发的过程是在不断循环的,它分为了各个不同的阶段,不管是软件开发的开始还是结束,都需要对软件过程进行改进。
科技一直被称作为一个国家的核心竞争力,因此各个国家都在致力于科技的发展,在这样的大环境下,基于度量的软件过程研究已经成为全球的一大热点。
在这个研究过程中,通过具体的分析找到软件过程不同阶段的问题以及问题的关键所在。
这样的一个研究,在软件产品开发的质量和效率上有了很大提高。
关键词:软件过程;度量;过程改进模型;实施方法
基于度量的软件过程改进正处于研究发展的初期,各方面的条件还不是特别成熟,因此需要先研究软件开发的过程,在此基础上寻求一个通用的模型,以此来确定软件过程度量的各项数据。
本文中,运用软件的度量具体分析每一个不同软件过程,基于此,得出一个通用的模型。
首先要采集整个软件开发过程所需的数据,然后进行各项数据的具体分析,从量化的角度研究软件过程中的缺陷和优点,以此来采取对应的措施来改进软件过程,达到研究的目的。
一、中小型的软件企业在软件过程改进存在的问题
1.不完善的组织结构
一般的中小型企业的人员较少,各种企业制度也不够完善。
因此可能其中大多数的工作人员参与了软件开发生产的各个过程中,这样的模式不仅缺乏了专业性而且缺乏了层次性。
相较于大型的软件企业而言,中小型企业由于各方面因素的限制,没有办法建立专业的改进研究小组,每个工作人员的工作量都大幅度提高,无法推动研究过程的深入发展。
2.企业规模小,没有充足的资源
对于软件企业而言,人才和资金是不可或缺的两大部分。
我国的软件开发方面的人才是相当缺乏的,而随着科技的不断发展,各种软件公司不断涌现,因此对人才的需求也很大。
而作为中小企业来说,没有足够的优势吸引各大人才。
政府鼓励科技的研发工作,有一定的资金支持,但是在这种僧多粥少的情况下,中小型企业已经无法获得更多的帮助。
软件开发是一个长久的过程,中小型企业很难在这样的情况下支撑下去。【1】
3.在产品质量方面缺乏一定的意识
中小型企业在软件过程该井方面缺乏一定的经验,也缺乏经过专业培训的工作人员了,大多数的工作人员可能对于软件产品质量的一些基本情况都不够了解。
虽然他们在理论和概念上有一定的了解,但是在具体研究过程中则缺乏了整体意识和能动性。
4.软件的生产模式不够成熟
人才的缺乏常常使一些中小型企业的相关项目都依赖于这些技术相对突出和管理能力比较高的人员,没有合乎规范并且分工明确的生产模式。
恰恰是因为这样,其中的高技术人超负荷的完成工作,不愿意去改变惯常的思维模式,不利于产品的技术革新。
5.没有明确的主体业务,技术分散
由于中小型企业所生产的软件产品在市场上的竞争力弱,使得企业不得不频繁的接受业务,造成企业没有自己核心的主体产品,形成另一种恶性循环。
6.核心技术的缺乏导致生存压力的加大
中小型软件企业面向的客户群是需求量较少的一些人群,比较分散。
这种产品定位虽然可以更贴近客户,满足客户的需要,但是具有很大的不稳定性,客户要求的变化会导致各项成本的增加。
同时从长远来看,无法形成品牌优势,无法在未来的技术竞争中获取优势,生存压力越来越大。
7.管理水平有限,没有专业的指导
中小型软件企业的建立者一般都缺乏充足的行业经验,无法长远的计划企业的发展。
同时面临行业的技术革新,没有完整的团队进行技术改革。
同时受到各方面条件的约束,管理水平相对于大型的企业较低。
在软件过程改进方面没有专业的人员,没有专家的专业性指导。
二、基于度量的软件过程改进的模型
对于软件过程的度量是实施软件过程改进的基础环节。
软件过程改进是活期软件运作过程中的大量数据信息,从而判断软件过程的不足,然后提出改进的措施和意见,在度量的基础上,逐步完善软件过程。
软件过程的度量和运作是密不可分的,这是个一系列的活动,由多个不同的角色在相关条件的制约下进行的。
数据的获取和度量的分析是软件过程度量的两个重要的活动。
数据的获取包括采集数据和验证数据两个部分,度量的分析则包括数值的转换、数据的分析和最后的决策三个方面。
数据的采集是度量软件过程的基础,选择正确的数据来源、制定合理的采集计划、采取有效的采集方法是数据采集的重要途径。
数据的验证则是检验数据采集是否按照制定的计划执行以及所采集的数据内容是否正确。
转化数值是将采集来的数据按照要求进行分类组合,使其能够得到更好的运用。
数据分析则是在转换数值之后,将汇总起来的数据运用恰当合理的方法进行分析,发现其中存在的一些问题。
度量过程最后的决策是一个相当重要的环节,在这个部分,企业的管理者可以全面而直观的了解度量过程以及其中的问题,做出下一步更好的计划,实现软件过程度量的进一步完善和成熟。【2】
三、基于度量的软件过程改进的措施
1.分析现状,制定更加完善的计划
在软件开发过程中,或多或少都会出现一些问题,我们需要找出问题的关键。
其中一个问题来源就是软件开发过程中的外部影响因素,在这里我们需要分析过去的一些数据,或者进行相关的问卷调查,其次就是要求工作人员就问题展开讨论,从而使问题能够得到更彻底的解决。
而另一个问题来源则是内部因素,工作人员需要深入分析整个项目,具体细致的调查每个阶段的信息,找出问题更深层次的原因。
从内部和外部两个方面来分析现状,找出问题的症结,然后制定相对切实可行和完整的工作计划和目标,改变现有的问题,实现软件过程的重点改进。
2.选择合适的改进体系及恰当的改进方法
建立一个良好的改进体系可以让软件过程改进在实施的过程中取得事半功倍的结果,能够省时省力,采取恰当的改进方法则可以让这个过程更加顺利的进行。
在建立体系和采取方法的过程中,要考虑企业各个方面的因素,根据自身的需求来实行才能起到有效的作用。
3.建立完善的组织结构,形成人员的培训体系
软件的开发与生产都是离不开人才的,但是想要充分发挥每个人的才能需要严格和合理的管理,完善企业的组织结构。
在软件过程改进中,团队里的工作人员要进行有效的沟通,充分发挥人力资源的作用。
同时,要定期对员工进行培训,增强人员的专业技能,所以形成人员的培训体系是必不可缺的。【3】
4.防范软件过程改进带来的风险
软件过程改进是有一定风险存在的,它改变了企业原有的一些程序,控制过程也成为了软件过程改进的工作之一。
在改进实施过程中,要随时检测改进后的结果所带来的不好的影响,当风险超出一定范围的时候,要停止改进工作,找出其中存在的问题,对过程改进计划及时进行修改。
获得更多的利润是企业发展过程中主要的目标,因此在改进过程中需要将资金风险考虑进来,要考虑企业的利益。
做好防范风险的工作是取得软件过程改进成功的一大保障。
四、结论
科技的研究和发展是一个长久而循序渐进的过程,软件开发研究工作作为其中的一部分,同样需要科技人员的耐心和努力。
我国基于度量的软件过程改进正在发展阶段,它的不成熟所引起的各种问题在现阶段是不可避免的。
我们所能做的就是对其进行全面而深入的研究,在研究过程中,需要对其中的问题做好记录便于制定相应的措施。
基于度量的软件过程改进的研究是一个漫长和艰巨的工作,这其中需要高技术人才和大量资源的投入,各大软件企业自身需要不断的努力,着眼于企业的长期利益,同时国家政府要加强支持力度,鼓励中小型软件企业的发展。
在这样的共同努力下,相信基于度量的软件过程改进会越来越完善。
参考文献:
[1]王海波;基于度量的软件过程改进研究 ;电脑知识与技术[J] ;2010年第12期
[2]刘婧;软件过程改进研究 ;软件导刊[J] ;2013年5期
[3]霍金凤 段学东 ;基于CMMI的软件过程改进探究 ;硅谷[J] ;2012年4期
【软件过程改进】相关文章:
职业规划是一个不断进行改进调整的过程10-07
改进的方案03-17
改进方案09-09
工作改进方案12-05
改进方案范文02-17
食堂改进方案12-10
关于改进方案04-07
改进方案【热门】01-30