1一、选择题1、软件是一种(2)性工业产品。(1)理论(2)知识(或逻辑)(3)消耗(4)体力2、需求分析是在(2)进行的。(1)用户(2)用户和分析人员之间(3)开发人员内部(4)使用和维护人员之间3、在软件的可行性研究中经常从不同角度对系统进行可行性研究,其中从功能角度对系统进行研究属于(2)的研究。(1)经济可行性(2)技术可行性(3)操作可行性(4)法律可行性4、在软件工程项目中,不随参与人员的增加而使软件的生产率增加的主要问题是(4)。(1)工作阶段的等待时间(2)生产原型的复杂性(3)参与人员所需的工作站数(4)参与人员之间的沟通困难5、需求分析阶段的研究对象是(1)。(1)用户需求(2)分析员要求(3)系统需求(4)软硬件需求6、对某公司进行调查分析,确定是否值得开发一个新系统的工作是进行(4)。(1)系统设计(2)系统分析(3)系统详细调查(4)系统初步调查7、系统分析员应当(4)。(1)善于使用户接受自已的观点(2)善于使自已获得成就(3)是用户与计算机技术人员的有效协调与组织者(4)满足上述所有条件8、数据流图的绘制过程,是对新系统的需求进行综合分析和形成新系统(1)的过程。(1)逻辑模型(2)物理模型(3)总体方案(4)可行性报告9、系统测试的目的是(4)。(1)找出编码错误(2)找出数据错误(3)要证明程序无错(4)发现软件错误10、一个模块内部各程序段都在同一张表上操作,这个操作的内聚性称为(3)。(1)时间内聚(2)功能内聚(3)通信内聚(4)顺序内聚11、在结构化方法中全面指导模块划分的最重要的原则是(4)A.程序模块化B.模块高内聚C.模块低耦合D.模块独立性12、最高程度也是最差的耦合是(2)。(1)公共耦合(2)内容耦合(3)控制耦合(4)数据耦合13、概要设计阶段产生的文档不包括(4)。(1)概要设计说明书(2)数据库设计说明书(3)用户手册(4)开发进度报告14、汽车有一个发动机,汽车和发动机之间的关系是(2)。(1)一般具体关系(2)整体部分关系(3)分类关系(4)isa关系15、覆盖准则最强的是(4)。(1)语句覆盖(2)判定覆盖(3)条件覆盖(4)路径覆盖16、下面对数据流图描述不正确的是(4)。(1)是组织中信息运动的抽象(2)是系统模型的主要形式(3)它与对系统的物理描述无关(4)所描述的内容是面向管理员的17、在基本的数据加工中,决策树适合于表达(2)。(1)决策或判断步骤较多的加工问题(2)决策或判断条件较多,各条件又相互组合的问题2(3)非结构化决策问题(4)半结构化决策问题18、调试应该由(2)完成。(1)与源程序无关的程序员(2)编制该源程序的程序员(3)不了解软件设计的机构(4)设计该软件的机构19、导出模块结构图的基础是(2)(1)系统结构图(2)数据流图(3)数据结构图(4)控制结构图20、程序员进行程序设计的主要文档依据是(1)(1)模块说明书(2)系统流程图(3)控制流程图(4)数据流图21.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(3)A.软件工程B.软件周期C.软件危机D.软件产生22.研究开发所需要的成本和资源是属于可行性研究中的(2)研究的一方面。A.技术可行性B.经济可行性C.社会可行性D.法律可行性23.黑盒测试在设计测试用例时,主要需要研究(1)A.需求规格说明与概要设计说明B.详细设计说明C.项目开发计划D.概要设计说明与详细设计说明24.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是(3)A.条件覆盖法B.等价分类法C.边界值分析法D.错误推测法25.下列属于维护阶段的文档是(3)A.软件规格说明B.用户操作手册C.软件问题报告D.软件测试分析报告26.快速原型模型的主要特点之一是(4)A.开发完毕才见到产品B.及早提供全部完整的软件产品C.开发完毕后才见到工作软件D.及早提供工作软件27.因计算机硬件和软件环境的变化而作出的修改软件的过程称为(2)A.改正性维护B.适应性维护C.完善性维护D.预防性维护28.软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为(2)A.可用性B.可靠性C.正确性D.完整性29.下列文档与维护人员有关的有(3)A.软件需求说明书B.项目开发计划C.概要设计说明书D.操作手册二、填空题1、可行性研究的目的不是去开发一个软件项目,而是研究这个项目是否值得去开发,其中的问提能否解决。2、软件结构的设计是以模块为基础的。3、软件设计阶段,是把软件“做什么”的逻辑模型变换为“怎么做”的物理模型。34、需求分析的关键是必须准确理解用户的要求,同时要满足用户的要求。最终解决目标系统“做什么”的问题。5、数据流图一般可分为变换型和事务型两类。6、HIPO图中H图用于描述软件总的模块层次结构,IPO图用于说明模块间的信息传递及模块内部的处理。7、详细设计也称过程设计,它是软件设计的第二阶段,主要确定每个模块的具体执行过程。8、处理过程设计中最典型的方法是结构化程序设计(SP)方法,其基本要点是采用的程序设计方法是自顶向下、逐步求精。9、测试用例由输入数据和预期的输出数据两部分组成。10、白盒法必须考虑程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试。11、软件测试过程中需要3类信息:软件配置、测试配置和测试工具。12、在详细设计阶段,需要对处理过程的模块和数据库的物理结构做评审。13、纯收入是指在整个生存周期之内的__累积经济效益___与投资之差。14、数据流图描述系统的分解,即描述系统由哪几部分组成,各部分之间有什么联系等。15、任何程序都可由顺序、选择和循环3种基本控制结构构造。这3种基本结构的共同点是单入口、单出口。16、测试的目的就是发现程序中的错误,而不是证明程序没有错误。17、软件概要设计的主要任务就是_确定设计方案和软件结构设计__。19、。面向数据流的设计又称结构化程序设计(SP),它是以需求分析阶段产生的数据流图为基础,按一定的步骤映射成软件结构。20、可行性分析包括技术可行性、经济上的可行性和社会因素可行性分析。21、在单元测试中,需要为被测模块设计驱动模块和桩模块。驱动模块用来模拟被测模块的上级调用模块,桩模块用来代替被测模块所调用的模块。三、名词解释1、软件测试软件测试是指为了发挥软件中的错误而执行软件的过程。它的目标是尽可能多地发现软件中存在的错误,将测试结果作为纠错的依据。2、详细设计系统的详细设计是系统总体设计的深入,对总体设计中的各个具体的任务选择适当的技术手段和处理方法。详细设计主要包括代码设计,数据库设计,输出设计,输入设计,对话设计,处理流程设计,制定设计规范等。3、数据耦合如果两个模块之间通过数据交换信息,且每一个参数均为数据,那么这种模块间的耦合称为数据耦合。4、模块化模块化就是把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集中起来组成一个整体,从而完成指定的功能,满足问题的要求。45、信息隐蔽信息隐蔽是指在设计模块时,应让一个模块内包含的信息(过程和数据)对于其他不需要这些信息的模块来说是不能访问的。6、耦合耦合性是对一个软件结构内不同模块之间互联程度的度量。耦合强弱取决于模块间接口的复杂程度。7、功能内聚如果模块内所处理的元素属于一个整体,完成一个单一的功能,则称为功能内聚。8、渐增式测试是先从单个模块开始测试,然后每次将测试后的一个模块添加到系统中并测试,系统像“滚雪球”一样越滚越大,直到把所有的模块都组装并测试完毕。渐增式测试又可以根据每次添加模块的路线分为自顶向下测试、自底向上测试和混合测试等方式。9、非渐增式测试非渐增式测试:一下子把所有模块放在一起,并把庞大的程序作为一个整体来测试,测试者面对的情况十分复杂。10、软件概要设计所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成。为了更好地理解复杂事物,人们常常采用建立事物模型的方法。为了开发出复杂的软件系统,系统分析员应该从不同角度抽象出目标系统的特性,使用精确的表示方法构造系统的模型,验证模型是否满足用户对目标系统的需求,并在设计过程中逐渐把和实现有关的细节加进模型中,直至最终用程序实现模型。11、模块在程序设计中,为完成某一功能所需的一段程序或子程序;或指能由编译程序、装配程序等处理的独立程序单位;或指大型软件系统的一部分。12、路径覆盖路径覆盖是指选择若干个测试用例,运行被测程序,使得运行这些测试用例时,被测程序的每条可执行的路径至少执行一次。13、条件覆盖条件覆盖是指选择足够的测试用例,使得运行这些测试用例后,要使每个判断中每个条件的可能取值至少满足一次,但未必能覆盖全部分支14、判定/条件覆盖判定-条件覆盖就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能判断结果至少执行,即要求各个判断的所有可能的条件取值组合至少执行一次。15、条件组合覆盖在白盒测试法中,选择足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次。显然,满足“条件组合覆盖”的测试用例是一定满足“判定覆盖”、“条件覆盖”和“判定/条件覆盖”的。16、集成测试集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。模块相互间的协调和通信是这个测试过程中的主要问题,因此,这个步骤着重测试模块的接口。517、需求分析软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素。需求分析是软件定义阶段中的最后一步,是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。18、白盒法白盒测试指把测试对象看成一个打开的盒子,测试人员需了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。19、黑盒法黑盒测试指把测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求,又称为功能测试或数据驱动测试。20、事务流事务流的特点是数据沿某个输入路径流动,该路径将外部信息转变成事务,其中发射出多余事务处理路径的中心处理被称为中心事务。四、简述题软件设计的基本原理:(1)模块化(四个属性:接口、功能、逻辑、状态)(2)抽象(3)信息隐蔽(4)模块独立性(两个定性的度量标准:耦合性与内聚性)2、需求分析应遵循的原则是什么?所有这些分析方法都遵守下述准则:(1)必须理解并描述问题的信息域,根据这条准则应该建立数据模型。(2)必须定义软件应完成的功能,这条准则要求建立功能模型。(3)必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。(4)必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。3、为什么说软件测试是软件开发中不可缺少的重要一环,但不是软件质量保证的安全网?①软件测试是软件开发中不可缺少的重要一环,原因是:A、测试的工作量约占整个项目开发工作量的40%左右,几乎一半。如果是关系到人的生命安全的软件,测试的工作量还要成倍增加。B、软件测试代表了需求分析、设计、编码的最终复审。②软件测试不是软件质量保证的安全网,因为软件测试只能发现错误,不能保证没有错误。4、软件测试的目的是什么?为什么把软件测试的目标定义为只是发现错误?软件测试的目的有:①软件测试是为了发现错误而执行程序的过程。②一个好的测试用例能够发现至今尚未发现的错误。③一个成功的测试是发现了至今尚未发现的错误。软件测试的目标定义为只是发现错误,原因是软件测试可以有两个目标,一个是预防错