软件工程期末复习——第二章

软件工程期末复习——第二章

一、重要知识点

1. 什么是软件生命周期

软件生命周期是指软件产品从考虑其概念开始到交付使用,直至最终退役为止的整个过程

2. 软件生命周期的阶段划分

3. 什么是软件过程模型

软件过程模型是对软件开发全部过程的抽象,也是对软件全部开发过程中所设计的活动(或者任务)、以及活动之间的关系的抽象,明确规定了要完成的主要活动、任务和开发策略。软件过程模型能够告诉人们应该去遵循一个什么样的过程去开发软件系统。

4. 瀑布模型

瀑布模型包含了各项软件工程活动,规定了各项软件工程活动自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落,各个活动之间具有严格的顺序性依赖性。总体来说,瀑布模型具有以下特点:

  • 强调了每一阶段的严格性,强调推迟实现;
  • 强调质量保证,即每个阶段需要通过严格的阶段评审与确认,进而得到一致、完整、准确、无二义性的文档,并“冻结”文档为该阶段结束的标志;
  • 是一种整体开发模型,在开发过程中,用户看不到系统什么样,只有开发完成提交整个系统时,用户才能看到。

此外,不难发现,在通常情况下,瀑布模型中的运行/维护阶段,是一个具有最长生命周期的阶段。

当然,瀑布模型也具有以下缺陷:

  • 在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的;
  • 是一种线性开发模式,阶段划分完全固定,因此缺乏灵活性,无法解决需求不明确或不准确的问题;
  • 产生了大量文档,极大地增加了工作量;
  • 在需求分析阶段,当需求确定之后,无法及时验证需求是否正确、完整,开始阶段的小错误将会被逐级放大,最终可能导致软件产品报废。

综上所述,瀑布模型适合在软件需求比较明确、开发技术比较成熟、工程管理比较严格的场合下使用。

5. 原型模型

所谓原型,一般是指对某种产品进行模拟的初始版本或者原始版本,例如发展核潜艇之间先做出来的微缩模型。同样地,在软件开发过程中,原型表示软件的一个早期可运行的版本,能够反映最终系统的部分重要特征,用户能够在使用原型的过程中更加准确地反映自己的需求

原型模型的优点有:

  • 用户参与到软件的开发过程当中,能够尽早揭示软件中可能存在的风险及不确定因素,尤其是关于用户需求一致性方面的风险;
  • 开发过程与用户培训过程同步,系统易维护,对用户更友好,产品柔性好。

原型模型的缺陷性有:

  • 对于大型项目而言,不经过系统分析,一开始构造原型比较困难
  • 对于那些不是与用户密切交互的软件,应用原型模型有一定的困难,因为比较难获取用户的评价;
  • 原型的快速构造特点导致项目文档容易被忽略,给原型的后期改进和维护造成困难;
  • 在原型建立的过程中许多工作进展会被浪费掉(尤其对于丢弃性策略),在一定程度上增加了系统的开发成本

综上所述,原型模型适用于那些需求不确定、已有类似原型、有原型开发工具或需要进行产品升级的软件。

二、次重要知识点

1. 螺旋模型

螺旋模型的基本思想是:使用原型及其它方法来尽量降低风险。螺旋模型中的每个回路被分配在4个象限上,分别表达了4个方面的活动。

螺旋模型具有以下优点:

  • 将瀑布模型、原型模型和增量模型结合起来,加入了风险分析,弥补了不足之处;
  • 风险驱动,方便项目管理人员及时调整管理决策,进而降低开发风险;
  • 支持用户需求的动态变化。

当然,也具有以下局限性:

  • 需要有丰富的风险评估专家;
  • 如果每次迭代的效率不高,致使迭代次数过多,将会增加成本并推迟提交时间。

综上所述,螺旋模型适合需求并不明确的大型软件系统的开发。

2. 喷泉模型

喷泉模型认为软件开发过程具有两个固有的本质特征:1)迭代性,软件开发过程自下而上周期的各个阶段是相互重叠和多次反复的,就像喷泉喷上去又可以落下来,一旦靠后的阶段发现先前阶段隐藏的错误时,应该返回到先前的阶段进行纠错;2)无间隙性,各个开发阶段没有特定的次序要求,可以交互进行。

喷泉模型的优点在于能够提高开发效率,节省开发时间,但由于没有严格的阶段区分,不便于进行管理。

3. 增量模型

增量模型将软件产品作为系统的增量构件来设计、编码、集成和测试,每开发一部分,就向用户展示一部分。

因此,增量模型能够在短时间内提交部分产品,降低开发风险;留给开发人员一定的需求分析时间;也留给用户一定的学习时间,避免较大的心理压力。

适用范围:

  • 开发过程中,需求可能发生变化,用户接受分阶段地提交产品;
  • 分析设计人员对相关领域不熟悉,难以一步到位;

4. 构件组装模型

5. RUP模型


软件工程期末复习——第二章
http://example.com/2026/01/09/se02/
作者
谢斐
发布于
2026年1月9日
许可协议