第二章软件过程模型(1)

本章目标

掌握软件过程的定义和基本活动。
熟悉软件生命周期及其阶段任务。
熟悉几种软件常用的过程模型。

软件过程概述:

  • 软件的诞生和生命周期是一个过程,称为软件过程。
  • 过程定义了运用方法的顺序,应该交付的文档资料,为保证软件质量和协调变化所需要采取的管理措施,以及标志软件开发各个阶段任务完成的里程碑。
  • 使用生命周期模型简洁地描述软件过程。

软件生命周期:

**生命周期:**是指从设计该产品的构想开始,到软件需求的确定、软件设计、软件实现、产品测试与验收、投入使用,以及产品版本的不断更新,到该产品最终被市场淘汰的全过程。

**阶段:**可行性分析->需求分析->软件设计->程序编码->软件测试->软件维护

软件过程模型:

  • 人们通过建立抽象的软件开发模型(也称软件过程模型或软件生命周期模型),把软件过程周期中的各个活动或步骤安排到一个框架中,将软件开发的全过程清晰且直观地表达出来。

  • 常见的软件开发模型有很多,这里主要介绍瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型、基于组件的开发模型、统一软件开发过程模型,以及敏捷模型与极限编程。

瀑布模型(线性的开发模型)
概念:瀑布模型是将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,逐级下落,最终得到软件产品。在这里插入图片描述
优点:
1.过程模型简单,执行容易;
2.可在迭代模型中应用瀑布模型;
–增量迭代应用于瀑布模型。迭代1解决最大的问题。每次迭代产生一个可运行的版本,同时增加更多的功能。每次迭代必须3经过质量和集成测试。

缺点:
1.无法适应变更,不适应用户需求的变化。;
2.由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险;
3.各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;

快速原型模型
概念:快速原型的基本思想是快速建立一个能反映用户主要需求的原型系统,让用户在计算机上试用它,通过实践来了解目标系统的概貌。
快速原型模型又称原型模型,它是增量模型的另一种形式;
在这里插入图片描述

优点:
1.克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险;适合预先不能确切定义需求的软件系统的开发。

缺点:
1.所选用的开发技术和工具不一定符合主流的发展;
2.使用这个模型的前提是要有一个展示性的产品原型,在一定程度上可能会限制开发人员的创新;

扫描二维码关注公众号,回复: 12063218 查看本文章

增量模型
概念:增量模型把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。
比较瀑布模型、原型进化模型,增量模型具有非常显著的优越性。但是,增量模型对软件设计有更高的技术要求,特别是对软件体系结构,要求它具有很好的开放性与稳定性,能够顺利地实现构件的集成。在把每个新的构件集成到已建软件系统的结构中的时候,一般要求这个新增的构件应该尽量少地改变原来已建的软件结构。因此增量构件要求具有相当好的功能独立性,其接口应该简单,以方便集成时与系统的连接。
在这里插入图片描述

优点:
1.将待开发的软件系统模块化,可以分批次地提交软件产品,使用户可以及时了解软件项目的进展。
2.以组件为单位进行开发降低了软件开发的风险。一个开发周期内的错误不会影响到整个软件系统。
3.开发顺序灵活。开发人员可以对组件的实现顺序进行优先级排序,先完成需求稳定的核心组件。当组件的优先级发生变化 时,还能及时地对实现顺序进行调整。

缺点:
1.要求待开发的软件系统可以被模块化。如果待开发的软件系统很难被模块化,那么将会给增量开发带来很多麻烦。


1、开发初期的需求定义只是用来确定软件的基本结构,这使得开发初期,用户只需要对软件需求进行大概的描述,而对于需求的细节性描述,则可以延迟到增量构件开发时进行,以增量构件为单位逐个地进行需求补充。这种方式有利于用户需求的逐渐明朗,能够有效适应用户需求的变更。
2、软件系统可以按照增量构件的功能安排开发的优先顺序,并逐个实现和交付使用。这不仅有利于用户尽早地用上系统,能够更好地适应新的软件环境,而且用户在以增量方式使用系统的过程中,还能够获得对软件系统后续构件的需求经验。这样能使软件需求定义越往后越顺利。
3、软件系统是逐渐扩展的,因此,开发者可以通过对诸多构件的开发,逐步积累开发经验。实际上,增量式开发还有利于技术复用,前面构件中设计的算法、采用的技术策略、编写的源码等,都可以应用到后面将要创建的增量构件中去。
4、增量式开发还有利于从总体上降低软件项目的技术风险。个别的构件或许不能使用,但这一般不会影响到整个系统的正常工作。
5、实际上,在采用增量模型时,具有最高优先权的核心增量构件将会被最先交付,而随着后续构件不断被集成进系统,这个核心构件将会受到最多次数的测试。这意味着软件系统最重要的心脏部分将具有最高的可靠性,这将使得整个软件系统更具健壮性。

螺旋模型
概念:螺旋模型是一种用于风险较大的大型软件项目开发的过程模型。该模型将瀑布模型快速原型模型结合起来,并且加入了这两种模型所忽略了的风险分析。
“螺旋模型”刚开始规模很小,当项目被定义得更好、更稳定时,逐渐展开。
对于新近开发,需求不明确的情况下,适合用螺旋模型进行开发,便于风险控制和需求变更。
在这里插入图片描述
优点:
1.设计上的灵活性,可以在项目的各个阶段进行变更。
2.客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。
3.以小的分段来构建大型系统,使成本计算变得简单容易。

缺点:
1.这种模型的控制和管理较为复杂,可操作性不强,对项目管理人员的要求较高。
2.建设周期长,而软件技术发展比较快,软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。

猜你喜欢

转载自blog.csdn.net/haha_7/article/details/108782849