系分课的作业
1.简答题
简述瀑布模型,增量模型,螺旋模型的优缺点
瀑布模型
瀑布模型将软件生命周期划分为制定计划,需求分析,软件设计,程序编写,软件测试和运行维护等六个基本活动,并且规定了它们自上而下,相互衔接的固定次序。从本质来讲,它是一个软件开发架构,开发过程是通过一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,开发进程从一个阶段“流动”到下一个阶段,这也是瀑布开发名称的由来。
- 优点:
- 为项目提供了按阶段划分的检查点。
- 在每个阶段检查通过后,不再需要考虑之前阶段,只需要关注后续阶 段,提高效率。
- 可在迭代模型中应用瀑布模型,将开发过程分解为几个迭代。第一次迭代解决最大的问题。每次迭代产生一个可运行的版本,同时增加更多的功能。
- 它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。
- 可在迭代模型中应用瀑布模型
- 缺点:
- 依赖问题:后面的开发依赖于前面,若前面开发过程中没有合理设计导致需求模糊等问题,会使得后面工作陷入困境,难以展开。
- 容错问题:后面开发过程若发现错误或者需求变动,难以进行有效调整。
- 项目各阶段之间极少有反馈
- 通过过多的墙纸完成日期和里程碑来跟踪各个项目阶段。
增量模型:
增量模型又称为渐增模型,也称为有计划的产品改进模型,它从一组给定的需求开始,通过构造一系列可执行中间版本来实施开发活动。第一个版本纳入一部分需求,下一个版本纳入更多的需求,依此类推,直到系统完成。每个中间版本都要执行必需的过程、活动和任务。增量模型是瀑布模型和原型进化模型的综合,它对软件过程的考虑是:在整体上按照瀑布模型的流程实施项目开发,以方便对项目的管理;但在软件的实际创建中,则将软件系统按功能分解为许多增量构件,并以构件为单位逐个地创建与交付,直到全部增量构件创建完毕,并都被集成到系统之中交付用户使用。不同于原型进化模型的是,增量模型在开发过程中所交付的不是完整的新版软件,而只是新增加的构件。
- 优点:
- 人员分配灵活,可根据功能分配人员
- 增量将功能分阶段发布,有计划地管理技术风险
- 第一版本的开发周期短,可以短时间得到成品,解决用户的一些急用功能。
- 每次更新只提供部分新功能,有利于用户循序渐进地学习和使用软件。
- 增量模型写开发的软件稳定性高,并且易于维护。原因是整个软件系统由各个增量组成,维护时只需要修改其中某些部件,不至于影响整个系统。
- 缺点:
- 由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。
- 虽然增量模型的灵活性高,可以根据不同需求在增量环节做出调整,但也很容易退化为边做边改模型,从而使软件过程的控制失去整体性。
- 如果增量包之间存在相交的情况且未很好处理,则必须重新做全盘系统分析,对开发过程的总体分析能力和把控力要求高。
螺旋模型:
螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。螺旋模型的每一次迭代只包含了瀑布模型的某一个或两个阶段.如第二次迭代重点是需求,第三次迭代是总体设计和后续设计开发计划等。
主要活动:
(1)制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;
(2)风险分析:分析评估所选方案,考虑如何识别和消除风险;
(3)实施工程:实施软件开发和验证;
(4)客户评估:评价开发工作,提出修正建议,制定下一步计划。
- 优点:
- 可以在项目的各个阶段进行变更,具有很高的灵活性。
- 从小分段开始逐渐得到大的系统,有利于需求和预算分析。
- 客户可以参与每个阶段的开发,提高了开发过程的可控性,不会产生需求模糊的现象。
- 有利于客户和开发者的相互交流,提高质量和效率。
- 缺点:
- 软件开发周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。
- 采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。
- 过多的迭代次数会增加开发成本,延迟提交时间。
简述RUP的三大特点,其中哪些内容体现了用户驱动的开发?哪些内容体现风险驱动的开发?
三大特点:
RUP (Rational Unified Process) 是一种采用基于UML的、以构架为中心、用例驱动与风险驱动相结合的迭代增量过程。
用户驱动开发:
迭代开发与增量开发过程
风险驱动开发:
迭代计划安排是风险驱动的,高风险因素集中在前两个阶段解决,特别是体系结构级的风险在精化阶段就得到了解决,及早降低了系统风险
RUP四个阶段的划分准则是什么?关键的里程碑是什么?
划分准则:
RUP 中,软件开发生命周期根据时间和RUP的核心工作流程划分为二维空间。
关键的里程碑:
RUP 中的软件生命周期在时间上被分解为四个顺序的阶段:初始阶段、精化阶段、构建阶段和产品交付阶段
- 生命周期目标里程碑。包括一些重要的文档,需要对这些文档进行评审,以确定用例需求,项目风险评估合理,阶段计划可行等。
- 生命周期体系结构里程碑。通过评审确定软件体系结构已经稳定、高风险的业务需求和技术机制已经解决、修订的项目计划可行等。
- 初始运行能力里程碑。包括可以运行的软件产品、用户手册等,它决定了产品是否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可以开始系统的运行。
- 产品发布里程碑。确定最终目标是否实现,是否应该开始产品下一个版本的另一个开发周期。在一些情况下这个里程碑可能与下一个周期的初始阶段的相重合。
IT项目管理中,“工期,质量,范围/内容”三个元素中,在合同固定条件下,为什么说“范围内容”是项目团队是易于控制的。
范围/内容是最容易达成妥协的。客户最初提出的要求一般不明确,因此开发者需要认清客户主要需求的内容,并和用户进行讨论,从而使产品更加贴切实际。因此范围内容是最容易达成妥协的。
为什么说,RUP为企业按固定节奏生产、固定周期发布软件产品提供了依据?
RUP的开发过本质上是一系列列迭代的过程,每次迭代都有一个固定的时间限制,并发布一个稳定的小版本。每次迭代的时间周期称为“时间盒”,表示着迭代周期的期限是固定的,如果目标没有完成,则放弃本次迭代的需求,而不是延长迭代的时间,这使得企业能以固定的节奏生产以及发布产品。