系统分析师考试历年试题分析与解答(案例分析与论文篇) 联系客服

发布时间 : 星期日 文章系统分析师考试历年试题分析与解答(案例分析与论文篇)更新完毕开始阅读a3fe466bb0717fd5360cdcce

系统分析师 http://www.educity.cn/jiaocheng/zg2.html

二、写作要点

本题涉及迭代式过程模型相对于瀑布式过程模型的优点、RUP生命周期模型和迭代策略、敏捷开发方法的特点和适用的情况,以及目前主要的敏捷开发技术。 1.迭代式过程模型与瀑布模型的比较

软件开发模型大体上可分为三种类型。第一种是以软件需求完全确定为前提的瀑布模型;第二种是在软件开发初始阶段只能提供基本需求时采用的迭代式或渐进式开发模型,例如,喷泉模型、螺旋模型、统一开发过程和敏捷方法等;第三种是以形式化开发方法为基础的变换模型。

瀑布模型也称为软件开发生命周期(Software Development Life Cycle,SDLC)模型。在最早的时候,软件的开发过程处于无序和混乱的情况,人们为了能够控制软件的开发过程,就将软件开发严格区分为多个不同的阶段,并在阶段之间加上严格的审查,这就是瀑布模型产生的起因。

瀑布模型是一种严格定义方法,它将软件开发的过程分为软件计划、需求分析、软件设计、程序编码、软件测试和运行维护6个阶段,形如瀑布流水,最终得到软件产品,如图1-3所示。

系统分析师 http://www.educity.cn/jiaocheng/zg2.html

图 1-3 瀑布模型

瀑布模型是一个线性顺序模型,支持直线开发。它假设当线性序列完成之后就能交付一个完善的系统,并没有考虑软件的演化特征。其优点是强调开发的阶段性、早期计划及需求调查和产品测试,以这样严格的方式构造软件,开发人员很清楚每一步应该做什么,有利于项目管理。

根据以上分析可以知道,瀑布模型存在以下主要缺点: (1)依赖于早期进行的需求调查,不能适应需求的变化。

(2)由于是单一流程,开发中的经验教训不能反馈应用于本产品的过程。 (3)风险往往迟至后期的开发阶段才显露出来,从而失去了及早纠正的机会。 (4)需求或设计中的错误往往只有到了项目后期才能够被发现。 (5)对于项目风险的控制能力较弱。

(6)软件项目常常延期完成或开发费用超出预算。

(7)项目管理人员专注于文档的完成和审核来估计项目的进展情况。

与瀑布模型相比,迭代式过程模型具有允许变更需求、逐步集成元素、尽早降低风险、有助于提高团队的士气、生成更高质量的产品、保证项目开发进度等优点。 2.RUP生命周期模型和迭代策略

RUP(Rational Unified Process)是 Rational 公司开发和维护的过程产品,是由Objectory过程演化而来。RUP将项目管理、业务建模、分析与设计等统一起来,贯穿整个开发过程。RUP采用Internet技术,可以增强团队的开发效率,并为所有成员提供最佳的软件实现方案,它使团队中每个开发人员的见解和思想得到统一,使开发小组成员的沟通更为容易,而这正是任何项目要取得成功的关键因素。RUP可以增强开发人员对软件的预见性,最终的好处就是提高了软件质量,并有效缩短了软件从开发到投放市场的

系统分析师 http://www.educity.cn/jiaocheng/zg2.html

时间。RUP过程为软件开发提供了规范性的指南、模板和范例,可用来开发所有类型的应用。

RUP中的软件过程在时间上被分解为四个顺序的阶段,分别是初始阶段、细化阶段、构建阶段和移交阶段。每个阶段结束时都要安排一次技术评审,以确定这个阶段的目标是否已经满足。如果评审结果令人满意,就可以允许项目进入下一个阶段。基于RUP的软件过程模型如图1-4所示。

图1-4 基于RUP的软件过程

从图1-4中可以看出,基于RUP的软件过程是一个迭代过程。通过初始、细化、构建和移交四个阶段就是一个开发周期,每次经过这四个阶段就会产生一代软件。除非产品退役,否则通过重复同样的四个阶段,产品将演化为下一代产品,但每一次的侧重点都将放在不同的阶段上。

用户需求的变化、运行环境的变更、基础技术方面的变更等都会引发演化过程。通常情况下,演化过程的初始阶段和细化阶段都比较简单,因为基本产品定义和架构在前面的开发过程中就已经决定。但也有例外情况,例如,对软件架构进行重新定义的演化过程。

系统分析师 http://www.educity.cn/jiaocheng/zg2.html

(1)初始阶段

初始阶段的任务是为系统建立业务模型并确定项目的边界。在初始阶段,必须识别所有与系统交互的外部实体,定义系统与外部实体交互的特性。在这个阶段中,所关注的是整个项目的业务和需求方面的主要风险。对于建立在原有系统基础上的开发项目来说,初始阶段可能很短。初始阶段的实现过程如下:

? 明确项目规模。建立项目的软件规模和边界条件,包括验收标准;了解环境及重要的需求和约束,识别系统的关键用例。

? 评估项目风险。软件过程主要关心的是软件开发的已知方面,只能准确描述、计划、分配和评审那些已经知道将要完成的事情。风险管理则主要关心未知方面。在基于RUP的迭代式软件过程中,很多决策要受风险决定。要达到这个目的,开发人员需要详细了解项目所面临的风险,并对如何降低或处理风险有明确的策略。

? 制订项目计划。估计整个项目的总体成本、进度和人员配备。综合考虑备选架构,评估设计和自制/外购/复用方面的方案,从而估算出成本、进度和资源。在这个过程中,要通过对一些概念的证实来证明可行性,可以采用可模拟需求的模型形式或用于探索高风险区的初始原型。初始阶段的原型设计工作应该限制在确信解决方案可行就可以了,具体实现留到细化阶段和构建阶段。

? 阶段技术评审。初始阶段结束时要进行一次技术评审,检查初始阶段的目标是否完成,并决定继续进行项目还是取消项目。在评审过程中,需要考虑项目的规模定义、成本和进度估算是否适中、估算根据是否可靠、需求是否正确、开发方和用户方对软件需求的理解是否达成一致、是否已经确定所有风险且有针对每个风险的规避策略等问题。 (2)细化阶段

细化阶段的任务是分析问题领域,建立完善的架构,淘汰项目中最高风险的元素。在细化