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

简答题

1.简述瀑布模型、增量模型、螺旋模型(含原型方法)的优缺点
(从项目特点、风险特征、人力资源利用角度思考)
瀑布模型
优势:定义了软件开发基本流程与活动,采用瀑布模型可以保证系统在整体上的充分把握,使系统具备良好 的扩展性和可维护性
劣势:

  • 依赖问题:
    – 前面需求模糊,后面工作延期,项目不可控
  • 容错问题:
    – 在后期发现需求问题,工作量难接受
  • 资源调配问题:
    – 知识技能需求不同
    – 人员数量要求不同

增量模型
优势:软件开发可以较好地适应变化,客户可以不断地看到所开发的软件,从而降低开发风险。
劣势:

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

螺旋模型
优势:对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标。
减少了多个测试(浪费资金)或测试不足(产品故障多)所带来的风险。
更重要的是,在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。
劣势:螺旋模型的主要优势在于,它是风险驱动的。除非软件开发人员具有丰富的风险评估经验和这方面的专门知识,否则将出现真正的风险:当项目实际上正在走向灾难时,开发人员可能还认为一切正常。

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

  • 用例是从用户的角度用自然语言表达的,应该被所有利益相关者理解
  • 用例驱动意味着开发团队使用从需求收集到编程,测试阶段的测试用例

以体系结构为中心

  • 软件架构捕获有关软件系统的总体结构,系统的结构元件及其接口,这些软件结构之间的协作及预期行为等方面的决策
  • 软件架构提供了中心观点,包括系统的蓝图,开发的组织框架,通过关注系统的可修改性质量来改进系统,重用

迭代和增量

  • 迭代和增量允许以不完整,不完全的知识开始开发
  • 迭代和增量有优势:逐步趋向稳定,有效管理需求变更,持续集成,更快的理解系统,持续风险评估

与面对对象的联系
统一软件开发过程是一个面向对象且基于网络的程序开发方法论。它可以为所有方面和层次的程序提供指导方针,模板以及事例支持,统一软件开发过程和类似的产品,把开发中面向过程的方面(例如定义的阶段,技术和实践)和其他开发的组件(例如文档,模型,手册,以及代码等等)整合在一个同一的框架内。

3.简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
每个阶段本质上是两个里程碑之间的时间跨度。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。

  • 初始阶段
    初始阶段结束时是第一个重要的里程碑:生命周期目标(Lifecycle Objective)里程碑。生命周期目标里程碑评价项目基本的生存能力。
  • 细化阶段
    细化阶段结束时第二个重要的里程碑:生命周期结构(Lifecycle Architecture)里程碑。生命周期结构里程碑为系统的结构建立了管理基准并使项目小组能够在构建阶段中进行衡量。此刻,要检验详细的系统目标和范围、结构的选择以及主要风险的解决方案。
  • 构建阶段
    构建阶段结束时是第三个重要的里程碑:初始功能(Initial Operational)里程碑。初始功能里程碑决定了产品是否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可以开始系统的运作。此时的产品版本也常被称为“beta”版。
  • 交付阶段
    在交付阶段的终点是第四个里程碑:产品发布(Product Release)里程碑。此时,要确定目标是否实现,是否应该开始另一个开发周期。在一些情况下这个里程碑可能与下一个周期的初始阶段的结束重合。

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

  • RUP将软件的生命周期划分为四个阶段,并且开发被组织成一系列固定的短期小项目,称为迭代。
    一个迭代是一个完整的开发循环,产生一个可执行的产品版本,是最终产品的一个子集,它增量式地发展,从一个迭代过程到另一个迭代过程到成为最终的系统。
    每次迭代都产生经过测试、集成并可执行的局部系统。每次迭代都具有各自的需求分析、设计、实现和测试活动。因此,在每次迭代完成后,都有一定的产品可供发布。
  • 迭代开发降低了在一个增量上的开支风险。如果开发人员重复某个迭代,那么损失只是这一个开发有误的迭代的花费。
    降低了产品无法按照既定进度进入市场的风险。通过在开发早期就确定风险,可以尽早来解决而不至于在开发后期匆匆忙忙。
    加快了整个开发工作的进度。因为开发人员清楚问题的焦点所在,他们的工作会更有效率。
    由于用户的需求并不能在一开始就作出完全的界定,它们通常是在后续阶段中不断细化的。因此,迭代过程这种模式使适应需求的变化会更容易些。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值