软件工程期末试卷答案全解.docx
软件工程试题一 一单项选择题1. 以下不是软件危机的典型表现的是: ( D ) 。A. 对软件开发本钱和进度的估计常常很不精确B. 用户对“已完成的”软件系统不满足的现象常常发生C. 软件产品的质量往往靠不住D. 承受面对对象方法开发软件 3. 下列哪个不是软件工程方法学中的要素( C )。 A. 方法 B. 工具 C. 程序 D. 过程4. 下列模块的独立性的耦合方式中,最好的是( C ) A.公共耦合 B. 限制耦合 C. 数据耦合 D. 内容耦合5概要设计中,开发人员要解决的最重要的问题是 ( D ) 。A. 要让软件做什么 B. 要给该软件供给哪些信息C. 要求软件工作效率怎样 D. 要让该软件模块具有何种构造6. 为了进步模块的独立性,模块内部最好是 ( C ) 。A. 逻辑内聚 B. 时间内聚 C. 功能内聚 D. 通信内聚7. 程序的三种根本限制构造的共同特点是 ( C ) 。 A. 不能嵌套运用 B. 只能用来写简洁程序C. 只能一个入口和一个出口 D. 已经用硬件实现8. 以下说法错误的是 ( ) 。 AA. 面对对象分析与面对对象设计的定义没有明显区分B. 从面对对象分析到面对对象设计,是一个渐渐扩大模型的过程C. 在实际的软件开发过程中,面对对象分析与面对对象设计的界限是模糊的D. 面对对象分析和面对对象设计活动是一个屡次反复迭代的过程9. 软件测试过程中确实认测试主要是为了觉察 ( A ) 阶段的错误。 A. 需求分析 B. 概要设计 C. 具体设计 D. 编码10. 在面对对象的高层设计体系构造中, ( C ) 是用来描绘用户一般运用软件习惯的部分A. 人机交互界面 B. 问题论域 C. 系统交互界面 D. 数据管理11. 为适应软硬件环境变更而修改软件的过程是 ( B ) 。A. 校正性维护 B. 适应性维护 C. 完善性维护 D. 预防性维护12. 在UML的各类图中,( A )图是描绘软件功能的。 A 用例图 B 类图 C 活动图D 依次图13. ( D )不属于OO三要素。A.对象B. 继承 C.封装 D.多态14(C )在ATM机系统中,下列哪个不能在面对对象设计中被定义为类。 C A 中央计算机 B 柜台事务 C 拨号 D 营业厅15在黑盒测试中,作为相关黑盒测试有效补充的测试方法是 ( B ) 。A. 等价类划分法B. 边界值分析法C. 错误推想法D. 因果图法二推断题(本大题共_15_题,每题_1_分,共_15_分。1. 软件简洁的说就是程序和相关的数据及文档。 T2. 测试用例由一系列输入和实际的输出组成。 F3. 软件工程的集成测试都是自顶向下的。 F4. 编码是尽可能承受部分变量。 T5. 在进展需求分析时需同时考虑维护性问题。 T 6. 依次图描绘了对象之间动态的交互关系,着重表达对象间消息传递的时间依次。 T7. 在进展概要设计时应加强模块间的联络。 F8. 模块越小,模块化的优点越明显。一般来说,模块的大小都在10行以下。 F9. 模块间的联络越严密越好。 F10. 用黑盒法测试时,测试用例是依据程序内部逻辑设计的。 F11. 维护就是在软件交付运用后进展的修改。 T12. 一组测试用例是断定覆盖,则确定是语句覆盖。 T13. 面对对象软件工程方法就是至上而下、逐步求精的方法。 F14. 向一个已经延期的工程增加人手,往往不会加快其开发进程。 T15. 应尽可能多用GOTO语句。 F四简答题 1.简述螺旋模型。螺旋模型(Spiral Model)承受一种周期性的方法来进展系统开发。这会导致开发出众多的中间版本。运用它,工程经理在早期就可以为客户实证某些概念。该模型是快速原型法,以进化的开发方式为中心,在每个工程阶段运用瀑布模型法。这种模型的每一个周期都包括需求定义、风险分析、工程实现和评审4个阶段,由这4个阶段进展迭代。软件开发过程每迭代一次,软件开发又前进一个层次2.简述你对模块独立性的理解。模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联络最少且接口简洁,模块内部各部分及模块间的关系的一种衡量标准,由内聚和耦合来度量。模块独立性的重要性:具有独立的模块的软件比拟简洁开发出来。这是由于可以分割功能而且接口可以简化;独立的模块比拟简洁测试和维护。这是因为相对说来,修改设计和程序须要的工作量比拟小,错误传播范围小,须要扩大功能时可以"插入"模块。总之,模块独立是优秀设计的关键,而设计又是确定软件质量的关键环节。五综合题(本大题共_3_题,每题_10_分,共_30_分。)1、 问题陈述:为更好的管理食堂工作,某公司拟开发食堂管理系统,食堂管理员将全部菜式信息输入到系统中,并提早录入每日菜谱信息到系统中,员工通过系统进展网上订餐,从而得到本人的相关订餐信息, 员工可以通过系统理解每日菜谱信息和自己的消费状况,每月,食堂管理员得到全部员工的消费状况和每个菜式的订餐统计信息(10分)(1) 以构造化方法建立该问题的数据流图(至少2层,即顶层和0层) (7分)(2) 描绘数据流图中的主要数据字典(3分) 软件工程试题二一、 填空题(每空1分,共25分)1. 软件生存周期一般可以划分为,问题定义、_可行性探讨_、_需求分析_、设计 、编码 、测试 和_ _运行与维护_。2、 基于软件的功能划分,软件可以划分成_系统软件_、_支撑软件_、_应用软件_三种。3、可行性探讨,应从 经济可行性 、技术可行性、运行可行性、 法律可行性 和开放方案可行性 等方面探讨。4、数据流图的根本四种成分:数据输入的源点和数据输出汇点、加工、数据流 和数据存储文件5、构造化分析方法是面对_数据流_进展需求分析的方法。构造化分析方法运用_数据流图DFD_与_数据字典DD_来描绘。6、为了在软件开发过程中保证软件的质量,主要实行下述措施:审查_、复查和管理复审、测试7、大型软件测试包括 单元测试 、 集成测试 、确认测试和 系统测试 四个步骤。二、 单项选择题(每小题2分,共20分)1、 软件设计中划分模块的一个准则是( C )。A、 低内聚低耦合 B、低内聚高耦合C、 高内聚低耦合 D、内聚高耦合2. Jackson设计方法是由英国的M. Jackson提出的,它是一种面对( C )的软件设计方法。A、 对象 B 数据流 C 数据构造 D 限制构造3. 试推断下列叙述中,哪 个(些)是正确的( C )。a、软件系统中全部的信息流都可以认为是事务流b、软件系统中全部的信息流都可以认为是变换流c、事务分析和变换分析的设计步骤是根本相像的A、a B、b C、c D、b和c4. ( A )是用户和设计交换最常见的方法。A、 原型化方法 B、瀑布模型方法 C、 螺旋模型方法 D、构件组装模型5. 软件工程方法学的目的是:使软件消费标准化和工程化,而软件工程方法得以施行的主要保证是( C )。A、 硬件环境 B、软件开发的环境 C软件开发工具和软件开发的环境 D、 开发人员的素养6. 软件测试的目的是?( D )A、 证明软件的正确性B、 找出软件系统中存在的全部错误C、 证明软件系统中存在错误D、 尽可能多的觉察软件系统中的错误7. 运用白盒测试方法时,确定测试数据应依据( A )和指定的覆盖标准。A、程序的内部逻辑 B、程序的困难程度 C、该软件的编辑人员 D、程序的功能8. 软件维护工作的最主要部分是( C )。A、 校正性维护 B、适应性维护 C、完善性维护 D、预防性维护9. PDL是( B )语言。A、 高级程序设计语言 B、伪码式 C、中级程序设计语言 D、低级程序设计语言三、 推断题(正确的在括号内打上“”,错误的打上“×”。每题2分,共20分)1. 用黑盒法测试时,测试用例是依据程序内部逻辑设计的。( × )2. 觉察错误多的程序模块,残留在模块中的错误也多。( )3. 为了加快软件维护作业的进度,应尽可能增加维护人员的数目。( × )4. 软件维护就是改正软件中的错误。( × )5. 质量保证是为了保证产品和效劳充分满足消费者要求的质量而进展的有支配,有组织的活动。( )6. 软件开发的主要任务是写程序。 ( × )7. 测试只能证明程序有错误,不能证明程序没有错误。( )8. 模块化程序设计中,模块越小,模块化的优点越明显。一般来说,模块的大小都在10行以下。( × )9. 在编制程序时,首先应当对程序的构造充分考虑,不要急于开场编码,而要像写软件文档那样,很好地琢磨程序具有什么样的功能,这些功能如何支配,等等。( × )10. 程序设计风格指导原则提出,尽量多运用临时变量。( × )四、 简答题(每题5分,共20分)1 什么是软件工程?软件工程是指导计算机软件开发和维护的工程学科。承受工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前可以得到的最好的技术方法结合起来。2 耦合性和内聚性有几种类型 其耦合度、内聚强度的依次如何?答:低:非干脆耦合® 数据耦合®标记耦合® 限制耦合®外部耦合® 公共耦合®内容耦合 :高强:功能内聚® 信息内聚® 通信内聚® 过程内聚® 时间内聚® 逻辑内聚® 巧合内聚:弱3 简述需求分析工作可以分成哪四个方面?软件需求分析的有哪三个根本原则?答:需求分析阶段分成四个方面:对问题的识别、分析与综合、制定规格说明和评审。三个根本原则:必需可以表达和理解问题的数据域和功能域;必需按自顶向下、逐步分解的方式对问题进展分解和不断细化;要给出系统的逻辑视图和物理视图。4、什么是黑盒测试法?答:黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部构造和处理过程,它只检查程序功能是否能依据规格说明书的规定正常运用,程序是否能适当地接收输入数据,产生正确地输出信息。五、 程序设计与算法描绘题(共15分)1. 有下列伪码程序:STARTINPUT (M,N)IF M>=10 THEN X=10 ELSE X=lENDIFIF N>=20 THEN Y=20 ELSE Y=2ENDIFPRINT(X,Y)STOP设计该程序的语句覆盖和途径覆盖测试用例.语句覆盖为: 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=20;软件工程试题三一、选择题:(每题1分,共20分)(将答案写在题号前的()中)( C )1. 软件是( )。A. 处理对象和处理规则的描绘 B. 程序 C. 程序及其文档 D. 计算机系统( B )2. 软件需求规格说明的内容不应包括( )。A. 主要功能 B. 算法的具体描绘 C. 用户界面及运行环境D. 软件的性能( B )3. 程序的三种根本限制构造是( )。A. 过程、子程序和分程序B. 依次、选择和重复C. 递归、迭代和回溯D. 调用、返回和转移( ) 4. 面对对象的分析方法主要是建立三类模型,即( )。 A) 系统模型、ER模型、应用模型 B) 对象模型、动态模型、应用模型 C) -模型、对象模型、功能模型 D) 对象模型、动态模型、功能模型 ( C ) 5. 在E-R模型中,包含以下根本成分( )。 A) 数据、对象、实体 B) 限制、联络、对象 C) 实体、联络、属性 D) 实体、属性、操作 ( A ) 6. 各种软件维护的类型中最重要的是( )。 A) 完善性维护 B) 纠错性维护 C) 适应性维护 D) 预防性维护( B ) 7软件测试的目的是( )。A. 证明软件是正确的 B. 觉察错误、降低错误带来的风险C. 解除软件中全部的错误 D. 与软件调试一样( D )8软件生命周期中所花费用最多的阶段是( )A具体设计 B软件编码 C软件测试 D软件维护( C )9若有一个计算类型的程序,它的输入量只有一个X,其范围是-1.0, 1.0,现从输入的角度考虑一组测试用例:-1.001, -1.0, 1.0, 1.001.设计这组测试用例的方法是( )A条件覆盖法 B等价分类法 C边界值分析法 D错误推想法( D )10、具体设计的根本任务是确定每个模块的( )设计A功能 B.调用关系 C.输入输出数据 D.算法( A )11设函数C(X)定义问题X的困难程序,函数E(X)确定解决问题X须要的工作量(时间)。对于两个问题P1和P2,假设C(P1)>C(P2)明显E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:( )A模块化的依据 B逐步求精的依据 C抽象的依据 D信息隐藏和部分化的依据( D )12下面几种白箱测试技术,哪种是最强的覆盖准则 ( ) A语句覆盖 B条件覆盖 C断定覆盖 D条件组合覆盖( A )13面对数据流的设计方法把( )映射成软件构造。 A数据流 B系统构造 C限制构造 D信息流( A )14.内聚程度最低的是( )内聚A.间或 B.过程 C.依次 D.时间( A )15.确定测试支配是在( )阶段制定的.A总体设计 B.具体设计 C.编码 D.测试( D )16需求分析的产品是( ) A数据流程图案 B数据字典 C断定表 D需求规格说明书 ( C )17数据字典是软件需求分析阶段的最重要工具之一,其最根本的功能是( )A数据库设计 B数据通信 C数据定义 D数据维护( D )18.( )引入了“风险驱动”的思想,适用于大规模的内部开发工程。 A增量模型 B喷泉模型 C原型模型 D螺旋模型( D )19模块的内聚性最高的是( ) A逻辑内聚 B时间内聚 C间或内聚 D功能内聚( D )20.进步测试的有效性特别重要,胜利的测试是指( )A.证明了被测试程序正确无误 B. 说明了被测试程序符合相应的要求C.未觉察被测程序的错误 D.觉察了至今为止尚未觉察的错误二推断题(每题1分,共10分)将答案写在题号前的( )中,正确用, 错误用。( × )1、开发软件就是编写程序。( ×)、系统测试的主要方法是白盒法,主要进展功能测试、性能测试、平安性测试及牢靠性等 测试。( × )3、编程序时应尽可能利用硬件特点以进步程序效率.( × )4、软件需求分析的任务是建立软件模块构造图。( )5、尽可能运用高级语言编写程序( × )6、以构造化分析方法建立的系统模型就是数据流图。( × )7、进展总体设计时加强模块间的联络。( × )8、编码时尽量多用全局变量.( )9、用CASE环境或程序自动生成工具来自动生成一部分程序.( × )10、软件测试是要觉察软件中的全部错误。三、简答题:(每题5分,共25分)1. 软件生命期各阶段的任务是什么? 软件定义、软件开发、软件运行 答:软件生命期分为7个阶段: 1、问题定义:要解决的问题是什么2、可行性探讨:确定问题是否值得解,技术可行性、经济可行性、操作可行性3、需求分析:系统必需做什么4、总体设计:系统如何实现,包括系统设计和构造设计5、具体设计:具体实现设计的系统6、实现:编码和测试7、运行维护:保证软件正常运行。2、软件重用的效益是什么? 答:1、软件重用可以显著地改善软件的质量和牢靠性。2、软件重用可以极大地进步软件开发的效率。3、节约软件开发的本钱,避开不必要的重复劳动和人力、财力的奢侈。 3、 自顶而下渐增测试与自底而上渐增测试各有何优、缺点? 答:自顶而下渐增测试 优点:不须要测试驱动程序,可以在测试阶段的早期实现并验证系统的主要功能,而且可以尽早觉察上层模块的接口错误。 缺点:须要存根程序,底层错误觉察较晚。 自底而上渐增测试 优点与缺点和自顶而下渐增测试相反。 4 、 进步可维护性的方法有哪些? 答:(1)在软件工程的每一阶段都应当努力进步系统的可维护性,在每个阶段完毕前的审查和复审中,应着重对可维护性进展复审。(2)在需求分析阶段的复审中,应对将来要扩大和修改的部分加以注明。(3)在探讨软件可移植性问题时,要考虑可能要影响软件维护的系统界面。(4)在软件设计的复审中,因从便于修改、模块化和功能独立的目的动身,评价软件的构造和过程,还应对将来可能修改的部分预先做打算。(5)在软件代码复审中,应强调编码风格和内部说明这两个影响可维护性的因素。(6) 在软件系统交付运用前的每一测试步骤中都应给出须要进展预防性维护部分的提示。(7)在完成每项维护工作后,都应对软件维护本身进展细致细致的复审。 (8) 为了从根本上进步软件系统的可维护性,人们正试图通过干脆维护软件规格说明来维护软件 ,同时也在大力开展软件重用技术。5、简述软件测试要经过哪几个步骤,每个步骤与什么文档有关。【解答】测试过程按 4 个步骤进展,即单元测试、集成测试、确认测试和系统测试。单元测试集中对用源代码实现的每一个程序单元进展测试,与其相关的文档是单元测试支配和具体设计说明书。集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系构造的构造进展测试。与其相关的文档是集成测试支配和软件需求说明书。确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。与其相关的文档是确认测试支配和软件需求说明书。系统测试把已经经过确认的软件纳入实际运行环境中,与其他系统成份组合在一起进展测试。与其相关的文档:用户指南、运用手册等。四、应用题(每题8分,共40分)1、 假设一家工厂的选购部每天须要一张定货报表,报表按零件编号排序,表中列出全部须要再次定货的零件。对于每个须要再次定货的零件应当列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供给者,次要供给者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应当再次定货。要求:画出系统的数据流图。 答: 第 16 页