1、简答题
简述瀑布模型、增量模型、螺旋模型(含原型方法)的优缺点。
瀑布模型
优点
- 明确定义了软件开发基本流程与活动
- 降低软件开发的复杂程度,提高软件开发过程的透明性,提高软件开发过程的可管理性
- 推迟软件实现,强调在软件实现前必须进行分析和设计工作
- 以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,保证了阶段之间的正确衔接,能够及时发现并纠正开发过程中存在的缺陷,使产品达到预期的质量要求
缺点
- 强调过程活动的线性顺序
- 缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题
- 风险控制能力较弱
- 瀑布模型中的软件活动是文档驱动的,当阶段之间规定过多的文档时,会极大地增加系统的工作量
- 管理人员如果仅仅以文档的完成情况来评估项目完成进度,往往会产生错误的结论
增量模型
优点
- 增强客户对系统的信心
- 降低系统失败风险
- 提高系统可靠性
- 提高系统的稳定性和可维护性
缺点
- 增量粒度难以选择
- 确定所有的基本业务服务比较困难
螺旋模型
优点
- 螺旋模型是由风险驱动的迭代过程,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。螺旋模型遵从瀑布模型的要求,将瀑布模型的多个阶段转化到多个迭代过程中,以减少项目的风险。
缺点
- 螺旋模型强调风险分析,但说服外部客户接受和相信分析结果并做出相关反应并不容易,因此螺旋模型往往比较适合内部的大规模软件开发。
- 风险分析需要相当的成本耗费,因此螺旋模型只适合于投资较大的规模软件项目。
- 失误的风险分析可能带来更大的风险。
简述 UP 的三大特点,其中哪些内容体现了用户驱动的开发,哪些内容体现风险驱动的开发?
RUP (Rational Unified Process) 是一种采用基于 UML 的、以构架为中心、用例驱动与风险驱动相结合的迭代增量过程。
- 用例驱动(用例驱动开发过程):用例是能够向用户提供有价值结果的系统中的一种功能,通过建立用例模型确定需求。基于用例模型,开发人员可以创建一系列实现这些用例的设计和实现模型。开发人员还可以审查每个后续建立的模型是否与用例模型一致。测试人员测试实现以确保实现模型的构件正确实现了用例。(用例被确定,用例被设计,用例被测试)
- 以架构为中心:软件架构是从不同的角度描述了即将构建的系统,他包含了系统的静态和动态特征。用例和架构是相互影响的。用例在实现时必须适合于架构,而架构必须预留空间以实现现有的或将来所有需要的用例。(架构的步骤:首先,从与用例无关的架构开始,创建一个粗略的架构轮廓。其次,处理已经确定的重要的用例子集,即主要的系统功能。最后,随着用例描述趋于完善,完善架构,直到得到一个稳定的架构。)
- 迭代和增量的:迭代是指工作流中的步骤,增量是指产品中增加的部分。迭代过程必须是受控的(好处:控制成本,降低风险,控制进度,精化完善需求)。
UP 四个阶段的划分准则是什么?关键的里程碑是什么?
四个阶段
初始阶段 (Inception)、精化阶段 (Elaboration)、构建阶段(Construction) 和产品交付阶段 (Transition)。
划分准则
每个阶段结束于一个主要的里程碑 (Major Milestone),并在阶段结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。因此将阶段进行了划分。
里程碑
IT 项目管理中,“工期、质量、范围/内容” 三个元素中,在合同固定条件下,为什么说“范围/内容”是项目团队是易于控制的
因为在合同固定的条件下,工期是合同明确确定的,而质量是由接收方进行审核的,只有范围和内容是比较灵活,能够由项目团队进行控制。
为什么说,UP 为企业按固定节奏生产、固定周期发布软件产品提供了依据?
因为UP 是一种采用基于 UML 的、以构架为中心、用例驱动与风险驱动相结合的迭代增量过程,它将开发过程分为四个阶段,初始阶段 (Inception)、精化阶段 (Elaboration)、构建阶段(Construction) 和产品交付阶段 (Transition),同时每个阶段结束于一个主要的里程碑 (Major Milestone),并在阶段结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。因此这样的一种方法和过程使得企业产品生产被驱动有阶段地按方法地进行,所以UP 为企业按固定节奏生产、固定周期发布软件产品提供了依据。