简答题
1.简述瀑布模型,增量模型,螺旋模型(含原型方法)的优缺点。
瀑布模型:
- 优点:
- 降低软件开发的复杂程度,提高软件开发过程的透明性,提高软件开发过程的可管理性
- 推迟软件实现,强调在软件实现前必须进行分析和设计工作
- 以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,保证了阶段之间的正确衔接,能够及时发现并纠正开发过程中存在的缺陷,使产品达到预期的质量要求
- 它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。
- 缺点:
- 强调过程活动的线性顺序
- 缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题
- 容错问题:后面开发过程若发现错误或者需求变动,难以进行有效调整
- 瀑布模型中的软件活动是文档驱动的,当阶段之间规定过多的文档时,会极大地增加系统的工作量
- 管理人员如果仅仅以文档的完成情况来评估项目完成进度,往往会产生错误的结论
增量模型
- 优点:
- 人员分配灵活,可根据功能分配人员
- 增量将功能分阶段发布,有计划地管理技术风险
- 第一版本的开发周期短,可以短时间得到成品,解决用户的一些急用功能。
- 每次更新只提供部分新功能,有利于用户循序渐进地学习和使用软件。
- 增量模型写开发的软件稳定性高,并且易于维护。原因是整个软件系统由各个增量组成,维护时只需要修改其中某些部件,不至于影响整个系统。
- 缺点:
- 由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。
- 虽然增量模型的灵活性高,可以根据不同需求在增量环节做出调整,但也很容易退化为边做边改模型,从而使软件过程的控制失去整体性。
- 如果增量包之间存在相交的情况且未很好处理,则必须重新做全盘系统分析,对开发过程的总体分析能力和把控力要求高。
螺旋模型
- 优点
- 设计上的灵活性,可以在项目的各个阶段进行变更
- 以小的分段来构建大型系统,使成本计算变得简单容易
- 客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性
- 随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互
- 客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品。
- 缺点
- 采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。
- 过多的迭代次数会增加开发成本,延迟提交时间。
2.简述 UP 的三大特点,其中哪些内容体现了用户驱动的开发,哪些内容体现风险驱动的开发?
三大特点是:
- 用例驱动: 用例图促使我们从系统对用户的价值方面来考虑问题,是站在用户的角度出发,以人为本。并且用例图不仅能确定用户的需求,还可以驱动系统设计、实现和测试的进行,也就是说用例可以驱动开发过程。
- 以架构为中心:软件系统的构架是从不同的角度描述即将构造的系统。构架刻画了系统的整体设计,去掉了细节部分,突出了系统的重要特性。
- 受控的迭代式的增量开发:首先迭代过程就是用来处理一组用例的,这些用例组合起来就能够扩展所开发产品的可用性。其次迭代过程要解决最突出的风险问题。只有这样后续的迭代过程才能建立在前一次迭代过程的基础上其中用例驱动体现了用户驱动的开发,受控的迭代式增量开发体现了风险驱动的开发。
3.UP 四个阶段的划分准则是什么?关键的里程碑是什么?
划分准则:
RUP 中,软件开发生命周期根据时间和RUP的核心工作流程划分为二维空间。
关键的里程碑:
RUP 中的软件生命周期在时间上被分解为四个顺序的阶段:初始阶段、精化阶段、构建阶段和产品交付阶段
- 第一阶段:主要目的是建立项目的范围和版本,确定项目目标的可行性和稳定性,结交结果包括需求和用例(生命周期目标里程碑)
- 第二阶段:主要目的是对问题域进行分析,建立系统需求和架构,确定实现的可行性和稳定性,提交结果包括系统架构,问题领域、修改后的需求及项目开发计划等相关文档 (生命周期结构里程碑)
- 第三阶段:增量式开发可以交付给用户的软件产品(初始功能里程碑)
- 第四阶段:主要目的是将软件产品交付给用户(产品发布里程碑)
4.IT 项目管理中,“工期、质量、范围/内容” 三个元素中,在合同固定条件下,为什么说“范围/内容”是项目团队是易于控制
范围/内容是最容易达成妥协的。客户最初提出的要求一般不明确,软件的开发进程和软件的质量是不可预测的,总会不断有各种因素影响它们,因此开发者需要认清客户主要需求的内容,并和用户进行讨论,从而使产品更加贴切实际。因此范围内容是最容易达成妥协的。
5.为什么说,UP 为企业按固定节奏生产、固定周期发布软件产品提供了依据?
UP的开发过本质上是一系列列迭代的过程,每次迭代都有一个固定的时间限制,并发布一个稳定的小版本,这可以被称为是一个中间产品。每次迭代的时间周期称为“时间盒”,表示着迭代周期的期限是固定的,如果目标没有完成,则放弃本次迭代的需求,而不是延长迭代的时间,这使得企业能以固定的节奏生产以及发布产品。