常见软件模型,你弄懂了没?(内含考题分析)

让 | 梦想 | 有迹可循

小艾学姐	以总分351(录取分数线300),专业课127(录取分数线70)的分数考入电子科大软件工程专业,在电子科大学习5年,多次担任老师助教、助管工作,因此对学院老师非常熟悉;对于专业课复习有丰富的经验,熟知重难点;希望能够帮助学弟学妹们顺利通过考研难关!

软件过程模型作为软件工程的基础知识,是学习掌握需求分析、设计、实现等的前提,也是考试中非常重要的一个考点,每年考试都是必考的考点,考试难度相对较小,因此同学们对于这一块的内容一定要熟练掌握。

软件过程模型也常称为软件开发模型、软件生存周期模型和软件工程模型,是软件开发全部过程、活动和任务的结构框架,它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。

一.常见软件过程模型介绍

特点:

  • 软件开发过程与软件生命周期相同,也称为经典生命周期模型;
  • 规定了各项软件活动自上向下的固定次序,阶段之间具有明确的顺序性以及依赖性;
  • 以文档为驱动,每个阶段结束前完成文档审查,及早改正错误;
  • 每个阶段都有与其相关的里程碑和交付产品;
  • 当后面的阶段发现错误时,沿反馈线返回并修改,对软件的维护则反馈到对应阶段。
  • 各个阶段的划分完全固定,阶段之间产生大量的文档,增大了工作量;
  • 由于线性的开发模型,用户只能等到过程末期才能看到开发成果,增加的开发风险;
  • 早期的问题可能要等到后期才能发现,因而带来的后果更加严重;
  • 无法适应需求不明确和需求的变化;
  • 不能反映实际情况中的需要迭代的开发方式。
  • 2.原型模型

    原型:一个部分开发的产品,使客户和开发人员能够对计划开发的系统的相关方面进行检查

    优点:

  • 减少需求不明确带来的风险;
  • 构造原型采用的方法和工具不一定主流;
  • 快速建立的系统加上连续的修改可能导致原型质量低下;
  • 设计者在质量和原型中折中;
  • 客户意识不到一些质量问题。
  • 3. 增量模型

    增量模型是一种非整体开发的模型,是一种进化式的开发过程。它允许从部分需求出发,先建立一个不完整的系统,通过测试运行这个系统取得经验和反馈,进一步使系统扩充和完善,如此反复,直到软件人员金额用户对所设计的系统满意为止。

    增量模型结合了原型模型的基本元素和迭代的特征,采用了基于时间的线性序列都会输出该软件的一个增量。每一个增量的开发可以使用瀑布模型或者快速原型模型。

    增量:满足用户需求的一个子集,能够完成一定的功能,小而可用的软件。

    优点:

  • 增量概念的引入,使得开发不需要提供完整的需求,只要有一个增量的出现,开发就可以进行;
  • 在项目的初始阶段,不用投入太多的人力资源;
  • 项目产品逐步交付,软件开发能够很好的适应需求的变化;
  • 能够看到软件中间产品,提出改进意见,降低开发风险;
  • 项目可以尽早投入市场;
  • 开放式的体系结构便于维护。
  • 缺点:

  • 每个增量必须提供以一些系统功能,开发者难以根据用户需求给出大小合适的增量;
  • 开放式的软件体系结构难以具备;
  • 容易退化成边做边改的方式,使软件过程控制失去整体性。
  • 4.螺旋模型

    特点:

  • 把开发活动和风险管理结合起来控制风险;
  • 结合了瀑布模型和原型模型的特点;
  • 优点:

  • 螺旋模型特别强调原型的可扩充性和可修改性,原型的进化贯穿整个软件生存周期,这将有助于目标软件的适应能力,支持用户需求的动态变化;
  • 螺旋模型为项目管理人员及时调整管理决策提供了方便,进而可降低开发风险;
  • 原型可看做可执行的需求规格说明,易于为用户和开发人员共同理解,还可作为继续开发的基础,为用户参与所有关键决策提供了方便;
  • 缺点:

  • 如果每次迭代的效率不高,致使迭代次数过多,将会增加成本并推迟提交时间;
  • 使用该模型需要有相当丰富的风险评估经验和专门知识,要求开发队伍水平较高,否则会带来更大风险。
  • 二.现代软件过程模型

    1. 基于构件的开发模型

    优点:

  • 软件复用思想
  • 降低开发成本,加快开发进度,提高软件质量
  • 缺点:

  • 商业构件不能修改,会导致修改需求,进而导致系统不能完全符合客户需求
  • 敏捷开发
  • 基本原则:

  • 客户参与到开发团队中,从而确定系统需求、对需求排序、评估系统等;
  • 软件以增量的方式进行开发和交付;
  • 开发团队的技术和开发团队的风格应得到认可;
  • 接受变更,设计软件适应变更;
  • 保持所开发软件和开发过程的简单性。
  • 优点:

  • 对变化和不确定性有更快速更敏捷的反应;
  • 在快速的同时保持可持续的开发速度;
  • 能较好的地适应商业竞争环境下对小项目提出的有限资源和有限开发时间的约束。
  • 缺点:

  • 极限编程中的测试驱动开发可能会导致系统通过了测试但不是用户期望的;
  • 重构而不降低系统体系结构的质量是困难的;
  • 用于大型项目有很多问题。
  • 二.软件过程模型选择参考原则

    在我们学习掌握了每一个模型的特点以及优缺点之后,考试中有一种题型是给你一种实际情况,让你根据情况结合每一种模型的特点选择一个最合适的模型,对于这种考题学姐给大家总结出了以下的参考原则:

    1. 前期需求明确的情况下,尽量采用瀑布模型;
    2. 用户无系统使用经验,需求分析人员技能不足的情况下,尽量采用原型模型;
    3. 不确定因素很多,很多东西无法提前计划的情况下,尽量采用增量模型或者螺旋模型;
    4. 需求不稳定的情况下,尽量采用增量模型;
    5. 资金和成本无法一次到位的情况下,采用增量模型;
    6. 对于完成多个独立功能开发的情况,可在需求方分析阶段进行功能并行,每个功能内部尽量遵循瀑布模型;
    7. 全新的系统开发必须在总体设计完成后再开始增量或并行;
    8. 编程人员经验较少的情况下尽量不要采用敏捷或迭代模型;
    9. 增量、迭代和原型可以综合使用,但每一次增量和迭代都必须有明确的交付产品和出口原则。

    三.考试题型

    那么针对这一部分必考的内容,在我们的考试中经常有哪些题型呢?学姐给大家总结了一下:

    1. 选择题

    如果考试中考察选择题,那么针对本部分的内容考察的就较为简单,考察的主要内容就是每一种模型的特点以及模型之间的区别,如阶段之间具有顺序性的模型就只有瀑布模型一个,例题如下:

    例:瀑布模型也称为经典生命周期模型,(C)

    1. 是一种迭代模型
    2. 是增量的模型
    3. 是顺序的模型
    4. 强调设计的模型

    2.判断题

    判断题的话跟选择题差不多,难度系数都较低,考察的内容也是比较基础,例题如下:

    如果需求不明确或者需求会发生变化,可使用增量模型或原型模型。(√)

    3.解答题

    如果考察简答题的话,可能相对来说考的内容就会更加多一些,除了需要你能够理解模型的特点、优缺点以外,需要你能够将不同的模型进行简单的比较。

    4.简答题

    对于简答题的话,有可能会让你根据具体的情况选择最为合适的模型,这个时候就会需要用到我们前面讲到的选择模型的参考原则。

    考研即便难,但是大家还是一届比一届人数多,一路走来,太多坎坷,愿每一个考研er都能一战成硕!

    成电的软件工程属于川内比较火热的一门考研学科,竞争自然不用说。我在读研及辅导期间总结出了很多关于本校本专业的备考经验,如有幸我能带着你们一起学习的话,我一定倾囊相授,助大家圆梦成电!

    20成电软件工程 | 关于专业课复习你想要的都在这里!(内附复习疑问解析)

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2019年6月6日
    下一篇 2019年6月6日

    相关推荐