1、系统分析师-软件工程(五)及答案解析(总分:51.00,做题时间:90 分钟)结构化分析方法(SA)是一种预先严格定义需求的方法,强调分析对象的 (22) ,其指导思想是 (23) 。过程 P 分解为 P1,P2,P3 三个子过程,图 9-8 的数据流图中存在两处错误,其中错误 1 是 (24) ,错误2 是 (25) 。(分数:4.00)(1).A程序流 B指令流 C. 控制流 D数据流(分数:1.00)A.B.C.D.(2).A自顶向下逐层分解 B自底向上逐层分解C面向对象 D面向过程(分数:1.00)A.B.C.D.(3).A1 层 S B1 层 S2 C0 层 S D0 层 S1(分数
2、:1.00)A.B.C.D.(4).A1 层 S B1 层 S2 C0 层 S D0 层 S1(分数:1.00)A.B.C.D.软件测试是保证软件可靠性的主要手段之一。测试阶段的根本任务是 (28) ,设计测试用例的基本目标是 (29) 。测试大型软件系统时通常由模块测试、集成测试、系统测试、 (30) 和并行运行等步骤所组成。系统测试通常采 用黑盒法,常用的黑盒测试法有边值分析、等价类划分、错误推测和 (31) 。系统测试的工作应该由 (32) 来承担。(分数:5.00)(1).A证明经测试后的程序是正确的 B确认编码阶段的结束C发现并改正软件中的错误 D利用计算机调试程序和改进程序(分数:
3、1.00)A.B.C.D.(2).A尽可能用测试用例覆盖可能的路径B选用少量的高效测试用例尽可能多地发现软件中的问题C采用各种有效测试策略,使所得的程序准确无误D评估与选用不同测试方法,尽可能完成测试进度计划(分数:1.00)A.B.C.D.(3).A接口测试 B组装测试 C性能测试 D验收测试(分数:1.00)A.B.C.D.(4).A路径覆盖 B因果图 C判定树 DPERT 图(分数:1.00)A.B.C.D.(5).A开发该系统的部门以外的人员 B该系统的系统分析师C该系统的设计人员 D该系统的编程者(分数:1.00)A.B.C.D.如何评价软件的质量一直是软件技术人员所关心的问题,目前
4、已有多种软件质量模型来描述软件的质量特性。ISO/IEC 9126 是国际标准化组织在 1991 年提出的软件质量标准。它由三个层次组成,第一层是质量特性,第二层是质量子特性,第三层是度量指标。6 个质量特性是:功能性、可靠性、易使用性、效率、可维护性和 (57) 。其中功能性包括质量子特性 (58) ;可靠性包括质量子特性 (59) ;易使用性包括质量子特性 (60) ;可维护性包括质量子特性 (61) 。(分数:5.00)(1).A易理解性 B容错性 C可移植性 D安全性(分数:1.00)A.B.C.D.(2).A互用性 B易恢复性 C易安装性 D易替换性(分数:1.00)A.B.C.D.
5、(3).A依从性 B易恢复性 C资源特性 D一致性(分数:1.00)A.B.C.D.(4).A易理解性 B容错性 C易分析性 D安全性(分数:1.00)A.B.C.D.(5).A准确性 B容错性 C易操作性 D易测试性(分数:1.00)A.B.C.D.1.系统开发过程通常被分为若干个阶段,每个阶段的开始和结束都有明确的规定。人们常将开发过程中完成某项关键工作的时刻称为里程碑。完成 (87) 时最适于称为里程碑。A需求调查 B总体设计稿C一套实体关系图 D50%的编码(分数:1.00)A.B.C.D.通常,软件开发环境可由环境机制和工具集构成。按功能划分,环境机制又可分为 (94) ;工具集也可
6、分为贯穿整个开发过程的工具和解决软件生命周期中某一阶段问题的工具,分别属于上述两类工具的是 (95) 。软件开发环境的核心是 (96) 。软件开发环境具有集成性、开放性、 (97) 、数据格式一致性、风格统一的用户界面等特性,因而能大幅度提高软件生产率。其中开放性是指 (98) 。(分数:5.00)(1).A环境操作系统、环境信息库、用户界面规范B环境信息库、过程控制和消息服务、用户界面规范C环境操作系统、环境规格描述语言、过程控制和消息服务D环境规格描述语言、过程控制和消息服务、数据集成(分数:1.00)A.B.C.D.(2).ADFD、PDLBHIPO 图、OOAC文档管理工具、PAD 图
7、D软件项目管理工具、软件价格模型及估算工具(分数:1.00)A.B.C.D.(3).A环境操作系统 B环境信息库C环境规格描述语言 D用户界面规范(分数:1.00)A.B.C.D.(4).A可裁减性 B完整性 C封闭性 D独立性(分数:1.00)A.B.C.D.(5).A允许使用不同的硬件平台B允许使用不同的操作系统C允许使用不同的网络系统D允许其他的软件工具加入到软件开发环境之中(分数:1.00)A.B.C.D.2.通常软件项目管理活动包括项目的计划、调度、通信、费用估算、资源分配以及质量控制等,软件生产是智力密集型的活动,其产品无物理外形,生产状态也“不可见”,因而难以检查和驾驭。软件项目
8、管理工具就是要使这种生产过程成为可见、可控的过程。因此,软件项目管理工具应具备 (123) 。A软件生产周期内各活动的识别和分配B对工作计划的安排、评审和检查C对软件设计计划、技术和文档内容进行管理D与软件开发工具匹配(分数:1.00)A.B.C.D.为了直观地分析系统的动作,从特定的视点出发推述系统的行为,需要采用动态分析的方法。其中 (148) 本来是表达异步系统的控制规则的图形表示方法,现在已经广泛地应用于硬件与软件系统的开发中,它适用于描述与分析相互独立、协同操作的处理系统,也就是并发执行的处理系统。 (149) 是描述系统的状态如何响应外部的信号进行推移的一种图形表示。(分数:2.0
9、0)(1).A状态迁移图 B时序图CPetri 网 D数据流图(分数:1.00)A.B.C.D.(2).A状态迁移图 B时序图CPetri 网 D数据流图(分数:1.00)A.B.C.D.软件项目的进度管理有许多方法,但 (77) 不是常用的进度控制图示方法。在几种进度控制方法中, (78) 难以表达多个子任务之间的逻辑关系,使用 (79) 不仅能表达子任务间依赖关系,还可找出关键子任务。在 (79) 中,箭号表示 (80) ,圆圈结点表示 (81) 。(分数:5.00)(1).A甘特图 BIPO CPERT D时标网状图(分数:1.00)A.B.C.D.(2).A甘特图 BIPO CPERT
10、 D时标网状图(分数:1.00)A.B.C.D.(3).A甘特图 BIPO CPERT D时标网状图(分数:1.00)A.B.C.D.(4).A数据流 B控制流 C事件D处理(分数:1.00)A.B.C.D.(5).A数据流 B控制流 C事件 D起点或终点(分数:1.00)A.B.C.D.3.集成测试有各种方法,以下关于集成测试的描述中,不正确的是 (141) 。A增量式集成测试容易定位错误,排除错误B非增量式集成测试不能充分利用人力,会拖延工程进度C增量式集成测试的强度大,测试更彻底D即使各个模块都通过了测试,但系统集成以后仍可能出现错误(分数:1.00)A.B.C.D.4.(2005 年下
11、半年试题 19)新项目与过去成功开发过的一个项目类似,但规模更大,这时应该使用 (132) 进行项目开发设计。A原型法 B变换模型C瀑布模型 D螺旋模型(分数:1.00)A.B.C.D.测试大型软件通常由 (33) 、集成测试、系统测试和确认测试组成。确认测试主要寻找与软件 (34) 说明不一致的错误。语句覆盖、判定覆盖、条件覆盖和路径覆盖都是白盒测试法设计测试用例的覆盖准则,在这些覆盖准则中最弱的准则是 (35) ,最强的准则是 (36) 。此外,还有多种黑盒测试的设计测试用例方法,如 (37) 。(分数:5.00)(1).A组装测试 B性能测试 C接口测试 D单元测试(分数:1.00)A.
12、B.C.D.(2).A需求规格 B概要设计 C详细设计 D界面设计(分数:1.00)A.B.C.D.(3).A语句覆盖 B条件覆盖 C路径覆盖 D判定覆盖(分数:1.00)A.B.C.D.(4).A语句覆盖 B条件覆盖 C路径覆盖 D判定覆盖(分数:1.00)A.B.C.D.(5).AE-R 图 B因果图 CDFD 图 DIPO 图(分数:1.00)A.B.C.D.根据 McCabe 环路复杂性度量,程序图 9-17 的复杂度是 (133) ,对这个程序进行路径覆盖测试,可得到的基本路径是 (134) 。(分数:2.00)(1).A2 B3 C4 D5(分数:1.00)A.B.C.D.(2).
13、AA-B-C-H-I-K;A-B-C-H-J-K; A-B-C-D-E-F-GBA-B-C-H-I-K;A-B-C-H-J-K;A-B-C-D-E-F-G-C-H-I-K;A-B-C-D-E-G-C-H-I-KCA-B-C-H-I-K;A-B-C-H-J-K;A-B-C-D-E-F-G-C-H-I-K;A-B-D-E-G-C-H-J-KDA-B-C-H-I-K;A-B-C-H-J-K;A-B,C-D-E-F-G-C-H-I-K;A-B-C-D-E-F-G-C,H-J-K;A-B-C-D-E-G-C-H-I-K(分数:1.00)A.B.C.D.5.在选择开发方法时,不适合使用原型法的情况是 (1
14、39) 。A用户需求模糊不清B系统设计方案难以确定C系统使用范围变化很大D用户的数据资源缺乏组织和管理(分数:1.00)A.B.C.D.对于管理信息系统,为提高 MIS 开发效益和质量,可以有以下技术和方法来支持:采用 (72) ,可改进用户和开发者之间由于需要变化而引起修改和定义不准确等问题;采用 (73) ,可根据基本实体的构造来建立合理的系统结构;采用 (74) ,可使系统的开发变为定义和描述过程,而不是详细的编程过程;采用 (75) ,可为开发者提供各种有效操作手段和工具;采用 (76) ,有利于防止系统开发各阶段的错误扩展。(分数:5.00)(1).A软件评审 B结构程序设计 C快速
15、原型方法D软件测试(分数:1.00)A.B.C.D.(2).A软件评审 B结构程序设计 C快速原型方法D面向对象设计(分数:1.00)A.B.C.D.(3).A软件评审 B结构程序设计 C第四代语言 DPERT 图方法(分数:1.00)A.B.C.D.(4).A软件评审 B结构程序设计 C快速原型方法D人机交互友好接口(分数:1.00)A.B.C.D.(5).A软件评审 B结构程序设计 C快速原型方法D软件测试(分数:1.00)A.B.C.D.6.关于可靠性,以下叙述中正确的是 (65) 。A延长 MTBF 以及缩短 MTTR,对于提高设备的有效使用率是有效的B缩短 MTYR 对于延长 MTB
16、F 是有效的C设备的 MTBF 是在设备出厂时决定的。此后,MTBF 保持不变,用户为了提高可靠性,只能努力缩短MTTRD如果设备各个部分的故障率都是 ,则该设备的故障率就是。(分数:1.00)A.B.C.D.软件的维护并不只是修正错误。为了满足用户提出的增加新功能、修改现有功能以及一般性的改进要求和建议,需要进行 (128) ,它是软件维护工作的主要部分;软件测试不可能揭露旧系统中所有潜在的错误,所以这些程序在使用过程中还可能发生错误,诊断和更正这些错误的过程称为 (129) ;为了改进软件未来的可维护性或可靠性,或者为了给未来的改进提供更好的基础而对软件进行修改,这类活动称为 (130)
17、。(分数:3.00)(1).A完善性维护 B适应性维护C预防性维护 D改正性维护(分数:1.00)A.B.C.D.(2).A完善性维护 B适应性维护C预防性维护 D改正性维护(分数:1.00)A.B.C.D.(3).A完善性维护 B适应性维护C预防性维护 D改正性维护(分数:1.00)A.B.C.D.在各种不同的软件需求中, (112) 描述了用户使用产品必须要完成的任务,可以在用例模型中予以说明。软件需求说明书是需求分析阶段的成果, (113) 不是其应包含的内容。(分数:2.00)(1).A业务需求 B非功能需求C用户需求 D功能需求(分数:1.00)A.B.C.D.(2).A数据描述 B
18、功能描述C系统结构描述 D性能描述(分数:1.00)A.B.C.D.7.黑盒测试法是根据软件产品的功能设计规格说明书,通过运行程序进行测试,证实每个已经实现的功能是否符合设计要求。如果某产品的文本编辑框允许输入 1255 个字符,采用 (150) 测试方法,其测试数据为:0 个字符、1 个字符、255 个字符和 256 个字符。A等价类划分 B边界值分析C比较测试 D正交数组测试(分数:1.00)A.B.C.D.8.基于构件的开发(CBD)模型,融合了 (144) 模型的许多特征。该模型本质是演化的,采用迭代方法开发软件。A瀑布 B快速应用开发(RAD)C螺旋 D形式化方法(分数:1.00)A
19、.B.C.D.系统分析师-软件工程(五)答案解析(总分:51.00,做题时间:90 分钟)结构化分析方法(SA)是一种预先严格定义需求的方法,强调分析对象的 (22) ,其指导思想是 (23) 。过程 P 分解为 P1,P2,P3 三个子过程,图 9-8 的数据流图中存在两处错误,其中错误 1 是 (24) ,错误2 是 (25) 。(分数:4.00)(1).A程序流 B指令流 C. 控制流 D数据流(分数:1.00)A.B.C.D. 解析:(2).A自顶向下逐层分解 B自底向上逐层分解C面向对象 D面向过程(分数:1.00)A. B.C.D.解析:(3).A1 层 S B1 层 S2 C0
20、层 S D0 层 S1(分数:1.00)A.B. C.D.解析:(4).A1 层 S B1 层 S2 C0 层 S D0 层 S1(分数:1.00)A.B. C.D.解析:解析 结构化分析是面向数据流进行需求分析的方法,适合于数据处理类型软件的需求分析。具体来说,结构化分析就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直至找到满足功能要求的所有可实现的软件为止。数据流图从数据和数据所经过的加工这两个相互补充的方面来表达一个数据处理系统。数据流图从数据的角度描述了它们作为输入(广义的),经过某个或若干个加工,或者合并,或者分解,或者存储,最后成为输出(广义的)的整个过
21、程。虽然不同的应用要解决的问题不同,其数据流图的结构也不一样。但在形成数据流图时,仍然可以确定一些基本的原则和步骤。在本题中,0 层数据流图符合要求,其输入为 S,输出为 S1。按照数据流图的规则,1 层数据流图应该要与 0 层数据流图平衡,既其输入要为 S,输出要为 S1,但在图 9-8 中,1 层数据流图没有输出,且多了输入 S2。因此,正确的应该是去掉 S2 及其连带的输入数据,而在 P3 处添加输出 S1。软件测试是保证软件可靠性的主要手段之一。测试阶段的根本任务是 (28) ,设计测试用例的基本目标是 (29) 。测试大型软件系统时通常由模块测试、集成测试、系统测试、 (30) 和并
22、行运行等步骤所组成。系统测试通常采 用黑盒法,常用的黑盒测试法有边值分析、等价类划分、错误推测和 (31) 。系统测试的工作应该由 (32) 来承担。(分数:5.00)(1).A证明经测试后的程序是正确的 B确认编码阶段的结束C发现并改正软件中的错误 D利用计算机调试程序和改进程序(分数:1.00)A.B.C. D.解析:(2).A尽可能用测试用例覆盖可能的路径B选用少量的高效测试用例尽可能多地发现软件中的问题C采用各种有效测试策略,使所得的程序准确无误D评估与选用不同测试方法,尽可能完成测试进度计划(分数:1.00)A.B. C.D.解析:(3).A接口测试 B组装测试 C性能测试 D验收测
23、试(分数:1.00)A.B.C.D. 解析:(4).A路径覆盖 B因果图 C判定树 DPERT 图(分数:1.00)A.B. C.D.解析:(5).A开发该系统的部门以外的人员 B该系统的系统分析师C该系统的设计人员 D该系统的编程者(分数:1.00)A. B.C.D.解析:解析 软件测试的根本任务就是要发现并改正软件中的错误。测试的过程是:设计测试用数据(称之为测试用例);执行程序;分析结果,找出错误并改正。这个过程可能会有反复。测试用例的设计是测试的重要环节,设计测试用例的目标是选用少量高效的数据(测试用例)尽可能多地发现软件中的问题。软件测试的工作量约占软件开发总工作量的 40%以上,其
24、目的是尽可能多地发现软件产品(主要是指程序)中的错误和缺陷。测试的关键是测试用例的设计,设计方法可分成两类:白盒测试和黑盒测试。(1)白盒测试 把程序看成是装在一只透明的盒子里,测试者完全了解程序的结构和处理过程。白盒测试根据程序的内部逻辑来设计测试用例,检查程序中的逻辑通路是否都按预定的要求正确地工作,白盒测试的具体方法主要是逻辑覆盖,由于覆盖的详尽程度不同,逻辑覆盖由弱到强又分为语句覆盖、判定覆盖、条件覆盖、条件组合覆盖和路径覆盖等。(2)黑盒测试 把程序看成是装在一只不透明的盒子里,测试者完全不了解(或不考虑)程序的结构和处理过程。黑盒测试根据规格说明书规定的功能未设计测试用例,检查程序
25、的功能是否符合规格说明的要求。黑盒测试方法具体有等价类划分、边界值分析、错误推测和因果图等。软件测试的主要步骤有单元测试(模块测试)、集成测试(组装测试)、系统测试和确认测试(验收测试)。(1)单元测试 通常在编码阶段进行,主要用来发现编码和详细设计中产生的错误,一般采用白盒测试。(2)集成测试 集成测试是对由各模块组装而成的模块进行测试,主要检查模块间的接口和通信。集成测试主要用来发现设计阶段产生的错误,通常采用黑盒测试。(3)系统测试 系统测试的任务是把软件放在实际的硬件和网络环境中进行测试,主要测试软件的非功能需求和质量属性是否得到满足。系统测试通常采用黑盒测试。(4)确认测试 确认测试
26、的任务是检查软件的功能、性能和其他特征是否与用户的需求一致,它是以需求规格说明书作为依据的测试,通常采用黑盒测试。在确认测试时,如果一个软件是为某个客户定制的,那么由客户实施验收测试,以便确认该软件是他所需要的。但是,对于那些作为产品被众多客户使用的软件,就不可能为每个客户做验收测试。大多数软件生产商使用一种 a 测试和 测试的过程。(1)a 测试 在开发者的现场由客户来实施的,被测试的软件是在开发者从用户的角度进行常规设置的环境下运行的。(2) 测试 在一个或多个客户的现场由该软件的最终用户实施的。与 a 测试不同的是,进行 测试时开发者通常是不在场的。从使用的工具来看,软件测试的方法又可分
27、为静态测试和动态测试。(1)静态测试 指人工评审软件文档或程序,借以发现其中的错误,由于评审的文档或程序不必运行,所以称为静态测试。人工评审的手续虽然比较简单,但事实证明这是一个相当有效的检验手段。由于评审人员的能力有限,静态测试显然不可能发现所有的错误。(2)动态测试 指通常的上机测试,这种方法是使程序有控制地运行,并从多种角度观察程序的行为,以发现其中的错误。在软件维护阶段,当修改软件后,除了对修改部分的软件进行常规的测试外,还应对软件的其他部分进行回归测试,回归测试是指全部或部分地重复已做过的测试,它主要检查软件的修改是否在软件的未修改部分引入了新的错误。模块测试、集成测试一般以软件系统
28、开发人员为主来测试。系统测试和验收测试一般不能以开发人员为主来测试。这是因为系统测试是整体性的测试,而测试的根本任务是做“否定性”工作,为减少或避免开发人员的主观影响,使系统测试具有更强的客观性,一般应由开发该系统的部门以外的人员来承担。如何评价软件的质量一直是软件技术人员所关心的问题,目前已有多种软件质量模型来描述软件的质量特性。ISO/IEC 9126 是国际标准化组织在 1991 年提出的软件质量标准。它由三个层次组成,第一层是质量特性,第二层是质量子特性,第三层是度量指标。6 个质量特性是:功能性、可靠性、易使用性、效率、可维护性和 (57) 。其中功能性包括质量子特性 (58) ;可
29、靠性包括质量子特性 (59) ;易使用性包括质量子特性 (60) ;可维护性包括质量子特性 (61) 。(分数:5.00)(1).A易理解性 B容错性 C可移植性 D安全性(分数:1.00)A.B.C. D.解析:(2).A互用性 B易恢复性 C易安装性 D易替换性(分数:1.00)A. B.C.D.解析:(3).A依从性 B易恢复性 C资源特性 D一致性(分数:1.00)A.B. C.D.解析:(4).A易理解性 B容错性 C易分析性 D安全性(分数:1.00)A. B.C.D.解析:(5).A准确性 B容错性 C易操作性 D易测试性(分数:1.00)A.B.C.D. 解析:解析 请参考试题
30、 13 的分析。1.系统开发过程通常被分为若干个阶段,每个阶段的开始和结束都有明确的规定。人们常将开发过程中完成某项关键工作的时刻称为里程碑。完成 (87) 时最适于称为里程碑。A需求调查 B总体设计稿C一套实体关系图 D50%的编码(分数:1.00)A.B. C.D.解析:解析 里程碑(又称为基线)是软件生存周期中各开发阶段末尾的特定点。由正式的技术评审而得到的软件配置项和软件配置的正式文本才能成为里程碑。里程碑的作用是把各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检验和肯定阶段成果。软件开发进程中可以设置许多里程碑,里程碑为管理人员提供了指示项目进度的可靠依据。当一个
31、软件工程任务成功地通过了评审并产生了文档之后,一个里程碑就完成了。因此,一般来说,文档编制与评审是软件开发进度的里程碑。通常,软件开发环境可由环境机制和工具集构成。按功能划分,环境机制又可分为 (94) ;工具集也可分为贯穿整个开发过程的工具和解决软件生命周期中某一阶段问题的工具,分别属于上述两类工具的是 (95) 。软件开发环境的核心是 (96) 。软件开发环境具有集成性、开放性、 (97) 、数据格式一致性、风格统一的用户界面等特性,因而能大幅度提高软件生产率。其中开放性是指 (98) 。(分数:5.00)(1).A环境操作系统、环境信息库、用户界面规范B环境信息库、过程控制和消息服务、用
32、户界面规范C环境操作系统、环境规格描述语言、过程控制和消息服务D环境规格描述语言、过程控制和消息服务、数据集成(分数:1.00)A.B. C.D.解析:(2).ADFD、PDLBHIPO 图、OOAC文档管理工具、PAD 图D软件项目管理工具、软件价格模型及估算工具(分数:1.00)A.B.C.D. 解析:(3).A环境操作系统 B环境信息库C环境规格描述语言 D用户界面规范(分数:1.00)A.B. C.D.解析:(4).A可裁减性 B完整性 C封闭性 D独立性(分数:1.00)A. B.C.D.解析:(5).A允许使用不同的硬件平台B允许使用不同的操作系统C允许使用不同的网络系统D允许其他
33、的软件工具加入到软件开发环境之中(分数:1.00)A.B.C.D. 解析:解析 软件开发环境应该包括工具集成、界面集成和方法集成。通常,软件开发环境可由环境机制和工具集构成。按功能划分,环境机制又可分为环境信息库、过程控制和消息服务、用户界面规范。其中环境信息库存储软件工程项目在生存周期中的全部信息,是软件开发环境的核心。工具集包括事务系统规划工具、项目管理工具、支撑工具、分析设计工具、程序设计工具、测试工具、原型建造工具、维护工具和框架工具等,所有这些工具可分为贯穿整个开发过程的工具(例如软件项目管理工具)和解决软件生命周期中某一阶段问题的工具(例如软件价格模型及估算工具)。软件开发环境具有
34、集成性、开放性、可裁减性、数据格式一致性、风格统一的用户界面等特性,因而能大幅度提高软件生产率。其中开放性是指允许其他的软件工具加入到软件开发环境之中。2.通常软件项目管理活动包括项目的计划、调度、通信、费用估算、资源分配以及质量控制等,软件生产是智力密集型的活动,其产品无物理外形,生产状态也“不可见”,因而难以检查和驾驭。软件项目管理工具就是要使这种生产过程成为可见、可控的过程。因此,软件项目管理工具应具备 (123) 。A软件生产周期内各活动的识别和分配B对工作计划的安排、评审和检查C对软件设计计划、技术和文档内容进行管理D与软件开发工具匹配(分数:1.00)A.B. C.D.解析:解析
35、软件项目管理工具能对项目的任务调度、成本估算、资源分配、预算跟踪、人时统计、配置控制等活动给予帮助,它能覆盖整个软件生存周期。因为要对进度进行管理,所以项目管理工具必须能确定关键路径、松弛时间、超前时间和滞后时间等基本信息。同时,项目管理工具还需要生成一定格式的报表和报告,但项目管理工具不能指导软件设计人员按软件生存周期各个阶段的适用技术进行设计工作,不必与软件开发工具匹配。为了直观地分析系统的动作,从特定的视点出发推述系统的行为,需要采用动态分析的方法。其中 (148) 本来是表达异步系统的控制规则的图形表示方法,现在已经广泛地应用于硬件与软件系统的开发中,它适用于描述与分析相互独立、协同操
36、作的处理系统,也就是并发执行的处理系统。 (149) 是描述系统的状态如何响应外部的信号进行推移的一种图形表示。(分数:2.00)(1).A状态迁移图 B时序图CPetri 网 D数据流图(分数:1.00)A.B.C. D.解析:(2).A状态迁移图 B时序图CPetri 网 D数据流图(分数:1.00)A. B.C.D.解析:解析 常用的动态需求分析方法有状态迁移图、时序图和 Petri 网等。Petri 网是一种使用图形方式对系统进行需求规格说明的技术,用来定义多进程、多任务系统的数学模型,易于描述系统的并发、竞争、同步等特征,并可用于评价和改进系统。如今,Petri 网已经大量应用于各种
37、系统的模型化,Petri 网不仅能描述同步模型,更适合于相互独立、协同操作的并行处理系统。Petri 网的组成成分包括:(1)一个有限的库所(place)集合,表示系统的状态。(2)一个有限的变迁(transition)集合,表示系统中的事件。(3)一个有限的连接库所到变迁或者反向的有向箭头的集合,又分输入和输出。状态迁移图是描述系统的状态如何响应外部的信号进行推移的一种图形表示。在状态迁移图中,用圆圈表示可得到的系统状态,用箭头表示从一种状态向另一种状态的迁移。在箭头上要写上导致迁移的信号或事件的名字。状态迁移图表示的关系还可用表格的形式表达,这样的表格成为状态迁移表。如果系统复杂,可以把系
38、统状态迁移图分层表示,这种分层的状态迁移图不仅对系统的状态及其状态之间的转变进行清晰的描述,还可对某些状态进行进一步的细化。状态迁移图的优点是状态之间的关系能够直观地捕捉到,由于状态迁移图的单纯性,很容易建立相应的分析工具。在系统分析中,用时序图来对比在系统中处理事件的时序和相应的处理时间,采用扩充时序图可表示进程间的通信流,用于分析几个事件的交错现象。软件项目的进度管理有许多方法,但 (77) 不是常用的进度控制图示方法。在几种进度控制方法中, (78) 难以表达多个子任务之间的逻辑关系,使用 (79) 不仅能表达子任务间依赖关系,还可找出关键子任务。在 (79) 中,箭号表示 (80) ,
39、圆圈结点表示 (81) 。(分数:5.00)(1).A甘特图 BIPO CPERT D时标网状图(分数:1.00)A.B. C.D.解析:(2).A甘特图 BIPO CPERT D时标网状图(分数:1.00)A. B.C.D.解析:(3).A甘特图 BIPO CPERT D时标网状图(分数:1.00)A.B.C. D.解析:(4).A数据流 B控制流 C事件D处理(分数:1.00)A.B.C. D.解析:(5).A数据流 B控制流 C事件 D起点或终点(分数:1.00)A.B.C.D. 解析:解析 软件项目的组织工作是复杂的,工作的计划进度与实际进度需要用有效的方式加以表达,以利于进度的控制。
40、甘特图(Gantte Chart)、PERT 图(Plan Evaluation and Review Technique)和时标网状图(Time Scalar Net work)是几种常用的进度控制图示方法。而 IPO 是指结构化设计中变换型结构的输入 (Input)、加工(Processing)、输出(Output)。图 9-13 是一个甘特图,甘特图以水平线段表示子任务的下作阶段,线段的起点和终点分别对应着子任务的开工时间和完成时间,线段的长度表达了完成任务所需的时间。从甘特图上可以看出各子任务在时间上的对比关系。但甘特图难以表达多个任务之间的逻辑关系。在甘特图中,每一任务完成的标准,不
41、是以能否继续下一阶段任务为标准,而足以必须交付应交付的文档与通过评审为标准。因此在甘特图中,文档编制与评审是软件开发进度的里程碑。PERT 图不仅可以表达子任务的计划安排,还可在任务计划执行过程中估计任务完成的形势,分析某些子任务完成情况对全局的影响,找出影响全局的区域和关键子任务,以便及早采取措施,确保整个任务的完成。图 9-14 是一个 PERT 图的例子。在 PERT 图中,用箭号表示事件,即要完成的任务。箭头旁给出子任务的名称和完成该子任务所需要的时间。用圆圈结点表示事件的起点和终点。3.集成测试有各种方法,以下关于集成测试的描述中,不正确的是 (141) 。A增量式集成测试容易定位错
42、误,排除错误B非增量式集成测试不能充分利用人力,会拖延工程进度C增量式集成测试的强度大,测试更彻底D即使各个模块都通过了测试,但系统集成以后仍可能出现错误(分数:1.00)A.B. C.D.解析:解析 集成测试也称组装测试,它是对由各模块组装而成的程序进行测试,主要目标是发现模块间的接口和通信问题。集成测试主要发现设计阶段产生的错误,集成测试计划应该在概要设计阶段制定。集成的方式可分为非增量式和增量式。非增量式集成测试也叫做整体拼装。使用这种方式,首先对每个模块分别进行模块测试,然后把所有模块组装在一起进行测试,最终得到要求的软件系统。由于程序中不可避免地存在涉及模块间接口、全局数据结构等方面
43、的问题,所以一次试运行成功的可能性并不很大。增量式集成测试又称渐增式集成方式。首先对一个个模块进行模块测试,然后将这些模块逐步组装成较大的系统,在组装的过程中边连接边测试,以发现连接过程中产生的问题。最后通过增殖逐步组装成为要求的软件系统。(1)自顶向下的增殖方式:将模块按系统程序结构,沿控制层次自顶向下进行集成。由于这种增殖方式在测试过程中较早地验证了主要的控制和判断点。在一个功能划分合理的程序结构中,判断常出现在较高的层次,较早就能遇到。如果主要控制有问题,尽早发现它能够减少以后的返工。(2)自底向上的增殖方式:从程序结构的最底层模块开始组装和测试。因为模块是自底向上进行组装,对于一个给定
44、层次的模块,它的子模块(包括子模块的所有下属模块)已经组装并测试完成,所以不再需要桩模块。在模块的测试过程中,需要从子模块得到的信息可以直接运行子模块得到。(3)混合增殖式测试:自顶向下增殖的方式和自底向上增殖的方式各有优缺点。自顶向下增殖方式的缺点是需要建立桩模块。要使桩模块能够模拟实际子模块的功能将是十分困难的。同时涉及复杂算法和真正输入/输出的模块一般在底层,它们是最容易出问题的模块,到组装和测试的后期才遇到这些模块,一旦发现问题,导致过多的回归测试。而自顶向下增殖方式的优点是能够较早地发现在主要控制方面的问题。自底向上增殖方式的缺点是“程序一直未能做为一个实体存在,直到最后一个模块加上
45、去后才形成一个实体”。就是说,在自底向上组装和测试的过程中,对主要的控制直到最后才接触到。但这种方式的优点是不需要桩模块,而建立驱动模块一般比建立桩模块容易,同时由于涉及复杂算法和真正输入/输出的模块最先得到组装和测试,可以把最容易出问题的部分在早期解决。此外,自底向上增殖的方式可以实施多个模块的并行测试。鉴于此,通常是把以上两种方式结合起来进行组装和测试。(4)衍变的自顶向下的增殖测试:它的基本思想是强化对输入/输出模块和引入新算法模块的测试,并自底向上组装成为功能相当完整且相对独立的子系统,然后由主模块开始自顶向下进行增殖测试。(5)自底向上自顶向下的增殖测试:它首先对含读操作的子系统自底
46、向上直至根结点模块进行组装和测试,然后对含写操作的子系统做自顶向下的组装与测试。(6)回归测试:这种方式采取自顶向下的方式测试被修改的模块及其子模块,然后将这一部分视为子系统,再自底向上测试,以检查该子系统与其上级模块的接口是否适配。增量式与非增量式测试的优点和缺点比较如表 9-3 所示。表 9-3 增量式与非增量式测试的优点和缺点比较增量式集集成测试 非增量式集集成测试错误定位 容量定位错误,排除故障 不容易定位错误测试强度 先加入的模块经过多次测试,测试强度大,测试更彻底 测试强度小测试的工作量 测试的工作量大 测试的工作量小测试的进度 测试的过程长,进度慢对各个模块可以并行测试,加快测试
47、进度测试辅助程序自顶向下的增量需要编写桩模块;每个中间模块的测试都需要编自底向下的增量需要编写驱动模块写驱动模块和桩模块4.(2005 年下半年试题 19)新项目与过去成功开发过的一个项目类似,但规模更大,这时应该使用 (132) 进行项目开发设计。A原型法 B变换模型C瀑布模型 D螺旋模型(分数:1.00)A.B.C. D.解析:解析 新项目与过去成功开发过的一个项目类似,因为已经有了以前开发的经验和积累的软件模块,这些都可以应用到新项目中,因此,应该使用瀑布模型进行项目开发。测试大型软件通常由 (33) 、集成测试、系统测试和确认测试组成。确认测试主要寻找与软件 (34) 说明不一致的错误
48、。语句覆盖、判定覆盖、条件覆盖和路径覆盖都是白盒测试法设计测试用例的覆盖准则,在这些覆盖准则中最弱的准则是 (35) ,最强的准则是 (36) 。此外,还有多种黑盒测试的设计测试用例方法,如 (37) 。(分数:5.00)(1).A组装测试 B性能测试 C接口测试 D单元测试(分数:1.00)A.B.C.D. 解析:(2).A需求规格 B概要设计 C详细设计 D界面设计(分数:1.00)A. B.C.D.解析:(3).A语句覆盖 B条件覆盖 C路径覆盖 D判定覆盖(分数:1.00)A. B.C.D.解析:(4).A语句覆盖 B条件覆盖 C路径覆盖 D判定覆盖(分数:1.00)A.B.C. D.解析:(5).AE-R 图 B因果图 CDFD 图 DIPO 图(分数:1.00)A.B. C.D.解析:解析 语句覆盖就是设计若干个测试用例,运行被测程序,使得每条可执行语句至少执行一次。判定覆盖(分支覆盖)就是设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至