软件工程期末考试试题及参考答案
一、单向选择题
1、软件的发展经历了(D)个发展阶段。
- 一
- 二
- 三
- 四
2、需求分析的任务不包括(B)。
- 问题分析
- 系统设计
- 需求描述
- 需求评审。
3、一个软件的宽度是指其控制的(C)。
- 模块数
- 层数
- 跨度
- 厚度
4、当模块中包含复杂的条件组合,只有(A)能够清晰地表达出各种动作之间的对应关系。
- 判定表和判定树
- 盒图
- 流程图
- 关系图
5、以下不属于逻辑覆盖的是(D)
- 语句覆盖
- 判定覆盖
- 条件覆盖
- 基本路径
6、为适应软件运行环境的变化而修改软件的活动称为(B)
- 纠错性维护
- 适应性维护
- 改善性维护
- 预防性维护
二、填空题
-
- 软件可靠性是指在给定的时间间隔内,程序成功运行的(概率)
- 高级语言:独立于机器,面向过程或面向(对象)
- 软件项目管理的范围主要集中于3个P上,即:People人员、Problem问题和(过程)
- 人机界面的风格第一代界面是命令和(询问)方式
- 由于维护或在维护过程中其他一些不期望的行为引入的错误称为维护的(副作用)
- 在公式V(G)= E – N + 2中:E为程序图G中边的总数; N 为程序图中结点的总数。V(G)又称为图G的环形(复杂度)
- 任何一个基于计算机系统都可以用输入-处理-输出(IPO)图来描述,它将该系统转换成一个信息变换模型
- 为提高可交互性一般对所有可能造成损害的用户操作动作,应坚持要求用户(确认),例如,提问“你确实要删除…?”
- 文档是一种数据媒体和其上所记录的(数据)
三、判断题(每小题2分,共24分,错误打X、正确打√)
- 用户对软件需求的描述不精确,往往是产生软件危机的原因之一。(√)
- 目前,软件项目的进度安排的两种比较常用的方法是程序评估与审查技术(PERT)和关键路径法(CPM)。(√)
- 一个好的开发人员应具备的素质和能力包括善于与周围人员团结协作,建立良好的人际关系,善于听取别人的意见。(√)
- 目前的绝大多数软件都不适合于快速原型技术。(X
- 面向数据的设计方法适用场合是具有明显的层次信息结构的应用如:企事业的信息管理系统;系统软件(如操作系统)等。(√)
- 缺乏处理大型软件项目的经验。是产生软件危机的唯一原因。(X)
- 通常紧致性好的语言一致性就好。(X)
- 测试计划、测试用例、出错统计和有关的分析报告一般不用长期保存。(X)1401
- 数据输入的一般准则中包括保证信息显示方式与数据输入方式的协调一致;允许用户定做输入格式等内容。(√)
- 软件也会磨损和老化。(X)
- 完善性维护是提高或完善软件的性能。(√)
- McCabe建议模块规模应满足:V(G)≤20。(X)
四、简答题(每小题4分,共20分)
1、程序设计语言的三种类型和特点是什么?
- 机器语言、汇编语言:依赖于机器,面向机器
- 高级语言:独立于机器,面向过程或面向对象
- 面向问题语言:独立于机器,非过程式语言(4GL) (2分)
2、软件危机
是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题
3、软件项目的质量管理——制定软件质量保证计划,按照质量评价体系控制软件质量要素,对阶段性的软件产品进行评审,对最终软件产品进行确认,确保软件质量
4、好的编程风格应遵循哪四条规则?
1)节简化
2)模块化
3)简单化
4)文档化
5、软件测试中按照错误的性质和范围进行分类可分为:“功能错误”及其它哪些错误?
- 系统错误
- 加工错误(算法错误)
- 数据错误
- 代码错误
五、综合题(每小题10分,共20分)
1、选择语言时要考虑的因素有:项目的应用领域、项目中算法、计算的复杂性和其余哪些内容?
答:
1)项目中数据结构的复杂性
2)用户的性能需求
3)软件运行的环境
4)软件开发人员开发水平
5)可用的编译器和交叉编译器
2、已知一个软件项目的记录,开发人员M=3人,其代码行数=12.1KLOC,工作量E=24PM,成本S=168000美元,错误数N=29,文档页数Pd=365页。试计算开发该软件项目的生产率P、平均成本C、代码出错率EQR和文档率D
解: 1.软件开发的生产率P为:
P = L / E = 12.1×103LOC / 24PM = 504 LOC/PM
2.开发每行代码的平均成本C为:
C = S / L = 168000美元 / 12100LOC=13.9美元/LOC
3.代码出错率EQR为:
EQR = N / L = 29个/12.1KLOC=2.4个/KLOC
4.软件的文档率D为:
D = Pd / L = 365页 / 12.1KLOC = 30页/ KLOC
《软件工程》试题及参考答案
一、单向选择题(四选一、每小题3分,共18分)
1、对在数据流图中每一个命令的图形元素均给以定义是(B)
A、条目定义
B、数据字典
C、数据定义
D、数据说明
2、软件的可行性研究中不包括(D)
A、法律可行性
B、技术可行性
C、经济可行性
D、政治可行性
3、根据用户在软件使用过程中提出的建设性意见而进行的维护活动称为(C)
- 纠错性维护
- 适应性维护
- 改善性维护
- 预防性维护
4、人机界面的风格大致经过了(B)代的演变
三
四
五
六
5、以下不属于白盒测试技术的是(D)
逻辑覆盖
基本路径测试
循环覆盖测试
等价类划分
6、为改正软件系统中潜藏的错误而进行的维护活动称为(A)
纠错性维护
适应性维护
改善性维护
预防性维护
二、填空题(每空2分,共18分)
- 文档(document)—一种数据媒体和其上所记录的(数据)
- 机器语言、汇编语言:依赖于机器,面向(机器)
- 软件有效性(efficiency),指软件系统的时间和(空间)效率
- 软件定义过程可通过软件系统的(可行性研究)和需求分析两个阶段来完成
- 软件定义的基本任务是确定软件系统的工程(需求),也就是要搞清“做什么”
- 为了使用户需求逐步精细化、完全化、一致化,通常采用(需求建模技术)
- 一个软件的深度是指其控制的(层数)
- 以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算机可以理解并最终可运行的代码的过程叫(编码)过程
- 软件维护是软件生命周期的(最后)一个阶段
三、判断题(每小题2分,共24分,错误打X、正确打√)
- 缺乏有力的方法学的指导和有效的开发工具的支持, 这往往是产生软件危机的原因之一。(√)
- 一个好的开发人员应具备的素质和能力不包括具有良好的书面和口头表达能力。(X)
- 在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为了获取第一手资料,并从中提取出有价值的需求。(√)
- 快速原型技术适用于软件产品要求大量的用户交互、或产生大量的可视输出、或设计一些复杂的算法等场合。(√)
- 流程图也称为程序(框图)是最常用的一种表示法。(√)
- 面向数据设计方法一般都包括下列任务: 确定数据结构特征;用顺序、选择和重复三种基本形式表示数据等步骤。(√)
- 理想的人机界面应针对具有典型个性的特定的一类用户设计。(√)
- 数据输入的一般准则中包括尽量(增加)用户输入的动作。(X)
- 用穷举测试是较现实的测试方法。(X)
10、编码时应尽可能使用全局变量(X)
11、重视程序结构的设计,能使程序具有较好的层次结构(√)
12、程序中的注解越少越好( X )
四、简答题(每小题4分,共20分)
1、计算机软件——与计算机系统操作有关的程序、规程、 规则及任何与之有关的文档和数据
2、需求分析的任务是什么?
需求分析的任务是确定待开发的软件系统“做什么”。具体任务包括确定软件系统的功能需求、性能需求和运行环境约束,编制软件需求规格说明书、软件系统的验收测试准则和初步的用户手册。
3、软件项目的成本管理——估算软件项目的成本,作为立项和签合同的依据之一,并在软件开发过程中按计划管理经费的使用。
4、快速原型技术的基本思想是什么?
在软件开发的早期,快速开发一个目标软件系统的原型,让用户对其进行评价并提出修改意见,然后开发人员根据用户的意见对原型进行改进。
5、程序设计语言有哪些特点?
1)一致性
2)二义性
3)紧致性
4)局部性
五、综合题(每小题10分,共20分)
1、可将软件生存周期划分为哪3个过程和哪9个阶段。
(1)3个过程是:软件定义过程、软件开发过程、软件使用与维护过程。
(2)9个阶段有:可行性研究、需求分析、概要设计、详细设计、实现、组装测试、验收测试、使用与维护、退役。
2、画出与图1所示的程序流程图对应的流图,并试计算其环形复杂度V(G)。
解: (1)流图如(图2)所示:
(2)计算其环形复杂度:V(G)=E –N +2=13 –10 +2=5
(图一)
(图二)
《软件工程》试题及参考答案
一、单向选择题(四选一、每小题3分,共18分)
1、在设计测试用例时,应当包括(C)
A、合理的输入条件
B、不合理的输入条件
C、合理的和不合理的输入条件
D、部分条件
2、下列各项中不属于逻辑覆盖的是(D)
A、语句覆盖
B、判定覆盖
C、判定——条件覆盖
D、全部覆盖
3、高级语言通常被分成三类,其中不包括(D)
- 通用高级语言
- 面向对象的语言
- 专用语言
- 自然语言
4、Jackson方法在需求分析阶段的主要步骤不包括(A)
- 了解实体行为
- 标识实体与行为
- 生成实体结构图
- 创建软件系统模型
5、实践表明,确定发生错误的位置和内在原因所需的工作量几乎占整个调试工作量的(D)%
- 30
- 50
- 70
- 90
6、为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础的软件维护称为(D)
- 纠错性维护
- 适应性维护
- 改善性维护
- 预防性维护
二、填空题(每空2分,共18分)
- 软件的可互操作性,是指多个软件元素相互(通信)并协同完成任务的能力。
- 第三代语言也称为(高级)语言。1301
- 软件测试是软件投入运行(前),对软件需求分析、设计、实现的强有力的最终审查。1401
- 黑盒测试主要是测试软件是否满足(功能)需求。1402
- (调试)的目的是确定错误的位置和引起错误的原因,并加以改正。因此,又称为排错或纠错。1404
- 软件工程由方法、工具和(过程)三部分组成,称软件工程的三要素。
- 软件可追踪性(traceability),是指根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行(逆向)追踪的能力。
- 瀑布模型是由W. Royce于1970年提出来的。又称为软件(生存周期)模型。
- 程序设计语言的(可维护)性通常指这种语言编写的程序被理解,被修改及调整和改进的难易程度。1302
三、判断题(每小题2分,共24分,错误打X、正确打√)
- 文档可用于专业人员和用户之间的通信和交流;软件开发过程的管理; 运行阶段的维护。(√)0101
- 软件开发、设计几乎都是从头开始,成本和进度很难估计。(√)0101
- 适应性维护是改进软件未来的可维护性和可靠性。(X)0101
- 由于软件是逻辑产品,软件质量较容易直接度量。(X)0203
- V(G)值越高的程序往往是越不复杂、越不容易出问题的程序。(X)0204
- 目前我国还没有颁布软件开发标准。(X)0206
- 按照功能,软部件可划分为系统软件和应用软件两类。(√)0301
- 如果某子功能可以用一段简洁、精确的文字描述清楚,就无需进一步分解,是创建用户需求的数据流模型应遵循的规则。(√)0502
- 耦合度是对软件结构中模块间关联程度的一种度量。在设计软件时应追求尽可能紧密的耦合的系统。(X)0803
- 在面向对象设计阶段则着重完成“如何做”的问题,也就是着重考虑对象的实现细节。(√)1101
- 随着软件复杂性的不断提高,软件的维护难度越来越大。(√)1501
- 软件的可维护性差是软件维护工作量和费用激增的直接原因。(√)1505
四、简答题(每小题4分,共20分)
1、软件在使用过程中维护有哪几种?0101
1)纠错性维护
2)完善性维护
3)适应性维护
4)预防性维护
2、Coad/Yourdon面向对象的方法除了包含识别对象外还包括哪4个步骤?0702
标识对象的属性
标识对象的行为
识别对象所属的类
定义主题词
3、Jackson系统开发方法其核心思想是什么?0602
根据作用于数据的行为序列的结构(顺序、选择、重复),建立目标软件系统的模型,然后在软件设计阶段将模型转换为相应的程序结构。
4、设计人机界面,必须考虑哪四个方面。1202
系统的响应时间;
用户求助机制;
错误信息处理;
命令方式。
5、什么是测试用例?
为了进行有效的测试而设计的输入数据和预期的输出结果数据。1401
五、综合题(每小题10分,共20分)
1、SD方法能方便地将数据流图转换为软件结构,其过程分为哪五步?0901
1. 确定信息流的类型;
2. 划定流界;
3. 将数据流图映射为程序结构;
4. 提取层次控制结构;
5. 通过设计复审和使用启发式策略进一步精化所得到的结构。
2、已知有一个软件项目的记录,开发人员M=6人,其代码行数=20.2KLOC,工作量E=43PM,成本S=314000美元,错误数N=64,文档页数Pd=1050页。试计算开发该软件项目的生产率P、平均成本C、代码出错率EQR和文档率D。0201
解:根据给出的已知数据,可得:
P = L / E =20.2 KLOC /43 PM = 0.47 KLOC / PM
= 470 LOC / PM
C = S / L = 314000美元 / 20.2 KLOC
= 15.54 美元 / LOC
EQR = N / L = 64个 / 20.2KLOC = 3.17 个 / KLOC
D = Pd / L = 1050 页 / 20.2 KLOC = 51.98 页 / KLOC
《软件工程》试题及参考答案
一、单向选择题(四选一、每小题3分,共18分)
1、从事物的组成部件及每个部件的属性、功能来认识事物。这种方法被称为(A)的方法。0701
A、面向对象
B、面向数据
C、面向过程
D、面向属性
2、判定表由四部分组成:左上部列出(B)。0802
- 条件组合与动作之间的对应关系
- 所有条件
- 所有可能的动作
- 可能的条件组合
3、面向对象的分析和设计(OOA&OOD)方法出现在20世纪(C)年代中期。0701
- 50
- 60
- 70
- 80
4、耦合度也可以分为七级:其中最松散的耦合是(A)。0801
- 非直接耦合
- 数据耦合
- 特征耦合
- 控制耦合
5、面向对象方法是将现实世界的事物以对象的方式( B )到计算机世界的方法。0101
- 对应
- 映射
- 反映
- 反射
6、盒图也称为(D)或Chapin图。这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。0802
- 流程图
- 框图
- 判定表
- N-S图
二、填空题(每空2分,共18分)
- 软件工程由方法、(工具)和过程三部分组成,称软件工程的三要素。0101
- 软件可理解性,指系统具有清晰的结构,能直接反映问题的(需求)。0103
- 在实体-关系图简称E-R图中,数据对象实体用长方形、关系用(菱形)、属性用椭圆表示。0502
- 建立数据流模型要遵循的原则包括:每个加工至少应有一个输入数据流以反映被处理数据的来源和一个(输出)数据流来反映加工的结果。0503
- 从工程管理的角度软件设计可分为概要设计和(详细)设计两大步骤。0801
- 通过向用户提供视觉和听觉上的反馈,保持用户与界面间的双向通信,是提高界面可(交互)性的措施之一。1204
- 程序设计语言的可靠性是指程序设计语言本身不出错或对错误的(纠正)能力。1302
- 对发现错误较多的程序模块,应进行(重点)测试。1401
- 测试用例中,不仅要选择合理的输入数据,还要选择(不合理)的输入数据。1401
三、判断题(每小题2分,共24分,错误打X、正确打√)
- 纠错性维护是改正运行期间发现的潜伏错误。(√)0101
- 软件可移植性(portability),是指软件从一个计算机系统或(环境)移植到另一个上去的难易程度。(√)0103
- 软件复杂性不能反映出软件的可理解性、模块化、简单性等属性。(X)0204
- 当程序内的分支数和循环数增加时,V(G)值将随之增加,即程序的复杂性增大。(√)0204
- 一般来说,设计软件时应尽量使用数据耦合,减少控制耦合,限制外部环境耦合和公共数据耦合,杜绝内容耦合。(√)0803
- 设计用户界面只需要计算机科学的理论和知识,而不一定需要认知心理学以及人-机工程学、语言学等学科的知识。(X)1201
- 第四代语言(4GL)还局限在某些领域内,如数据库查询语言。(√)1301
- 不同程序设计语言在程序的效率上的差异不大。(X)1302
- 编码的依据是详细设计说明书。(√)1303
- 程序文档应该包括代码的功能、代码的完成者等内容。(√)1303
- 软件项目定义部分由制定软件项目开发计划、需求分析2个阶段组成。(√)0301
- 预防性维护是修改软件,以适应软硬件环境的变化。(X)0101
四、简答题(每小题4分,共20分)
1、软件工程的原则有抽象、信息隐藏、模块化和其他那些内容?0102
- 局部化
- 一致性
- 完全性
- 可验证性
2、常用的软件项目的估算方法主要有哪4种?0202
- 自顶向下的估算方法
- 自底向上的估算方法
- 差别估算法
- 根据经验估算公式
3、原型法模型一般适应哪些场合?0104
它适合于那些不能预先确切定义需求的软件系统的开发,更适合于那些项目组成员(包括分析员、设计员、程序员和用户)不能很好交流或通信有困难的情况。
4、简答结构化程序设计的内容。 0801
是程序设计技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制构件。
5、瀑布模型一般适应哪些场合?0104
瀑布模型一般适用于功能、性能明确、完整、无重大变化的软件系统的开发。例如操作系统、编译系统、数据库管理系统等系统软件的开发。应用有一定的局限性。
五、综合题(每小题10分,共20分)
1、软件工程的目标是什么?0103
答:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。
2、软件工程必须遵循那些基本原则?0102
答:
- 抽象
- 信息隐藏(2分)
- 模块化 (2分)
- 局部化
- 一致性
- 完全性
- 可验证性(2分)
《软件工程》试题及参考答案
一、单向选择题(四选一、每小题3分,共18分)
1、描述静态数据结构的概念模式是(A )。0801
A、E-R图 B、DFD C、结构图 D、框图
2、结构化程序设计理论认为,实现良好的程序结构要应用( A )的分析方法。1301
A、自顶向下 B、自底向上 C、面向对象 D、基于组件
3、在结构化程序设计当中,不建议使用( D )。1302
A、分支语句 B、循环语句 C、子程序调用语句 D、转向语句
4、软件生产过程中,需求信息由(D )给出。0401
A、程序员 B、项目管理者 C、软件分析设计人员 D、软件用户
5、在下列的基本成分中,哪个不是数据流程图的基本成分?( D)0502
A、信息处理 B、信息存储 C、外部实体 D、系统状态
6、与设计测试数据无关的文档是(D )。1401
A、需求说明书 B、设计说明书 C、源程序 D、项目开发设计
二、填空题(每空2分,共18分)
- 软件工程由(方法)、工具和过程三部分组成,称软件工程的三要素。0103
- 基于计算机系统的软件要素中的软部件由程序、数据和(文档)组成。0301
- 数据流图就是用来刻画数据流和转换的信息系统建模技术。它用简单的图形记号分别表示数据流、转换、(数据源)以及外部实体。0501
- 被继承的类我们称之为基类(父类),在基类的基础上新建立的类我们称之为派生类子类。0701
- 流程图也称为程序框图是最常用的一种表示法,它有顺序、分支和(循环)三个基本控制构件。0802
- 机器语言和汇编语言,也称为(低级)语言。1301
- 软件测试是执行程序发现并排除程序中潜伏的(错误)的过程。1401
- 动态测试有两种测试方法:黑盒测试和(白盒)测试。1401
- 软件可维护性,是指软件产品交付使用后,在实现改正潜伏的错误、改进性能等属性、适应环境变化等方面工作的(难易)程度。0103
三、判断题(每小题2分,共24分,错误打X、正确打√)
- 开发大型软件易产生疏漏和错误,往往是产生软件危机的原因之一。(√)0102
- 据统计,软件维护人员为了分析和理解原软件系统所花费的工作量约占整个维护工作量的60%以下。(X)0201
- 数据流图中各构成元素的名称不一定必须具有明确的含义以代表对应元素的内容或功能。(X)0501
- 软件设计也可看作将需求规格说明逐步转换为软件源代码的过程。(√)0801
- 最高耦合度是数据耦合。(X)0803
- 人机界面(Human-Computer Interface,简称HCI)又称人- 机接口或用户界面。(√)1201
- 在同一用户界面中,所有的菜单选择、命令输入、数据显示和其他功能应采用不同的形式和风格。(X)1204
- 判定覆盖必然满足语句覆盖。(√)1402
- 为提高可交互性一般对大多数操作动作应允许用户恢复。同时应尽量减少用户记忆的信息量。(√)1204
- 编程中应采用统一的标准和约定,降低程序的复杂性。(√)1303
- 软件在使用过程中维护不十分复杂。(X)0101
- 软件可重用性(reusability),是指软部件可以在多种场合使用的程度。(√)0103
四、简答题(每小题4分,共20分)
1、螺旋模型的适应场合有哪些?0104
适应场合:支持需求不明确、特别是大型软件系统的开发,并支持面向规格说明、面向过程、面向对象等多种软件开发方法,是一种具有广阔前景的模型。
2、软件生存周期0103
软件从定义开始,经过开发、使用和维护,直到最终退役的全过程称为软件生存周期。
3、软件开发风险分析实际上就是贯穿于软件工程过程中的一系列风险管理步骤,它包括哪些主要内容?0206
- 风险标识
- 风险估算
- 风险评价
- 风险驾驭和监控。
4、软件生存周期中的软件开发过程由概要设计和其它哪几个阶段组成?0103
- 详细设计
- 实现
- 组装设计
- 验收测试
5、实体—关系(Entity-Relation)图
简称E-R图,是表示数据对象及其之间关系的图形语言机制。0502
五、综合题(每小题10分,共20分)
1、需求评审标准(按照重要性的次序)包括哪些内容?。0403
- 正确性
- 无歧义性
- 完全性
- 可验证性
- 一致性。
- 可理解性。
- 可修改性。
- 可追踪性。
2、软件开发风险分析实际上就是贯穿于软件工程过程中的一系列风险管理步骤,它包括哪些内容?0206
风险标识
风险估算
风险评价
风险驾驭
监控