2010年软件设计师考试复习资料 (42页完美打印版)
5.2 原型模型
5.2.1 快速原型模型
快速原型的用途是获知用户的真正需求,一旦需求确定了,原型即被抛弃。主要用于需求分析阶段。 不追求也不可能要求对需求的严格定义,而是采用了动态定义需求的方法,所以不能定义完善的文档。 特征:简化项目管理、尽快建立初步需求、加强用户参与和决策。
具有广泛技能水平的原型化人员是原型实施的重要保证。原型化人员应该是具有经验与才干、训练有素的专业人员。衡量原型化人员能力的重要标准是他是否能够从用户的模糊描述中快速获取需求。 5.2.2 演化模型
在快速原型模型中,原型的用途是获知用户的真正需求,一旦需求确定了,原型即被抛弃。而演化模型应用于整个软件开发过程,是从初始模型逐步演化为最终软件产品的渐进过程。也就是说,快速原型模型是一种“抛弃式”的原型化方法,而演化模型则是一种“渐进式”的原型化方法。 5.2.3增量模型(渐增式)
增量模型主要用于设计阶段,把软件产品划分为一系列的增量构件,分别进行设计、编程、集成和测试。新的增量构件不得破坏已经开发出来的产品。其示意图如图4-2所示。
5.2.4 原型模型小结
从下面的有关原型化方法的叙述中,选择出正确的叙述:
(1)快速原型方法是一种企图克服传统软件周期模型缺点的开发方法。
(2)在用户的数据资源没有得到很好地组织和管理的时候,应该使用原型化方法。 (3)在用户没有明确地肯定其需求的时候,应该使用原型化方法。
(4)在用户不希望把自己的时间花在软件开发过程中的时候,应该使用原型化方法。 (5)使用原型化方法时应该使用第三代编程语言。 (6)原型化加强了开发过程中用户的参与和决策。
(7)原型化方法大致可分为三类:抛弃式、演化式和递增式。 (8)原型化方法大致可分为演化式和递增式。 (9)采用原型化方法时,软件的开发成本较高。
(10)采用原型化方法时,关键的因素是建立原形的速度,而不是原形运行的效率。
5.3 螺旋模型
螺旋模型综合了瀑布模型和原型模型中的演化模型的优点,还增加了风险分析。螺旋线第一圈的开始点可能是一个概念项目。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直转到软件生命期结束。
共42页 第6页
2010年软件设计师考试复习资料 (42页完美打印版)
5.4 喷泉模型
喷泉模型主要用于描述面向对象的开发过程。喷泉一词体现了面向对象开发过程的迭代和无间隙特征。迭代指的是开发活动常常需要重复多次,在不断的迭代中逐渐完善软件系统,无间歇性指在开发活动之间不存在明显的边界,允许各开发活动交叉、迭代地进行。 5.5 迭代软件开发技术
Rational 统一开发流程RUP(Rational Unified Process)是一个通用的软件流程框架,它是一个以架构为中心、用例驱动的迭代化软件开发流程。RUP 是从几千个软件项目的实践经验中总结出来的,对于实际的项目具有很强的指导意义,是软件开发行业事实上的行业标准。在RUP 中,我们把软件开发生命周期划分为四个阶段,每个阶段的结束标志就是一个主要的里程碑(如下图所示)。
这四个阶段主要是为了达到以下阶段性的目标里程碑: 先启(Inception):确定项目开发的目标和范围 精化(Elaboration):确定系统架构和明确需求 构建(Construction):实现剩余的系统功能
产品化(Transition):完成软件的产品化工作,将系统移交给客户
2005年下半年: ? 在开发一个系统时,如果用户对系统的目标是不很清楚,难以定义需求,这时最好使用 (6) 。
(6)A. 原型法 B. 瀑布模型 C. V-模型 D. 螺旋模型 2006年上半年:
渐增式开发方法有利于 (4) 。
(4)A. 获取软件需求 B.快速开发软件 C. 大型团队开发 D.商业软件开 2006年下半年:
共42页 第7页
2010年软件设计师考试复习资料 (42页完美打印版)
常见的软件开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。其中(5)模型适用于需求明确或很少变更的项目,(6)主要用来描述面向对象的软件开发过程。
(5) A.瀑布模型 B.演化模型 C. 螺旋模型 D.喷泉模型 (6) A.瀑布模型 B.演化模型 C. 螺旋模型 D.喷泉模型
●统一过程(UP)的基本特征是“用例驱动,以架构为中心的和受控的迭代式增量开发”。UP将一个周期的开发过程化分为4个阶段,其中 (26) 提交结果包含了系统架构。
(26)A.先启阶段 B.精化阶段 C.构建阶段 D.提交阶段 5.6极限编程(XP)
一种轻量(敏捷)、高效、低风险、柔性、可预测、科学而且充满乐趣的软件开发方法。与其他方法对比,最大的不同在于:
1.在更短的周期内,更早地提供具体、持续的反馈信息
2.迭代地进行计划编制,首先在最开始迅速生成一个总体计划,然后在整个项目开发过程中不断地发展 3.依赖于自动测试程序来监控开发进度,并及早地捕获缺陷 4.依赖于口头交流,测试和源程序进行沟通 5.倡导持续的演化式的设计
6.依赖于开发团队内部的紧密协作
7.尽可能达到程序员短期利益和项目长期利益的平衡
如上图所示,xp由价值观、原则、实践和行为四个部分组成,它们彼此相互依赖、关联,并通过行为贯穿于整个生命周期。xp的核心是其总结的四大价值观:沟通、简单、反馈和勇气、它们是xp的基础,也是xp的灵魂。5个原则:快速反馈、简单性假设、逐步修改、提倡更改和优质工作。在xp方法中,贯彻的是“小步快走”的开发原则,因此工作质量绝不可打折扣,通常采用测试先行的编码方式来提供支持。
在xp中,继承了12个最佳实践:计划游戏、小型发布、隐喻、简单设计、测试先行、重构、结对编程、集体代码所有制、持续继承、每周工作40小时,现场客户,编码标准。 六.软件过程基础知识 6.1 软件过程
软件过程是指人们用于开发和维护软件及相关产品的一系列活动,包括软件工程过程和软件管理过程。 6.2 评估工具
软件过程的评估,通常采用软件能力成熟度 模型(Capability Maturity Model,CMM)。 CMM1.1的5个等级(由低级到高级):
? 初始级
软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力,管理是反应式(消防式)的。 ? 可重复级
建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功。
? 已定义级
已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准化软件过程。所有项目均使用经标准、裁减的标准软件过程来开发和维护软件。
? 已管理级
收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解与控制。 ? 优化级
加强了定量分析,通过来自过程质量反馈和来自新观念、新技术的反馈使过程能持续不断地改进。
巧记:初级程序员,可重复写程序,现已定义了管理策略来优化程序设计!
2006年下半年:
共42页 第8页
2010年软件设计师考试复习资料 (42页完美打印版)
●软件能力成熟度模型(CMM)是目前国际上最流行、最实用的软件生产过程标准和软件企业成熟度的等级认证标准。该模型将软件能力成熟度自低到高依次划分为初始级、可重复级、已定义级、已管理级、优化级。从(17)开始,要求企业建立基本的项目管理过程的政策和管理规程,使项目管理过程有章可循。 (17)A.初始级 B. 可重复级 C. 已定义级 D. 已管理级
七.软件工程项目管理基本知识
软件项目管理开始于任何技术活动之前,并且贯穿于整个的软件生命周期。 软件工程项目管理一般分为时间管理、成本管理、人力资源管理、风险管理。 7.1时间管理 7.1.1 Gantt图
是一种简单的水平条形图,它以水平线段表示子任务的工作阶段,线段的起点和终点分别对应着子任务的起始时间,线段长度指示完成该任务所需要的时间。
甘特图的优点:直观简明、易学易绘、可从图上清楚地标出子任务间的时间对比,但它也有 缺点:
(a)不能显示地描绘各项彼此间的依赖关系;
(b)进度计划的关键部分不明显,难以判断哪些部分应当是主攻和主控的对象; (c)计划中有潜力的部分以及潜力的大小不明确,往往造成潜力的浪费。 2006年5月:
● 在软件项目管理中可以使用各种图形工具来辅助决策,下面对Gantt 图的描述中,不正确的是 (5) 。 A. Gantt 图表现了各个活动的持续时间 B. Gantt 图表现了各个活动的起始时间 C. Gantt 图反映了各个活动之间的依赖关系 D. Gantt 图表现了完成各个活动的进度 7.1.2 PERT网图与关键路径
PERT网图是一个由箭头(标识任务)和结点(标识事件)组成的有向图。将网络方法用于工作计划安排的评审和检查。
共42页 第9页
2010年软件设计师考试复习资料 (42页完美打印版)
开发模块A、B、C模块的任务网络图
PERT图不仅给出了每个任务的开始时间、结束时间和完成该任务所需的时间,还给出了任务之间的依赖关系,即哪些任务完成后才能开始另一些任务,以及如期完成整个工程的“关键路径”。
关键路径(Critical Path)是由一连串的任务所组成的链,距离最大的一条路径。
软件项目的管理人员应该密切注视关键任务的进展情况。如果希望缩短工期,只有往关键任务中增加资源才会有效果。
7.2成本管理
一种常用的成本估算方法是先估计完成软件项目所需的工作量(人月数),然后根据每个人月的代价(金额)计算机软件的开发费用:
开发费用 = 人月数×每个人月的代价
另一种方法是估计软件的规模(通常指源代码行数),然后根据每行源代码的平均开发费用(包括分析、设计、编码、测试所花的费用),计算机软件的开发费用: 开发费用=源代码行数×每行平均费用
估算源代码行数时,可以请n为有经验的专家,每位专家对软件给出3个估计值: ? ai---最少源代码行数(该软件可能的最小规模) ? bi---最大源代码行数(该软件可能的最大规模) ? mi---最可能的代码行数(该软件最可能的规模)
ai?4mi?bi1n然后计算出每位专家的估算期Ei?,n位专家的估算期望值的平均值?Ei就是代码行数的估算值。
6n1Putnam模型和COCOMO模型:
Putnam模型和COCOMO模型是常用的成本估算模型。
? Putnam模型:是一种动态多变量模型,它是假设在软件开发的整个生存期中工作量的分布。
? COCOMO模型:是结构性成本模型,是最精确、最易于使用的成本估算模型之一。该模型可以分为: (1)基本COCOMO模型,是一个静态单变量模型,它是对整个软件系统进行估算。
(2)中级COCOMO模型,是一个静态多变量模型。它将软件系统模型分为系统和部件两个层次,系统由部件构成,它把软件开发所需人力(成本)看作是程序大小和一系列“成本驱动属性”的函数。
(3)详细COCOMO模型,它将软件系统模型分为系统、子系统和模块3个层次,它除包括中级模型所考虑的因素外,还考虑了在需求分析、软件设计等每一步的成本驱动属性的影响。 2006年上半年:
● 使用LOC (lines of code)度量软件规模的优点是 (9) 。
(9)A.容易计算 B.与使用的编程语言相关 C.与使用的开发模型有关 D.在设计之前就可以计算出LOC ●软件项目开发成本的估算依据,通常是开发成本估算模型,常用的模型有:
①IBM模型②Putnam模型③基本COCOMO模型④中级COCOMO模型⑤高级OCOMO模型其中(18)都是静态单变量模型。 (18)A.①② B. ②④⑤ C. ①③ D. ③④⑤
共42页 第10页