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