简述瀑布模型、增量模型、螺旋模型(含原型方法)的优缺点
(从项目特点、风险特征、人力资源利用角度思考)
瀑布模型:有顺序性和依赖性,推迟实现,保证质量。
优点:定义了软件开发基本流程与活动。
1.降低软件开发的复杂度,提高开发的透明性,可管理性,
2.推迟软件实现,强调在实现前进行分析和设计工作。
3.通过项目阶段评审和文档控制,指导开发过程,保证正确衔接阶段,及时发现并修改bug,从而保证质量。
缺点:可能造成项目延期,不可控,过多的文档会增加人力资源的消耗。
1. 依赖顺序性问题: 前面需求模糊,后面工作会耗时耗力,没有反馈机制,缺乏灵活性。
2. 容错问题: 风险控制很弱,在后期发现需求问题,工作量难接受
3. 资源调配问题: 知识技能需求不同,人员数量要求不同。
增量模型
优点:
1. 增强客户对系统的信心
2. 降低系统失败风险
3. 提高系统可操作性
4. 提高系统的稳定性和可维护性
缺点:
1.增量粒度难以选择
2. 确定所有的基本业务服务比较困难
螺旋模型(原型方法)
优点:
1.项目的每个阶段都可以进行修改,很灵活 。
2. 以小分段来构建大型系统,容易预算成本,便于风险控制。
3. 迭代结束后对可运行原型进行评估和验证,并和客户沟通,保证项目不偏离正确方向,和管理层有效交互,控制项目。
缺点:
1. 在风险较大的项目开发中,如果未能及时标识风险,势必造成重大损失
2. 过多的迭代次数会增加开发成本,延迟提交时间
3. 螺旋模型只适用于大规模的软件项目
简述统一过程三大特点,与面向对象的方法有什么关系
统一过程是:用例驱动的、 以架构为中心 、受控的迭代式增量开发过程。
用户驱动的开发体现在用例驱动和迭代式增量。风险驱动的开发体现在以构架为中心和迭代及增量。
简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么
统一过程的划分准则:
1. 初始(Inception): 大体上的构想、范围和模糊评估,提交结果包括需求和用例
2. 细化(Elaboration): 已精化的构想、确定大多数需求和范围进行更为实际的评估,提交结果包括系统架构、问题领域、修改后的需求及项目开发计划等相关文档。
3. 构造(Construction): 增量式开发构造交付给用户的软件产品,对遗留下来的风险较低和比较简单的元素进行迭代实现。
4.交付(Transition): beta测试和部署
里程碑:是迭代的结束点,此时有重要决策或评估产生。
软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
因为统一过程的开发,本质上是一系列迭代的过程。因为开发过程中的每次迭代都有固定长度,必须在时限之前完成该阶段任务,做不完就砍掉一些功能/部分。
总而言之,UP开发有着明确的时间限制,每一次迭代,都能有一个“新产品”出现。因此可以为企业按固定节奏生产、固定周期发布软件产品提供依据。