HomeWork3
1. 简单题
(1) 简述瀑布模型、增量模型、螺旋模型(含原型方法)的优缺点,从项目特点、风险特征、人力资源利用角度思考
-
瀑布模型:
-
优点:
- 能降低软件开发的复杂程度,提高软件开发过程的透明性,提高软件开发过程的可管理性。
- 推迟软件实现,强调在软件实现前必须进行分析和设计工作。
- 在一个阶段完成之后,我们只需要关注后续阶段。
- 为软件开发过程提供了一个模板,这个模板使得分析、设计、编码、测试和维护有一个共同的指导。有了这个指导,能及时发现开发过程中存在的缺陷。
-
缺点:
- 过分的依赖性,缺货灵活性。如果前期的需求模糊、不准确,后期会出现很多问题。
- 强调每一个过程活动的线性顺序,不够灵活。
- 风险控制能力比较弱。
- 其中的软件活动都是文档控制的,当有过多的文档工作的时候,会极大的增加系统的工作量。
- 当开发过程中,用户需求发生变化,瀑布模型不容易去适应这样的变化。
-
增量模型:
-
优点:
- 将待开发的软件模块化,可以分批次的提交软件产品,让用户及时的了解软件项目进展,增强用户对系统的信心。
- 以组件为单位开发,可以降低软件开发的风险,如果一个组件发生了错误,不会影响整体系统。
- 有一个比较灵活的开发顺序,方便在开发过程中适当的调整组件开发顺序。
-
缺点:
- 由于组件一个一个添加到系统中的,所以需要这个系统必须在每个组件加入之后不能破坏已有的结构。
- 当开发过程中遇到用户需求改变的时候,虽然增量模型比瀑布模型有更好的灵活性,但是容易退化为边做边改模型,让软件开发过程失去整体性。
- 如果增量包之间相互重复的地方没有处理好,则需要对系统进行全面的分析。
-
螺旋模型(含原型方法):
-
优点:
- 设计上比较灵活,可以在开发的各个阶段进行更改。
- 每个大的系统由小的分段构成,让成本比较容易计算。
- 客户可以参与每个阶段的开发,这样能减少需求修改的次数,保证项目的稳定性。
- 客户和开发人员也有比较好的沟通。
-
缺点:
- 采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。
- 过多的迭代次数会增加开发成本,延迟提交时间。
(2) 简述统一过程三大特点,与面向对象的方法有什么关系?
-
三大特点:
- 以架构为中心,综合考虑软件系统的各个方面并优先解决软件系统中的主要问题,同时创建常见问题的通用解决方案,解决软件项目的主要风险。
- 迭代式增量开发,将这些项目划分为切实可行并能够产生一个增量的迭代过程,迭代过程就是用来处理一组用例的,迭代过程要解决最突出的风险问题。
- 用例驱动,通过客户的角度来看待软件系统,围绕用户为核心,用例是用户和系统交互的具体情景,解决从需求中提取对象的困难,并明确明确软件系统业务需求与服务范围。
-
与面向对象方法关系:
- 统一过程是基于构件的,采用新的可视化建模标准,即统一建模语言(UML)。
- 统一过程是一个考虑到生命周期、阶段、工作流、风险缓解、质量监控、项目管理和配置管理的软件开发过程。
- 其中也是面向功能类编程,架构设计接口,符合面向对象方法的特征。
(3) 简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
-
四个阶段的划分准则是初始阶段、精化阶段、构建阶段 和产品交付阶段。 每个阶段结束于一个主要的里程碑,并在阶段结尾执行一次评估以确定这个阶段的目标是否已经满足。
-
初始阶段:主要确定项目的风险及其优先次序,初始规划确定业务范围,项目整体预算估计等。里程碑为目标里程碑。
-
细化阶段:主要深入分析用例、健全架构和制定详细的开发计划。里程碑为结构里程碑。
-
构造阶段:开发和测试阶段。里程碑是初始功能里程碑。
-
移交阶段:改进产品的缺陷和不足,准备交付给用户。里程碑是产品发布里程碑。
(4) 软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
因为软件企业使用的是统一过程,统一过程的每个迭代都是由一个小周期构成,企业严格遵循这种迭代小周期进行阶段性开发,可以很好地实现增量发展,稳定推进项目进度,及时获取并应用用户的最新反馈,使产品一步一步往更好的方向发展。这样使得企业项目管理也更加方便、规范、易于员工接受。同时这样有利于产品的及时交付使用并获得用户客户的反馈。