系统分析与设计作业3
简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点
-
瀑布模型
瀑布模型是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称的由来。包括软件工程开发、企业项目开发、产品生产以及市场销售等构造瀑布模型。
优点:
-
为项目提供了按阶段划分的检查点。
-
当前一阶段完成后,只需要去关注后续阶段。
-
它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。
-
有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率
缺点:
-
开发过程一般不能逆转,否则代价太大。
-
实际的项目开发很难严格按该模型进行。
-
客户往往很难清楚地给出所有的需求,而该模型却要求如此。
-
软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。
-
-
增量模型
增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。运用增量模型的软件开发过程是递增式的过程。相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。
优点:
-
采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源。
-
如果核心产品很受欢迎,则可增加人力实现下一个增量。
-
可先发布部分功能给客户,对客户起到镇静剂的作用。
缺点:
-
并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构.
-
增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。
-
-
螺旋模型
螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。 螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。 同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。 螺旋模型更适合大型的昂贵的系统级的软件应用。
优点:
-
设计上的灵活性,可以在项目的各个阶段进行变更。
-
以小的分段来构建大型系统,使成本计算变得简单容易。
-
客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。
缺点:
-
采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。
-
过多的迭代次数会增加开发成本,延迟提交时间。
-
简述统一过程三大特点,与面向对象的方法有什么关系?
统一过程的三大特点:
-
软件开发是一个迭代、增量式开发。
-
软件开发是由用例驱动的。
-
软件开发是以架构设计为中心的。
统一过程是一种软件开发过程框架,基于面向对象符号体系给出了有关软件开发过程组织及实施的指导,是一个面向对象且基于网络的程序开发方法论。它可以为所有方面和层次的程序开发提供指导方针,模版以及事例支持。
简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
划分准则:
统一过程中的软件生命周期在时间上被分解为四个顺序的阶段,分别是:初始阶段、细化阶段、构造阶段和交付阶段。每个阶段结束于一个主要的里程碑;每个阶段本质上是两个里程碑之间的时间跨度。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。
每个阶段关键的里程碑:
-
初始阶段:生命周期目标里程碑。生命周期目标里程碑评价项目基本的生存能力。
-
细化阶段:生命周期结构里程碑。生命周期结构里程碑为系统的结构建立了管理基准并使项目小组能够在构建阶段中进行衡量。此刻,要检验详细的系统目标和范围、结构的选择以及主要风险的解决方案。
-
构造阶段:初始功能里程碑。初始功能里程碑决定了产品是否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可以开始系统的运作。此时的产品版本也常被称为“beta”版。
-
交付阶段:产品发布里程碑。此时,要确定目标是否实现,是否应该开始另一个开发周期。在一些情况下这个里程碑可能与下一个周期的初始阶段的结束重合。
软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
RUP中的每个阶段可以进一步分解为迭代。一个迭代是一个完整的开发循环,产生一个可执行的产品版本,是最终产品的一个子集,它增量式地发展,从一个迭代过程到另一个迭代过程到成为最终的系统。 软件企业根据RUP能够做到明确了不同阶段迭代的里程碑与目标,支持 CI/CD 的版本交付,为固定项目周期提供了可能。利用软件产品范围的弹性,合理规划范围(20%业务决定80%满意度),使得软件生产按 固定节奏运行,固定迭代周期、固定开发周期、固定升级周期。
好处:
-
降低了在一个增量上的开支风险。如果开发人员重复某个迭代,那么损失只是这一个开发有误的迭代的花费。
-
降低了产品无法按照既定进度进入市场的风险。通过在开发早期就确定风险,可以尽早来解决而不至于在开发后期匆匆忙忙。
-
加快了整个开发工作的进度。因为开发人员清楚问题的焦点所在,他们的工作会更有效率。
-
由于用户的需求并不能在一开始就作出完全的界定,它们通常是在后续阶段中不断细化的。因此,迭代过程这种模式使适应需求的变化会更容易些。