第14章
系统开发和运行基础知识
系统开发和运行基础知识是网络工程师考试中常考的一个知识点,通过对历年考试情况的分析发现,对本章知识点的考查分值一般保持在3分左右。根据考纲,要求考生掌握需求分析和设计方案、开发环境、测试评审方法、项目管理基础知识、系统可审计性及系统运行等方面的知识。
下面我们通过具体的考试真题来学习和加强对本章知识点的掌握。
例题1(2007年5月试题5)
结构化开发方法中,数据流图是 (5) 阶段产生的成果。
(5)A.需求分析
B.总体设计
C.详细设计
D.程序编码
例题分析
软件开发各阶段会产生一些图表和文档:
(1)需求分析:数据流图(DFD)、数据字典(DD)、软件需求说明书等。
(2)总体(概要)设计:系统结构图(SC)、层次图+输入/处理/输出图(HIPO图)、概要设计说明书等。
(3)详细设计:程序流程图、盒图(N-S图)、问题分析图(PAD图)、伪码(PDL)、详细设计说明书等。
(4)程序编码:相应的文档与源代码。
例题答案
(5)A
例题2(2008年5月试题4)
(4) 是一种面向数据流的开发方法,其基本思想是软件功能的分解和抽象。
(4)A.结构化开发方法
B.Jackson系统开发方法
C.Booch方法
D.UML(统一建模语言)
例题分析
本题主要考查几种流行的开发方法。
(1)结构化开发方法。结构化开发方法是由E. Yourdon和L. L. Constantine提出的,即所谓的SASD方法,也可称为面向功能的软件开发方法或面向数据流的软件开发方法。Yourdon方法是80年代使用最广泛的软件开发方法。它首先用结构化分析(SA)对软件进行需求分析,然后用结构化设计(SD)方法进行总体设计,最后是结构化编程(SP)。它给出了两类典型的软件结构(变换型和事务型)使软件开发的成功率大大提高。
(2)面向数据结构的软件开发方法。Jackson方法是最典型的面向数据结构的软件开发方法,Jackson方法把问题分解为可由3种基本结构形式表示的各部分的层次结构。3种基本的结构形式就是顺序、选择和重复。3种数据结构可以进行组合,形成复杂的结构体系。这一方法从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其他细节,就可得到完整的程序结构图。这一方法对输入、输出数据结构明确的中小型系统特别有效,如商业应用中的文件表格处理。该方法也可与其他方法结合,用于模块的详细设计。
(3)面向问题的分析法。PAM(Problem Analysis Method)的基本思想是考虑到输入、输出数据结构,指导系统的分解,在系统分析指导下逐步综合。这一方法的具体步骤是:从输入、输出数据结构导出基本处理框;分析这些处理框之间的先后关系;按先后关系逐步综合处理框,直到画出整个系统的PAD图。这一方法本质上是综合的自底向上的方法,但在逐步综合之前已进行了有目的的分解,这个目的就是充分考虑系统的输入、输出数据结构。PAM方法的另一个优点是使用PAD图。这是一种二维树形结构图,是到目前为止最好的详细设计表示方法之一。当然由于在输入、输出数据结构与整个系统之间同样存在着鸿沟,这一方法仍只适用于中小型问题。
(4)原型化方法。产生原型化方法的原因很多,主要随着我们系统开发经验的增多,会发现并非所有的需求都能够预先定义,而且反复修改是不可避免的。当然能够采用原型化方法是因为开发工具的快速发展,比如用VB、DELPHI等工具我们可以迅速地开发出一个可以让用户看得见、摸得着的系统框架,这样,对于计算机不是很熟悉的用户就可以根据这个样板提出自己的需求。
(5)面向对象的软件开发方法。随着OOP(面向对象编程)向OOD(面向对象设计)和OOA(面向对象分析)的发展,最终形成面向对象的软件开发方法OMT(Object Modeling Technique)。这是一种自底向上和自顶向下相结合的方法,而且它以对象建模为基础,从而不仅考虑了输入、输出数据结构,实际上也包含了所有对象的数据结构。所以OMT彻底实现了PAM没有完全实现的目标。不仅如此,OO技术在需求分析、可维护性和可靠性这3个软件开发的关键环节和质量指标上有了实质性的突破,基本解决了在这些方面存在的严重问题。面向对象系统采用了自底向上的归纳、自顶向下的分解的方法,它通过对对象模型的建立,能够真正建立基于用户的需求,而且系统的可维护性大大改善。当前业界关于面向对象建模的标准是UML。
例题答案
(4)A
例题3(2007年5月试题6)
关于原型化开发方法的叙述中,不正确的是 (6) 。
(6)A.原型化方法适应于需求不明确的软件开发
B.在开发过程中,可以废弃不用早期构造的软件原型
C.原型化方法可以直接开发出最终产品
D.原型化方法利于确认各项系统服务的可用性
例题分析
原型法其实是先根据用户需求,构造一个简单的系统模型,然后根据需求的更改不断地完善模型。原型化开发比较适合于用户需求不清、业务理论不确定、需求经常变化的情况。
开发人员对用户提出的问题进行总结,就系统的主要需求取得一致意见后,开发一个原型(原型是由开发人员与用户合作,共同确定系统的基本要求和主要功能,并在较短时间内开发的一个实验性的、简单易用的小型系统。原型应该是可以运行的,可以修改的,因此它不是最终产品)并运行,然后反复对原型进行修改,使之逐步完善,直到用户对系统完全满意为止。
由于运用原型的目的和方式不同,在使用原型时也采取不同的策略,有抛弃策略和演化策略。
(1)抛弃策略是将原型用于开发过程的某个阶段,促使该阶段的开发结果更加完整、准确、一致、可靠,该阶段结束后,原型随之作废。探索型和实验型就是采用此策略的。
(2)演化策略是将原型用于开发的全过程,原型由最基本的核心开始,逐步增加新的功能和新的需求,反复修改反复扩充,最后发展为用户满意的最终系统,演化型快速原型就是采用此策略。
采用何种形式、何种策略运用快速原型主要取决于软件项目的特点、人员素质、可供支持的原型开发工具和技术等,这要根据实际情况的特点来决定。
例题答案
(6)C
例题4(2008年5月试题69)
下面关于网络工程需求分析的论述中,正确的是 (7) 。
(69)A.任何网络都不可能是一个能够满足各项功能需求的万能网
B.必须采用最先进的网络设备,获得最高的网络性能
C.网络需求分析独立于应用系统的需求分析
D.网络需求分析时可以先不考虑系统的扩展性
例题分析
我们在建网前都要做一个需求分析工作,否则网络建立起来就带有盲目性,轻则造成网络资源浪费或“网络瓶颈”,重则使网络瘫痪,损失无法估量的数据资源。建网前的需求分析,就是要规划建网所要做的工作。根据用户提出的要求,进行网络的设计。可以这么说,网络建设的好坏、快慢、可持续发展性等,都将取决于网络实施前的规划工作。
(1)网络的功能要求。任何网络都不可能是一个可以进行各种各样工作的“万能网”,因此,必须针对每一个具体的网络,依据使用要求、实现成本、未来发展、总预算投资等因素仔细地反复推敲,尤其是分析出网络系统要完成的所有功能。
(2)网络的性能要求。根据对网络系统的相应时间、事物、处理的实时性进行研究,确定系统需要的存储量及备用的存储量。根据网络的工作站权限、容错程度、网络安全性方面的要求等,确定采取何种措施及方案。
(3)网络运行环境的要求。根据整个局域网运行时所需要的环境要求,确定使用哪种网络操作系统、应用系统及相应的应用软件和共享资源。
(4)网络的可扩充性和可维护性要求。如何增加工作站、怎样与其他网络连网、对软件/硬件的升级换代有何要求与限制等,都要在网络设计时加以考虑,以保证网络的可扩充性和可维护性。通常新建网络时都会给这个局域网提出一些有关使用寿命、维护代价等的要求。
从上面的描述可以分析得知,选项A是正确的。
例题答案
(69)A
例题5(2005年5月试题46~47)
在某个信息系统中,存在如下的业务陈述:①一个客户提交0个或多个订单;②一个订单由一个且仅由一个客户提交。系统中存在两个类:“客户”类和“订单”类。对应每个“订单”类的实例,存在 (46) “客户”类的实例;对应每个“客户”类的实例,存在 (47) “订单”类的实例。
(46)A.0个
B.1个
C.1个或多个
D.0个或多个
(47)A.0个
B.1个
C.1个或多个
D.0个或多个
例题分析
由题目的描述我们可以画出客户类和订单类之间的联系图,如图14-1所示。
图14-1 客户类和订单类之间的联系图
例题答案
(46)B
(47)D
例题6(2005年11月试题6)
在开发一个系统时,如果用户对系统的目标不是很清楚,难以定义需求,这时最好使用 (6) 。
A.原型法
B.瀑布模型
C.V模型
D.螺旋模型
例题分析
应用原型法的主要目的就是获取需求。如果用户对系统的目标不是很清楚,难以定义需求,这时最好使原型法。
例题答案
(6)A
例题7(2005年11月试题7)
应该在 (7) 阶段制定系统测试计划。
(7)A.需求分析
B.概要设计
C.详细设计
D.系统测试
例题分析
应该在需求分析阶段就开始制定测试计划,并在设计阶段细化和完善。
例题答案
(7)A
例题8(2006年5月试题7~8)
(7) 是面向对象程序设计语言不同于其他语言的主要特点,是否建立了丰富的 (8) 是衡量一个面向对象程序设计语言成熟与否的重要标志之一。
(7)A.继承性
B.消息传递
C.多态性
D.静态联编
(8)A.函数库
B.类库
C.类型库
D.方法库
例题分析
继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。继承性是面向对象程序设计语言不同于其他语言的最重要的特点,是其他语言所没有的。
类库可以说是面向对象语言对函数库的扩展,它的丰富程度决定了一个面向对象程序设计语言是否成熟。
例题答案
(7)A
(8)B
例题9(2006年5月试题10)
在面向对象的软件工程中,一个组件(Component)包含了 (10) 。
(10)A.所有的属性和操作
B.各个类的实例
C.每个设备或用户(Device or User)的作用
D.一些协作的类的集合
例题分析
在面向对象的软件工程中,组件是包含了一些类的集合。
例题答案
(10)D
例题10(2006年11月试题5~6)
常见的软件开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。其中 (5) 适用于需求明确或很少变更的项目, (6) 主要用来描述面向对象的软件开发过程。
(5)A.瀑布模型
B.演化模型
C.螺旋模型
D.喷泉模型
(6)A.瀑布模型
B.演化模型
C.螺旋模型
D.喷泉模型
例题分析
此题考查的是常见软件开发模型的特点,下面是对这几种开发模型的特点总结:
(1)瀑布模型:严格遵循软件生命周期各阶段的固定顺序,一个阶段完成再进入另一个阶段。它的优点是可以使过程比较规范化,有利于评审;缺点在于过于理想,缺乏灵活性,容易产生需求偏差。
(2)演化模型:也是一种原型化开发,但与快速原型不同的是,快速原型模型在获得真实需求时就将抛弃原型。而演化模型则不然,它将从初始的模型中逐渐演化为最终的软件产品,是一种“渐进式”原型法。
(3)螺旋模型:结合了瀑布模型和演化模型的优点,最主要的特点在于加入了风险分析。它是由制定计划、风险分析、实施工程、客户评估这一循环组成的,它最初从概念项目开始第一个螺旋。
(4)喷泉模型:主要用于描述面向对象的开发过程,最核心的特点是迭代。所有的开发活动没有明显的边界,允许各种开发活动交叉进行。
例题答案
(5)A
(6)D
例题11(2007年11月试题5)
选择软件开发工具时,应考虑功能、 (5) 、稳健性、硬件要求和性能、服务和支持。
(5)A.易用性
B.易维护性
C.可移植性
D.可扩充性
例题分析
从选项中我们可以分析出,易维护性、可移植性、可扩充性一般针对软件产品而言,是软件产品的特性,而满足软件开发工具的特性只有易用性。
例题答案
(5)A
例题12(2007年11月试题6)
内聚性和耦合性是度量软件模块独立性的重要准则,软件设计时应力求 (6) 。
(6)A.高内聚,高耦合
B.高内聚,低耦合
C.低内聚,高耦合
D.低内聚,低耦合
例题分析
本题考查软件对内聚性和耦合性的要求。
模块独立性是由内聚性和耦合性两个定性指标来度量的。内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系;耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点及通过接口的数据。
软件设计时应力求高内聚、低耦合。
例题答案
(6)B
例题13(2008年5月试题5)
采用UML进行软件设计时,可用 (5) 关系表示两类事物之间存在的特殊/一般关系,用聚集关系表示事物之间存在的整体/部分关系。
(5)A.依赖
B.聚集
C.泛化
D.实现
例题分析
本题考查UML实体间几种联系的概念。实体间相互关系有如下几种:
(1)依赖关系(使用带实心箭头的虚线表示):假设A类的变化引起了B类的变化,则说明B类依赖于A类。依赖关系有如下3种情况:
·A类是B类的一个成员变量。
·A类是B类方法当中的一个参数。
·A类向B类发送消息,从而影响B类发生变化。
(2)泛化关系(使用带空心箭头的实线表示):A是B和C的父类,B、C具有公共类(父类)A,说明A是B、C的一般化(概括,也称泛化)。在UML当中,对泛化关系有3个要求:
·子类与父类应该完全一致,父类所具有的属性、操作,子类应该都有。
·子类中除了与父类一致的信息以外,还包括额外的信息。
·可以使用父类的实例的地方,也可以使用子类的实例。
(3)关联关系(使用实线来表示):两个类的实例之间存在着某种语义上的联系。关联关系是所有关系当中最通用的关系;某种联系不存在非常明确的定义。如:学校、教室和老师。关联关系分为两种:
·聚合关系:表示的是整体和部分的关系,整体与部分可以分开。
·组合关系:也是整体与部分的关系,但是整体与部分不可以分开。
(4)实现关系(使用带空心箭头的虚线表示):是用来规定接口和实线接口的类或者构建结构的关系,接口是操作的集合,而这些操作就用于规定类或者构建的一种服务。
例题答案
(5)C
例题14(2007年5月试题8)
CMM模型将软件过程的成熟度分为5个等级。在 (8) 使用定量分析来不断地改进和管理软件过程。
(8)A.优化级
B.管理级
C.定义级
D.可重复级
例题分析
本题主要考查的知识点是CMM模型。
CMM模型将软件过程的成熟度分为5个等级。
(1)初始级:软件过程的特点是无秩序的,有时甚至是混乱的。软件过程定义几乎处于无章法和步骤可循的状态,软件产品所取得的成功往往依赖极个别人的努力和机遇。初始级的软件过程是未加定义的随意过程,项目的执行是随意甚至是混乱的。也许,有些企业制定了一些软件工程规范,但若这些规范未能覆盖基本的关键过程要求,且执行没有政策、资源等方面的保证时,那么它仍然被视为初始级。
(2)可重复级:已经建立了基本的项目管理过程,可用于对成本、进度和功能特性进行跟踪。对类似的应用项目,有章可循并能重复以往所取得的成功。焦点集中在软件管理过程上。一个可管理的过程则是一个可重复的过程,一个可重复的过程则能逐渐演化和成熟。从管理角度可以看到一个按计划执行的、且阶段可控的软件开发过程。
(3)定义级:用于管理的和工程的软件过程均已文档化、标准化,并形成整个软件组织的标准软件过程。全部项目均采用与实际情况相吻合的、适当修改后的标准软件过程来进行操作。要求制定企业范围的工程化标准,而且无论是管理还是工程开发都需要一套文档化的标准,并将这些标准集成到企业软件开发标准过程中去。所有开发的项目需根据这个标准过程,剪裁出项目适宜的过程,并执行这些过程。过程的剪裁不是随意的,在使用前需经过企业有关人员的批准。
(4)管理级:软件过程和产品质量有详细的度量标准。软件过程和产品质量得到了定量的认识和控制。
(5)优化级:通过对来自过程、新概念和新技术等方面的各种有用信息的定量分析,能够不断地、持续地进行过程改进。
例题答案
(15)A
例题15(2008年5月试题6)
某项目制定的开发计划中定义了3个任务,其中任务A首先开始,且需要3周完成,任务B必须在任务A启动1周后开始,且需要2周完成,任务C必须在任务A完成后才能开始,且需要2周完成。该项目的进度安排可用下面的甘特图 (6) 来描述。
(6)
图14-2 甘特图
例题分析
本题考查使用甘特图的描述项目进度的方法。甘特图也称为条状图(Bar Chart)。是在1917年由亨利·甘特开发的,其内在思想简单,基本是一条线条图,横轴表示时间,纵轴表示活动(项目),线条表示在整个期间上计划和实际的活动完成情况。它直观地表明任务计划在什么时候进行,及实际进展与计划要求的对比。根据题目描述,绘制正确的甘特图为选项D。
例题答案
(6)D
例题16(2008年5月试题70)
关于项目管理甘特图的结构,下列选项中合理的是 (70) 。
(70)A.任务名称,工期,开始时间,前置任务,后置任务,资源名称
B.任务名称,开始时间,完成时间,后置任务,人力资源,进度线
C.任务名称,工期,开始时间,完成时间,前置任务,资源名称,进度线
D.任务名称,开始时间,完成时间,前置任务,人力资源,进度线
例题分析
使用过MS Project软件的考生应该非常熟悉,甘特图又叫Gantt Chart图,它是以图示的方式通过活动列表和时间刻度形象地表示出任何特定项目的活动顺序与持续时间。由于甘特图形象简单,在简单、短期的项目中,甘特图都得到了最广泛的运用。其内在思想简单,基本是一条线条图,横轴表示时间,纵轴表示活动(项目),线条表示在整个期间上计划和实际的活动完成情况。它直观地表明任务计划在什么时候进行,及实际进展与计划要求的对比。
对于甘特图的绘制过程中,列的定义对于任务项,名称\工期\工时\开始时间\完成时间\前置任务\资源是必须要的关键列,其余可以视情况自定义。
例题答案
(70)C
例题17(2007年5月试题69~70)
图14-3所示为某系统集成项目的网络工程计划图,从图中可知项目最短工期为 (69) 天,至少需要投入 (70) 人才能完成该项目(假设每个技术人员均能胜任每项工作)。
图14-3 工程计划图
(69)A.5
B.7
C.8
D.10
(70)A.2
B.4
C.6
D.8
例题分析
对于一个项目而言,只有项目中最长的或耗时最多的活动完成之后,项目才能结束,这条最长的活动路线就叫关键路径(Critical Path),组成关键路径的活动称为关键活动。其通常做法是:
(1)将项目中的各项活动视为有一个时间属性的节点,从项目起点到终点进行排列。
(2)用有方向的线段标出各节点的紧前活动和紧后活动的关系,使之成为一个有方向的网络图。
(3)用正推法和逆推法计算出各个活动的最早开始时间,最晚开始时间,最早完工时间和最迟完工时间,并计算出各个活动的时差。
(4)找出所有时差为零的活动所组成的路线,即为关键路径。
(5)识别出准关键路径,为网络优化提供约束条件。
例题答案
(69)A
(70)C
例题18(2008年11月试题6~7)
若一个项目由9个主要任务构成,其计划图(如图14-4所示)展示了任务之间的前后关系及每个任务所需天数,该项目的关键路径是 (6) ,完成项目所需的最短时间是 (7) 天。
图14-4 工程计划图
(6)A.A→B→C→D→I
B.A→B→C→E→I
C.A→B→C→F→G→I
D.A→B→C→F→H→I
(7)A.16
B.17
C.18
D.19
例题分析
本题考查求项目工期的关键路径和完成时间。同上题(例题17)基本相似,可以参照上题来求解,结果关键路径为A→B→C→D→I,所费时间最长为19天。
例题答案
(6)A
(7)D
例题19(2005年5月试题18)
下列叙述中,与提高软件可移植性相关的是 (18) 。
(18)A.选择时间效率高的算法
B.尽可能减少注释
C.选择空间效率高的算法
D.尽量用高级语言编写系统中对效率要求不高的部分
例题分析
可移植性是指与一个软件从一个环境转移到另一个环境运行的能力有关的一组属性。包括:
·适应性(Adaptability):与软件无须采用有别于为该软件准备的活动或手段就可能适应不同的规定环境有关的软件属性。
·可安装性(Installability):与应指定环境下安装软件所需努力有关的软件属性。
·遵循性(一致性,Conformance):使软件遵循与可移植性有关的标准或约定的软件属性。
·易替换性(Replaceability):与软件在该软件环境中用来替代指定的其他软件的机会和努力有关的软件属性。为避免可能与互操作性(互用性)的含义相混淆,此处用易替换性而不用兼容性。特定软件的易替换性并不隐含此软件可由所考虑的软件所替代。易替换性可能包含易安装性和适应性这两个属性。由于此概念十分重要,故已被作为一个独立的子特性。
例题答案
(18)D
例题20(2005年5月试题19~20)
在系统转换的过程中,旧系统和新系统并行工作一段时间,再由新系统代替旧系统的策略称为 (19) ;在新系统全部正式运行前,一部分一部分地代替旧系统的策略称为 (20) 。
(19)A.直接转换
B.位置转换
C.分段转换
D.并行转换
(20)A.直接转换
B.位置转换
C.分段转换
D.并行转换
例题分析
这道题属于纯概念题,题目中的字句都是从概念中抽出来的,下面我们来看系统转换的一些概念。
新老系统之间的转换有3种方式:直接转换、并行转换和分段转换,下面我们来详细地介绍这3种转换各自的特点。
直接转换就是在确定新系统运行无误时,立刻启用新系统,终止老系统运行。这种方式对人员、设备费用很节省,一般适用于一些处理过程不太复杂、数据不很重要的场合。
并行转换是新老系统并行一段时间,经过一段时间的考验以后,新系统正式代替老系统。对于较复杂的大型系统,它提供了一个与老系统运行结果进行比较的机会,可以对新老两个系统并行工作,消除了尚未认识新系统之前的紧张和不安。在银行、财务和一些企业的核心系统中,这是一种经常使用的转换方式。它的主要特点是安全、可靠,但费用和工作量都很大,因为在相当长时间内系统要两套班子并行工作。
分段转换又称逐步转换、向导转换、试点过渡法等。这种转换方式实际上是以上两种转换方式的结合。在新系统全部正式运行前,一部分一部分地代替老系统。那些在转换过程中还没有正式运行的部分,可以在一个模拟环境中继续试运行。这种方式既保证了可靠性,又不至于费用太大。但是这种分段转换要求子系统之间有一定的独立性,对系统的设计和实现都有一定的要求,否则就无法实现这种分段转换的设想。
由此可以看出题目所说的“旧系统和新系统并行工作一段时间,再由新系统代替旧系统的策略”是并行转换,而“在新系统全部正式运行前,一部分一部分地代替旧系统的策略”是分段转换。所以试题(19)应选D,试题(20)应选C。
例题答案
(19)D
(20)C
例题21(2009年5月试题5~6)
某项目主要由A~I任务构成,其计划图(如图14-5所示)展示了各任务之间的前后关系及每个任务的工期(单位:天),该项目的关键路径是 (5) 。在不延误项目总工期的情况下,任务A最多可以推迟开始的时间是 (6) 天。
图14-5 工程计划图
(5)A.A→G→I
B.A→D→F→H→I
C.B→E→G→I
D.C→F→H→I
(6)A.0
B.2
C.5
D.7
例题分析
本题考查项目计划的关键路径和松弛时间。同本章的例题17基本相似,可以参照例题17来求解。
图中任务流A→G→I的持续时间为15;任务流A→D→F→H→I的持续时间为18;任务流B→E→G→I的持续时间为20;任务流C→F→H→I的持续时间为13。因此关键路径为B→E→G→I,其持续时间是20。任务A处于任务流A→G→I和任务流A→D→F→H→I中,持续时间分别为15和18,因此任务A的可延迟开始时间为2。
例题答案
(5)C
(6)B
例题22(2009年5月试题7)
软件风险一般包含 (7) 两个特性。
(7)A.救火和危机管理
B.已知风险和未知风险
C.不确定性和损失
D.员工和预算
例题分析
本题考查软件风险的特性。
软件风险一般包括不确定性和损失两个特性,其中不确定性是指风险可能发生,也可能不发生;损失是当风险确实发生时,会引起的不希望的后果和损失。救火和危机管理是对不适合但经常采用的软件风险管理策略。已知风险和未知风险是对软件风险进行分类的一种方式。员工和预算是在识别项目风险时需要识别的因素。
例题答案
(7)C
例题23(2009年11月试题5)
面向对象开发方法的基本思想是尽可能按照人类认识客观世界的方法来分析和解决问题, (5) 方法不属于面向对象方法。
(5)A.Booch
B.Coad
C.OMT
D.Jackson
例题分析
本题考查面向对象开发方法。
面向对象开发方法有Booch方法、Coad方法和OMT方法。Jackson方法是一种面向数据结构的开发方法。
例题答案
(5)D
例题24(2009年11月试题6)
确定构建软件系统所需要的人数时,无须考虑 (6) 。
(6)A.系统的市场前景
B.系统的规模
C.系统的技术复杂性
D.项目计划
例题分析
本题考查项目管理内容。
在对软件开发资源进行规划时,为了确定构建软件系统所需的人数,需要考虑软件系统的规模、系统的技术复杂性、项目计划和开发人员的技术背景等方面,而与系统是否有市场前景无关。
例题答案
(6)A
例题25(2009年11月试题7)
一个项目为了修正一个错误而进行了变更。这个错误被修正后,却引起以前可以正确运行的代码出错。 (7) 最可能发现这一问题。
(7)A.单元测试
B.接受测试
C.回归测试
D.安装测试
例题分析
本题考查软件测试知识。
回归测试是在软件发生变更之后进行的测试,以发现在变更时可能引起的其他错误。
例题答案
(7)C
例题26(2010年5月试题2~3)
进度安排的常用图形描述方法有Gantt图和PERT图。Gantt图不能清晰地描述 (2) ;PERT图可以给出哪些任务完成后才能开始另一些任务。图14-6所示的PERT图中,事件6的最晚开始时刻是 (3) 。
图14-6 PERT图
(2)A.每个任务从何时开始
B.每个任务到何时结束
C.每个任务的进展情况
D.各任务之间的依赖关系
(3)A.0
B.3
C.10
D.11
例题分析
本题考查项目计划的关键路径和松弛时间。同本章的例题17基本相似,可以参照例题17来求解。
软件项目计划的一个重要内容是安排进度,常用的方法有Gantt图和PERT图。Gantt图用水平条状图描述,它以日历为基准描述项目任务,可以清楚地表示任务的持续时间和任务之间的并行,但是不能清晰地描述各个任务之间的依赖关系。PERT图是一种网络模型,描述一个项目任务之间的关系。它可以明确表达任务之间的依赖关系,即哪些任务完成后才能开始另一些任务,以及如期完成整个工程的关键路径。
图中任务流1→2→5→7→9的持续时间是15,1→2→5→8→9的持续时间是13,1→3→6→8→9的持续时间是8,4→6→8→9的持续时间为9。所以项目关键路径长度为15。事件6在非关键路径上,其后的任务需要时间为5,所以最晚开始时间为15-5=10。
例题答案
(2)D
(3)C
例题27(2010年5月试题4)
使用白盒测试方法时,确定测试用例应根据 (4) 和指定的覆盖标准。
(4)A.程序的内部逻辑
B.程序结构的复杂性
C.使用说明书
D.程序的功能
例题分析
本题考查软件测试方法中白盒测试的基础知识。
白盒测试也称为结构测试,根据程序的内部结构和逻辑来设计测试用例,对程序的执行路径和过程进行测试,检查是否满足设计的需要。白盒测试常用的技术涉及不同的覆盖标准,在测试时需根据指定的覆盖标准确定测试数据。
例题答案
(4)A
例题28(2010年5月试题7)
软件设计时需要遵循抽象、模块化、信息隐蔽和模块独立原则。在划分软件系统模块时,应尽量做到 (7) 。
(7)A.高内聚高耦合
B.高内聚低耦合
C.低内聚高耦合
D.低内聚低耦合
例题分析
本题考查软件设计原则的基础知识。
软件设计时需要遵循抽象、模块化、信息隐蔽和模块独立原则。耦合性和内聚性是模块独立性的两个定性标准,在划分软件系统模块时,尽量做到高内聚、低耦合,以提高模块的独立性。
例题答案
(7)B
例题29(2010年5月试题9)
栈是一种按“后进先出”原则进行插入和删除操作的数据结构,因此, (9) 必须用栈。
(9)A.函数或过程进行递归调用及返回处理
B.将一个元素序列进行逆置
C.链表节点的申请和释放
D.可执行程序的装入和卸载
例题分析
本题考查数据结构基础知识。
栈是一种后进先出的数据结构。将一个元素序列逆置时,可以使用栈也可以不用。链表节点的申请和释放次序与应用要求相关,不存在“先申请后释放”的操作要求。可执行程序的装入与卸载,也不存在“后进先出”的操作要求。对于函数的递归调用与返回,一定是后被调用执行的先返回。
例题答案
(9)A
例题30(2010年11月试题4~5)
使用PERT图进行进度安排,不能清晰地描述 (4) ,但可以给出哪些任务完成后才能开始另一些任务。图14-7所示的工程从A到K的关键路径是 (5) ,(图中省略了任务的开始和结束时刻)。
图14-7 PERT图
(4)A.每个任务从何时开始
B.每个任务到何时结束
C.各任务之间的并行情况
D.各任务之间的依赖关系
(5)A.A→B→E→G→H→I→K
B.A→B→E→G→H→J→K
C.A→C→E→G→H→I→K
D.A→C→E→G→H→J→K
例题分析
本题考查的内容与本章的例题26基本相似,可以参照例题26来求解。
图中任务流A→B→E→G→H→I→K的持续时间是36,A→B→E→G→H→J→K的持续时间是40,A→C→E→G→H→I→K的持续时间是33,A→C→E→G→H→J→K的持续时间为37。所以项目关键路径长度为40。
例题答案
(4)C
(5)B
例题31(2010年11月试题6)
某项目组拟开发一个大规模系统,且具备了相关领域及类似规模系统的开发经验。下列过程模型中, (6) 最适合开发此项目。
(6)A.原型模型
B.瀑布模型
C.V模型
D.螺旋模型
例题分析
本题考查软件开发生命周期模型的基本知识。
常见的软件生命周期模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。瀑布模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型,适合于软件需求很明确的软件项目的模型。V模型是瀑布模型的一种演变模型,将测试和分析与设计关联进行,加强分析与设计的验证。原型模型是一种演化模型,通过快速构建可运行的原型系统,然后根据运行过程中获取的用户反馈进行改进。演化模型特别适用于对软件需求缺乏准确认识的情况。螺旋模型将瀑布模型和演化模型结合起来,加入了两种模型均忽略的风险分析。
本题中项目组具备了所开发系统的相关领域及类似规模系统的开发经验,即需求明确,瀑布模型最适合开发此项目。
例题答案
(6)B
例题32(2010年11月试题7)
软件复杂性度量的参数不包括 (7) 。
(7)A.软件的规模
B.开发小组的规模
C.软件的难度
D.软件的结构
例题分析
软件复杂性度量是软件度量的一个重要分支。软件复杂性度量的参数有很多,主要包括:规模,即指令数或者源程序行数;难度,通常由程序中出现的操作数所决定的量来表示;结构,通常用与程序结构有关的度量来表示;智能度,即算法的难易程度。
例题答案
(7)B
例题33(2011年5月试题5)
软件产品的可靠性并不取决于 (5) 。
(5)A.潜在错误的数量
B.潜在错误的位置
C.软件产品的使用方式
D.软件产品的开发方式
例题分析
软件产品的可靠性取决于潜在错误的数量、潜在错误的位置及软件产品的使用方式,但不包括软件产品的开发方式。
例题答案
(5)D
例题34(2011年5月试题6)
模块A直接访问模块B的内部数据,则模块A和模块B的耦合类型为 (6) 。
(6)A.数据耦合
B.标记耦合
C.公共耦合
D.内容耦合
例题分析
软件工程中对象之间的耦合度就是对象之间的依赖性。指导使用和维护对象的主要问题是对象之间的多重依赖性。对象之间的耦合越高,维护成本越高。因此对象的设计应使类和构件之间的耦合最小。耦合性由低到高分别是非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合。其中内容耦合指的是当一个模块直接修改或操作另一个模块的数据,或者直接访问进入另一个模块时,就发生了内容耦合。
例题答案
(6)D
例题35(2011年5月试题7)
下列关于风险的叙述不正确的是:风险是 (7) 。
(7)A.可能发生的事件
B.一定会发生的事件
C.会带来损失的事件
D.可以对其进行干预,以减少损失的事件
例题分析
风险涉及到一个事件发生的可能性,涉及到该事件产生的不良后果或影响。
例题答案
(7)B
例题36(2011年5月试题8)
下列关于项目估算方法的叙述不正确的是 (8) 。
(8)A.专家判断方法受到专家经验和主观性影响
B.启发式方法(如COCOMO模型)的参数难以确定
C.机器学习方法难以描述训练数据的特征和确定其相似性
D.结合上述三种方法可以得到精确的估算结果
例题分析
项目估算的常用方法主要有专家判断法、启发式法和机器学习法等。
专家判断法是指向学有专长、见识广博并有相关经验的专家进行咨询,根据他们多年来的实践经验和判断能力对计划项目做出预测的方法。很显然,采用这种方法容易受到专家经验和主观性的影响。
启发式方法是用一套相对简单、通用、有启发性的规则进行估算的方法,它具有参数难以确定、精确度不高等特点。
机器学习方法是一种基于人工智能与神经网络技术的估算方法,它难以描述训练数据的特征和确定其相似性。
而无论采用哪种估算方法,估算得到的结果都是大概的,而不是精确的。
例题答案
(8)D
例题37(2011年5月试题9)
图14-8所示的是一个软件项目的活动图,其中顶点表示项目里程碑,边表示包含的活动,边上的权重表示活动的持续时间,则里程碑 (9) 在关键路径上。
图14-8 活动图
(9)A.1
B.2
C.3
D.4
例题分析
本题主要考查关键路径求解的问题,与本章的例题17基本相似,可以参照例题17来求解。
从开始顶点到结束顶点的最长路径为关健路径(临界路径),关键路径上的活动为关键活动。
在本题中找出的最长路径是Start→2→5→7→8→Finish,其长度为8+15+15+7+20=65,而其他任何路径的长度都比这条路径小,因此我们可以知道里程碑2在关键路径上。
例题答案
(9)B
共有条评论 网友评论