软件过程主要指的是软件工程过程,即在软件开发的过程中组织内发生的各开发阶段、各项开发活动的先后顺序及其关系。这些活动有机的运转即可以完成软件开发过程。
有人将软件生命周期当作软件工程过程,这个观点是有偏差的。软件生命周期指的是软件从无到有再到消亡的过程,是软件本身的特性。软件工程过程是创建软件或者修改软件过程中所经历的分析、设计、实施、维护的过程,该过程的作用对象是软件。对于一次性开发软件,可能软件工程过程近似于软件生命周期中的从无到有的过程,但对于非一次性开发的软件,即软件需要通过多次版本的更新维持更长的生命周期的软件,每一次新功能的开发过程都需要软件工程过程。因此,有必要将二者的关系进行正确的区分。
软件工程过程是以工程化的思维,通过可复用的过程来保障软件开发工作能够顺利的、可重复的进行的过程。为达到这个目的,软件工程过程的概念也随着软件规模的扩大、复杂性的提高在成熟并发展着。为了简练的表达不同的过程,提出了软件工程过程模型的方式,简称过程模型,用一些形象化的、标准的名称来形成一套过程体系或方法论。目前常用的过程模型有瀑布模型、增量模型、统一过程模型、敏捷模型等等。
任何过程模型,都是按照理想的环境定义的,企业要想采用过程模型来规范软件开发过程,本人认为以下的过程和思路是非常重要的。
一.正确认识过程模型的作用
前文已经提到,过程是一个活动的序列,无论是否采用过程模型,只要在做软件开发工作,就必然有一系列活动,这自然而然就是一个过程。可见,过程是客观存在的,不因没有采用过程模型而消亡。但是,强调并规范软件开发过程可以使得原始的随机的活动被规范到大家一致认可的阶段和活动中,形成一个有机的流畅的过程,可以减少随机的人为因素产生的不利影响,从而强化团队的合作程度。这才是过程模型在约束、规范软件开发活动中的作用所在。不是用来炫耀,也不是用来评级的。
二.正确认识过程模型的定制
任何一个过程模型,都有它的适用环境和不足之处,这是在进行模型选择时必须重点关注的部分。不同的企业、不同的项目,甚至不同的团队都可能需要不同的过程模型,一味的追求新定义的模型而不考虑实际情况,人员不适应,部门不协作,大多数情况下必然会走向失败的。即使选好了过程模型,也务必要经过剪裁和定制,遵循过程建设的过程,去掉不适用的部分,按现实情况进行调整,通过长期的磨合,利用积累的过程经验和数据,从而在不断的完善和优化过程中形成最合适的自己的过程。
三.过程模型的推进要符合企业的文化
同过程模型的定制是一样的,在企业范围内,过程模型一定要与企业文化融为一体。如果是一家强调按部就班的企业,很可能采用传统的瀑布或计划驱动的模型会很合适,而换用敏捷模型则会与企业的文化形成背离,是不适合企业整体环境的。好的过程一定是与企业文化完美结合、相辅相承的,否则,过程就失去了生存的土壤,无法在企业内扎根。
四.过程的改进是要从上到下的
过程的改进对企业来讲是具有变革性质的,当然,任何变革都会付出代价,都会遇到阻力。因此,企业应深刻的认识到,过程的改进不是成立一个过程改进小组那么简单,需要从企业的战略高度出发,从上到下,整体进行。如果只是高层领导口里说改进而无法落实,那就是空话;如果只是某些员工或某个部门在推动过程改进而高层领导不予配合,那也是毫无结果的。因此,对过程的改进要慎重,要补充必要的知识,要有变革的决心和勇气并能坚持到底,最重要的是要从上到下全方位进行。
五.过程的改进要辅以工具
过程是一个复杂而又不具备可见性的事物,对过程的建设、管理和改进,需要引入适当的过程管理工具,尤其是配置管理工具和项目管理工具,前者用于记录各种配置项的过程变化,可以形成有效的过程数据,后者用于进行可视化的项目管理,变抽象为具体。
总之,软件工程过程的引入,无疑会规范软件开发过程,从而提高软件产品的质量,减少失败的风险。随着软件工程过程这一领域的进一步发展,越来越多的过程模型在产生,无论是敏捷方式的,还是计划驱动的,在未来可能会有更加驱于二者结合的模型出现。在过程模型的发展中,也注意到软件工程方法、软件工程管理等其他学科的发展,这些是软件开发工作中不可缺少的部分,是有机的整体,只是分别从不同的角度进行描述而已,是不可割裂的。银弹不会出现,但是过程与企业文化的融合,能使软件开发向更规范的方向发展,这是过程模型的深远意义。
——欢迎转载,转载请注明出处 http://blog.csdn.net/caowenbin ——
分享到:
相关推荐
软件工程和软件过程改进,网络资源,系统分析师考试培训讲义
超详细软件开发完整过程规范CMMI改进软件工程文档项目管理必备
超详细软件开发完整过程规范,CMMI改进软件工程文档项目管理必备
ZL0004整套详细软件开发完整过程规范CMMI改进软件工程文档项目管理必需.zip
(SM)软件工程师的自我改进过程,个体软件过程课程的专用教程。
软件过程管理 承认并坚持过程改进带来的潜在积极作用,是质量管理的核心任务。 擅于站在巨人的肩膀上,在别人的工作基础上进行过程的利用和改进。 由于项目领域的多样性以及边界约束的复杂性,一个一成不变的通用...
软件工程与软件过程改进.pptx
超详细软件开发完整过程规范CMMI改进软件工程文档项目管理必备
软件工程-软件过程管理与改进.pptx
软件测试工程技术丛书之一:软件测试过程改进的pdf文档
介绍了软件工程、面向对象技术、统一建模语言UML 等概念,分析了以往软件开发过程中存在的弊端,阐述了统一软件过程在现今软件开发中的作用.
软件工程中的软件开发过程改进与优化.pptx
附录中给出了软件工程和测试的相关标准、验证及确认测试审查清单示例、测试工具选择等。书中包含了许多测试技巧和指南,帮助组织内部制定战略,改进测试过程。书中所讨论的技术对于规模不同、过程成熟度各异的组织都...
摘要: 在规定的时间、合理的投资情况下, 保质保 量地交付软件产品是一个巨大的挑战。本文研究了软 件能力成熟度模型( CMM) 在我国企业实施...关键词: 软件工程; 软件过程改进; 软件能力成熟 度模型CMM; 个体软件过程PSP
随着软件工程知识的普及,软件工程师都知道,要开发高质量的软件,必须改进软件生产的过程。目前,业界公认由CMU/SEI开发的软件能力成熟度模型SW-CMM是当前最好的软件过程,并且CMM已经成为事实上的软件过程工业标准...
CMMI3标准文档模板大全(完整)+CMMI3级软件过程改进方法与规范+CMMI3CMMI3标准文档模板大全(完整)+CMMI3级软件过程改进方法与规范+CMMI3CMMI3标准文档模板大全(完整)+CMMI3级软件过程改进方法与规范+CMMI3CMMI3...
齐治昌编著的《软件工程 第3版面向21世纪课程教材 》是在第2版的基础上修改而成的 阐述了信息时代软件 软件工程及软件工程教育的地位和作用 以及基于计算机的系统和业务过程建模方面的内容 书中分析了传统软件开发...
CMMI过程改进过程中规范和模板,本书论述的是一套通用的CMMI 3级软件过程改进方法与规范,称为 “精简并行过程”(SPP)。SPP 2.0共有19个关键过程域,分为项目管理过程、技术开发过程和支撑过程三大类: 项目管理...
3、CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级。除第1级外,每一级都包含了实现这一级目标的若干关键过程域,每一个关键过程域又包含若干( )。 A 关键实践 B 软件过程性能 C 软件过程...