1. 简答题
1.1 简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点 从项目特点、风险特征、人力资源利用角度思考
瀑布模型
优点:
- 为项目提供了按阶段划分的检查点,当前一阶段完成后,您只需要去关注后续阶段
- 它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导
- 推迟软件实现,强调在软件实现前必须进行分析和设计工作
缺点:
- 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险
- 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量
- 缺乏灵活性,尤其无法解决软件需求不明确或不准确的问题
增量模型
优点:
- 将待开发的软件系统模块化,可以分批次地提交软件产品,使用户可以及时了解软件项目的进展
- 以组件为单位进行开发降低了软件开发的风险。一个开发周期内的错误不会影响到整个软件系统
- 开发顺序灵活。开发人员可以对组件的实现顺序进行优先级排序,先完成需求稳定的核心组件。当组件的优先级发生变化时,还能及时地对实现顺序进行调整
缺点:
- 要求待开发的软件系统可以被模块化。如果待开发的软件系统很难被模块化,那么将会给增量开发带来很多麻烦。
- 整个流程没有反馈,项目的需求必须是明确的
螺旋模型
优点:
- 通过原型的建立,使软件开发在每个迭代的最初明确方向
- 通过风险分析,最大程度地降低软件彻底失败造成损失的可能性
- 整体过程具备很高的灵活性,在开发过程的任何阶段自由应对变化
- 每个迭代阶段累计开发成本,使支出状况容易掌握
缺点:
- 过分依赖风险分析经验与技术,一旦在风险分析过程中出现偏差将造成重大损失
- 过于灵活的开发过程不利于已经签署合同的客户与开发者之间的协调
- 由于只适用大型软件,过大的风险管理支出会影响客户的最终收益
1.2 简述统一过程三大特点,与面向对象的方法有什么关系?
三大特点:
- 软件开发是一个迭代过程
- 软件开发是由Use Case驱动的
- 软件开发是以架构设计(Architectural Design)为中心的
与面向对象的方法的关系:
统一过程是一个面向对象的软件开发方法,它给出了有关软件开发过程组织及实施的指导。
1.3 简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
-
初始阶段:
大体上的构想,业务案例,范围,和模糊评估。定义系统的业务模型,确定系统的范围
里程碑:构建了一个可行的系统概念
-
细化阶段:
已精化的构想、核心架构的迭代实现、高风险的解决、确定大多数需求和范围以及进行更为实际的评估。完成系统的体系结构设计,完成系统开发计划里程碑:评估在现有条件下构建系统的可行性以及风险
-
构建阶段:
对遗留下的风险较低和比较简单的元素进行迭代实现,准备部署。构造产品,并继续演进需求、体系结构和计划,直到产品完成里程碑:完成构建一个测试版本的系统
-
移交阶段:
进行系统部署,系统测试,最终移交给用户里程碑:交付给客户一个全功能的系统
1.4 软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
因为软件企业生产有成熟的统一过程模型,软件生产的各个阶段都有较为明确的目标和步骤,使得软件生产按固定节奏运行,能按固定周期发布软件产品
通过统一过程模型,企业能够更加方便地掌控开发的进度,在满足日程的前提下,尽可能地提高产品的质量,这种尽力而为的思想也使得软件开发的预算被控制在一个范围之内,极大地减少了项目的风险性。