软考119-上午题-【软件工程】-软件开发模型01

一、软件过程模型

        软件过程模型习惯上也称为软件开发模型,它是软件开发全部过程、活动和任务的结构框架。典型的软件过程模型有:瀑布模型、增量模型、演化模型(原型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式化方法模型等。

1-1、瀑布模型

瀑布模型是将软件生存周期中的各个活动规定为依线性顺序连接的若干阶段的模型,包括:需求分析、设计、编码、测试、运行与维护。它规定了由前至后、相互衔接的固定次序,如同瀑布流水逐级下落,如图所示:

        瀑布模型为软件的开发和维护提供了一和有效的管理模式,根据这一模式制定开发计划,进行成本预算,组织开发力量,以项目的阶段评审文档控制为手段有效地对整个开发过程进行指导,所以它是以文档作为驱动、适合于软件需求很明确的软件项目的模型。

每个阶段都有一个文档。文档上级评审,评审通过,开始下一个模型。

        瀑布模型假设,一个待开发的系统需求是完整的、简明的、一致的,而且可以先于设计和实现完成之前产生。

        瀑布模型的优点是,容易理解,管理成本低;强调开发的阶段性早期计划及需求调查和产品测试。

        不足之处是,客户必须能够完整、正确和清晰地表达他们的需要;在开始的两个或 3个阶段中,很难评估真正的进度状态;当接近项目结束时,出现了大量的集成和测试工作;直到项目结束之前,都不能演示系统的能力。在瀑布模型中,需求或设计中的错误往往只有到了项目后期才能够被发现,对于项目风险的控制能力较弱,从而导致项目常常延期完成,开发费用超出预算。

1-2、V模型

瀑布模型的一个变体是V模型。

V 模型描述了质量保证活动和沟通、建模相关活动以及早期构建相关的活动之间的关系。随着软件团队工作沿着V模型左侧步骤向下推进,基本问题需求逐步细化,形成问题及解决方案的技术描述。

一旦编码结束,团队沿着V 模型右侧的步骤向上推进工作,其实际上是执行了一系列测试(质量保证活动),这些测试验证了团队沿着 V 模型左侧步骤向下推进过程中所生成的每个模型。V模型提供了一种将验证确认活动应用于早期软件工程工作中的方法。

1-3、瀑布模型-真题

真题1:

真题2:

真题3:

真题4:

真题5:

真题6:

真题7:

1-4、增量模型

        增量模型融合了瀑布模型的基本成分和原型实现的迭代特征,它假设可以将需求分段为系列增量产品,每一增量可以分别开发。该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”,如图所示。

        当使用增量模型时,第1个增量往往是核心的产品。客户对每个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终的完善产品。

        增量模型强调每个增量均发布一个可操作的产品。

        增量模型作为瀑布模型的一个变体,具有瀑布模型的所有优点

        此外,它还有以下优点:第一个可交付版本所需要的成本和时间很少;开发由增量表示的小系统所承担的风险不大;由于很快发布了第一个版本,因此可以减少用户需求的变更;运行增量投资,即在项目开始时,可以仅对一个或两个增量投资。

        增量模型有以下不足之处:如果没有对用户的变更要求进行规划,那么产生的初始增量可能会造成后来增量的不稳定;如果需求不像早期思考的那样稳定和完整,那么一些增量就可能需要重新开发,重新发布;管理发生的成本、进度和配置的复杂性可能会超出组织的能力。   

1-5、增量模型-真题     

真题1:

真题2:

真题3:

真题4:

真题5:

真题6:

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-11 20:34:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-11 20:34:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-11 20:34:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-11 20:34:02       20 阅读

热门阅读

  1. Spring的Bean标签配置IOC和依赖注入详解

    2024-04-11 20:34:02       14 阅读
  2. 如何用C++判断一个系统是16位、32位还是64位?

    2024-04-11 20:34:02       16 阅读
  3. 何为C++中的协变

    2024-04-11 20:34:02       14 阅读
  4. MySQL中 not in 和 not exists 区别

    2024-04-11 20:34:02       15 阅读
  5. 分布式任务调度:架构、原理与实践

    2024-04-11 20:34:02       15 阅读
  6. 常见分类算法

    2024-04-11 20:34:02       11 阅读
  7. 【无标题】

    2024-04-11 20:34:02       11 阅读
  8. 中科软面试题

    2024-04-11 20:34:02       13 阅读