还剩18页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
软件工程试题集及答案软件工程试题第一部分选择题
一、单项选择题每小题1分共20分(在每小题的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内)
1.在下列工具与环境中()属于较早期的CASEoA.基于信息工程CASEB.人工智能CASEC.结构的基于图形CASED.集成的CASE环境
2.Putnam成本估算模型是一个()模型A.静态单变量B.动态单变量C.静态多变量D.动态多变量
3.在McCall软件质量度量模型中,()属于面对软件产品修改A.牢靠性B.可重用性C.适应性D.可移植性
4.ISO的软件质量评价模型由3层组成,其中用于评价设计质量的准则是()A.SQICB.SQMCC.SQRCD.SQDC
5.软件困难性度量的参数包括()A.效率B.规模C.完整性D.容错性
6.对象实现了数据和操作的结合,使数据和操作()于对象的统一体中A.结合B.隐藏C.封装D.抽象
7.软件调试技术包括()A.边界值分析B.演绎法C.循环覆盖D.集成测试
8.瀑布.变更限制是一项最重要的软件配置任务,其中检出和处理实现了两个重要的变更限制要素,即存取限制和同步限制A.登入B.管理C.填写变更要求D.审查[解析]检出和登入处理实现了两个重要的变更限制要素具体说明见上题.提高软件质量和牢靠的技术大致可分为两大类其中一类就是避开错误技术,但避开错误技术无法做到完备无缺和绝无错误,这就须要A.消退错误B.检测错误C.避开错误D.容错[解析]提高软件质量和牢靠性的技术大致可分为两类,一类是避开错误技术,即在开发的过程中不让差错潜入软件的技术,另一类是容错技术,即对某些无法避开的差错,使其影响减至最小的技术.是以提高软件质量为目的的技术活动A.技术创新B.测试C.技术创建D.技术评审[解析]技术评审是以提高软件质量为目的的技术活动,是对软件本身的结构、与运行环境的接口、变更带来的影响等方面进行的评审活动.面对对象方法学的动身点和基本原则是尽可能模拟人类习惯的思维方式,分析、设计和实现一个软件系统的方法和过程尽可能接近于人类相识世界解决问题的方法和过程因此面对对象方法有很多特征,如软件系统是由对象组成的;;对象彼此之间仅能通过传递消息相互联系;层次结构的继承A.开发过程基于功能分析和功能分解B.强调需求分析重要性C.把对象划分成类,每个对象类都定义一组数据和方法D.对既存类进行调整[解析]面对对象方法有四个特征,分别是对象唯一性、分类性、继承性和多态性其中分类性是指将具有一样的数据结构(属性)和行为(操作)的对象抽象成类,每个类是具有相同性质的个体集合,而每个对象相关类的实例,对象彼此之间通过传递消息相互联系.软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫A.生存期B.面对对象设计C.面对对象程序设计D.面对对象分析[解析]面对对象的分析的过程就是相识客观世界的过程,其目的就是建立对客观世界的精确、简洁、可理解的正确模型,也就是所谓的建模因此本题答案为Do.原型化方法是用户和设计者之间执行的一种交互构成适用于系统A.需求不确定性高的B.需求确定的C.管理信息D.实时[解析]原型不同于最终系统,它只实现所选择的部分功能,仅是为了试验或是演示而用,部分功能需求可以忽视或者模拟实现,因此适用于需求不确定性高的系统.原型化方法是一种型的设计过程A.自外向内B.自顶向下C.自内向外D.自底向上[解析]原型化方法的基本思想是依据用户给出的基本需求,通过快速实现构造出一个小型的、可执行的模型,用户在计算机上实际运行这个用户界面原型,在试用过程中提出看法或建议,然后开发者再对原型进行改进如此周而复始,逐步弥补不足之处,从而提高了最终产品的质量它是一种自外向内的设计过程.为了提高测试的效率,应当A.随机地选取测试数据B.取一切可能的输入数据作为测试数据C.在完成编码以后制定软件的测试安排D.选择发觉错误可能性大的数据作为测试数据[解析]软件测试是为了尽可能多的发觉程序中的错误,尤其是发觉至今尚未发觉的错误在选取测试用例时,不行能进行穷举测试,在每一个细微环节进行测试,也不能无目的地随机选取测试数据,为了提高测试的效率,测试用例应当选择发觉错误可能性大的部分,这样的测试结果才符合软件测试的目的.运用白盒测试方法时,确定测试数据应依据和指定的覆盖标准A.程序的内部逻辑B.程序的困难结构C.运用说明书D.程序的功能[解析]白盒测试是把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,由于白盒测试是一种结构测试,所以被测对象基本上是源程序,以程序的内部逻辑和指定的覆盖标精确定测试数据二,填空题(本大题共10小题,每小题2分,共20分)
21.系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的(信息流淌)状况[解析]系统流程图是描述物理系统的传统工具,用图形符号表示系统中的各个元素,如人工处理、数据处理、数据库、文件、设备等,表达了元素之间的信息流淌的状况.成本效益分析的目的是从(经济)角度评价开发一个项目是否可行[解析]成本效益分析首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较和权衡,其目的是从经济角度评价开发一个新的软件项目是否可行.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略深度优先策略和(宽度优先策略)[解析]渐增式测试法有自顶向下结合和自底向上结合两种组装模块的方法,其中自顶向下集成是构造程序结构的一种增量式方式,不须要编写驱动模块,只须要编写桩模块它从主控模块起先,依据软件的限制层次结构,以深度优先或宽度优先的策略,逐步把各个模块集成在一起.独立路径是指包括一组以前没有处理的语句或条件的一条路径从程序图来看,一条独立路径是至少包含有一条(在其他独立路径中未有过)的边的路径[解析]在基本路径测试中,以具体设计或源程序为基础导出限制流程图的拓扑结构程序图,在计算了程序图的环路困难性之后,确定只包含独立路径的基本路径图,其中独立路径是包括一组以前没有处理的语句或条件的一条路径从程序图来看,一条独立路径是至少包含有一条在其他独立路径中未有过的边的路径.汇编语言是面对(机器)的,可以完成高级语言无法完成的特别功能,如与外部设备之间的一些接口工作[解析]汇编语言属于低级语言,是一种面对机器的语言,它与高级语言相比有很多优越性如操作敏捷,可以干脆作用到硬件的最下层,完成与外部设备的接口工作等,是能够利用计算机硬件特性干脆限制硬件设备的唯一语言.在JSP方法中解决结构冲突的具体方法是(中间数据结构或中间文件)[解析]JSP方法是面对数据结构的设计方法它定义了一组以数据结构为指导的映射过程,依据输入、输出的数据结构,按肯定的规则映射成软件的过程描述,在JSP方法中解决结构冲突的具体方法是引入中间数据结构或中间文件,将冲突部分分隔开来,建立多个程序结构,再利用中间文件把它们联系起来,构成一个系统的整体.具体设计的任务是确定每个模块的内部特性,即模块的算法、(运用的数据)[解析]具体设计的基本任务是为每个模块进行具体的算法设计,为模块内的数据结构进行设计,确定每个模块的内部特性包括模块的算法和运用的数据对数据库进行物理设计等.全部软件维护申请报告要按规定方式提出,该报告也称(软件问题)报告[解析]在软件维护的流程中,第一步就是制定维护申请报告,也称为软件问题报告,它是维护阶段的一种文档,由申请维护的用户填写.有两类维护技术在开发阶段运用来削减错误、提高软件可维护性的面对维护的技术;在维护阶段用来提高维护的效率和质量的(维护支援)技术[解析]面对维护的技术涉及软件开发的全部阶段,能够削减软件错误,提高软件的可维护性而维护支援技术则包含信息收集,错误缘由分析,维护方案评价等项,是在软件维护阶段用来提高维护效率和质量的技术.科学工程计算须要大量的标准库函数,以便处理困难的数值计算,可供选择的语言有:(FORTRAN语言)、PASCAL语言、C语言和PL/1语言[解析]计算机语言依据不同行业的需求,运用的侧重点也不尽相同,在办公管理方面,一些数据库语言如FOXPROORICAL有很多的应用,在工程行业,计算机语言的科学计算实力就显得特别重要,如MATLAB、PL/
1、FORTRAN语言都是工程计算中常用的语言三,名词说明(本大题共5小题,每小题3分,共15分)
31.经济可行性解进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发.社会可行性解要开发的项目是否存在任何侵扰、阻碍等责任问题,要开发项目目的运行方式在用户组织内是否行得通,现有管理制度、人员素养、操作方式是否可行.投资回收期解投资回收期就是使累计的经济效益等于最初的投资费用所需的时间.对应关系解即有干脆因果关系在程序中可以同时处理.结构冲突解输入数据与输出数据结构找不到对应关系的状况,称为结构冲突四,简答题本大题共4小题,每小题5分,共20分.可行性探讨报告的主要内容有哪些?解一个可行性探讨报告的主要内容如下1引言说明编写本文档的目的;项目的名称、背景;本文档用到的特地术语和参考资料2可行性探讨前提说明开发项目的功能、性能和基本要求;达到的目标;各种限制条件;可行性探讨方法和确定可行性的主要因素3对现有系统的分析说明现有系统的处理流程和数据流程;工作负荷;各项费用支出;所须要各类专业技术人员的数量;所须要各种设备;现有系统存在什么问题4所建议系统的技术可行性分析所建议系统的简要说明;处理流程和数据流程;与现有的系统比较的优越性;采纳所建议系统对用户的影响;对各种设备、现有软件、开发环境、运行环境的影响;对经费支出的影响;对技术可行性的评价5所建议系统的经济可行性分析说明所建议系统的各种支出,各种效益;收益投资比;投资回收周期6社会因素可行性分析:说明法律因素,对合同责任、侵扰专利权、侵扰版权等问题的分析;说明用户运用可行性,是否满意用户行政管理、工作制度、人员素养的要求7其他可供选择方案逐一说明其他可供选择的方案,并说明未被举荐的理由8结论看法说明项目是否能开发;还须要什么条件才能开发;对项目目标有什么变动等[解析]做软件的可行性探讨的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发其中的问题能否解决,报告共分为八个基本内容
37.系统设计的内容是什么?解系统设计阶段先从高层入手,然后细化系统设计要确定整个结构及风格,这种结构为后面设计阶段的更具体策略的设计供应了基础1系统分解系统中主要的组成部分称为子系统,子系统既不是一个对象也不是一个功能,而是类、关联、操作、时间和约束的集合每次分解的各子系统数目不能太多,最底层子系统称为模块2确定并发性分析模型、现实世界及硬件中不少对象均是并发的系统设计的一个重要目标就是确定哪些是必需同时动作的对象,哪些不是同时动作的对象后者可以放在一起,而综合成单个限制线或任务3处理器及任务安排各并发子系统必需安排给单个硬件单元,要么是一个一般的处理器,要么是一个具体的功能单元,必需完成下面的工作估计性能要求和资源需求,选择实现子系统的硬软件,将软件子系统安排给各处理器以满意性能要求和微小化处理器之间的通信,确定实现各子系统的各物理单元的连接4数据存储管理系统中的内部数据和外部数据的存储管理是一项重要的任务通常各数据存储可以将数据结构、文件、数据库组合在一起不同数据存储要在费用、访问时间、容量以及牢靠性之间做折中考虑5全局资源的处理必需确定全局资源,并且制定访问全局资源的策略全局资源包括物理资源,如处理器、驱动器等;空间,如盘空间、工作站屏等;逻辑名字,如对象标识符、类名、文件名等假如资源是物理对象,则可以通过建立协议实现对并发系统的访问,以达到自身限制;假如资源是逻辑实体,如对象标识符,那么在共享环境中有冲突访问的可能,如独立的事务可能同时运用同一个对象标识符,则各个全局资源都必需有一个爱护对象,模型的存在问题是()A.用户简洁参加开发B.缺乏敏捷性C.用户与开发者易沟通D.适用可变需求
9.软件测试方法中的静态测试方法之一为()A.计算机协助静态分析B.黑盒法C.路径覆盖D.边界值分析
10.软件生命周期中所花费用最多的阶段是()A.具体设计B.软件编码C.软件测试D.软件维护H.第一个体现结构化编程思想的程序设计语言是()A.FORTRAN语言B.Pascal语言C.C语言D.PL/1语言
12.程序的三种基本限制结构是()A.过程、子程序和分程序B.依次、选择和重复C.递归、堆栈和队列D.调用、返回和转移
13.在具体设计阶段,常常采纳的工具有()A.PADB.SAC.SCD.DFD
14.具体设计的结果基本确定了最终程序的()A.代码的规模B.运行速度C.质量D.可维护性
15.需求分析中开发人员要从用户那里了解()A.软件做什么B.用户运用界面C.输入的信息D.软件的规模
16.结构化程序设计主要强调的是()A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性
17.IDEFo图反映系统()A.怎么做B.对谁做C.何时做D.做什么
18.经济可行性探讨的范围包括()A.资源有效性B.管理制度C.效由爱护对象来限制对该资源的访问6选择软件限制机制分析模型中全部交互行为都表示为对象之间的事务系统设计必需从多种方法中选择某种方法来实现软件的限制7人机交互接口设计设计中的大部分工作都与稳定的状态行为有关,但必需考虑用户运用系统的交互接口.什么是软件危机?软件危机的表现是什么?其产生的缘由是什么?解软件发展其次阶段的末期,由于计算机硬件技术的进步,计算机运行速度、容量、牢靠性有显著的提高,生产成本显著下降这为计算机的广泛应用创建了条件一些困难的、大型的软件开发项目提出来了,但是,软件开发技术的进步始终未能满意发展的须要在软件开发中遇到的问题找不到解决方法,使问题积累起来,形成了尖锐的冲突,因而导致了软件危机软件危机表现在以下四个方面1经费预算常常突破,完成时间一再拖延由于缺乏软件开发的阅历和软件开发数据的积累,使得开发工作的安排很难制定主观盲目制定安排,执行起来与实际状况有很大差距,使得开发经费一再突破由于对工作量估计不足,对开发难度估计不足,进度安排无法按时完成,开发时间一再拖延2开发的软件不能满意用户要求开发初期对用户的要求了解不够明确,未能得到明确的表达开发工作起先后,软件人员和用户又未能刚好交换看法,使得一些问题不能刚好解决,导致开发的软件不能满意用户的要求,因而导致开发失败3开发的软件可维护性差开发过程中没有同意的、公认的规范,软件开发人员按各自的风格工作,各行其是,开发过程无完整、规范的文档,发觉问题后进行杂乱无章的修改程序结构不好,运行时发觉错误也很难修改,导致维护性差4开发的软件牢靠性差由于在开发过程中,没有确保软件质量的体系和措施,在软件测试时,又没有严格的、充分的、完全的测试,提交给用户的软件质量差,在运行中暴露出大量的问题造成软件危机的缘由是益分析D.开发风险
19.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是确定该系统是否开发的决策依据,因必需给出()的回答A.确定B.行或不行C.正确D.无二义
20.需求分析阶段的任务是确定()A.软件开发方法B.软件开发工具C.软件开发费D.软件系统的功能
二、填空题(每空2分,共20分).在软件开发过程中要产生大量的信息,要进行大量的修改,软件配置管理能协调软件开发,并使混乱减到最低程度.规定功能的软件,在肯定程度上对自身错误的作用(软件错误)具有屏蔽实力,则称此软件具有容错功能的软件.McCall提出的软件质量模型包括11个软件质量特性.软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、牢靠性、可移植性、可运用性和效率.为了便于比照检查,测试用例应由输入数据和预期的输出结果两部分组成.程序设计语言的心理特性主要表现在歧义性、简洁性、传统性、局部性和依次性.软件结构是以模块为基础而组成的一种限制层次结构.在结构化分析中,用于描述加工逻辑的主要工具有三种即:结构化语言、判定表、判定树.结构化语言是介于自然语言和形式语言之间的一种半形式语言.若年利率为i不计复利,n年后可得钱数为F则现在的价值P=F/l+n*io
三、名词说明题每小题3分,共15分.软件生存周期模型描述软件开发过程中各种活动如何执行的模型
32.数据字典DD数据字典是用来定义数据流图中的各个成分的具体含义的它以一种精确的、无二义性的说明方式为系统的分析、设计及维护供应了有关元素的一样的定义和具体的描述.内聚性内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量
34.JSP方法JSP方法是面对数据结构的设计方法,其定义了一组以数据结构为指导的映射过程,它依据输入,输出的数据结构,按肯定的规则映射成软件的过程描述,即程序结构.多态性指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果或不同的对象,收到同一消息可以产生不同的结果
四、简答题每小题5分,共20分.简述容错技术的四种主要手段,并说明结构冗余包括静态冗余、动态冗余和混合冗余信息冗余为检测或订正信息在运算或传输中的错误,须外加一部分信,匕、O时间冗余指重复执行指令或程序来消退瞬时错误带来的影响冗余附加技术指为实现上述冗余技术所需的资源和技术.以G.J.Myers的观点,简述对软件测试的目的软件测试是
(1)为了发觉错误而执行程序的过程;
(2)一个好的用例能够发觉至今尚未发觉的错误的测试
(3)一个胜利的测试是发觉至今尚未发觉的错误的测试
38.就程序设计语言的工程特性而言,对程序编码有哪些要求?就程序设计语言的工程特性而言,对程序编码有如下要求
(1)可移植性
(2)开发工具的可利用性
(3)软件的可重用性
(4)可维护性
39.模块的内聚性包括哪些类型?模块的内聚性包括
(1)偶然内聚
(2)逻辑内聚
(3)时间内聚
(4)通信内聚
(5)依次内聚
(6)功能内聚软件工程导论预料题一,单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的横线上.可行性探讨要进行一次需求分析A.具体的B.全面的C.简化的、压缩的D.彻底的[解析]软件的可行性探讨的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发其实质是要进行一次简化、压缩了的需求分析、设计过程,要在较高层次上以较抽象的方式进行需求分析和设计过程因此答案为Co.系统流程图用于可行性分析中的的描述A.当前运行系统B.当前逻辑模型C.目标系统D.新系统[解析]可行性探讨首先要确定项目的规模和目标,然后就须要对当前运行的系统进行探讨了,在考察系统的基础上,通过描绘现有系统的高层系统流程图,与有关人员一起审查该系统流程图是否正确描述的对象是当前正在运行的系统,因此选择Ao.系统流程图是描述的工具A.逻辑系统B.程序系统C.体系结构D.物理系统[解析]系统流程图是用图形符号来表示系统中的各个元素,例如人工处理、数据库、设备等,流程图表达了系统中各个元素之间的信息流淌状况是描绘物理系统的传统工具.工具在软件具体设计过程中不采纳A.判定表B.IPO图C.PDLD.DFD图[解析]具体描述处理过程常用三种工具图形、表格和语言其中图形工具有结构化流程图、盒图和问题分析图三种,答案中的判定表是用来表示困难的条件组合与应做的动作之间的对应关系IPO图用来描述每个模块输入/输出数据、处理功能及模块调用的具体状况PDL是过程设计语言的缩写,也称程序描述语言,用于描述模块算法设计和处理细微环节的语言,这三种都可以在软件具体设计过程中运用,而DFD图则是数据流图,是以图形的方式描绘数据在系统中流淌和处理的过程,只反映系统必需完成的逻辑功能,所以它只是一种功能模型,不能在具体设计过程中运用.程序的三种基本限制结构是A.过程、子程序和分程序B.依次、选择和重复C.递归、堆栈和队列D.调用、返回和转移[解析]程序的三种基本限制结构是依次、选择和循环(重复)子程序只是程序设计一种方法,递归则是一种算法,都算不上是限制结构.程序的三种基本限制结构的共同特点是A.不能嵌套运用B.只能用来写简洁程序C.已经用硬件实现D.只有一个入口和一个出口[解析]程序的特点就是从一个入口起先,最终以一个出口结束,其间可以用依次,选择和循环方式对程序的流向进行限制三种结构可以写出特别困难的程序,而且选择和循环都可以嵌套设计.产生软件维护的副作用,是指A.开发时的错误B.隐含的错误C.因修改软件而造成的错误D.运行时误操作[解析]因修改软件而造成的错误或其他不希望出现的状况称为维护的副作用,包括编码副作用、数据副作用、文档副作用三种只有答案C是正确的表述.维护中,因误删除一个标识符而引起的错误是副作用A.文档B.数据C.编码D.设计[解析]编码副作用指的是在运用程序设计语言修改源代码时可能引入错误,比如删除或修改一个子程序、一个标号、一个标识符,变更程序代码的时序关系,修改文件的打开或关闭等因此本题答案为Co.可维护性的特性中相互促进的是A.可理解性和可测试性B.效率和可移植性C.效率和可修改性D.效率和结构好[解析]软件的可维护性可用七个质量特性来衡量,分别是可理解性、可测试性、可修改性、牢靠性、可移植性、可运用性和效率对于不同类型的维护,这些特性的侧重点也不相同,有一些可维护特性是可以相互促进的,比如可理解性和可测试性,可理解性和可修改性,另外一些则是相互冲突的,如答案中的B效率和可移植性、C中的效率和可修改性至于D中的结构好则不属于可维护性的特征.汽车有一个发动机汽车和发动机之间的关系是关系A.一般具体B.整体部分C.分类关系D.主从关系[解析]类有两种主要的结构关系,即一般具体结构关系和整体部分结构关系前者称为分类结构,用来描述现实世界中的一般化的抽象关系后者称为组装结构,用来描述现实世界中的类的组成的抽象关系汽车和发动机的关系很明显,应当属于整体部分关系.在变更限制中,可以用来确保由不同用户所执行的并发变更A.异步限制B.同步限制C.存取限制D.基线限制[解析]变更限制包括建立限制点和建立报告与审查制度,其过程中的检出和登入处理实现了存取限制和同步限制,存取限制管理各个用户存取和修改一个特定软件配置对象的权限,同步限制可用来确保由不同用户所执行任务的并发变更。