1一、填空题(每空1分,共25分)1.软件生存周期一般可以划分为,问题定义、可行性分析、需求分析、设计、编码、测试和运行维护。2.基于软件的功能划分,软件可以划分成系统软件、支撑软件、应用软件三种。3.可行性研究,应从经济可行性、技术可行性、运行可行性、法律可行性和开放方案可行性等方面研究。4.系统流程图是描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子描绘系统里面的每个部件。5.数据流图的基本四种成分:数据输入的源点和数据输出汇点、加工、数据流和数据存储文件。6.结构化分析方法是面向_数据流_进行需求分析的方法。结构化分析方法使用_数据流图DFD_与_数据字典DD_来描述。7.继承性是自动地共享类、子类和对象中的方法和数据的机制。8.软件详细设计工具可分为3类,即_图示工具_、_设计语言_和__表格工具_。9.为了在软件开发过程中保证软件的质量,主要采取下述措施:_审查_、复查和管理复审、_测试_。10.大型软件测试包括单元测试、集成测试、确认测试和系统测试四个步骤。1、可行性研究需求分析运行与维护2、系统软件支撑软件应用软件3、经济可行性法律可行性4、物理系统黑盒子形式5、加工数据流数据存储文件6、数据流数据流图DFD数据字典DD7、继承性8、图示工具、设计语言表格工具9、审查测试10、单元测试集成测试系统测试二、单项选择题(每小题2分,共20分)12345CCCAC678910DDACB1.软件设计中划分模块的一个准则是(C)。A、低内聚低耦合B、低内聚高耦合C、高内聚低耦合D、高内聚高耦合2.Jackson设计方法是由英国的M.Jackson提出的,它是一种面向(C)的软件设计方法。A、对象2B、数据流C、数据结构D、控制结构3.试判断下列叙述中,哪个(些)是正确的(C)。a、软件系统中所有的信息流都可以认为是事务流b、软件系统中所有的信息流都可以认为是变换流c、事务分析和变换分析的设计步骤是基本相似的A、aB、bC、cD、b和c4.(A)是用户和设计交换最频繁的方法。A、原型化方法B、瀑布模型方法C、螺旋模型方法D、构件组装模型5.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是(C)。A、硬件环境B、软件开发的环境C、软件开发工具和软件开发的环境D、开发人员的素质6.20世纪50年代以来,出现了许多不同的程序设计语言,下列语言中哪个语言是低级语言(D)。A、PASCALB、VISUALBASICC、C++D、汇编语言7.软件测试的目的是?(D)A、证明软件的正确性B、找出软件系统中存在的所有错误C、证明软件系统中存在错误D、尽可能多的发现软件系统中的错误8.使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准。A、程序的内部逻辑B、程序的复杂程度C、该软件的编辑人员D、程序的功能9.软件维护工作的最主要部分是(C)。A、校正性维护B、适应性维护C、完善性维护D、预防性维护10.PDL是(B)语言。A、高级程序设计语言B、伪码式C、中级程序设计语言D、低级程序设计语言三、判断题(正确的在括号内打上“√”,错误的打上“×”。每题2分,共20分)1—5:×√××√6—10:×√×××1.用黑盒法测试时,测试用例是根据程序内部逻辑设计的。()2.发现错误多的程序模块,残留在模块中的错误也多。()3.为了加快软件维护作业的进度,应尽可能增加维护人员的数目。()4.软件维护就是改正软件中的错误。()5.质量保证是为了保证产品和服务充分满足消费者要求的质量而进行的有计划,有组织的活动。()6.软件开发的主要任务是写程序。()7.测试只能证明程序有错误,不能证明程序没有错误。()38.模块化程序设计中,模块越小,模块化的优点越明显。一般来说,模块的大小都在10行以下。()9.在编制程序时,首先应该对程序的结构充分考虑,不要急于开始编码,而要像写软件文档那样,很好地琢磨程序具有什么样的功能,这些功能如何安排,等等。()10.程序设计风格指导原则提出,尽量多使用临时变量。()四、简答题(每题5分,共20分)1.什么是软件工程?答:软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。2.耦合性和内聚性有几种类型?其耦合度、内聚强度的顺序如何?答:低:非直接耦合数据耦合标记耦合控制耦合外部耦合公共耦合内容耦合:高强:功能内聚信息内聚通信内聚过程内聚时间内聚逻辑内聚巧合内聚:弱3.简述需求分析工作可以分成哪四个方面?软件需求分析的有哪三个基本原则?答:需求分析阶段分成四个方面:对问题的识别、分析与综合、制定规格说明和评审。三个基本原则:必须能够表达和理解问题的数据域和功能域;必须按自顶向下、逐步分解的方式对问题进行分解和不断细化;要给出系统的逻辑视图和物理视图。4.什么是黑盒测试法?答:黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据,产生正确地输出信息。五、程序设计与算法描述题(共15分)1.根据下面的伪代码程序,完成相应要求。(8分)STARTIFC1THENWHILEC2DOfENDDOELSEBLOCKgpENDBLOCKENDIFREPEATUNTILC3q4rENDREPSTOP1)画出程序流程图(4分)2)用N—S图描述(4分)2.有下列伪码程序:STARTINPUT(M,N)IFM=10THENX=10ELSEX=lENDIFIFN=20THENY=20ELSEY=2ENDIFPRINT(X,Y)STOP设计该程序的语句覆盖和路径覆盖测试用例。(7分)二、分析设计题(共15分)1、(1)程序流程图如下:4分5(2)N-S图如下:4分2、(7分)设计该程序的语句覆盖和路径覆盖测试用例。①M=9(或l0),N=l9(或20);②M=l0(或=10),N=20(或=20)路径覆盖的测试用例为①M=9,N=19;②M=9、N=20;③M=l0,N=l9;④M=10,N=206一、判断题(每题2分,共30分)1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。(对)2.数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。(错)3.JAVA语言编译器是一个CASE工具。(对)。4.软件是指用程序设计语言(如PASCAL,C,VISUALBASIC等)编写的程序,软件开发实际上就是编写程序代码。(错)5.软件模块之间的耦合性越弱越发。(对)6.数据库设计说明书是一个软件配置项(对)7.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。(错)8.过程描述语言可以用于描述软件的系统结构。(错)9.如果通过软件测试没有发现错误,则说明软件是正确的。(错)10.快速原型模型可以有效地适应用户需求的动态变化。(对)11.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。(对)12.集成测试主要由用户来完成。(错)13.确认测试计划应该在可行性研究阶段制定(错)14.白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。(错)15.软件概要设计包括软件系统结构设计以及数据结构和数据库设计。(对)二。单选题(每题2分,共20分)1.瀑布模型的关键不足在于(2)(1)过于简单(2)不能适应需求的动态变更(3)过于灵活(4)各个阶段需要进行评审2.在面向对象软件开发方法中,类与类之间主要有以下结构关系(1)(1)继承和聚集(2)继承和一般(3)聚集和消息传递(4)继承和方法调用3.以下哪一项不是软件危机的表现形式(3)(1)成本高(2)生产率低(3)技术发展快(4)质量得不到保证4.以下哪一项不是面向对象的特征(4)(1)多态性(2)继承性(3)封装性(4)过程调用5.面向对象模型主要由以下哪些模型组成(1)(1)对象模型、动态模型、功能模型(2)对象模型、数据模型、功能模型(3)数据模型、动态模型、功能模型(4)对象模型、动态模型、数据模型76.软件可行性研究一般不考虑(4)(1)是否有足够的人员和相关的技术来支持系统开发(2)是否有足够的工具和相关的技术来支持系统开发(3)待开发软件是否有市场、经济上是否合算(4)待开发的软件是否会有质量问题7.软件维护的副作用主要有以下哪几种(3)(1)编码副作用、数据副作用、测试副作用(2)编码副作用、数据副作用、调试副作用(3)编码副作用、数据副作用、文档副作用(4)编码副作用、文档副作用、测试副作用8.软件项目计划一般不包括以下哪项内容(4)(1)培训计划(2)人员安排(3)进度安排(4)软件开发标准的选择和制定9.以下哪一项不属于面向对象的软件开发方法(3)(1)coad方法(2)booch方法(3)jackson方法(4)omt方法10.以下哪种测试方法不属于白盒测试技术(2)(1)基本路径测试(2)边界值分析测试(3)循环覆盖测试(4)逻辑覆盖测试三。简答题(每题5分,共25分)1.分析软件危机产生的主要原因有哪些?答:导致软件危机的主要原因有:(1)软件日益复杂和庞大(2)软件开发管理困难和复杂(3)软件开发技术落后(4)生产方式落后(5)开发工具落后(6)软件开发费用不断增加1个要点1分,只要答上5个要点得5分!2.说明结构化程序设计的主要思想是什么?答:(1)自顶向下、逐步求精的程序设计方法(2分)(2)使用3种基本控制结构、单入口、单出口来构造程序。(3分)3.软件测试包括哪些步骤?说明这些步骤的测试对象是什么?答:(1)单元测试,测试对象对单元模块(2分)(2)集成测试,测试对象为组装后的程序模块(2分)(3)确认测试,测试对象为可运行的目标软件系统(1分)4.需求分析与软件设计二个阶段任务的主要区别是什么?答:需求分8什么是软件危机?有什么表现?软件生命周期分为那些阶段?各阶段任务是什么?软件维护具体包括那些维护(类型)?常用软件开发模型有哪些?各有什么特点?进行可行性分析时,应考虑哪些因素?