书中有银如玉
2012年10月全国自考软件工程模拟试题和答案(二)
一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中
只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1. 软件管理比其他工程管理更为()
A. 容易
B. 困难
C. 迅速
D. 迟缓
答案:B
2. 以下说法错误的是()
A. McCabe度量法对于不同种类的控制流的复杂性不能区分
B. McCabe度量法将简单IF语句与循环语句的复杂性分别看待
C. McCabe度量法对于嵌套IF语句与简单CASE语句的复杂性是一样的
D. McCabe度量法将模块接口当成一个简单分支一样处理
答案:B
3. 早期的软件工具只能完成一件特定的任务,后来出现了工作台,它将一组工具组合在一起
,对软件开发过程的某些方面提供支持。()是工作台的发展,其目的在于为软件开发提供完整的和一致的支持。
A. 软件开发环境
B. 软件
C. 工具
D. 工作台
答案:A
4. 表示连接的系统流程图的符号是()
A. A
B. B
C. C
D. D
答案:B
书中有银如玉5. Jackson方法是一种面向()的方法。
A. 对象
B. 数据结构
C. 数据流
D. 控制流
答案:B
6. IDEF图从各个侧面反映系统()
A. 怎么做
B. 做什么
C. 对谁做
D. 何时做
答案:B
7. 需求规格说明书的作用不应包括()
A. 软件设计的依据
B. 用户与开发人员对软件要做什么的共同理解
C. 软件验收的依据
D. 软件可行性研究的依据
答案:D
8. 以下说法错误的是()
A. MTTF是一个描述失效模型或一组换效特性的指标量
B. MTBF是指两次相继失效之间的平均时间
C. MTBF在实际使用时通常指当n很大时,系统第n次失效与第n+1次失效之间的平均时间
D. 对于失效率为常数和修复时间很短的情况,MTTF与MTBF差别很大
答案:D
9. 在软件结构设计的后处理中,下列说法错误的是()
A. 为模块写的处理说明及接口说明可采用IPO图
B. 数据结构的描述可用Warnier图或Jackon图
C. 给出设计约束或限制。如数据的边界值,数据类型、格式、内存容量及时间的限
D. 设计的优化工作主要放在软件结构设计的后处理阶段
答案:D
10. 以下说法错误的是()
A. GB指中华人民共和国国家军用标准
B. ANSI指美国国家标准协会
C. BS指英国国家标准
D. DIN指德国标准协会
答案:A
11. 以下说法错误的是()
A. 多态性防止了程序相互依赖性而带来的变动影响
B. 多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果
C. 多态性与继承性相结合使软件具有更广泛的重用性和可扩充性
D. 封装性是保证软件部件具有优良的模块性的基础
答案:A
12. 软件的集成测试最好由()承担,以提高集成测试的效果。
A. 该软件的设计人员
B. 该软件开发组的负责人
C. 该软件编程人员
D. 不属于该软件开发组的软件设计人员
答案:D
13. 自顶向下估算方法的主要优点是对()工作的重视,所以估算中不会遗漏系统级的成本估算,估算工作量小、速度快。它的缺点是往往不清楚()上的技术性困难问题,而往往这些困难将会使成本上升。
①成本估算②系统级③低级别④工程管理
A. ①和②
B. ②和③
C. ③和④
D. ②和④
答案:B
14. 对于过程设计语言,下面说法错误的是()
A. PDL的总体结构与一般程序完全相同
B. PDL的外语法同相应程序语言一致
C. PDL的内语法使用自然语言,虽不能转换成源程序,但可作为注释嵌入在源程序中
D. PDL的内语法使用自然语言,虽不能转换成源程序,但可作为注释嵌入在源程序中
答案:C
15. 支持像设计、实现或测试等特定的软件开发阶段的CASE工作台是一组()
A. 工具集
B. 软件包
C. 平台集
D. 程序包
答案:A
16. 为了提高测试的效率,应该()
A. 随机地选取测试数据
B. 取一切可能的输入数据作为测试数据
C. 在完成编码以后制定软件的测试计划
D. 选择发现错误可能性大的数据作为测试数据
答案:D
17. 面向数据流的设计方法把()映射成软件结构。
A. 数据流
B. 系统结构
C. 控制结构
D. 信息流
答案:A
18. 软件工程是计算机科学中的一个分支,其主要思想是在软件生产中用()的方法代替传统手
工方法。
A. 工程化
B. 现代化
C. 科学
D.
智能化
答案:A
19. 下列说法完全正确的是()
A. HIPO图可以描述软件总的模块层次结构——IPO图
B. HIPO图可以描述每个模块输入/输出数据、处理功能及模块调用的详细情况—H图
C. HIPO图以模块分解的层次性以及模块内部输入、处理、输出三大基本部分为基础建立的
D. H图说明了模块间的信息传递及模块内部的处理
答案:C
20. 对于软件测试时需要的三类信息,以下完全正确的解释是()
A. 软件配置:指需求规格说明书、设计说明书、测试用例等
B. 测试配置:指测试方案、测试驱动程序、源程序等
C. 测试工具:指计算机辅助测试的有关工具
D. 上述说法都不正确
答案:C
二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。错填、不填均无分。
1. 判定树较判定表直观易读,判定表进行逻辑验证较严格,能把所有的可能性全部都考虑到
。可将两种工具结合起来,先用作底稿,在此基础上产生。
答案:判定表;判定树
2. 数据流图中,每个加工至少有个输入流和个输出流。
答案:1,1
3. 同一个类中的共享是指同一个类中的对象有着相同和相同的。
答案:数据结构行为特征
4. 建立数据字典一般的两种形式是和。
答案:手工建立利用计算机辅助建立并维护
5. 汇编语言是面向的,可以完成语言无法满足要求的特殊功能,如与外部设备之间的
一些接口操作。
答案:机器高级
6. 软件开发划分的各阶段任务尽可能,同一阶段任务性质尽可能。
答案:相对独立相同
7. 是描述软件开发过程中各种活动如何执行的模型。
答案:软件生存周期模型2
8. Jackson结构图能对结构进行分解,因此可以表示。
答案:自顶向下层次结构
9. 在一个模块中,反映模块的外部特性,逻辑反映它的内部特性。
答案:功能、状态与接口
10. 工程网络图只有一个开始点和一个终止点,开始点没有流入箭头,称为为零。终止点
没有流出箭头,称为为零。
答案:入度出度
三、名词解释题(本大题共5小题,每小题3分,共15分)
1. 非渐增式测试答案:非渐增式测试首先对每个模块分别进行单元测试,然后再把所有的模
块按设计要求组装在一起进行测试。
2. 附加策略答案:附加策略是将原型用于开发的全过程,原型由最基本的核心开始,逐步增
加新的功能和新的需求,反复修改反复扩充,最后发展为用户满意的最终系统。
3. 软件概要设计答案:进入了设计阶段,要把软件“做什么”的逻辑模型变换为“怎么做”
的物理模型,即着手实现软件的需求,并将设计的结果反映在“设计规格说明书”文档中,所以软件设计是一个把软件需求转换为软件表示的过程,最初这种表示只是描述了软件的总的体系结构,称为软件概要设计或结构设计
4. 经济可行性答案:对组织的经济状况和投资能力进行分析,对系统建设,运行和维护费用
进行估算,对系统建成后可能取得的社会及经济效益进行估计。
5. IDEF方法答案:IDEF方法是美国空军在1981年针对集成化计算机辅助制造(简称ICAM)工程
项目中用于进行复杂系统分析和设计的方法,是在结构化分析与设计技术的基础上提出来的。
四、简答题(本大题共4小题,每小题5分,共20分)
1. 非渐增式测试与渐增式测试有什么区别?渐增式测试如何组装模块? 答案:渐增方式与非
渐增方式测试的方法有以下区别: (1)非渐增式方法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单元测试
,后一阶段完成集成测试。而渐增式测试往往把单元测试与集成测试合在一起,同时完成。 (2)非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量较少。 (3)渐增式可以较早地发现接口之间的错误,非渐增式最后组装时才发现。 (4)渐增式有利于排错,发生错误往往和最近加进来的模块有关,而非渐增式发现接口错误推迟到最后,很难判断是哪一部分接口出错。 (5)渐增式比较彻底,已测试的模块和新的模块再测试。 (6)渐增式占用的时间较多,但非渐增式需更多的驱动模块、桩模块也占用一些时间。 (7)非渐增式开始可并行测试所有模块,能充分利用人力,对测试大型软件很有意义。渐增式测试有以下两种不同的组装模块的方法: (1)自顶向下组合。该方法只需编写桩模块,其步骤是从顶层模块开始,沿被测程序的软件结构图的控制路径逐步向下测
试,从而把各个模块都结合进来,它又有两种组合策略:
①深度优先策略:先从软件结构中选择一条主控制路径,把该路径上的模块一个个结合进来进行
测试,以便完成一个特定的子功能,接着再结合其它需要优先考虑的路径。
②宽度优先策略:逐层结合直接下属的所有模块。 (2)自底
向上结合。该方法仅需编写驱动模块。其步骤为:
①把低层模块组合成实现一个个特定子功能的族。②为每一个族编写一个驱动模块,以协调测试
用例的输入和测试结果的输出。③对模块族进行测试。④按软件结构图依次向上扩展,用实际模块替换驱动模块,形成一个个更大的族。⑤重覆②至④步,直至软件系统全部测试完毕。
2. 什么是软件危机?其产生的原因是什么? 答案:当软件开发技术的进步不能跟上硬件技术的
进步,未能满足发展的要求,致软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。主要表现为:
(1)经费预算经常突破,完成时间一再拖延;
(2)开发的软件不能满足用户要求; (3)开发
的软件可维护性差; (4)开发的软件可靠性
差。
造成软件危机的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的。其产生原因主要有以下几方面: (1)软件的
规模越来越大,结构越来越复杂; (2)软件开
发管理困难而复杂;
(3)软件开发费用不断增加;
(4)软件开发技术落后; (5)生产方式
落后; (6)开发工具落后,生产率提高
缓慢。
3. 简述SA方法的优缺点? 答案:结构化分析方法是软件需求分析中公认的、有成效的、技术
成熟、使用广泛的一种方法
,它较适合于开发数据处理类型软件的需求分析。该方法利用图形等半形式化工具表达需求,简明、易读,也易于使用,为后一阶段的设计、测试、评价提供了有利的条件。但SA方法也存在有不足之处:(1)传统的SA方法主要用于数据处理方面的问题,主要工具DFD体现了系统“做什么”
的功能,但它仅是一个静态模型,没有反映处理的顺序,即控制流程。因此,不适合描述实时控制系统。(2)SA方法使用DFD在分析与描述“数据要求”方面是有限的,DFD应与数据库技术中的实体联系图(ER图)结合起来。(3)DFD不适合描述人机界面系统的需求。SA方法则对这一部分用自然语言作补充,对这类系统可采取其他的分析方法。 (4)为了更精确地描述软件需求,提高软件系统的可靠性、安全性,也便于实现自动化,SA方法可与形式化方法结合起来。
4. 软件设计的基本原理包括哪些内容? 答案:模块化。指解决一个复杂问题时自顶向下逐层把
软件系统划分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。模块化是软件解决复杂问题所具备的手段。
抽象。抽象是认识复杂现象过程中使用的思维工具即抽出事物本质的共同的特性而暂不考虑它的细节,不考虑其它因素。软件工程过程中的每一步都可以看作是对软件解决方法的抽象层次的一次细化。信息隐蔽。信息隐蔽指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其它模块来说,是不能访问的。通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的存取限制。模块独立性。模块独立性指每个模块只完成系统要求的独立的子功能,并且与其它模块的联系最少且接口简单。
五、应用题(本大题共2小题,第1小题10分,第2小题15分,共25分)
1. 下图是某系学籍管理的一部分,(a)、(b)分别是同一模块A的两个不同设计方案,你认为哪
一个设计方案较好?请陈述理由。
答案:(b)图的设计方案好。因为(a)图中模块B的功能是取平均成绩或最高成绩,包含两个功能,内聚弱,与模块A的耦合是控制耦合,耦合程度较高,模块的相对独立性差。而在(b)图中,模块B分解为两个功能相对独立的模块B1和B2,模块B1和B2的内聚程度高,模块B1和B2与A之间的耦合是数据耦合,耦合程度较低,因此,模块的独立性好。所以(b)图的设计方案好。
2. 某图书管理系统有以下功能: (1)借书:输入读者借书证。系统首先检查借书证是否有效,若有效,对于第一次借书的读者
,在借书文件上建立档案。否则,查阅借书文件,检查该读者所借图书是否超过10本,若已达10本,拒借,未达10本,办理借书(检查库存、修改库存目录并将借书情况登入借书文件)。 (2)还书:从借书文件中读出与读者有关的记录,查阅所借日期,如果超期(3个月)作罚款处理。否则,修改库存目录与借书文件。 (3)查询:可通过借书文件、库存目录文件查询读者情况、图书借阅情况及库存情况,打印各种统计表。
请就以上系统功能画出分层的DFD图,并建立重要条目的数据字典。
答案: