【系分】第三周作业

系统分析与设计第三周作业

简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点

从项目特点、风险特征、人力资源利用角度思考

瀑布模型

瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。从本质来讲,它是一个软件开发架构,开发过程是通过一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,开发进程从一个阶段“流动”到下一个阶段,这也是瀑布开发名称的由来。

优点

  • 为项目提供了按阶段划分的检查点。
  • 当前一阶段完成后,您只需要去关注后续阶段。
  • 可在迭代模型中应用瀑布模型。
  • 它在软件工程中占有重要地位,它提供了软件开发的基本框架,这比依靠“个人技艺”开发软件好得多。
  • 它有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究与使用,从而提高了大型软件项目开发的质量和效率。

缺点

  • 在项目各个阶段之间极少有反馈。

  • 只有在项目生命周期的后期才能看到结果。

  • 通过过多的强制完成日期和里程碑来跟踪各个项目阶段。

  • 早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重后果。

增量模型

增量模型融合了瀑布模型的基本成分(重复应用)和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”。当使用增量模型时,第1个增量往往是核心的产品,即第1个增量实现了基本的需求,但很多补充的特征还没有发布。客户对每一个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终的完善产品。增量模型强调每一个增量均发布一个可操作的产品。

优点

采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源。如果核心产品很受欢迎,则可增加人力实现下一个增量。当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。这样即可先发布部分功能给客户,对客户起到镇静剂的作用。此外,增量能够有计划地管理技术风险。

缺点

  • 由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。

  • 在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。

  • 如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析,这种模型将功能细化后分别开发的方法较适应于需求经常改变的软件开发过程。

螺旋模型

螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。

优点

  • 通过原型的建立,使软件开发在每个迭代的最初明确方向。
  • 通过风险分析,最大程度地降低软件彻底失败造成损失的可能性。
  • 在每个迭代阶段植入软件测试,使每个阶段的质量得到保证。
  • 整体过程具备很高的灵活性,在开发过程的任何阶段自由应对变化。
  • 每个迭代阶段累计开发成本,使支出状况容易掌握。
  • 通过对用户反馈的采集,与用户沟通,以保证用户需求的最大实现。

缺点

  • 过分依赖风险分析经验与技术,一旦在风险分析过程中出现偏差将造成重大损失;
  • 过于灵活的开发过程不利于已经签署合同的客户与开发者之间的协调;
  • 由于只适用大型软件,过大的风险管理支出会影响客户的最终收益;

简述统一过程三大特点,与面向对象的方法有什么关系?

  • 用例驱动(用例驱动开发过程)

    用例是能够向用户提供有价值结果的系统中的一种功能,通过建立用例模型确定需求。基于用例模型,开发人员可以创建一系列实现这些用例的设计和实现模型。开发人员还可以审查每个后续建立的模型是否与用例模型一致。测试人员测试实现以确保实现模型的构件正确实现了用例。(用例被确定,用例被设计,用例被测试)

  • 以架构为中心

    软件架构是从不同的角度描述了即将构建的系统,他包含了系统的静态和动态特征。用例和架构是相互影响的。用例在实现时必须适合于架构,而架构必须预留空间以实现现有的或将来所有需要的用例。(架构的步骤:首先,从与用例无关的架构开始,创建一个粗略的架构轮廓。其次,处理已经确定的重要的用例子集,即主要的系统功能。最后,随着用例描述趋于完善,完善架构,直到得到一个稳定的架构。)

  • 迭代和增量的

    迭代是指工作流中的步骤,增量是指产品中增加的部分。迭代过程必须是受控的(好处:控制成本,降低风险,控制进度,精化完善需求)。

统一过程是一个面向对象的软件开发方法,它给出了有关软件开发过程组织及实施的指导。

简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?

RUP中的软件生命周期在时间上被分解为四个顺序的阶段,分别是:初始阶段(Inception)、细化阶段(Elaboration)、构造阶段(Construction)和交付阶段(Transition)。每个阶段结束于一个主要的里程碑(Major Milestones);每个阶段本质上是两个里程碑之间的时间跨度。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。

  • 构思阶段:开发一个系统大致版本、构思业务例子、定义范围、粗略估计开发费用和计划。关键里程碑:生命周期目标(Lifecycle Objective)里程碑。生命周期目标里程碑评价项目基本的生存能力。
  • 细化阶段:完成一个构建阶段的准确可靠的计划,并定位重要的风险因子。关键里程碑:生命周期结构(Lifecycle Architecture)里程碑。生命周期结构里程碑为系统的结构建立了管理基准并使项目小组能够在构建阶段中进行衡量。
  • 构建阶段:完成一个待(在移交阶段)部署的软件。关键里程碑:初始功能(Initial Operational)里程碑。初始功能里程碑决定了产品是否可以在测试环境中进行部署。
  • 移交阶段:部署给目标用户。关键里程碑:产品发布(Product Release)里程碑。此时,要确定目标是否实现,是否应该开始另一个开发周期。

软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?

UP为企业按固定节奏生产、固定周期发布软件产品提供了依据。

UP将阶段划分为4个阶段:构想阶段、细化阶段、构造阶段、移交阶段,通过阶段划分,可以使企业能有一个固定的节奏来生产;UP的迭代性,使得项目组能周期性地产出交付物,因此固定周期地发布软件产品也是UP的指导。

带来的好处:

  • 在软件开发的早期就可以对关键的、影响大的风险进行处理。
  • 可以提出一个软件体系结构来指导开发。
  • 可以更好的处理不可避免的需求变更。
  • 可以较早的得到一个可运行的系统,鼓舞开发团队的士气,增强项目成功的信心。
  • 为开发人员提供一个能更有效工作的开发过程。
【系分】第二周作业 字节跳动暑假实习面经

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×