SWSAD Homework3

1. 简单题

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

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

  • 瀑布模型:将软件生命周期的各项活动规定为按固定顺序而连接的若干阶段工作。瀑布模型假设项目需求是明确的,在短期内可获取每个阶段是无差错的。
    • 优点:
      • 定义了软件开发基本流程与活动
      • 降低软件开发的复杂程度,提高软件开发过程的透明性,提高软件开发过程的可管理性
      • 推迟软件实现,强调在软件实现前必须进行分析和设计工作
      • 以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,保证了阶段之间的正确衔接,能够及时发现并纠正开发过程中存在的缺陷,使产品达到预期的质量要求
    • 缺点:
      • 依赖问题: 前面需求模糊,后期工作量将难接受
      • 容错问题:风险控制能力较弱,缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。在项目后期发现需求问题,工作量将难接受
      • 资源调配问题:知识技能需求不同,人员数量要求不同
      • 瀑布模型中的软件活动是文档驱动的,当阶段之间规定过多的文档时,会极大地增加系统的工作量
      • 管理人员如果仅仅以文档的完成情况来评估项目完成进度,往往会产生错误的结论。
  • 增量模型:软件被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成.。增量模型在各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品。
    • 优点:
      • 软件开发可以较好地适应变化,从而降低开发风险
      • 客户可以不断地看到所开发的软件,增强客户对系统的信心
      • 提高系统可靠性、稳定性和可维护性
    • 缺点:
      • 建立初始模型时,作为增量基础的基本业务服务的确定有一定难度
      • 由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。
      • 在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而使软件过程的控制失去整体性。
  • 螺旋模型:螺旋模型的基本思想是,使用原型及其他方法来尽量降低风险。理解这种模型的一个简单方法,是把它看做在每个阶段之前都增加了风险分析过程的快速原型模型。 、
    • 优点:
      • 对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标。
      • 减少了多个测试(浪费资金)或测试不足(产品故障多)所带来的风险。
      • 在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。
      • 螺旋模型主要适用于内部开发的大规模软件项目。
    • 缺点:
      • 采用螺旋模型需要具有相当丰富的风险评估经验和专业知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失
      • 过多的迭代次数会增加开发成本,延迟提交时间
1.2 简述统一过程三大特点,与面向对象的方法有什么关系?

统一过程三大方法:

  • 以架构为中心(Architecture Centric),综合考虑软件系统的各个方面并优先解决软件系统中的主要问题,同时创建常见问题的通用解决方案,解决软件项目的主要风险。
  • 迭代式增量开发(Iterative and Evolutionary),分别针对阶段对于不同风险对象,风险作为驱动。
  • 用例驱动(Use Case Driven),通过客户的角度来看待软件系统,围绕用户为核心,用例是用户和系统交互的具体情景,解决从需求中提取对象的困难,并明确明确软件系统业务需求与服务范围。

统一过程面向功能类编程,架构设计接口,符合面向对象方法的特征。

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

统一过程的四个阶段:

  • 初始阶段(Inception):大体上的构想、业务案例、范围和模糊评估。
  • 细化阶段(Elaboration):已经精化的构想、核心构架的迭代实现、高风险的解决、确定大多数需求和范围和更为实际的评估。
  • 构建阶段(Construction):对遗留下的风险较低和较为简单的元素进行迭代实现、准备部署。
  • 交付阶段(Transition):进行测试与部署。

每个阶段结束于一个主要的里程碑,并在阶段结尾执行一次评估以确定这个阶段是否已经满足,如果满足可进入下一阶段。

每个阶段关键的里程碑
  • 初始阶段:

    生命周期目标里程碑,评价项目基本的生存能力;

  • 细化阶段:

    生命周期结构里程碑,为系统的结构建立了管理基准并使项目小组能够在构建阶段中进行衡量;

  • 构建阶段:

    初始功能里程碑,决定了产品是否可以在测试环境中进行部署;

  • 交付阶段:

    产品发布里程碑,确定目标是否实现,是否应该开始另一个开发周期;一些情况下这个里程碑可能与下一个周期的初始阶段的结束重合。

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

软件企业之所以能够按固定节奏生产、固定周期发布产品,一方面在于企业规范化管理的基本思想,另一方面在于他们了解软件本质特征,从而选择了合适的开发模型。软件企业非常好地认识项目的工期、范围、质量和预算,遵循先做到再做好的原则,并且对于2/8法则再项目中的应用有着深入了解。

好处:

  • 它可以使得企业项目管理具有明确的阶段划分,由于每个阶段都会有显著的里程碑,使得每个迭代阶段都有明确的目标。这使得项目管理确定合理的产品范围,不投入大量时间在冗余的工作中。
  • 每个迭代都是瀑布的工作流程,在迭代内部需求明确的情况下,差错较少。
  • 每个迭代在增量且制品可运行,能够即使交付并得到反馈。固定迭代周期有利于量化团队和个人的生产率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值