您好,欢迎访问三七文档
-1-软件工程试卷A卷一、填空题1.软件工程学的内容可包括()、()、()、()、环境、管理、规范等。2.N-S图中的顺序结构在PAD图中表示为(),PAD图设置五种基本控制结构,并允许()使用。3.面向对象方法是一种运用()、()、()、()、聚合、消息传送、多态性等概念来构造系统的软件开发方法。4.模块的独立程度可以由两个定性标准度量,这两个标准分别称为()和()。耦合衡量()内聚衡量()。5.软件测试方法按测试过程是否在实际应用环境中分为()和()。二、单项选择题(将一个正确的答案代码填入括号中,每小题4分,共20分)1.模块在同一段时间内完成各种初始化工作,这属于()。(A)偶然内聚(B)逻辑内聚(C)时间内聚(D)过程内聚2.在编程安全方面,一般来说无法做到()。(A)避开错误(B)完美无缺,绝无错误(C)冗余(D)涉及防错程序3.在衡量软件质量时,最重要的标准是()。(A)成本低(B)可维护性好(C)符合要求(D)界面友好4.下列工具中,不属于详细设计工具的是()。(A)测试工具(B)图形工具(C)表格工具(D)语言工具5.下列哪个做法会导致不利的语句结构()。(A)避免使用ELSEGOTO结构。(B)对递归定义的数据结构尽量不再使用递归过程。(C)模块功能尽可能单一化,模块间的耦合能够清晰可见。(D)利用信息隐蔽,确保每一个模块的独立性。三、判断题1.Jackson系统开发方法是一种典型的面向对象的分析设计方法。()2.HIPO图是由一组IPO图加一张HC图组成。是美国IBM公司在软件设计中使用的主要表达工具。()3.在软件开发中采用原型系统策略的主要困难是成本问题。()4.软件开发所需的资源可以画成一个金子塔,塔的高层最基本的资源是人。()5.下图表示的是WHILE型循环。()PABS-2-6.数据流图与程序流程图的主要区别是程序流程图中各处理框之间有严格的时间上的顺序。而数据流图只反映数据的流向,不反映处理逻辑的先后。()7.UML是面向对象技术领域的建模语言。()四、问答题(每小题5分,共20分)1.什么是软件?2.简述面向数据流的需求分析方法。3.模块独立性的重要性是什么?五、分析题(第一小题10分,第二小题9分,共19分)1.根据伪码程序画出程序流程图、盒图(N-S图)。STARTaIFx1THENREPEATUNTILx2bENDREPEATELSEBLOCKcdENDBLOCKENDIFSTOP-3-软件工程试卷A卷参考答案一、填空题答案1.理论、结构、方法、工具2.递归3.对象、类、继承、封装4.内聚、耦合、不同模块彼此之间互相依赖的紧密程度、一个模块内部各个元素彼此结合的紧密程度5.静态分析、动态测试二、单项选择题答案1.C2.B3.C4.A5.B三、判断题答案╳√√√╳√√四、问答题答案1.什么是软件?答:软件是一种产品。包含下面三方面的含义。(1)在运行中能提供所希望的功能和性能的指令集(即程序);(2)使程序能够正确运行的数据结构;(3)描述程序研制过程、方法所用的文挡。2.简述面向数据流的需求分析方法。答:结构化分析方法是面向数据流进行需求分析的方法。结构化分析方法使用数据流图DFD与数据字典DD来描述,面向数据流问题的需求分析适合于数据处理类型软件的需求描述。其核心思想是分解化简问题,将物理与逻辑表示分开,对系统进行数据与逻辑的抽象。具体来说,结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。3.模块独立性的重要性是什么?答:具有独立的模块软件比较容易开发出来。独立的模块比较容易测试和维护。五、分析题1、答案:AB-4--5-软件工程试卷B卷一、填空题1.软件生存周期是指软件从()、()、()直到最终被废弃的全过程。2.瀑布模型的核心思想是()。3.在可行性研究中,()是最关键的因素。4.假设使用代码行技术进行费用估计,某软件中共5000行程序,每行平均成本20元,则该软件的成本为()。5.结构化分析方法常用的两种工具是()和()。6.模块的分解和合并应力求()。7.程序的效率包括两个方面的内容()和()。8.向对象发出服务请求称为(),类对象上的各种操作称为()。9.提高软件质量和可靠性的技术主要有两类()和()。10.大型软件测试包括()、()确认测试和()四个步骤。11.软件的维护一般经过()、()、()三个步骤。12.软件开发需要的资源包括()、()和(),其中()是最基本的资源。二、单项选择题1.如果某种内聚要求一个模块中包含的任务必须在同一段时间内执行,则这种内聚为()。A.时间内聚B.逻辑内聚C.通信内聚D.信息内聚2.选择足够多的测试数据,使得判定表达式中的每个条件都取得各种可能的值,而且每个判定表达式也都取到各种可能的结果。满足这种测试条件的覆盖是()。A.判定覆盖B.条件覆盖C.判定/条件覆盖D.条件组合覆盖3.下列()属于详细设计。A.分析项目的成本和效益B.为每个模块确定采用的算法C.编写代码D.确定模块结构,划分模块功能4.某次程序调试没有出现预计的结果,下列()不可能是原因。A.变量没有初始化B.循环控制出错C.变量没有明确的注释D.代码输入有误5.下列()属于不良的编程习惯。A.尽量不使用GOTO语句B.从来不使用注释C.每行只写一条语句D.变量命名尽量直观三、多项选择题1.成本估计方法包括()。A.自顶向下估计B.自底向上估计C.算法模型估计D.螺旋型估计2.两个模块之间出现()情况,则称为内容耦合。A.一个模块访问另一个模块的内部B.一个模块不通过正常入口而转到另一个模块的内部C.两个模块有一部分程序代码重叠D.一个模块有多个入口3.耦合的强弱取决于()。A.模块内部各个元素彼此之间的紧密结合程度B.调用模块的方式C.通过接口的信息D.模块间接口的复杂程度4.公共环境耦合中的公共环境可以是()。A.局部变量B.全程变量C.内存的公共覆盖区D.共享的通信区5.下列()属于主动式防错程序设计。-6-A.内存检查B.检查栈的深度C.连接检查D.检查数组的界限四、问答题(每小题5分,共20分)1.简述什么是软件,什么是软件工程。2.简述什么是软件的逆向工程。3.简述模块独立性的重要性。4.为什么软件测试不应该由程序的编写人员来做?五、分析题(共15分)2.已知被测试模块流程图如下,按照“条件覆盖”法,在表格中填入满足测试要求的数据。(本题8分)假设几种可能的条件是:T1:A2F1:A=2T2:B=1F2:B≠1T3:A=1F3:A≠1T4:Y1F4:Y=1填写下表数据覆盖路径覆盖条件Y值T1,T2,F3,F4F1,F2,T3,T4begin(A2)AND(B=1)Y=Y/3(A=1)OR(Y1)Y=Y+5Y=Y-5ReturnFFTTbdce-7-2、根据伪码程序画出程序流程图、N-S图。(本题7分)STARTADOWHILEPBENDWHILECDSTOP-8-软件工程试卷B卷参考答案一、填空题答案1.开发、使用、维护2.按工序将问题简化3.技术可行性4.100000元5.数据流图DFD、数据字典DD6.降低耦合提高内聚7.程序的执行速度、程序占用的存储空间8.消息、方法9.避开错误技术、容错技术10.单元测试、集成测试、系统测试11.分析和理解程序、修改程序、重新验证程序12.软件工具、硬件工具、人、人二、单项选择题答案1.A2.C3.B4.C5.B三、多项选择题答案1.A、B、C2.A、B、C、D3.B、C、D4.B、C、D5.A、C、四、问答题答案1.简述什么是软件,什么是软件工程。答:软件由以下三部分组成:(1)在运行中能提供所希望的功能和性能的指令集(即程序);(2)使程序能够正确运行的数据结构;(3)描述程序研制过程、方法所用的文挡。软件是一种产品,同时又是开发和运行产品的载体。作为一种产品,它表达了由计算机硬件体现的计算潜能。作为开发运行产品的载体,软件是计算机工作的基础、信息通信的基础,也是创建和控制其他程序的基础。软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验证明正确的管理技术和当前能够得到的最好的技术方法结合起来。2.简述什么是软件的逆向工程。答:软件的逆向工程就是分析已有的程序,寻求比源代码更高级的抽象表现形式。一般认为,凡是在软件生命周期内的,将软件某种形式的描述转换为更抽象形式的活动都可称为逆向工程。3.简述模块独立性的重要性。答:(1)具有独立的模块软件比较容易开发。(2)独立的模块比较容易测试和维护。(3)模块独立是优秀设计的关键,设计又是决定软件质量的关键环节。4.为什么软件测试不应该由程序的编写人员来做?答:软件测试的目的是为了发现程序中的错误而执行程序的过程。正确认识测试的目标是十分重要的,测试目标决定了测试方案的设计。如果为了表明程序是正确的而进行测试,就会设计一些不易暴露错误的测试方案;相反,如果测试是为了发现程序中的错误,就会力求设计出最能暴露错误的测试方案。由于测试的目标是暴露程序中的错误,从心理学角度看,由程序的编写者自己进行测试是不恰当的。五、分析题1、答:数据覆盖路径覆盖条件Y值-9-A=4,B=1,Y=3cdT1,T2,F3,F4-4A=1,B=2,Y=6beF1,F2,T3,T411注意:本题答案不唯一,学生给出的数字正确就应该算对。2、答:
本文标题:软件工程试卷
链接地址:https://www.777doc.com/doc-2011511 .html