模拟试题(二)
1.软件工程过程
2.软件生存周
3.数据字典
4.模块化
5.信息隐蔽
6.基线
7.桩模块
8.软件可维护性
9.对象
10. 继承性
二、填空题(20分,每小题2分)
1. 是描述软件开发过程中各种活动如何搪行的模型。
2.必须在软件交付之前对整个 进行 ,以减少文档副作用
3.可行性研究需要从以下三个方面分析研究每种解决方法的可行性: 、 、 。
4.软件开发环境是相关的一组 组合,它支持一定的 或按照一定的 、组织而成。
5.在SA方法的需求描述工具中, 描述系统的分解,即描述系统由哪几部分组成,各部分之间有什么联系等等; 定义了数据流图中每一个图形元素;结构化语言、判定表或判定树则详细描述、数据流图中不能被再分解的 。
6.衡量模块的独立性的两个定性的度量标准是 和 。
7.详细描述处理过程常用三种描述工具: 、 和 。
8.在软件的体系结构中,模块是可组合、分解和更换的单元。模块具有以下几种基本属性: 、 、 、 。
9.任何程序都可由 、 、 三种基本控制结构构造。
10. 动态测试方法中根据测试用例的设计方法不同,分为 与 两类。
三、单项选择题(20分,每小题1分)
1.在结构化分析方法中,用以表达系统内数据的运动情况的工具有 。
A。数据流图B。数据词典C。结构化英语D。判定树与判定表
2.结构化分析方法(SA)是一种面向 的需求分析方法。
A。对象B。数据结构C。数据流D。控制流
3.块间的信息可以作“控制信息”用,也可以作为 使用。
A。控制流B。数据结构C。控制结构D。数据
4.在对数据流的分析中,主要是找到中心变换,这是从 导出结构图的关键。
A。数据结构B。实体关系C。数据流图D。E-R图
5.模块 定义为受该模块内一个判断影响的所有模块集合。
A。控制域B。作用域C。宽度D。接口
6.在进行软件结构设计时应该遵循的最主要的原理是 原理。
A。抽象B。模块化C。模块独立D。信息隐藏
7.JACKSON方法根据 来导出程序结构。
A。数据结构B。数据间的控制结构C。数据流图D。IPO图
8.在设计测试用例时, 是用的最多的一种墨盒测试方法。
A。等价类划分B。边值分析C。因果图D。判定表
9.因果图方法是根据 之间的因果关系来设计测试用例的。
A。输入与输出B。设计与实现C。条件与结果D。主程序与子程序
10。在进行软件测试时,首先应当进行单元测试,然后再进行 ,最后再进行有效性测试。
A。组合测试B。集成测试C。有效性测试D。确认测试
11。由于软件项目的确特点和运行原型的目的不同,原型有三种不同的作用类型:探索型、 、和进化型。
A。实验型B。经验型C。追加型D。废弃型
12。原型的使用和开发过程,叫做 。
A。原型期B。原型生存期C。原型周期D。以上说法都不对
13。在考察系通讯录的一些涉及时序和改变的状况时,要用动态模型来表示。动态模型着重于系统的控制逻辑,它包括两个图:一个是事件追踪图,另一个是 。
A。数据流图B。状态图C。系统结构图D。时序图
14。RUMBANGH等人提出的对象模型技术OMT把分析时收集的信息构造在三类模型中,即对象模型、动态模型和 。
A。信息模型B。控制模型C。功能模型D。行为模型
15。软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫 。
A。生存期B。面向对象设计C。面向对象程序设计D。面向对象分析
16。质量保证是为了保证产品和服务充分满足消费者要求的质量而进行的有讲划、有组织的活动。质量保证是为了使产品实现 的功能。
A。系统分析员B。程序员C。软件开发者要求D。用户要求
17。 是以提高软件质量为目的的技术活动。
A。技术创新B。测试C。技术改造D。技术评审
18。按照软件配置管理的原始指导思想,受控制的对象应是 。
A。软件元素B。软件配置项C。软件项目D。软件过程
19。软件开发环境是相关的一组 集合。
A。软件环境B。软件过程C。软件工程D。软件工具
20。软件开发环境支持一定的 或按照一定的软件开发模型组织而成。
A。软件生存周期B。软件过程C。软件开发方法D。软件开发模型
四、简答题(30分,每小题5分)、
1.什么是软件工程?软件工程的性质是什么?
2.需求分析方法应遵循的原则是什么?
3.衡量模块独立性的两个标准是什么?它们各表示什么含义?
4.什么是确认测试?该阶段有哪些工作?
5.如何控制因修改而引起的副作用?
6.说明面向对象的特征。
五、应用题(10分)
用PAD图描述下面问题的控制结构。
有一个表A(1)A、A(2),。。。A(N)按递增顺序排列。给定一个KEY值,在表中用折半法查找。若找到,将表位置I送入X,否则将零送到X,同时将KEY值插入表中。
软件工程模拟试题(二)参考答案
一. 名词解释
1. 软件工程获取,供应,开发,操作和要实施的过程,活动和任务.
2. 软件生存周期是指一个软件从提出开发要求开始直到该软件报废为止的整个时期.
3. 数据字典(Data Dictionary, 简称DD)就是用来定义数据流图中的各个万分的具体含义的,它以一种准确的,无二义性的说明方式为系统的分析,设计及维护提供了有关元素的一致的定义和详细的描述.
4. 模块化是指解决一个复杂问题自顶向下逐层把软件系统划分成若干模块的过程.每个模块完成一个特定的妇功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能.
5. 信息隐蔽指在设计和确定模块时,使得一个模块内包含信息(过程或数据),对于不需要这些信息其他模块来说,是不以访问的.
6. 基线是软件生存期中各开发阶段的一个特定点,它的作用是使开发各阶段工作的划分更加明确化,使本来连续工作在这些点上断开,以便于检查与肯定阶段成果.
7. 桩模块用来代替被测试模块所调用的模块.它的作用是返回被测模块所需的信息.
8. 软件可维护性是指软件能够被理解,校正,适应及增强功能的容易程序.
9. 对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则,计划或事件.
10. 继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系.
二. 填空题
1. 软件生存周期模型
2. 软件配置 评审
3. 技术可行性 经济可行性 社会可行性
4. 软件工具 软件开发方法 软件开发模型
5. 数据流图 数据字典 每一个加工
6. 耦合性 内聚性
7. 图形 表格 语言
8. 接口 功能 逻辑 状态
9. 顺序 选择 重复
10. 黑盒测试 白盒测试
三. 单项选择
1.A 2.C 3.D 4.C 5.B 6.C 7.A 8.A 9.A 10.B
11.A 12.B 13.B 14.C 15.D 16.D 17.D 18.B 19.D 20.C
四. 简答题
1.答:软件工程用科学知识和技术原理来定义,开发,维护软件的一门学科.
软件工程一门综合性的交叉学科,它涉及计算机科学,工程科学,管理科学,数学等领域.计算机科学中的研究成果均可用于软件工程,但计算机科学着重原理和理论,而软件工程着重于如何建造一个软件系统.软件工程用工程科学中的观点来进行费用估算,制定进度,制定计划和方案.软件工程用管理科学中的方法和原理进行软件生产的管理.软件工程要用数学的方法建立软件开发中的各种模型和各种法,如可靠性模型,说明用户需求的形式性模型等.
2.答:有许多软件需求分析与说明的方法(如结构化分析方法和面向对象分析方法),每一种分析方法都有独特的观点和表示法,但都适用下面的基本原则。
(1。)必须能够表达和理解问题的数据域和功能域。数据域包括数据流(即数据通过一个系统时的变化方式)、数据内容和数据结构,而功能域反映上述三方面的控制信息。
(2)可以把一个复杂问题按功能进行分解并可逐层细化。通常软件要处理的问题如果太大太复杂就很难理解,划分成几部分,并确定各部分间的接口,就可完成整体功能。在需求分析过程中,软件领域中的数据、功能、行为都可以划分。
(3)建模。建立模型可以帮助分析人员更好地理解软件系统的信息、功能、行为,这些模型也是软件设计的基础。
3.答:衡量模块的独立性的标准是两个定性的度量标准:耦合性和内聚性。
(1)耦合性。也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。
(2)内聚性。又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语句之间、程序段之间)的联系越紧密,则它的内聚性就越高。
耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。
4.答:确认测试又称有效性测试。它的任务是检查软件的功能与性能是否与需求规格说明书中确定的指标相符合。因而需求规格说明是确认测试的基础。 ‘
确认测试阶段有两项工作:进行确认测试与软件配置审查o
(1)进行确认测试。确认测试一般是在模拟环境下运用黑盒测试方法,由专门测试人员和用户参加的测试。确认测试需要需求规格说明书、用户手册等文档,要制定测试计划,确定测试的项目,说明测试内容,描述具体的测试用例,测试用例应选用实际运用的数据。测试结束后,应写出测试分析报告。
经过确认测试后,可能有两种情况:①功能、性能与规格说明一致,该软件系统是可以接受的。②功能、性能与规格说明有差距,要提交一份问题报告。对这样的错误进行修改,工作量非常大,必须同用户协商。 ,
(2)软件配置审查。软件配置审查的任务是检查软件的所有文档资料的完整性、正确性,如发现遗漏和错误,应补充和改正。同时要编排好目录,为以后的软件维护工作奠定基础。
5.答:为了控制因修改而引起的副作用,要做到:(1)按模块把修改分组;(2)自顶向下地安排被修改模块的顺序;(3)每次修改一个模块;(4)对每个修改了的模块,在安排修改下一个模块之前要确定这个修改的副作用,可使用交叉引用表、存储映像表、执行流程跟踪等。
6.答:面向对象的特征:
(1)对象惟一性。每个对象都有自身惟一的标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。在对象建立时,由系统授予新对象以惟一的对象标识符,它在历史版本管理中有巨大作用。
(2)分类性。分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。每个类是具有相同性质的个体对象的集合,而每个对象是相关类的实例。
(3)继承性。继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。 .
继承性是面向对象程序设计语言不同于其他语言的最主要的特点,是其他语言所没有的。在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承o
(4)多态性(多形性)。多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。
多态性允许每个对象以适合自身的方式去响应共同的消息。这样就增强了操作的透明性、可理解性和可维护性。用户不必为相同的功能操作但作用于不同类型的对象而费心去识别。