软件工程 课程复习题
一、单选题
1、软件生存周期模型有多种,下列选项中,(C)不是软件生存周期模型。
A.螺旋模型 B.增量模型 C.功能模型 D.瀑布模型
A.螺旋模型 B.增量模型 C.功能模型 D.瀑布模型
2、检查软件产品是否符合需求定义的过程称为(D)。
A.集成测试 B.确认测试 C.验证测试 D.验收测试
A.集成测试 B.确认测试 C.验证测试 D.验收测试
3、黑盒测试是从( C )观点出发的测试,白盒测试是从( A )观点出发的测试。
A.开发人员 B.管理人员 C.用户
A.开发人员 B.管理人员 C.用户
4、可行性研究要进行一次(D)需求分析。
A.深入的 B.详尽的 C.彻底的 D.简化的、压缩了的
5、回归测试是( A )中最常用的方法。
A.校正性维护 B.适应性维护 C.完善性维护 D.预防性维护
6、与选择编程语言无关的因素是( C ) 。
A.软件开发的方法 B.软件执行的环境 C.程序设计风格 D. 软件开发人员的知识
7、面向对象程序设计将数据与 ( A )放在一起,作为一个相互依存、不可分割的整体来处理。
A.对数据的操作 B.信息 C.数据隐藏 D.数据抽象
8、软件生存周期的( D )工作和软件可维护性有密切的关系 。
A.编码阶段 B.设计阶段 C.测试阶段 D. 每个阶段
9、好的软件结构应该是( C ) 。
A.高耦合,高内聚 B.高耦合,低内聚 C.低耦合,高内聚 D. 低耦合,低内聚
10、在快速原型模型的开发过程中,仅作为需求说明的补充形式的原型是(A)
A.探索型模型 B.演化型模型 C.实验型模型 D.提交型模型
A.探索型模型 B.演化型模型 C.实验型模型 D.提交型模型
11、软件结构图的形态特征能反映程序重用率的是(C)
A.深度 B.宽度 C.扇入 D.扇出
A.深度 B.宽度 C.扇入 D.扇出
12、需求分析最终结果是产生(B)
A.项目开发计划 B.需求规格说明书 C.设计说明书 D.可行性分析报告
A.项目开发计划 B.需求规格说明书 C.设计说明书 D.可行性分析报告
13、分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的( C )。
A.总体 B.细节 C.抽象 D.分解
14.可行性研究要进行一次 需求分析。 答案为:D
A.深入的 B.详尽的 C.彻底的 D.简化的、压缩了的
2.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作 B 。 答
A.软件投机 B.软件危机 C.软件工程 D. 软件现象
15.产生软件维护的副作用,是指 。 答案为:C
A.开发时的错误 B.隐含的错误 C.因修改软件而造成的错误 D.运行时误操作
16.维护中,因误删除一个标识符而引起的错误是_________副作用。 答案为:C
A.文档 B.数据 C.编码 D.设计
17.可维护性的特性中相互促进的是 答案为:A
A.可理解性和可测试性 B.效率和可移植性 C.效率和可修改性 D.效率和结构好
18.需求分析最终结果是产生 答案:B
A.项目开发计划 B.需求规格说明书 C.设计说明书 D.可行性分析报告
7._____是以提高软件质量为目的的技术活动。 答案为:D
A.技术创新 B.测试 C.技术创造 D.技术评审
19.面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析、设计和实现一个软件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法和过程。因此面向对象方法有许多特征,如软件系统是由对象组成的________;对象彼此之间仅能通过传递消息互相联系;层次结构的继承。 答案为:C
A.开发过程基于功能分析和功能分解 B.强调需求分析重要性
C.把对象划分成类,每个对象类都定义一组数据和方法
D.对既存类进行调整
20.原型化方法是用户和设计者之间执行的一种交互构成,适用于______系统。 答案为:A
A.需求不确定性高的 B.需求确定的 C.管理信息 D.实时
21.为了提高测试的效率,应该 。答案为:D
A.随机地选取测试数据 B.取一切可能的输入数据作为测试数据
C.在完成编码以后制定软件的测试计划 D.选择发现错误可能性大的数据作为测试数据
二、填空题
pascal语言面向对象吗1、. 需求分析阶段 阶段决定了系统做什么,软件设计阶段 阶段决定系统如何具体实现的方案,编码阶段 是系统实现的过程,软件测试阶段 阶段是对实现的系统是否正确的检验,软件维护阶段 阶段是出开发阶段遗留下来的错误,而且随着用户要求的增加,环境的变化,对系统进行改造。
2、设计分为概要设计和详细设计两大步骤。
3、集成测试的方法主要有 渐增式 测试和 非渐增式 测试两种。
4、软件设计要遵守“抽象,分解,低藕合高内聚,封装,接口和实现分离”的设计原理。
5、测试阶段是在代码编写完成以后,先作单元测试,然后是集成测试、系统测试和验收测试。
7、软件维护的内容有: 纠正性维护、适应性维护、完善性维护和预防性维护。
8、一般而言,在面向对象建模过程中,人们最常用的是建立系统的用例图、类图和顺序图。
9、“四种开发方法”是指“面向过程的方法、面向对象的方法、面向数据的方法、形式化方法”
10、“五个面向理论”是指“面向流程分析、面向数据设计、面向对象实现、面向功能测试、面向过程管理”。
11、结构化分析方法是需求分析中使用最多的方法之一,适用于数据处理类型软件的需求分析。基本思想是采用 自顶向下 , 逐层分解的方法分析整个系统,有效地控制系统开发的复杂性。
12、内聚性 是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。
13、在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、 判定树 。
14、结构化语言是介于自然语言和 形式语言 之间的一种半形式语言。
15、模块设计的基本原则是要尽量使用数据耦合 ,减少控制耦合,限制外部耦合和公共耦合,不使用 内容耦合 。
16.系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的( 信息流动 )情况。
17.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和(宽度优先策略) 。
18.详细设计的任务是确定每个模块的内部特性,即模块的算法、( 使用的数据)。
19.有两类维护技术:在开发阶段使用来减少错误、提高软件可维护性的面向维护的技术;在维护阶段用来提高维护的效率和质量的( 维护支援 )技术。
20.科学工程计算需要大量的标准库函数,以便处理复杂的数值计算,可供选择的语言有:(FORTRAN语言)、PASCAL语言、C语言和PL/1语言。
三 、名词解释
1.经济可行性
答:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。
2.社会可行性
答:要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。
3.元数据、实体、中间数据
答:元数据是组织数据的数据,描述数据的数据,关于数据的数据。实体(指实体集或实体型),是一组相关元数据的集合。中间数据是组织统计数据的数据,描述统计数据的数据,关于统计数据的数据。
4.软件维护定义:
答:所谓软件维护,就是在软件产品安装、实施并交付给用户使用后,在新版本产品升级之前,这段时间里软件厂商向客户提供的服务工作,称为该软件产品的软件维护。
四、判断题
某软件公司拟采取下述措施提高他们开发出的软件产品的可维护性。请判断哪些措施是正确的,哪能些是不正确的,并简单说明理由。
1、在分析用户需求时同时考虑维护问题。
2、测试完程序后,删去程序中的注解以缩短源程序长度。
3、在软件开发过程中保证各阶段文档的正确性。
4、编码时多用全局变量。
5、选用时间效率和空间效率尽可能高的算法。
6、尽可能利用硬件特点以提高程序效率。
7、尽可能使用高级语言编写程序。
8、进行总体设计时加强模块间的联系。
9、尽量减少程序模块的规模。
10、用数据库系统代替文件系统来存储需要长期保存的信息。
11、用CASE环境或程序自动生成工具来自动生成一部分程序。
12、尽量用可重用的软件构件来组装程序。
13、使用先进的软件开发技术。
14、采用防错程序设计技术,在程序中引入自检能力。
答:1、正确。在分析用户需要的同时考虑维护问题,列出将来可能变更或增加的需求,就可以在设计时为将来可能做的修改预先做一些准备,使得在用户确实提出这些维护要求时,实现起来比较容易一些。
2、不正确。程序中的注解是提高程序可理解性的关键的内部文档,删去文档的注解必然会降低程序的可读性和可理解性,从而降低软件的可维护性。
3、正确。完整准确的文档对提高软件的可理解性有重要贡献,保证文档的正确性是提高软件可维护性的关键。
4、不正确。程序中使用的全局变量多,不仅违背局部化原理而且会使得具有公共环境耦合的模块数量增多,从而降低程序的可理解性、可修改性和可测试性,因此,这样的软件可维护性较差。
5、不正确。一般说来,效率高的算法的可理解性较差,选用效率尽可能高的算法将降低软件的可维护性。事实上,程序的效率能够满足用户的需求就可以了,没有必要盲目地追求尽可能高的效率。
6、不正确。程序对硬件特点依赖越多,运行程序的硬件变更时适应性维护的工件量也就越大。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论