一、简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点
瀑布模型:
- 优点
- 每个阶段有一个检查点
- 当前面一个阶段完成之后,只需要去关注后续的阶段,每个阶段可以顺序独立完成
- 文档驱动,沟通成本被降低了
- 利于调配资源
- 缺点
- 强调过程活动的线性顺序
- 缺乏灵活性,尤其无法解决软件需求不明确或不准确的问题
- 风险控制能力较弱
- 软件活动是文档驱动的,当阶段啊之间规定过多的文档时会极大增加系统的工作量
增量模型:
- 优点
- 增强客户对系统的信心
- 降低系统失败风险
- 提高系统可操作性
- 提高系统的稳定性和可维护性
- 缺点
- 增量粒度可能难以确定
螺旋模型:
- 优点
- 设计上的灵活性,可以在项目的各个阶段进行变更
- 客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性
- 以小的分段来构建大型系统,使成本计算变得简单容易
- 在每个迭代阶段植入软件测试,使每个阶段的质量得到保证
- 缺点
- 只适用于大规模的软件开发,小规模软件开发入不敷出
- 风险分析对开发人员的要求较高
- 开发周期较长
二、简述统一过程三大特点,与面向对象的方法有什么关系?
三大特点:
- 用例驱动:用例驱动表明开发过程是沿着一个流(一系列从用例得到的工作流)前进的。用例被确定、用例被设计、用例被测试(最后用例又成为测试人员构造测试用例的基础)
- 以架构为中心:软件构架包含了系统中最重要的静态和动态特征。构架刻画了系统的整体设计,去掉了细节部分,突出了系统的重要特性
- 迭代和增量的:软件开发是一项复杂的过程,因此可以将这些项目划分为切实可行并能够产生一个增量的迭代过程。迭代是指工作流中的步骤,增量是指产品中增加的部分
与面向对象的方法的关系:
统一过程是一个面向对象的软件开发方法,它给出了有关软件开发过程组织及实施的指导。
三、简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?
- 初始阶段 (inception):该阶段的主要目的是建立项目的范围和版本,确定项目目标的可行性和稳定性,结交结果包括需求和用例。初始阶段结束时是第一个重要的里程碑:生命周期目标(Lifecycle Objective) 里程碑。生命周期目标里程碑评价项目基本的生存能力。
- 细化阶段 (elaboration):该阶段的目的是对问题域进行分析,建立系统需求和架构,确定实现的可行性和稳定性,提交结果包括系统架构,问题领域、修改后的需求及项目开发计划等相关文档。细化阶段结束时第二个重要的里程碑:生命周期结构 (Lifecycle Architecture) 里程碑。生命周期结构里程碑为系统的结构建立了管理基准并使项目小组能够在构建阶段中进行衡量。
- 构造阶段:完成所有剩余的技术构件和稳定业务需求功能的开发,并集成为产品,详细测试所有功能。构建阶段只是一个制造过程,其重点放在管理资源及控制开发过程以优化成本、进度和质量。构建阶段结束时是第三个重要的里程碑:初始功能 (Initial Operational) 里程碑。初始功能里程碑决定了产品是否可以在测试环境中进行部署。
- 交付阶段:确保软件对最终用户是可用的。产品化阶段可以跨越几次迭代,包括为发布做准备的产品测试,基于用户反馈的少量调整。在交付阶段的终点是第四个里程碑:产品发布 (Product Release) 里程碑。
四、软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
在统一过程模型中,关键的行为是迭代,而每个迭代都是由一个小周期构成,而这每个周期的长度差不多是固定的。这就可以保证企业按照固定周期发布软件产品。固定迭代周期有利于量化团队和个人的生产率。