系统分析师软件工程二模拟题.docx
《系统分析师软件工程二模拟题.docx》由会员分享,可在线阅读,更多相关《系统分析师软件工程二模拟题.docx(23页珍藏版)》请在冰点文库上搜索。
系统分析师软件工程二模拟题
[模拟]系统分析师软件工程
(二)
选择题
结构化分析方法(SA)是一种预先严格定义需求的方法,强调分析对象的
(1) ,其指导思想是
(2) 。
过程P分解为P1,P2,P3三个子过程,图9-8的数据流图中存在两处错误,其中错误1是(3) ,错误2是(4) 。
第1题:
A.程序流
B.指令流
C.控制流
D.数据流
参考答案:
D
第2题:
A.自顶向下逐层分解
B.自底向上逐层分解
C.面向对象
D.面向过程
参考答案:
A
第3题:
A.1层S
B.1层S2
C.0层S
D.0层S1
参考答案:
B
第4题:
A.1层S
B.1层S2
C.0层S
D.0层S1
参考答案:
B
结构化分析是面向数据流进行需求分析的方法,适合于数据处理类型软件的需求分析。
具体来说,结构化分析就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直至找到满足功能要求的所有可实现的软件为止。
数据流图从数据和数据所经过的加工这两个相互补充的方面来表达一个数据处理系统。
数据流图从数据的角度描述了它们作为输入(广义的),经过某个或若干个加工,或者合并,或者分解,或者存储,最后成为输出(广义的)的整个过程。
虽然不同的应用要解决的问题不同,其数据流图的结构也不一样。
但在形成数据流图时,仍然可以确定一些基本的原则和步骤。
在本题中,0层数据流图符合要求,其输入为S,输出为S1。
按照数据流图的规则,1层数据流图应该要与0层数据流图平衡,既其输入要为S,输出要为S1,但在图9-8中,1层数据流图没有输出,且多了输入S2。
因此,正确的应该是去掉S2及其连带的输入数据,而在P3处添加输出S1。
软件测试是保证软件可靠性的主要手段之一。
测试阶段的根本任务是(5) ,设计测试用例的基本目标是(6) 。
测试大型软件系统时通常由模块测试、集成测试、系统测试、(7) 和并行运行等步骤所组成。
系统测试通常采用黑盒法,常用的黑盒测试法有边值分析、等价类划分、错误推测和(8) 。
系统测试的工作应该由(9) 来承担。
第5题:
A.证明经测试后的程序是正确的
B.确认编码阶段的结束
C.发现并改正软件中的错误
D.利用计算机调试程序和改进程序
参考答案:
C
第6题:
A.尽可能用测试用例覆盖可能的路径
B.选用少量的高效测试用例尽可能多地发现软件中的问题
C.采用各种有效测试策略,使所得的程序准确无误
D.评估与选用不同测试方法,尽可能完成测试进度计划
参考答案:
B
第7题:
A.接口测试
B.组装测试
C.性能测试
D.验收测试
参考答案:
D
第8题:
A.路径覆盖
B.因果图
C.判定树
D.PERT图
参考答案:
B
第9题:
A.开发该系统的部门以外的人员
B.该系统的系统分析师
C.该系统的设计人员
D.该系统的编程者
参考答案:
A
软件测试的根本任务就是要发现并改正软件中的错误。
测试的过程是:
设计测试用数据(称之为测试用例);执行程序;分析结果,找出错误并改正。
这个过程可能会有反复。
测试用例的设计是测试的重要环节,设计测试用例的目标是选用少量高效的数据(测试用例)尽可能多地发现软件中的问题。
软件测试的工作量约占软件开发总工作量的40%以上,其目的是尽可能多地发现软件产品(主要是指程序)中的错误和缺陷。
测试的关键是测试用例的设计,设计方法可分成两类:
白盒测试和黑盒测试。
(1)白盒测试 把程序看成是装在一只透明的盒子里,测试者完全了解程序的结构和处理过程。
白盒测试根据程序的内部逻辑来设计测试用例,检查程序中的逻辑通路是否都按预定的要求正确地工作,白盒测试的具体方法主要是逻辑覆盖,由于覆盖的详尽程度不同,逻辑覆盖由弱到强又分为语句覆盖、判定覆盖、条件覆盖、条件组合覆盖和路径覆盖等。
(2)黑盒测试 把程序看成是装在一只不透明的盒子里,测试者完全不了解(或不考虑)程序的结构和处理过程。
黑盒测试根据规格说明书规定的功能未设计测试用例,检查程序的功能是否符合规格说明的要求。
黑盒测试方法具体有等价类划分、边界值分析、错误推测和因果图等。
软件测试的主要步骤有单元测试(模块测试)、集成测试(组装测试)、系统测试和确认测试(验收测试)。
(1)单元测试 通常在编码阶段进行,主要用来发现编码和详细设计中产生的错误,一般采用白盒测试。
(2)集成测试 集成测试是对由各模块组装而成的模块进行测试,主要检查模块间的接口和通信。
集成测试主要用来发现设计阶段产生的错误,通常采用黑盒测试。
(3)系统测试 系统测试的任务是把软件放在实际的硬件和网络环境中进行测试,主要测试软件的非功能需求和质量属性是否得到满足。
系统测试通常采用黑盒测试。
(4)确认测试 确认测试的任务是检查软件的功能、性能和其他特征是否与用户的需求一致,它是以需求规格说明书作为依据的测试,通常采用黑盒测试。
在确认测试时,如果一个软件是为某个客户定制的,那么由客户实施验收测试,以便确认该软件是他所需要的。
但是,对于那些作为产品被众多客户使用的软件,就不可能为每个客户做验收测试。
大多数软件生产商使用一种a测试和β测试的过程。
(1)a测试 在开发者的现场由客户来实施的,被测试的软件是在开发者从用户的角度进行常规设置的环境下运行的。
(2)β测试 在一个或多个客户的现场由该软件的最终用户实施的。
与a测试不同的是,进行β测试时开发者通常是不在场的。
从使用的工具来看,软件测试的方法又可分为静态测试和动态测试。
(1)静态测试 指人工评审软件文档或程序,借以发现其中的错误,由于评审的文档或程序不必运行,所以称为静态测试。
人工评审的手续虽然比较简单,但事实证明这是一个相当有效的检验手段。
由于评审人员的能力有限,静态测试显然不可能发现所有的错误。
(2)动态测试 指通常的上机测试,这种方法是使程序有控制地运行,并从多种角度观察程序的行为,以发现其中的错误。
在软件维护阶段,当修改软件后,除了对修改部分的软件进行常规的测试外,还应对软件的其他部分进行回归测试,回归测试是指全部或部分地重复已做过的测试,它主要检查软件的修改是否在软件的未修改部分引入了新的错误。
模块测试、集成测试一般以软件系统开发人员为主来测试。
系统测试和验收测试一般不能以开发人员为主来测试。
这是因为系统测试是整体性的测试,而测试的根本任务是做“否定性”工作,为减少或避免开发人员的主观影响,使系统测试具有更强的客观性,一般应由开发该系统的部门以外的人员来承担。
如何评价软件的质量一直是软件技术人员所关心的问题,目前已有多种软件质量模型来描述软件的质量特性。
ISO/IEC9126是国际标准化组织在1991年提出的软件质量标准。
它由三个层次组成,第一层是质量特性,第二层是质量子特性,第三层是度量指标。
6个质量特性是:
功能性、可靠性、易使用性、效率、可维护性和(10) 。
其中功能性包括质量子特性(11) ;可靠性包括质量子特性(12) ;易使用性包括质量子特性(13) ;可维护性包括质量子特性(14) 。
第10题:
A.易理解性
B.容错性
C.可移植性
D.安全性
参考答案:
C
第11题:
A.互用性
B.易恢复性
C.易安装性
D.易替换性
参考答案:
A
第12题:
A.依从性
B.易恢复性
C.资源特性
D.一致性
参考答案:
B
第13题:
A.易理解性
B.容错性
C.易分析性
D.安全性
参考答案:
A
第14题:
A.准确性
B.容错性
C.易操作性
D.易测试性
参考答案:
D
第15题:
系统开发过程通常被分为若干个阶段,每个阶段的开始和结束都有明确的规定。
人们常将开发过程中完成某项关键工作的时刻称为里程碑。
完成______时最适于称为里程碑。
A.需求调查
B.总体设计稿
C.一套实体关系图
D.50%的编码
参考答案:
B
里程碑(又称为基线)是软件生存周期中各开发阶段末尾的特定点。
由正式的技术评审而得到的软件配置项和软件配置的正式文本才能成为里程碑。
里程碑的作用是把各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检验和肯定阶段成果。
软件开发进程中可以设置许多里程碑,里程碑为管理人员提供了指示项目进度的可靠依据。
当一个软件工程任务成功地通过了评审并产生了文档之后,一个里程碑就完成了。
因此,一般来说,文档编制与评审是软件开发进度的里程碑。
通常,软件开发环境可由环境机制和工具集构成。
按功能划分,环境机制又可分为(16) ;工具集也可分为贯穿整个开发过程的工具和解决软件生命周期中某一阶段问题的工具,分别属于上述两类工具的是(17) 。
软件开发环境的核心是(18) 。
软件开发环境具有集成性、开放性、(19) 、数据格式一致性、风格统一的用户界面等特性,因而能大幅度提高软件生产率。
其中开放性是指(20) 。
第16题:
A.环境操作系统、环境信息库、用户界面规范
B.环境信息库、过程控制和消息服务、用户界面规范
C.环境操作系统、环境规格描述语言、过程控制和消息服务
D.环境规格描述语言、过程控制和消息服务、数据集成
参考答案:
B
第17题:
A.DFD、PDL
B.HIPO图、OOA
C.文档管理工具、PAD图
D.软件项目管理工具、软件价格模型及估算工具
参考答案:
D
第18题:
A.环境操作系统
B.环境信息库
C.环境规格描述语言
D.用户界面规范
参考答案:
B
第19题:
A.可裁减性
B.完整性
C.封闭性
D.独立性
参考答案:
A
第20题:
A.允许使用不同的硬件平台
B.允许使用不同的操作系统
C.允许使用不同的网络系统
D.允许其他的软件工具加入到软件开发环境之中
参考答案:
D
软件开发环境应该包括工具集成、界面集成和方法集成。
通常,软件开发环境可由环境机制和工具集构成。
按功能划分,环境机制又可分为环境信息库、过程控制和消息服务、用户界面规范。
其中环境信息库存储软件工程项目在生存周期中的全部信息,是软件开发环境的核心。
工具集包括事务系统规划工具、项目管理工具、支撑工具、分析设计工具、程序设计工具、测试工具、原型建造工具、维护工具和框架工具等,所有这些工具可分为贯穿整个开发过程的工具(例如软件项目管理工具)和解决软件生命周期中某一阶段问题的工具(例如软件价格模型及估算工具)。
软件开发环境具有集成性、开放性、可裁减性、数据格式一致性、风格统一的用户界面等特性,因而能大幅度提高软件生产率。
其中开放性是指允许其他的软件工具加入到软件开发环境之中。
第21题:
通常软件项目管理活动包括项目的计划、调度、通信、费用估算、资源分配以及质量控制等,软件生产是智力密集型的活动,其产品无物理外形,生产状态也“不可见”,因而难以检查和驾驭。
软件项目管理工具就是要使这种生产过程成为可见、可控的过程。
因此,软件项目管理工具应具备______。
A.软件生产周期内各活动的识别和分配
B.对工作计划的安排、评审和检查
C.对软件设计计划、技术和文档内容进行管理
D.与软件开发工具匹配
参考答案:
B
软件项目管理工具能对项目的任务调度、成本估算、资源分配、预算跟踪、人时统计、配置控制等活动给予帮助,它能覆盖整个软件生存周期。
因为要对进度进行管理,所以项目管理工具必须能确定关键路径、松弛时间、超前时间和滞后时间等基本信息。
同时,项目管理工具还需要生成一定格式的报表和报告,但项目管理工具不能指导软件设计人员按软件生存周期各个阶段的适用技术进行设计工作,不必与软件开发工具匹配。
为了直观地分析系统的动作,从特定的视点出发推述系统的行为,需要采用动态分析的方法。
其中(22) 本来是表达异步系统的控制规则的图形表示方法,现在已经广泛地应用于硬件与软件系统的开发中,它适用于描述与分析相互独立、协同操作的处理系统,也就是并发执行的处理系统。
(23) 是描述系统的状态如何响应外部的信号进行推移的一种图形表示。
第22题:
A.状态迁移图
B.时序图
C.Petri网
D.数据流图
参考答案:
C
第23题:
A.状态迁移图
B.时序图
C.Petri网
D.数据流图
参考答案:
A
常用的动态需求分析方法有状态迁移图、时序图和Petri网等。
Petri网是一种使用图形方式对系统进行需求规格说明的技术,用来定义多进程、多任务系统的数学模型,易于描述系统的并发、竞争、同步等特征,并可用于评价和改进系统。
如今,Petri网已经大量应用于各种系统的模型化,Petri网不仅能描述同步模型,更适合于相互独立、协同操作的并行处理系统。
Petri网的组成成分包括:
(1)一个有限的库所(place)集合,表示系统的状态。
(2)一个有限的变迁(transition)集合,表示系统中的事件。
(3)一个有限的连接库所到变迁或者反向的有向箭头的集合,又分输入和输出。
状态迁移图是描述系统的状态如何响应外部的信号进行推移的一种图形表示。
在状态迁移图中,用圆圈表示可得到的系统状态,用箭头表示从一种状态向另一种状态的迁移。
在箭头上要写上导致迁移的信号或事件的名字。
状态迁移图表示的关系还可用表格的形式表达,这样的表格成为状态迁移表。
如果系统复杂,可以把系统状态迁移图分层表示,这种分层的状态迁移图不仅对系统的状态及其状态之间的转变进行清晰的描述,还可对某些状态进行进一步的细化。
状态迁移图的优点是状态之间的关系能够直观地捕捉到,由于状态迁移图的单纯性,很容易建立相应的分析工具。
在系统分析中,用时序图来对比在系统中处理事件的时序和相应的处理时间,采用扩充时序图可表示进程间的通信流,用于分析几个事件的交错现象。
软件项目的进度管理有许多方法,但(24) 不是常用的进度控制图示方法。
在几种进度控制方法中,(25) 难以表达多个子任务之间的逻辑关系,使用(26) 不仅能表达子任务间依赖关系,还可找出关键子任务。
在(26) 中,箭号表示(27) ,圆圈结点表示(28) 。
第24题:
A.甘特图
B.IPO
C.PERT
D.时标网状图
参考答案:
B
第25题:
A.甘特图
B.IPO
C.PERT
D.时标网状图
参考答案:
A
第26题:
A.甘特图
B.IPO
C.PERT
D.时标网状图
参考答案:
C
第27题:
A.数据流
B.控制流
C.事件
D.处理
参考答案:
C
第28题:
A.数据流
B.控制流
C.事件
D.起点或终点
参考答案:
D
第29题:
集成测试有各种方法,以下关于集成测试的描述中,不正确的是______。
A.增量式集成测试容易定位错误,排除错误
B.非增量式集成测试不能充分利用人力,会拖延工程进度
C.增量式集成测试的强度大,测试更彻底
D.即使各个模块都通过了测试,但系统集成以后仍可能出现错误
参考答案:
B
第30题:
新项目与过去成功开发过的一个项目类似,但规模更大,这时应该使用______进行项目开发设计。
A.原型法
B.变换模型
C.瀑布模型
D.螺旋模型
参考答案:
C
新项目与过去成功开发过的一个项目类似,因为已经有了以前开发的经验和积累的软件模块,这些都可以应用到新项目中,因此,应该使用瀑布模型进行项目开发。
测试大型软件通常由(31) 、集成测试、系统测试和确认测试组成。
确认测试主要寻找与软件(32) 说明不一致的错误。
语句覆盖、判定覆盖、条件覆盖和路径覆盖都是白盒测试法设计测试用例的覆盖准则,在这些覆盖准则中最弱的准则是(33) ,最强的准则是(34) 。
此外,还有多种黑盒测试的设计测试用例方法,如(35) 。
第31题:
A.组装测试
B.性能测试
C.接口测试
D.单元测试
参考答案:
D
第32题:
A.需求规格
B.概要设计
C.详细设计
D.界面设计
参考答案:
A
第33题:
A.语句覆盖
B.条件覆盖
C.路径覆盖
D.判定覆盖
参考答案:
A
第34题:
A.语句覆盖
B.条件覆盖
C.路径覆盖
D.判定覆盖
参考答案:
C
第35题:
A.E-R图
B.因果图
C.DFD图
D.IPO图
参考答案:
B
语句覆盖就是设计若干个测试用例,运行被测程序,使得每条可执行语句至少执行一次。
判定覆盖(分支覆盖)就是设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。
条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。
条件组合覆盖就是设计足够的测试用例,运行被测程序,使得每个判断的所有可能的条件取值组合至少执行一次。
路径覆盖就是设计足够的测试用例,覆盖程序中所有可能的路径。
根据上面的叙述和试题8的分析,本题的结果是显然的。
有关各种测试和软件开发阶段的对应关系,请阅读试题1的分析。
根据McCabe环路复杂性度量,程序图9-17的复杂度是(36) ,对这个程序进行路径覆盖测试,可得到的基本路径是(37) 。
第36题:
A.2
B.3
C.4
D.5
参考答案:
C
第37题:
A.A-B-C-H-I-K;A-B-C-H-J-K;A-B-C-D-E-F-G
B.A-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-K
C.A-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-K
D.A-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
参考答案:
B
程序图的环路数是源代码程度复杂的度量。
根据McCabe度量法,环路数N=e-n+2,这里e表示有向图的边数,n表示结点数。
在图9-17中,e=13,n=11,得到N=4。
另外一种方法是计算有向图把平面划分成的区域数,这里有3个闭合区域,外加1个开放区域,共4个区域。
所以,程序图的复杂度是4。
路径测试的关键是要找出程序图中所有可能的路径。
对这个程序进行路径覆盖测试,可得到4条基本路径。
(1)A-B-C-H-I-K。
(2)A-B-C-H-J-K。
(3)A-B-C-D-E-F-G-C-H-I-K。
(4)A-B-C-D-E-G-C-H-I-K。
所有基本路径都是从程序起点到终点,并且包含了至少一条独立的边。
第38题:
在选择开发方法时,不适合使用原型法的情况是______。
A.用户需求模糊不清
B.系统设计方案难以确定
C.系统使用范围变化很大
D.用户的数据资源缺乏组织和管理
参考答案:
D
快速原型法的基本思想是在系统开发的初期,在对用户需求初步调查的基础上,以快速的方法先构造一个可以工作的系统雏形(原型)。
将这个原型提供给用户使用,听取他们的意见。
然后修正原型,补充新的数据、数据结构和应用模型,形成新的原型。
经过几次迭代以后,可以达到用户与开发者之间的完全沟通,消除各种误解,形成明确的系统定义及用户界面要求。
至此,或者以最后的原型为基础,修改完善成为实际生产运行的系统;或者舍弃原型重新开发新的系统。
快速原型法的特点如下。
(1)快速原型法最显著的特点是引入了迭代的概念。
(2)快速原型法自始至终强调用户的参与。
(3)快速原型法在用户需求分析、系统功能描述及系统实现方法等方面允许有较大的灵活性。
用户需求可以不十分明确,系统功能描述也可以不完整,对于界面的要求也可以逐步完善。
(4)快速原型法可以用来评价几种不同的设计方案。
(5)快速原型法可以用来建立系统的某个部分。
(6)快速原型法不排斥传统生命周期法中采用的大量行之有效的方法和工具,它是与传统方法互为补充的方法。
由于原型法开发需要适当的快速开发工具,需要用户密切配合,所以下列情况不适合使用原型法。
(1)缺乏适用的原型开发工具。
(2)用户不参与、不积极配合开发过程。
(3)用户的数据资源缺乏组织和管理。
(4)用户的软件资源缺乏组织和管理
对于管理信息系统,为提高MIS开发效益和质量,可以有以下技术和方法来支持:
采用(39) ,可改进用户和开发者之间由于需要变化而引起修改和定义不准确等问题;采用(40) ,可根据基本实体的构造来建立合理的系统结构;采用(41) ,可使系统的开发变为定义和描述过程,而不是详细的编程过程;采用(42) ,可为开发者提供各种有效操作手段和工具;采用(43) ,有利于防止系统开发各阶段的错误扩展。
第39题:
A.软件评审
B.结构程序设计
C.快速原型方法
D.软件测试
参考答案:
C
第40题:
A.软件评审
B.结构程序设计
C.快速原型方法
D.面向对象设计
参考答案:
D
第41题:
A.软件评审
B.结构程序设计
C.第四代语言
D.PERT图方法
参考答案:
C
第42题:
A.软件评审
B.结构程序设计
C.快速原型方法
D.人机交互友好接口
参考答案:
D
第43题:
A.软件评审
B.结构程序设计
C.快速原型方法
D.软件测试
参考答案:
A
开发管理系统MIS,有许多技术和方法可用来提高效益和质量,这些技术包括快速原型方法,可改进用户和开发者之间由于需求变化而引起不准确的问题;面向对象设计,可根据基本实体的构成来建立系统结构;使用第四代语言4GL,可将详细的编程过程转变成定义和描述过程;使用人机交互良好接口,可以提供给开发者各种有效的操作手段和工具;而软件评审方法,有利于防止系统在开发各个阶段上的错误扩散,保证系统开发的正确性和可靠性。
第44题:
关于可靠性,以下叙述中正确的是______。
A.延长MTBF以及缩短MTTR,对于提高设备的有效使用率是有效的
B.缩短MTYR对于延长MTBF是有效的
C.设备的MTBF是在设备出厂时决定的。
此后,MTBF保持不变,用户为了提高可靠性,只能努力缩短MTTR
D.如果设备各个部分的故障率都是α,则该设备的故障率就是。
参考答案:
A
有效性是指系统能够正常运行的时间比例。
经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。
有效性的计算公式如下。
有效性=MTTF/(MTTF+MTTR)×100%其中MTTF指平均失效等待时间,MTTR指失效平均修复时间。
试题中MTBF指平均失效间隔时间MTBF,在这三者之间,有如下公式成立。
MTBF=MTTF+MTTR因此,如果缩短MTTR,也就缩短了MTBF。
而延长MTBF和缩短MTYR,都可延长MTYF,再根据有效性的计算公式,这样可以提高有效性。
随着系统零部件的老化,其MTBF将越来越短,因此答案C是错误的。
同时,根据零部件的组合方式不一样(串联或并联),设备的故障率不一定等于各部件的故障率。
软件的维护并不只是修正错误。
为了满足用户提出的增加新功能、修改现有功能以及一般性的改进要求和建议,需要进行(45) ,它是软件维护工作的主要部分;