1. 简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点。
-
瀑布模型
- 定义
瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。 - 优点
① 为项目提供了按阶段划分的
② 当前一阶段完成后,您只需要去关注后续阶段。
③ 可在迭代模型中应用瀑布模型。
④ 它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。 - 缺点
① 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
② 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
③ 通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
④ 瀑布模型的突出缺点是不适应用户需求的变化。
- 定义
-
增量模型
- 定义
增量模型又称为渐增模型,也称为有计划的产品改进模型,它从一组给定的需求开始,通过构造一系列可执行中间版本来实施开发活动。第一个版本纳入一部分需求,下一个版本纳入更多的需求,依此类推,直到系统完成。每个中间版本都要执行必需的过程、活动和任务。 - 优点
① 采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源。
② 如果核心产品很受欢迎,则可增加人力实现下一个增量。
③ 可先发布部分功能给客户,对客户起到镇静剂的作用。 - 缺点
① 并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构。
② 增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。
- 定义
-
螺旋模型
- 定义
螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。 - 优点
① 设计上的灵活性,可以在项目的各个阶段进行变更。
② 以小的分段来构建大型系统,使成本计算变得简单容易。
③ 客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。
④ 随着项目推进,客户始终掌握项目的最新信息 , 从而能够和管理层有效地交互。 - 缺点
很难让用户确信这种演化方法的结果是可以控制的。建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。
- 定义
2. 简述统一过程三大特点,与面向对象的方法有什么关系?
- 三大特点
① 统一过程是用例驱动的:用例图要求我们站在用户的角度出发,从用户的价值层面考虑问题。同时还可以驱动系统设计、实现和测试的进行,也就是说用例可以驱动开发过程。
② 统一过程是以架构为中心的:软件系统的构架是从不同的角度描述即将构造的系统,它刻画了系统的整体设计,去掉了细节部分,突出了系统的重要特性。明确和可以进化的架构是用例实现的基础,所以架构必须是实现统一过程的中心。
③ 统一过程是迭代和增量的过程:软件开发是一个复杂的过程,受控的迭代可以用来处理用例,是提高软件开发效率的关键,迭代和增量使软件开发阶段性展开,对于用例的实现做出了控制和协调。 - 与面向对象的方法关系
统一过程本身已经成为一种流行的构造面向对象系统的迭代软件开发过程。可以说,统一过程就是一个将面向对象方法实际应用于软件开发流程的一个过程准则。在开发过程中强调对对象的描述和用例的实现,从而完成对于软件对象的定义和他们的协作模式。
3. 简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
① 初始阶段
- 准则:为系统建立业务案例 (Business Case) 并确定项目的边界。
- 里程碑:生命周期目标(Lifecycle Objective)里程碑,包括一些重要文档,如项目构想 (Vision)、原始用例模型、原始业务风险评估、一个或者多个原型、原始业务案例等 。
② 精华阶段
- 准则:分析问题领域,建立健全的体系结构基础,编制项目计划,完成项目中高风险需求部分的开发 。
- 里程碑:生命周期结构(LifecycleArchitecture)里程碑,包括风险分析文档、软件体系结构基线、项目计划、可执行的进化原型、初始版本的用户手册等。通过评审确定软件体系结构已经稳定、高风险的业务需求和技术机制已经解决、修订的项目计划可行等。
③ 构建阶段
- 准则:完成所有剩余的技术构件和稳定业务需求功能的开发,并集成为产品,详细测试所有功能。
- 里程碑:初始功能(Initial Operational)里程碑,包括可以运行的软件产品、用户手册等,它决定了产品是否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可以开始系统的运行。
④ 移交阶段
- 准则:确保软件对最终用户是可用的。
- 里程碑:产品发布 (Product Release) 里程碑,确定最终目标是否实现,是否应该开始产品下一个版本的另一个开发周期。在一些情况下这个里程碑可能与下一个周期的初始阶段相重合。
4. 软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
- 统一过程模型中,各个阶段的生命周期是有固定长度的,在固定的周期内,所要完成的科目也是有明确的规范的, 因此在产品的的迭代开发过程有较为明确的时间限制的,企业能够按照统一过程的标准,按固定周期完成产品的生产和发布。
- 固定节奏可以量化生产过程、个人贡献度、人力资源利用率等数据,有利于更好地监督、控制、调整、评价整个生产。对于公司(生产方)来说,固定节奏开发保证适应市场需求的同时生产可控,对于用户来说,固定节奏的修复,更新更容易产生信赖感。