1、软件水平考试(高级)系统分析师上午(综合知识)试题章节练习试卷 12 及答案与解析 1 系统开发过程的流程如图 9-5所示, (11)阶段拟定了系统的目标、范围和要求。( A) ( B) ( C) ( D) 2 可测试性是指对测试一个软件所需要的工作量的度量。可测试性与软件的许多度量属性有关,与可测试性有关的 6个度量属性是 (64)。 ( A)可操作性,可跟踪性,自检视性,易培训性,完备性,模块性 ( B)可操作性,可容错性,可检视性,可理解性,复杂性,准确性 ( C)可审计性,执行效率,自检视性, 易培训性,安全性,准确性 ( D)可审计性,自描述性,自检视性,可理解性,简洁性,模块性 3
2、 关于可靠性,以下叙述中正确的是 (65)。 ( A)延长 MTBF以及缩短 MTTR,对于提高设备的有效使用率是有效的 ( B)缩短 MTYR对于延长 MTBF是有效的 ( C)设备的 MTBF是在设备出厂时决定的。此后, MTBF保持不变,用户为了提高可靠性,只能努力缩短 MTTR ( D)如果设备各个部分的故障率都是 ,则该设备的故障率就是。 4 (71)方面的内容应写入信息系统的操作手册。 ( A)信息系统的功能说明 和输入数据的处理过程 ( B)信息系统的软件配置以及各部分的内部结构 ( C)按屏幕变迁过程解释处理过程 ( D)在厂商发布系统升级时,说明提供的服务过程 5 系统开发过
3、程通常被分为若干个阶段,每个阶段的开始和结束都有明确的规定。人们常将开发过程中完成某项关键工作的时刻称为里程碑。完成 (87)时最适于称为里程碑。 ( A)需求调查 ( B)总体设计稿 ( C)一套实体关系图 ( D) 50%的编码 6 项目管理工具能对项目的任务调度、成本估算、资源分配、预算跟踪、人时统计、配置控制等活动给予帮助,它具 有很多特征,但 (88)不是其特征。 ( A)覆盖整个软件生存周期 ( B)指导软件设计人员按软件生存周期各个阶段的适用技术进行设计工作 ( C)确定关键路径、松弛时间、超前时间和滞后时间 ( D)生成固定格式的报表和裁剪项目报告 7 某软件开发从详细设计到集
4、成测试各阶段所需工作量估计 (按软件工程师人月数估计 )如表 9-1所示,这几个阶段分配的软件工程师和程序员人数如表 9-2所示。假设编码与单元测试阶段,软件工程师的生产率是程序员的 2倍。若在该项目的这几个阶段都增加一名软件工程师,则这几个阶段可以缩短 (111)个月完成任务 (假定各个开发阶段串行工作 )。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 8 软件项目管理中可以使用各种图形工具,在以下关于各种图形工具的论述中正确的是 (117)。 ( A)流程图直观地描述了工作过程的具体步骤,以及这些步骤之间的时序关系,可以用于控制工作过程的完成时间。 ( B) PERT图画出了项
5、目中各个活动之间的时序关系,可用于计算工程项目的关键路径,以便控制项目的进度。 ( C)因果分析图能表现出软件过程中各种原因和效果之间的关系,并且表现了它们随时间出现的顺 序和重要程度,这些数据可用于改进软件过程的性能。 ( D) Gantte图为整个项目建立了一个时间表,反映了项目中的所有任务之间的依赖关系以及各个任务的起止日期,这些信息可用于项目的任务调度。 9 逆向工程可用于维护已有的软件,逆向工程能够 (122)。 ( A)分析源程序,决定需要修改的部分及其影响的程度 ( B)能够使用数学方法证明各软件功能的正确性 ( C)分析源程序,从源程序导出程序结构 ( D)将源程序改写成易于理
6、解的、结构清晰的程序 10 通常软件项目管理活动包括项目的计划、调度、通信、费用 估算、资源分配以及质量控制等,软件生产是智力密集型的活动,其产品无物理外形,生产状态也“不可见 ”,因而难以检查和驾驭。软件项目管理工具就是要使这种生产过程成为可见、可控的过程。因此,软件项目管理工具应具备 (123)。 ( A)软件生产周期内各活动的识别和分配 ( B)对工作计划的安排、评审和检查 ( C)对软件设计计划、技术和文档内容进行管理 ( D)与软件开发工具匹配 11 使用自动项目管理工具与使用手工方法管理相比有许多优点,但是 (124)不属于自动项目管理工具的优点。 ( A)能对大型项目进行精确 跟
7、踪,使项目经理能及时掌握实际工作进展和资源的实际消耗情况 ( B)能指导设计人员采用软件生存周期各阶段的适用技术,进行设计和控制工程进度 ( C)能辅助开发 PERT、 CPM(关键路径方法 )和 WBS(工作分解结构 ),自动更新活动网络图和 Gantte图 ( D)能自动计算、自动积累数据、自动生成图形和报表来取代人工计算、调度、统计和文档工作,提高管理工作效率。 12 若要重构一个功能上和性能上更为完善的改进的软件,可以使用 (125)。 ( A)逆向工程工具 ( B)程序切片工具 ( C)程序理解工具 ( D)再工程工具 13 质量控制非常重要,但是进行质量控制也需要一定的成本。 (1
8、31)可以降低质量控制的成本。 ( A)使用抽样统计 ( B)进行过程分析 ( C)对全程进行监督 ( D)进行质量审计 14 新项目与过去成功开发过的一个项目类似,但规模更大,这时应该使用 (132)进行项目开发设计。 ( A)原型法 ( B)变换模型 ( C)瀑布模型 ( D)螺旋模型 15 下列关于软件需求管理与需求开发的论述,正确的是 (135)。 ( A)所谓需求管理是指对需求开发的管理 ( B)需求管理包括:需 求获取、需求分析、需求定义和需求验证 ( C)需求开发是将用户需求转化为应用系统成果的过程 ( D)在需求管理中,要求维持对原有需求和所有产品构件需求的双向跟踪 16 为了
9、使构件系统更切合实际、更有效地被复用,构件应当具备 (136),以提高其通用性。 ( A)可继承性 ( B)可变性 ( C)可封装性 ( D)可伸缩性 17 在关于逆向工程 (reverse engineering)的描述中,正确的是 (137)。 ( A)从已经安装的软件中提取设计规范,用以进行软件开发 ( B)按照 “输出 处理 输入 ”的顺序设计软件 ( C)用硬件来实现软件的功能 ( D)根据软件处理的对象来选择开发语言和开发工具 18 COCOMO模型能够依据待开发软件的规模来估计软件开发的工期。若 COCOMO模型公式为: MM=3.0(KDSI) 其中, KDSI为预计应交付的源
10、程序千行数, MM为开发该软件所需的人月数。设软件开发的生产率为每个人月能编写的最终能交付的源程序千行数 (KDSI/MM),则根据上述 COCOMO模型可以看出,软件开发的生产率随软件开发规模而变化的趋势如图 (138)所示。 ( A) ( B) ( C) ( D) 19 在选择开发方法时,不适合使用原型法的情况是 (139)。 ( A)用户需求模糊不清 ( B)系统设计方案难以确定 ( C)系统使用范围变化很大 ( D)用户的数据资源缺乏组织和管理 20 基线是软件生存期各个开发阶段的工作成果,测试阶段的基线是 (140)。 ( A)可提交的软件 ( B)被测试的程序 ( C)提交报告 (
11、 D)测试报告 21 集成测试有各种方法,以下关于集成测试的描述中,不正确的是 (141)。 ( A)增量式集成测试容易定位错误, 排除错误 ( B)非增量式集成测试不能充分利用人力,会拖延工程进度 ( C)增量式集成测试的强度大,测试更彻底 ( D)即使各个模块都通过了测试,但系统集成以后仍可能出现错误 22 有两种需求定义的方法 严格定义和原型定义,在关于这两种方法的描述中,不正确的是 (142)。 ( A)严格定义方法假定所有的需求都可以预先定义 ( B)严格定义方法假定软件开发人员与用户之间的沟通存在障碍 ( C)原型定义方法认为需求分析中不可避免地要出现很多反复 ( D)原型定义方法
12、强调用户在软件开发过程中的参与和决策 23 软件的分层式体系结构把软件系统划分为 4层,这 4层结构自顶向下分别是(143)。 ( A)应用软件 业务构件 中间件 系统软件 ( B)业务构件 应用软件 中间件 系统软件 ( C)应用软件 中间件 系统软件 业务构件 ( D)业务构件 中间件 应用软件 系统软件 24 基于构件的开发 (CBD)模型,融合了 (144)模型的许多特征。该模型本质是演化的,采用迭代方法开发软件。 ( A)瀑布 ( B)快速应用开发 (RAD) ( C)螺旋 ( D)形式化方 法 25 风险的成本估算完成后,可以针对风险表中的每个风险计算其风险曝光度。某软件小组计划项
13、日中采用 50个可复用的构件,每个构件平均是 100LOC,本地每个 LOC的成本是 13元人民币。下面是该小组定义的一个项目风险: 1风险识别:预定要复用的软件构件中只有 50%将被集成到应用中,剩余功能必须定制开发; 2风险概率: 60%; 3该项目风险的风险曝光度是 (145)。 ( A) 32500 ( B) 65000 ( C) 1500 ( D) 19500 26 结构模板能够帮助分析员建立 一个逐层细化的层次结构。结构环境图(Architecture Context Diagram, ACD)则位于层次结构的顶层。在从 ACD导出的 (146)中给出了各个专门子系统和重要 (数据
14、与控制 )信息流。 ( A)系统语境图 (SCD) ( B)结构互连图 (AID) ( C)结构流程图 (AFD) ( D)结构图的规格说明 (ADS) 27 需求分析的任务是借助于当前系统的物理模型导出目标系统的逻辑模型,解决目标系统 “做什么 ”的问题。 (147)并不是需求分析的实现步骤之一。 ( A)获得当前系统的物理模型 ( B)抽象出当前系统的逻辑模型 ( C)建立目标系统的逻辑模型 ( D)确定目标实现的具体技术路线 28 黑盒测试法是根据软件产品的功能设计规格说明书,通过运行程序进行测试,证实每个已经实现的功能是否符合设计要求。如果某产品的文本编辑框允许输入1 255个字符,采
15、用 (150)测试方法,其测试数据为: 0个字符、 1个字符、 255个字符和 256个字符。 ( A)等价类划分 ( B)边界值分析 ( C)比较测试 ( D)正交数组测试 29 按照 ISO/IEC 9126软件质量标准,软件的可维护性所包括的子特性有 (7),软件的可移植性包括的子特性有 (8)。 ( A)可靠性、可更改性、一致性 ( B)可分析性、可更改性、安全性 ( C)可分析性、可安装性、一致性 ( D)可分析性、可更改性、稳定性 ( A)可理解性、可更改性、依从性 ( B)可安装性、可替换性、一致性 ( C)可操作性、可安装性、一致性 ( D)可分析性、可适应性、稳定性 31 下
16、面有关 CMM模型的描述中,不正确的是 (9)。 CMM模型的第三级为确定级,其主要过程是关于项目和组织的策略。以下选项中属于第三级的关键过程是(10)。 ( A) CMM模型 定义了成熟的软件过程的实践活动 ( B) CMM模型提供了改进软件开发过程的结构化模型 ( C) CMM模型给出了适用于各种应用范围的专门技术 ( D)按照 CMM模型改进软件过程需要相当可观的费用 ( A)定量过程管理 ( B)综合软件管理 ( C)软件子合同管珲 ( D)技术变动管理 33 IS0 7498-2标准涉及到的 5种安全服务是 (14)。可信赖计算机系统评价准则(TCSEC)把计算机系统的安全性分为 4
17、大类 7个等级,其中的 C2级是指 (15)。 ( A)身份认证,访问控制,数据加密,数据完整,安全审计 ( B)身份认证,访问控制,数据加密,数据完整,防止否认 ( C)身份认证,安全管理,数据加密,数据完整,防止否认 ( D)身份认证,访问控制,数据加密,安全标记,防止否认 ( A)安全标记保护 ( B)自主式安全保护 ( C)结构化安全策略模型 ( D)受控的访问保护 35 IEEE 802.11小组公布了多个正式的 WLAN标准,其中 (16)工作在 2.4GHz的ISM频段。在 WLAN体系结构中, AP的作用是 (17)。 ( A) 802.11a和 802.11b ( B) 80
18、2.11a和 802.11h ( C) 802.11b和 802.11g ( D) 802.11S和 802.11h ( A)无线接入 ( B)用户服务 ( C)数据汇聚 ( D)业务管理 37 根据关系模型中数据间的函数依赖关系,关系模式可分成多种不同的范式(NP),其中,第二范式排除了关系模式中非主属性对键的 (16)函数依赖;第三范式排除了关系式中非主属性对键的 (17)函数依赖。令关系模式 R=S(U; F),其中 U为属性集, F为函数依赖集,假设 U=XYZ为三个不可分解的不同属性,那么若 F;XY , YZ ,则 R 是 (18)。若 F =XY Z, YZX) ,则 R保持依赖
19、的关系模式分解,一般只能分解到 (19)。 ( A)传递 ( B)非传递 ( C)完全 ( D)部分 ( A)传递 ( B)非传递 ( C)完全 ( D)部分 ( A) 1NF ( B) 2NF ( C) 3NF ( D) BCNF ( A) 1NF ( B) 2NF ( C) 3NF ( D) BCNF 41 关系模式 Student(Sno, Sname, Cno, Cname, Grade, Tname, Taddr)的属性分别表示学号、学生姓名、课程号、课程名、成绩、任课教师名和教师地址。其中,一个 学生可以选若干门课程,一个教师可以讲授若干门课程,一门课程可以由多个教师讲授,对于同一
20、门课程,学生只能选定一个教师讲授的课程,教师不会重名。关系模式 Student的候选关键字有 (36),最小函数依赖集中有 (37)个函数依赖,该关系模式属于 (38)范式,分解 p=(39),并且是无损连接及保持函数依赖。 ( A) 1个 , 为 (Sno, Cno) ( B) 1个 ,为 (Sno, Cno, Tname) ( C) 2个 ,为 (Sno, Sname, Cno) 和 (Sno, Cno, Tname) ( D) 2个 ,为 (Sno, Sname, Cno) 和 (Shame, Cno, Tname) ( A) 4 ( B) 5 ( C) 6 ( D) 7 ( A) 1N
21、F ( B) 2NF ( C) 3NF ( D) BCF ( A) (Sno, Sname, Cno, Tname, Taddr),(Sno, Sname, Cno, Cname, Grade) 2NF ( B) (Sno, Shame),(Sno, Cno, Grade, Tname, Taddr),(Cno, Cname) 2NF ( C) (Sno, Sname),(Sno, Cno, Grade),(Tname, Taddr),(Cno, Cname) 3NF ( D) (Sno, Sname),(Sno, Cno, Grade),(Tname, Taddr),(Tname, Cno)
22、,(Cno, Cname) 3NF 45 某商场的部门、员工和商品三个实体之间的关系如图 8-2所示。假设每个部门有若干名员工,每种商品只能由一个部门负责销售,那么部门到员工、部门到商品之间分别存在着 (62)的联系。如果用户要求得到表 8-7所示的结果,需要 (63),并增加关系模式 (64)。如果查询某部门负责销售的商品,需要 (65)。( A) 1:1和 1:1 ( B) 1:1和 1:n ( C) 1:n和 1:1 ( D) 1:n和 1:n ( A)修改表 1的结构,在表 1中增加一个员工号 ( B)修改表 2的结构,在表 2中增加一个员工号 ( C)修改表 2的结构,在表 2中增加
23、一个部门号 ( D)修改表 3的结构,在表 3中增加一个部门号 ( A) Sale_record(员工号,名称,数量 ) ( B) Sale_record(员工号,名称,商品号,数量 ) ( C) Sale_record(员工号,部门号,数量 ) ( D) Sale_record(员工号,部门号,商品号,数量 ) ( A)修改表 1的结构,在表 1中增加一个员工号 ( B)修改表 2的结构,在表 2中增加一个员工号 ( C)修改表 2的结构,在表 2中增加一个部门号 ( D)修改表 3的结构,在表 3中增加一个部门号 49 根据考试大纲的要求,本章要求考生掌握面向对象分析与设计 (继承、抽象、
24、代理、封装、多态 )和统一建模语言 (UML)。由于面向对象方法已经成为软件开发的一种主要方法,从历年考试来看,面向对象的知识点考得越来越多 (甚至超过了软件工程的分数 ),着重考查 统一建模语言 (UML)的知识。 (1)面向对象的主要特征除封装、继承外,还有 (1)和 (2)。通常,对象可由标识此对象的名、属性和 (3)所组成。对象之间的服务请求是通过传递 (4)来实现的。所有的对象可以分成为各种对象类,每个对象类都定义了一组 (3)。有一种特殊的类称为抽象类,其主要特征是 (5)。 ( A)一致性 ( B)完整性 ( C)动态联编 ( D)静态联编 ( A)一致性 ( B)完整性 ( C
25、)动态联编 ( D)多态性 ( A)说明 ( B)方法 ( C)过程 ( D)类型 ( A)对象名 ( B)属 性 ( C)参数 ( D)消息 ( A)没有实例 ( B)抽象地包括了大量实例 ( C)没有子类 ( D)对数据类型的抽象 54 面向对象程序设计的基本思想是通过建立和客观实际相对应的对象,并通过这些对象的组合来创建具体的应用。对象是 (6)。对象的三要素是指对象的 (7)。 (8)均属于面向对象的程序设计语言。而面向对象的程序设计语言必须具备 (9)特征。Windows下的面向对象程序设计和通常 DOS下的结构化程序设计最大区别是(10)。 ( A)数据结构的封装体 ( B)数据以
26、及在其上的操作的封装体 ( C)程序功能模块的封装本 ( D)一组有关事件的封装体 ( A)名字、字段和类型 ( B)名字、过程和函数 ( C)名字、文字和图形 ( D)名字、属性和方法 ( A) C+、 Lisp ( B) C+、 Smalltalk ( C) Prolog、 Ada ( D) Foxpro、 Ada ( A)可视性、继承性、封装性 ( B)继承性、可重用性、封装性 ( C)继承性、多态性、封装性 ( D)可视性、可移植性、封装性 ( A)前者可以使用大量下拉式选单,后者使用命令方式调用 ( B)前者是一种消息驱动式体系结构,后者 是一种单向调用 ( C)前者具有强大的图形用
27、户接口,后者无图形用户接口 ( D)前者可以突破内存管理 640KB的限制,后者不能 59 UML是一种面向对象的统一建模语言。它包含 10种图,其中,用例图展示了外部 actor与系统所提供的用例之间的连接, UML中的外部 actor是指 (18),用例可以用 (19)图来描述。状态图指明了对象所有可能的状态以及状态间的迁移(transition)。如果一个并发的状态由 n个并发的子状态图组成,那么,该并发状态在某时刻的状态由 (20)个子状态图中各取一个状态组合而成。协作 图描述了协作的(21)之间的交互和链接 (link),它画成 (22)图的形式。 ( A)人员 ( B)单位 ( C
28、)人员或单位 ( D)人员或外部系统 ( A)类 ( B)状态 ( C)活动 ( D)协作 ( A)每一 ( B)任意一 ( C)任意二 ( D)任意 m(mn) ( A)对象 ( B)类 ( C)用例 ( D)状态 ( A)对象 ( B)类 ( C)用例 ( D)状态 软件水平考试(高级)系统分析师上午(综合知识)试题章节练习试卷 12 答案与解析 1 【正确答案】 A 【试题解析】 软 件需求分析的目标是深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求。需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统 “做什
29、么 ”的问题。在系统需求分析阶段,就要拟定系统的目标、范围和要求 (需求 ),明确项目视图和范围。 2 【正确答案】 D 【试题解析】 可测试性是指对测试一个软件所需要的工作量的度量。根据McCall定义的软件质量模型,与可测试性有关的软件度量属性有简单性、简明性、模块独立性、自描述性、可修改性和自检性 。另外,还有 4个重要的属性需要掌握:可靠性、可维护性、可移植性和复用性。与可靠性有关的度量属性有一致性、完全性、容错性、准确性、简单性、简明性和模块独立性。与可维护性相关的度量属性有一致性、简单性、简明性、模块独立性、自描述性、结构性和文档完备性。与可移植性有关的度量属性有简明性、模块独立性
30、、通用性、可扩充性、机器独立性和软件系统独立性。与复用性有关的度量属性有自描述性、通用性、可修改性、机器独立性和软件系统独立性。 3 【正确答案】 A 【试题解析】 有效性是指系统能够正常运行的时间比例。经常用 两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。有效性的计算公式如下。 有效性 MTTF/(MTTF+MTTR)100% 其中 MTTF指平均失效等待时间, MTTR指失效平均修复时间。试题中 MTBF指平均失效间隔时间 MTBF,在这三者之间,有如下公式成立。 MTBF=MTTF+MTTR 因此,如果缩短 MTTR,也就缩短了 MTBF。而延长 MTBF和缩短 MT
31、YR,都可延长 MTYF,再根据有效性的计算公式,这样可以提高有效性。 随着系统零部件的老化,其 MTBF将越 来越短,因此答案 C是错误的。同时,根据零部件的组合方式不一样 (串联或并联 ),设备的故障率不一定等于各部件的故障率。 4 【正确答案】 C 【试题解析】 操作手册为操作人员提供软件各种运行情况的相关知识,特别是操作方法细节。显然,数据的处理过程、软件各部分的内部结构以及提供的服务过程等不适合写在操作手册中。 5 【正确答案】 B 【试题解析】 里程碑 (又称为基线 )是软件生存周期中各开发阶段末尾的特定点。由正式的技术评审而得到的软件配置项和软件配置的正式文本才能成为里程碑。里程
32、碑的作用是把各 阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检验和肯定阶段成果。软件开发进程中可以设置许多里程碑,里程碑为管理人员提供了指示项目进度的可靠依据。当一个软件工程任务成功地通过了评审并产生了文档之后,一个里程碑就完成了。因此,一般来说,文档编制与评审是软件开发进度的里程碑。 6 【正确答案】 B 【试题解析】 项目管理工具能对项目的任务调度、成本估算、资源分配、预算跟踪、人时统计、配置控制等活动给予帮助,它能覆盖整个软件生存周期。因为要对进度进行管理,所以项目管理工具必须能确定关键 路径、松弛时间、超前时间和滞后时间等基本信息。同时,项目管理工具还需要生成一定格
33、式的报表和报告,但项目管理工具不能指导软件设计人员按软件生存周期各个阶段的适用技术进行设计工作。 7 【正确答案】 D 【试题解析】 因为试题已经假定各开发阶段串行工作,所以只要根据表 9-1和表9-2,逐阶段计算就可以了。 (1)详细设计需要 6软件工程师人月,但只分配 2名软件工程师,所以需要 3个月。 (2)编码与单元测试需要 12软件工程师人月,但只分配 2名软件工程师和 2名程序员。因为在编码与单元测试阶段,软 件工程师的生产率是程序员的 2倍,即 2名程序员相当于 1名软件工程师,因此共需 4个月。 (3)集成测试需要 12软件工程师人月,但只分配 2名软件工程师,所以需要 6个月
34、。 以上三个阶段合计 13 个月。若在该项目的这几个阶段都增加一名软件工程师,则 (1)详细设计需要 6软件工程师人月,分配 3名软件工程师,所以需要 2个月。 (2)编码与单元测试需要 12软件工程师人月,分配 3名软件工程师和 2名程序员。因为在编码与单元测试阶段,软件工程师的生产率是程序员的 2倍,即 2名程序员相当于 1名软件工程师,因此 共需 3个月。 (3)集成测试需要 12软件工程师人月,分配 3名软件工程师,所以需要 4个月。 以上合计 9个月,即这几个阶段可以缩短 4个月完成任务。 8 【正确答案】 B 【试题解析】 软件项目管理中可以使用各种图形工具,例如流程图, PERT
35、图、Gantte图、因果分析图等。流程图可以直观地描述工作过程的具体步骤,以及这些步骤之间的关系,帮助我们预测在何处可能发生何种质量问题,并由此帮助开发处理他们的办法。但流程图不能用于控制工作过程的完成时间。 PERT技术 (计划评审技术 )是安排开发进度,制 定软件开发计划的最常用的方法。 PERT图采用网络图来描述一个项目的任务网络,也就是从一个项目的开始到结束,把应当完成的任务用图或表的形式表示出来。通常用两张表来定义网络图。一张表给出与特定软件项目有关的所有任务 (也称为任务分解结构 ),另一张表给出应当按照什么样的次序来完成这些任务 (也称为限制表 ),在项目的早期阶段, PERT图
36、对于组织任务、建立时间框架,反映项目中的所有任务之间的依赖关系十分有用。 PERT技术为项目计划人员提供了一些定量的工具。 (1)确定关键路径,即决定项目开发时间的任务链。 (2)应用统计模 型,对每一个单独的任务确定最可能的开发持续时间的估算值。 (3)计算边界时间,以便为具体的任务定义时间窗口。边界时间的计算对于软件项目的计划调度是非常有用的。因果分析图又称特性要因图,因其形状像树枝或鱼骨,故又称鱼骨图、鱼刺图、树枝图,是分析质量问题产生原因的有效工具。因果分析图描述相关的各种原因和子原因如何产生潜在问题或影响,但不能表现它们随时间出现的顺序和重要程度。因果图的做法是将要分析的问题放在图形
37、的右侧,用一条带箭头的主干指向要解决的质量问题,一般从人、设备、材料、方法、环境五个方面进行分析。对具体问 题来讲,这五个方面的原因不一定同时存在,要找到解决问题的方法,还需要对上述五个方面进一步分解。它们之间的关系也用带箭头的箭线表示。 Gantte图 (甘特图 )用水平线段表示任务的工作阶段:线段的起点和终点分别对应着任务的开工时间和完成时间;线段的长度表示完成任务所需的时间。随着项目的进展, Gantte图可以指明已完成的任务(纵线扫过的 )和有待完成的任务 (纵线尚未扫过的 )。从 Gantte图上可以很清楚地看出各子任务在时间上的对比关系。在 Gantte 图中,每一任务完成的标准,
38、不是以能否继续下一阶段任务为标准,而是必 须交付应交付的文档与通过评审为标准。因此在 Gantte图中,文档编制与评审是软件开发进度的里程碑。 Gantte图的优点是标明了各任务的计划进度和当前进度,能动态地反映软件开发进展情况。缺点是难以反映多个任务之间存在的复杂的逻辑关系。 9 【正确答案】 C 【试题解析】 我们首先看两个概念。逆向工程 (Reverse Engineering,反向工程 )的概念来自硬件。硬件厂商总想弄到竞争对手产品的设计和制造的 “奥秘 ”,但是又得不到现成的档案,只好拆卸对手的产品并进行分析,导出该产品的一个或多个设计与 制造的规格说明。软件的逆向工程是完全类似的,
39、由于受到法律的约束,进行逆向工程的程序常常不是竞争对手的,而是自己开发的程序,有些是多年以前开发出来的。这些程序没有规格说明,对它们的了解很模糊。因此,软件的逆向工程是分析程序,力图在比源代码更高的抽象层次上建立程序表示的过程。逆向工程是一个设计恢复的过程,其工具可以从已有的程序中抽取数据结构、体系结构和程序设计信息。再工程 (Re-engineering)不仅能从已有的程序中重新获得设计信息,而且还能使用这些信息改建或重构现有的系统,以改进它的综合质量。一般软件人 员利用再工程重新实现已存在的程序,同时加进新的功能或改善它的性能。每一个软件开发机构都会有上百万行的老代码,它们都是逆向工程和再
40、工程的可能对象,但是由于某些程序并不频繁使用而且不需要改变,逆向工程和再工程的工具还处于摇篮时代,仅能对有限种类的应用程序执行逆向工程和再工程,代价又十分昂贵,因此对其库中的每一个程序都进行逆向工程和再工程是不现实的。软件再工程旨在对现存的大量软件系统进行挖掘、整理以得到有用的软件构件,或对已有软件构件进行维护以延长其生存期。它是一个工程过程,能够将逆向工程、重构和正向工程组合起来 ,将现存系统重新构造为新的形式。再工程的基础是系统理解,包括对运行系统、源代码、设计、分析和文档等的全面理解,但在很多情况下,由于各类文档的丢失,只能对源代码进行理解,即程序理解。为了执行预防性维护,软件开发组织必
41、须选择在最近的将来可能变更的程序,做好变更它们的准备,逆向工程和再工程可用于执行这种维护任务。逆向工程可以从源程序抽取出设计信息,但是,抽象的层次、文档的完整性、工具和分析员一起工作的程度以及过程的方向性却是高度可变的。逆向工程过程及用于实现该过程的工具的抽象层次是指可从源代码中抽取出来的设计信息 的精密程度。理想地,抽象层次应该尽可能高,即逆向工程过程应该能够导出过程的设计表示 (一种低层的抽象 );程序和数据结构信息 (稍高一点层次的抽象 );数据和控制流模型 (一种相对高层的抽象 );以及实体 关系模型 (一种高层抽象 )。随着抽象层次增高,软件工程师将获得更有助于理解程序的信息。逆向工
42、程过程的完整性是指在某抽象层次提供的细节程度。在大多数情况下,随着抽象层次增高,完整性就降低。例如,给定源代码列表,得到一个完整的过程设计表示是相对容易的,简单的数据流表示也可被导出,但是,要得到数据流图或状态 变迁图的完整集合 却困难得多。 10 【正确答案】 B 【试题解析】 软件项目管理工具能对项目的任务调度、成本估算、资源分配、预算跟踪、人时统计、配置控制等活动给予帮助,它能覆盖整个软件生存周期。因为要对进度进行管理,所以项目管理工具必须能确定关键路径、松弛时间、超前时间和滞后时间等基本信息。同时,项目管理工具还需要生成一定格式的报表和报告,但项目管理工具不能指导软件设计人员按软件生存
43、周期各个阶段的适用技术进行设计工作,不必与软件开发工具匹配。 11 【正确答案】 B 【试题解析】 请参考试题 43的分析。 12 【正确答案】 D 【试题解析】 请参考试题 42的分析。 13 【正确答案】 A 【试题解析】 根据 PMBOK 2004版,正确的答案是 A。由于是抽样统计,节省了大量的质量控制成本。 14 【正确答案】 C 【试题解析】 新项目与过去成功开发过的一个项目类似,因为已经有了以前开发的经验和积累的软件模块,这些都可以应用到新项目中,因此,应该使用瀑布模型进行项目开发。 15 【正确答案】 D 【试题解析】 所有与需求直接相关的活动通称为需求工程。需求工程的活动可分
44、为 两大类,一类属于需求开发,另一类属于需求管理。需求开发的目的是通过调查与分析,获取用户需求并定义产品需求,需求开发的过程有 4个;需求获取、需求分析、需求定义和需求验证。需求管理的目的是确保各方对需求的一致理解,管理和控制需求的变更,从需求到最终产品的双向跟踪。在需求管理中,要收集需求的变更和变更的理由,并且维持对原有需求和产品,以及构件需求的双向跟踪。 16 【正确答案】 B 【试题解析】 请参考试题 18的分析。 17 【正确答案】 A 【试题解析】 请参考试题 42的分析。 18 【 正确答案】 D 【试题解析】 这是一个简单的计算题。根据试题中给出的公式,可以得到: KDM/MM
45、1/(3.0(KDSI)0.12) 由上述公式可以看出,开发规模 (由 KDSI 反映 )越大,软件开发生产率越低。因此,正确答案需要在 C和 D中选择。显然,上述函数是一个下凸函数,因此,第 (23)空的正确答案为 D。 说明,如果考生不知道上 /下凸函数的定义,则可随机选取几个点,画出上述函数的图形,也可判别。 19 【正确答案】 D 【试题解析】 快速原型法的基本思想是在系统开发的初期,在对用户需求初步调查 的基础上,以快速的方法先构造一个可以工作的系统雏形 (原型 )。将这个原型提供给用户使用,听取他们的意见。然后修正原型,补充新的数据、数据结构和应用模型,形成新的原型。经过几次迭代以
46、后,可以达到用户与开发者之间的完全沟通,消除各种误解,形成明确的系统定义及用户界面要求。至此,或者以最后的原型为基础,修改完善成为实际生产运行的系统;或者舍弃原型重新开发新的系统。快速原型法的特点如下。 (1)快速原型法最显著的特点是引入了迭代的概念。 (2)快速原型法自始至终强调用户的参与。 (3)快速原型法在用户需求分析、系统功能描述 及系统实现方法等方面允许有较大的灵活性。用户需求可以不十分明确,系统功能描述也可以不完整,对于界面的要求也可以逐步完善。 (4)快速原型法可以用来评价几种不同的设计方案。 (5)快速原型法可以用来建立系统的某个部分。 (6)快速原型法不排斥传统生命周期法中采
47、用的大量行之有效的方法和工具,它是与传统方法互为补充的方法。由于原型法开发需要适当的快速开发工具,需要用户密切配合,所以下列情况不适合使用原型法。 (1)缺乏适用的原型开发工具。 (2)用户不参与、不积极配合开发过程。 (3)用户的数据资源缺乏组织和管理。(4)用户 的软件资源缺乏组织和管理 20 【正确答案】 D 【试题解析】 有关基线的概念,请参考试题 24的分析。一般来说,软件开发各阶段的配置基线如下。 (1)计划阶段:开发计划。 (2)需求分析阶段:需求规格说明、用户手册。 (3)设计阶段;设计规格说明。 (4)编码阶段;程序清单。 (5)测试阶段:测试报告。 21 【正确答案】 B
48、【试题解析】 集成测试也称组装测试,它是对由各模块组装而成的程序进行测试,主要目标是发现模块间的接口和通信问题。集成测试主要发现设计阶段产生的错误,集成测试计划应该在概要设计阶 段制定。集成的方式可分为非增量式和增量式。 非增量式集成测试也叫做整体拼装。使用这种方式,首先对每个模块分别进行模块测试,然后把所有模块组装在一起进行测试,最终得到要求的软件系统。由于程序中不可避免地存在涉及模块间接口、全局数据结构等方面的问题,所以一次试运行成功的可能性并不很大。 增量式集成测试又称渐增式集成方式。首先对一个个模块进行模块测试,然后将这些模块逐步组装成较大的系统,在组装的过程中边连接边测试,以发现连接
49、过程中产生的问题。最后通过增殖逐步组装成为要求的软件系统。 (1)自顶向下的增殖方式:将模 块按系统程序结构,沿控制层次自顶向下进行集成。由于这种增殖方式在测试过程中较早地验证了主要的控制和判断点。在一个功能划分合理的程序结构中,判断常出现在较高的层次,较早就能遇到。如果主要控制有问题,尽早发现它能够减少以后的返工。 (2)自底向上的增殖方式:从程序结构的最底层模块开始组装和测试。因为模块是自底向上进行组装,对于一个给定层次的模块,它的子模块 (包括子模块的所有下属模块 )已经组装并测试完成,所以不再需要桩模块。在模块的测试过程中,需要从子模块得到的信息可以直接运行子模块得到。 (3)混合增殖式测试: 自顶向下增殖的方式和自底向上增殖的方式各有优缺点。自顶向下增殖方式的缺点是需要建立桩模块。要使桩模块能够模拟实际子模块的功能将是十分困难的。同时涉及复杂算法和真正输入 /输出的模块一般在底层,它们是最容易出问题的模块,到组装和测试的后期才遇到这些模块,一旦发现问题,导致过多的回归测试。而自顶向下增殖方式的优点是能够较早地发现在主要控制方面的问题。自底向上增殖方式的缺点是 “程序一直未能做为一个实体存在,直到最后一个模块加上去后才形成一个
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1