软件工程期末考试试题及参考答案一、单向选择题1、软件的发展经历了(D)个发展阶段。
A.一B.二C.三D.四2、需求分析的任务不包括(B)。
A.问题分析B.系统设计C.需求描述D.需求评审。
3、一个软件的宽度是指其控制的(C)。
A.模块数B.层数C.跨度D.厚度4、当模块中包含复杂的条件组合,只有(A)能够清晰地表达出各种动作之间的对应关系。
A.判定表和判定树B.盒图C.流程图D.关系图5、以下不属于逻辑覆盖的是(D)A.语句覆盖B.判定覆盖C.条件覆盖D.基本路径6、为适应软件运行环境的变化而修改软件的活动称为(B)A.纠错性维护B.适应性维护C.改善性维护D.预防性维护二、填空题1.软件可靠性是指在给定的时间间隔内,程序成功运行的(概率)2.高级语言:独立于机器,面向过程或面向(对象)3.软件项目管理的范围主要集中于3个P上,即:People人员、Problem问题和(过程)4.人机界面的风格第一代界面是命令和(询问)方式5.由于维护或在维护过程中其他一些不期望的行为引入的错误称为维护的(副作用)6.在公式V(G)= E –N + 2中:E为程序图G中边的总数;N 为程序图中结点的总数。
V(G)又称为图G的环形(复杂度)7.任何一个基于计算机系统都可以用输入-处理-输出(IPO)图来描述,它将该系统转换成一个信息变换模型8.为提高可交互性一般对所有可能造成损害的用户操作动作,应坚持要求用户(确认),例如,提问“你确实要删除…?”9.文档是一种数据媒体和其上所记录的(数据)三、判断题(每小题2分,共24分,错误打X、正确打√)1.用户对软件需求的描述不精确,往往是产生软件危机的原因之一。
(√)2.目前,软件项目的进度安排的两种比较常用的方法是程序评估与审查技术(PERT)和关键路径法(CPM)。
(√)3.一个好的开发人员应具备的素质和能力包括善于与周围人员团结协作,建立良好的人际关系,善于听取别人的意见。
(√)4.目前的绝大多数软件都不适合于快速原型技术。
(X5.面向数据的设计方法适用场合是具有明显的层次信息结构的应用如:企事业的信息管理系统;系统软件(如操作系统)等。
(√)6.缺乏处理大型软件项目的经验。
是产生软件危机的唯一原因。
(X)7.通常紧致性好的语言一致性就好。
(X)8.测试计划、测试用例、出错统计和有关的分析报告一般不用长期保存。
(X)14019.数据输入的一般准则中包括保证信息显示方式与数据输入方式的协调一致;允许用户定做输入格式等内容。
(√)10.软件也会磨损和老化。
(X)11.完善性维护是提高或完善软件的性能。
(√)12.McCabe建议模块规模应满足:V(G)≤20。
(X)四、简答题(每小题4分,共20分)1、程序设计语言的三种类型和特点是什么?1)机器语言、汇编语言:依赖于机器,面向机器2)高级语言:独立于机器,面向过程或面向对象3)面向问题语言:独立于机器,非过程式语言(4GL)(2分)2、软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题3、软件项目的质量管理——制定软件质量保证计划,按照质量评价体系控制软件质量要素,对阶段性的软件产品进行评审,对最终软件产品进行确认,确保软件质量4、好的编程风格应遵循哪四条规则?1)节简化2)模块化3)简单化4)文档化5、软件测试中按照错误的性质和范围进行分类可分为:“功能错误”及其它哪些错误?1)系统错误2)加工错误(算法错误)3)数据错误4)代码错误五、综合题(每小题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/PM2.开发每行代码的平均成本C为:C = S / L = 168000美元/ 12100LOC=13.9美元/LOC3.代码出错率EQR为:EQR = N / L = 29个/12.1KLOC=2.4个/KLOC4.软件的文档率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)A.纠错性维护B.适应性维护C.改善性维护D.预防性维护4、人机界面的风格大致经过了(B)代的演变三四五六5、以下不属于白盒测试技术的是(D)逻辑覆盖基本路径测试循环覆盖测试等价类划分6、为改正软件系统中潜藏的错误而进行的维护活动称为(A)纠错性维护适应性维护改善性维护预防性维护二、填空题(每空2分,共18分)1.文档(document)—一种数据媒体和其上所记录的(数据)2.机器语言、汇编语言:依赖于机器,面向(机器)3.软件有效性(efficiency),指软件系统的时间和(空间)效率4.软件定义过程可通过软件系统的(可行性研究)和需求分析两个阶段来完成5.软件定义的基本任务是确定软件系统的工程(需求),也就是要搞清“做什么”6.为了使用户需求逐步精细化、完全化、一致化,通常采用(需求建模技术)7.一个软件的深度是指其控制的(层数)8.以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算机可以理解并最终可运行的代码的过程叫(编码)过程9.软件维护是软件生命周期的(最后)一个阶段三、判断题(每小题2分,共24分,错误打X、正确打√)1.缺乏有力的方法学的指导和有效的开发工具的支持,这往往是产生软件危机的原因之一。
(√)2.一个好的开发人员应具备的素质和能力不包括具有良好的书面和口头表达能力。
(X)3.在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为了获取第一手资料,并从中提取出有价值的需求。
(√)4.快速原型技术适用于软件产品要求大量的用户交互、或产生大量的可视输出、或设计一些复杂的算法等场合。
(√)5.流程图也称为程序(框图)是最常用的一种表示法。
(√)6.面向数据设计方法一般都包括下列任务:确定数据结构特征;用顺序、选择和重复三种基本形式表示数据等步骤。
(√)7.理想的人机界面应针对具有典型个性的特定的一类用户设计。
(√)8.数据输入的一般准则中包括尽量(增加)用户输入的动作。
(X)9.用穷举测试是较现实的测试方法。
(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)A.通用高级语言B.面向对象的语言C.专用语言D.自然语言4、Jackson方法在需求分析阶段的主要步骤不包括(A)A.了解实体行为B.标识实体与行为C.生成实体结构图D.创建软件系统模型5、实践表明,确定发生错误的位置和内在原因所需的工作量几乎占整个调试工作量的(D)%A.30B.50C.70D.906、为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础的软件维护称为(D)A.纠错性维护B.适应性维护C.改善性维护D.预防性维护二、填空题(每空2分,共18分)1.软件的可互操作性,是指多个软件元素相互(通信)并协同完成任务的能力。
2.第三代语言也称为(高级)语言。
13013.软件测试是软件投入运行(前),对软件需求分析、设计、实现的强有力的最终审查。
14014.黑盒测试主要是测试软件是否满足(功能)需求。
14025.(调试)的目的是确定错误的位置和引起错误的原因,并加以改正。
因此,又称为排错或纠错。
14046.软件工程由方法、工具和(过程)三部分组成,称软件工程的三要素。
7.软件可追踪性(traceability),是指根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行(逆向)追踪的能力。
8.瀑布模型是由W. Royce于1970年提出来的。
又称为软件(生存周期)模型。
9.程序设计语言的(可维护)性通常指这种语言编写的程序被理解,被修改及调整和改进的难易程度。
1302三、判断题(每小题2分,共24分,错误打X、正确打√)1.文档可用于专业人员和用户之间的通信和交流;软件开发过程的管理;运行阶段的维护。
(√)01012.软件开发、设计几乎都是从头开始,成本和进度很难估计。