系统分析HW3

系统分析HW3

学号:16340226

姓名:王迎旭

方向:16级软件工程嵌入式

日期:2019 - 03 - 20


一、简单题

1. 简述瀑布模型、增量模型、螺旋模型(含原型方法)的优缺点

1) 瀑布模型
  • 优点:
    • 为项目提供了按阶段划分的检查点。
    • 当前一阶段完成后,您只需要去关注后续阶段。
    • 可在迭代模型中应用瀑布模型。增量迭代应用于瀑布模型。迭代1解决最大的问题。每次迭代产生一个可运行的版本,同时增加更多的功能。每次迭代必须经过质量和集成测试
    • 它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。
  • 缺点:
    • 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
    • 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
    • 通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
    • 瀑布模型的突出缺点是不适应用户需求的变化。
2) 增量模型
  • 优点:
    • 采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源
    • 如果核心产品很受欢迎,则可增加人力实现下一个增量。
    • 当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。这样即可先发布部分功能给客户,对客户起到镇静剂的作用。
    • 此外,增量能够有计划地管理技术风险
  • 缺点:

    • 由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。
  • 在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。

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

3) 螺旋模型

  • 优点:

    • 设计上的灵活性,可以在项目的各个阶段进行变更
    • 以小的分段来构建大型系统,使成本计算变得简单容易。
    • 客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。
    • 随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。
    • 客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品。
  • 缺点:

    很难让用户确信这种演化方法的结果是可以控制的。建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。


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

1) 统一过程的三大特点:
  • 软件开发是一个叠代过程

RUP强调软件开发是一个叠代模型(Iterative Model),RUP定义了四个阶段(Phase):开端(Inception),阐述(Elaboration),建造(Construction),过渡(Transition)。其中每个阶段都有可能经历以上所提到的从商务需求分析开始的各个步骤,只是每个步骤的高峰期会发生在相应的阶段。例如开发实现的高峰期是发生在建造阶段。实际上这样的一个开发方法论是一个二维模型。这种叠代模型的实现在很大程度上提供了及早发现隐患和错误的机会,因此被现代大型信息技术项目所采用。

  • 软件开发是由Use Case驱动的

简单地说,一个Use Case就是系统的一个功能。例如在一个基于电子商务的医疗系统中,病人可以坐在家里通过网上浏览器与医生约定看病的时间(Makeappointment),这样,“Makeappointment”就是系统的一个Use Case。在系统分析和系统设计中,Use Case被用来将一个复杂的庞大系统分割、定义成一个个小的单元,这个小的单元就是Use Case,然后以每个小的单元为对象进行开发。按照RUP, Use Case贯穿整个软件开发的生命周期。在商务需求分析中,客户或用户对Use Case进行描述,在系统分布和系统设计过程中,设计师对Use Case进行分析,在开发实现过程中,开发编程人员对Use Case进行实现,在测试过程中,测试人员对Use Case进行检验。

  • 软件开发是以构架设计(Architectural Design)为中心的

构架设计(Architectural Design)是系统设计的一个重要组成部分。在构架设计过程中,设计师(Architect)必须完成对技术和运行平台的选取,整个项目的基础框架(Framework)的设计,完成对公共组件的设计,如审计(Auditing)系统,日志(Log)系统,错误处理(Exception Handling)系统,安全(Security)系统等。设计师必须对系统的可扩展性(Extensibility),安全性(Security),可维护性(Maintainability),可延拓性(Scalability),可重用性(Reusability)和运行速度(Performance)提出可行的解决方案。

2) 与面向对象方法的关系:

统一过程本身已经成为一种流行的构造面向对象系统的迭代软件开发过程。可以说,统一过程就是一个将面向对象方法实际应用于软件开发流程的一个过程准则。在开发过程中强调对对象的描述和用例的实现,从而完成对于软件对象的定义和他们的协作模式。


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

1) 统一过程中的软件生命周期在时间维度上被分解为四个顺序的阶段

  • 初始:大体上的构想、业务案例、范围和模糊评估
  • 细化:已精化的构想、核心架构的迭代实现、高风险的解决、确定大多数需求和范围以及进行更为实际的评估
  • 构造:对遗留下来的风险较低和比较简单的元素进行迭代实现,准备部署
  • 移交:进行beta测试和部署

2) 这四个阶段的里程碑如下:

  • 目标(生命周期目标)里程碑:目标里程碑对应初始阶段的结束,初始阶段的重点在于业务建模和需求工作,此时,开发者应该可以明确软件系统的目标和范围
  • 架构(生命周期体系结构)里程碑:架构里程碑对应细化阶段的结束,细化阶段的重点在于设计工作,此时,开发者需要已经确定稳定的系统架构
  • 能力(初始运行能力)里程碑:能力里程碑对应构造阶段的技术,构造阶段的重点在于实施和测试方面,此时,系统应该达到足够的稳定性和成熟性
  • 发布(产品发布)里程碑:发布里程碑对应移交阶段的结束,移交阶段主要进行重构、修改、测试以及部署等工作,此时,需要完成系统发布和用户培训等工作

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

统一过程模型中,各个阶段的生命周期是有固定长度的,在固定的周期内,所要完成的科目也是有明确的规范的, 因此在产品的的迭代开发过程有较为明确的时间限制的,企业能够按照统一过程的标准,按固定周期完成产品的生产和发布。

此时,根据固定周期的开发任务以及阶段,企业可以更加便利地掌控开发进度以及控制预算, 对产品的质量和生产开发过程都能进行较为精准的把控,方便企业根据实际情况做出调整,规范管理,从而尽可能达到最大的收益。


0%
undefined