简答题
1. 简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点
从项目特点、风险特征、人力资源利用角度思考
- 瀑布模型:
- 优点:
- 降低软件开发的复杂程度,提高软件开发过程的透明性,开发过程的可管理性
- 提供了开发过程的模板,有利于开发过程人员的组织、管理等,同时模型中阶段评审和文档控制等也使得分析、编码、测试和维护等有一个统一的理论指导
- 有利于开发方法和开发工具的研究和使用,提高软件的质量和软件开发的效率
- 缺点:
- 开发过程线性化,一般不可逆转
- 模型阶段化明确固定,阶段之间产生较多文档,这也增加了工作量
- 缺乏灵活性和可变性,由于需求的可变和不可预见性,会导致后期需求变更时成本非常高
- 模型风险控制能力较差
- 软件开发的结果往往要到后期才能了解和明确
- 优点:
- 增量模型:
- 优点:
- 人员分配灵活,刚开始时不用投入大量人力资源
- 将待开发的软件系统模块化,分批次提交产品,使得客户可以及时了解整个项目的进展,从而提高客户对系统的信心
- 以组件为单位的开发进程使得风险得到一定的控制,提高了系统的稳定性和可维护性
- 缺点:
- 建立初始模型时,作为增量基础的基本业务服务的确定有一定难度
- 若待开发的软件系统很难被模块化将会极大地增大工作量和提高开发难度
- 并行开发的各个组件可能遇到不能集成或者难以集成的问题
- 优点:
- 螺旋模型(含原型方法):
- 优点:
- 设计具备灵活性,可在项目各个阶段进行变更
- 客户参与度高,及时满足客户的需求,保证了项目的正确开发方向
- 以小的分段来构建大型系统,使成本计算变得简单容易
- 引入了风险分析,使得风险得到一定程度上的控制
- 缺点:
- 建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求
- 采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失
- 过多的迭代会增加开发成本
- 优点:
2. 简述统一过程三大特点,与面向对象的方法有什么关系?
- 三大特点:
- 以用户为中心(描述用户使用产品的故事)
- 以架构为重心(软件产品分解的领域最佳实践)
- 以风险驱动(早期暴露风险)
- 与面向对象方法的关系:
- 统一过程是基于UML、以构架为中心、用例和风险驱动相结合的迭代增量过程,是当下流行构造面向对象系统的迭代软件开发过程,它将软件开发过程要素和软件工件要素整合在统一的软件工程框架中,是 一个面向对象的程序开发方法论
3. 简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
- 划分准则:
- 初始阶段:通过对文档的评审确定用例需求理解正确、项目风险评估 合理、阶段计划可行,确定系统的业务模型,范围等
- 里程碑:生命周期目标里程碑
- 细化阶段:软件体系结构设计完成,高风险业务需求和技术机制得到完善和解决,项目计划细分等
- 里程碑:生命周期体系结构里程碑
- 构造阶段:得到可以运行的软件产品和较为详细的用户手册,能够在测试环境里进行部署运行
- 里程碑:初始运行能力里程碑
- 移交阶段:确定最终目标是否实现,是否应该开始产品下一个版本的另一个开发周期
- 里程碑:产品发布里程碑
- 初始阶段:通过对文档的评审确定用例需求理解正确、项目风险评估 合理、阶段计划可行,确定系统的业务模型,范围等
4. 软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
- 原因:
- 因为通过统一过程,软甲开发可以被分成四个阶段,每个阶段的里程碑明确,使得阶段性需求易于评估
- 每个迭代过程都有固定的时长和产品生成,进而为企业按固定节奏生产、固定周期发布软件产品提供了依据
- 好处:
- 软件项目开发更加规范化,便于项目的管理
- 统一过程的风险驱动特性使得风险评估更加准确,风险更容易被控制
- 通过统一过程的迭代式增量开发,能够逐步解决高风险问题
- 客户能够及时了解项目的进程,及时根据客户的需求进行开发调整,提高客户对项目开发的信心和团队的信任度