软件过程主要指的是软件工程过程,即在软件开发的过程中组织内发生的各开发阶段、各项开发活动的先后顺序及其关系。这些活动有机的运转即可以完成软件开发过程。
有人将软件生命周期当作软件工程过程,这个观点是有偏差的。软件生命周期指的是软件从无到有再到消亡的过程,是软件本身的特性。软件工程过程是创建软件或者修改软件过程中所经历的分析、设计、实施、维护的过程,该过程的作用对象是软件。对于一次性开发软件,可能软件工程过程近似于软件生命周期中的从无到有的过程,但对于非一次性开发的软件,即软件需要通过多次版本的更新维持更长的生命周期的软件,每一次新功能的开发过程都需要软件工程过程。因此,有必要将二者的关系进行正确的区分。
软件工程过程是以工程化的思维,通过可复用的过程来保障软件开发工作能够顺利的、可重复的进行的过程。为达到这个目的,软件工程过程的概念也随着软件规模的扩大、复杂性的提高在成熟并发展着。为了简练的表达不同的过程,提出了软件工程过程模型的方式,简称过程模型,用一些形象化的、标准的名称来形成一套过程体系或方法论。目前常用的过程模型有瀑布模型、增量模型、统一过程模型、敏捷模型等等。
任何过程模型,都是按照理想的环境定义的,企业要想采用过程模型来规范软件开发过程,本人认为以下的过程和思路是非常重要的。
一.正确认识过程模型的作用
前文已经提到,过程是一个活动的序列,无论是否采用过程模型,只要在做软件开发工作,就必然有一系列活动,这自然而然就是一个过程。可见,过程是客观存在的,不因没有采用过程模型而消亡。但是,强调并规范软件开发过程可以使得原始的随机的活动被规范到大家一致认可的阶段和活动中,形成一个有机的流畅的过程,可以减少随机的人为因素产生的不利影响,从而强化团队的合作程度。这才是过程模型在约束、规范软件开发活动中的作用所在。不是用来炫耀,也不是用来评级的。
二.正确认识过程模型的定制
任何一个过程模型,都有它的适用环境和不足之处,这是在进行模型选择时必须重点关注的部分。不同的企业、不同的项目,甚至不同的团队都可能需要不同的过程模型,一味的追求新定义的模型而不考虑实际情况,人员不适应,部门不协作,大多数情况下必然会走向失败的。即使选好了过程模型,也务必要经过剪裁和定制,遵循过程建设的过程,去掉不适用的部分,按现实情况进行调整,通过长期的磨合,利用积累的过程经验和数据,从而在不断的完善和优化过程中形成最合适的自己的过程。
三.过程模型的推进要符合企业的文化
同过程模型的定制是一样的,在企业范围内,过程模型一定要与企业文化融为一体。如果是一家强调按部就班的企业,很可能采用传统的瀑布或计划驱动的模型会很合适,而换用敏捷模型则会与企业的文化形成背离,是不适合企业整体环境的。好的过程一定是与企业文化完美结合、相辅相承的,否则,过程就失去了生存的土壤,无法在企业内扎根。
四.过程的改进是要从上到下的
过程的改进对企业来讲是具有变革性质的,当然,任何变革都会付出代价,都会遇到阻力。因此,企业应深刻的认识到,过程的改进不是成立一个过程改进小组那么简单,需要从企业的战略高度出发,从上到下,整体进行。如果只是高层领导口里说改进而无法落实,那就是空话;如果只是某些员工或某个部门在推动过程改进而高层领导不予配合,那也是毫无结果的。因此,对过程的改进要慎重,要补充必要的知识,要有变革的决心和勇气并能坚持到底,最重要的是要从上到下全方位进行。
五.过程的改进要辅以工具
过程是一个复杂而又不具备可见性的事物,对过程的建设、管理和改进,需要引入适当的过程管理工具,尤其是配置管理工具和项目管理工具,前者用于记录各种配置项的过程变化,可以形成有效的过程数据,后者用于进行可视化的项目管理,变抽象为具体。
总之,软件工程过程的引入,无疑会规范软件开发过程,从而提高软件产品的质量,减少失败的风险。随着软件工程过程这一领域的进一步发展,越来越多的过程模型在产生,无论是敏捷方式的,还是计划驱动的,在未来可能会有更加驱于二者结合的模型出现。在过程模型的发展中,也注意到软件工程方法、软件工程管理等其他学科的发展,这些是软件开发工作中不可缺少的部分,是有机的整体,只是分别从不同的角度进行描述而已,是不可割裂的。银弹不会出现,但是过程与企业文化的融合,能使软件开发向更规范的方向发展,这是过程模型的深远意义。
——欢迎转载,转载请注明出处 http://blog.csdn.net/caowenbin ——
分享到:
相关推荐
软件工程是一门复杂的学科,涉及软件的开发、维护和改进,以确保高效、可靠和适应性强的软件产品。软件过程改进则是为了提高软件开发的质量、效率和可维护性,通过不断优化开发流程和方法。以下是这些概念的详细解释...
**CMMI(Capability Maturity Model Integration)**是能力成熟度模型集成,是软件行业内广泛采用的一种过程改进框架,旨在提升组织的软件开发能力和产品服务质量。CMMI涵盖项目管理、过程管理、质量管理、配置管理...
2. **度量与分析**:教程会详细介绍如何收集和分析关键的软件工程度量数据,如工作小时、错误率、代码行数等,这些数据将帮助工程师了解自己的强项和改进空间。 3. **质量保证**:PSP强调在开发过程中引入质量保证...
《软件工程过程课件PPT》是一份详细阐述软件工程过程的教育资源,涵盖了软件开发的多个重要阶段和方法。这份课件旨在帮助学习者理解软件工程的理论基础和实际操作,提升软件开发的专业素养。 首先,第一章“绪论”...
本资料"ZL0004整套详细软件开发完整过程规范CMMI改进软件工程文档项目管理必需.zip"深入探讨了这一主题,旨在为软件开发团队提供全面的指导。 首先,软件开发规范是一种标准化的操作流程,它定义了从需求分析、设计...
《软件过程改进指南》是一本专门...总之,《软件过程改进指南》是软件开发团队进行高效过程改进的重要参考,其内容涵盖从组织架构设计到具体实施策略的方方面面,对于希望提升软件工程水平的团队具有极高的实践价值。
在软件开发领域,软件工程过程模型是至关重要的概念,它定义了从需求分析到软件维护等一系列有序的活动。本章主要介绍了软件工程过程模型的基本概念和技术基础,包括多个过程模型和相关技术。 2.1 软件工程的技术...
总而言之,《度量软件过程—用于软件过程改进的统计过程控制》是软件工程领域的一本实用指南,它为软件开发团队提供了强大的工具和方法,以数据驱动的方式优化他们的工作流程,提升软件质量,实现持续改进。...
7. 可维护性:软件工程过程模型应该可以根据开发组织的需求的改变而改进。 8. 高效率:软件工程过程模型应该从给出软件规格说明起,就能够较快地完成开发而交付使用。 常见的软件工程过程模型包括: 1. 线性顺序...
面向过程的软件工程是一种传统的软件开发方法,它侧重于通过有序的步骤来设计、实现和维护软件。在这一方法中,软件被看作是一系列可执行的步骤或过程,而不是一组独立的对象。以下是对"面向过程的软件工程文档模板...
### 软件工程与软件过程改进 #### 第1章:软件工程概述 **软件工程定义:** 软件工程是一门跨学科的研究领域,它结合了计算机科学、项目管理和工程学等多个领域的理论和技术,旨在实现软件产品的高效开发、高质量...
CMMI由美国卡内基梅隆大学软件工程研究所(SEI)开发,它将多种过程改进模型整合在一起,包括软件开发、系统工程、采购和供应等多领域。CMMI模型分为五个等级,从1级(初始级)到5级(优化级),代表着一个组织过程...
### 统一软件工程开发过程知识点详述 #### 一、引言 随着技术的发展和社会需求的变化,软件系统正变得越来越复杂。为了满足用户日益增长的需求,并缩短产品上市时间,软件开发过程也需要不断地进化和改进。传统的...
本主题围绕“软件工程监理过程检查记录表”展开,深入探讨监理单位在项目不同阶段的角色和职责,以及如何依据《信息系统监理服务 第3部分 软件》进行有效的监控。 首先,软件工程监理过程检查记录表是监理单位对...
软件过程管理 承认并坚持过程改进带来的潜在积极作用,是质量管理的核心任务。 擅于站在巨人的肩膀上,在别人的工作基础上进行过程的利用和改进。 由于项目领域的多样性以及边界约束的复杂性,一个一成不变的通用...
软件工程过程管理复习资料详细地探讨了这一主题,旨在帮助学习者掌握全面的知识体系。以下是对该主题的详细阐述: 1. **项目启动**:此阶段包括明确项目目标、确定需求、制定项目范围、建立项目团队以及资源分配。...