《软件工程》复习题及参考答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第1页共14页一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案序号填在括号内。每小题1分,共20分)1.信息隐蔽概念与(A)这一概念直接的相关。A.模块的独立性B.模块类型的划分C.软件结构定义D.软件生命周期2.下列方法中不属于面向对象的开发方法有(C)。A.Booch方法B.Coad方法C.VDM方法D.OMT方法3.不属于详细设计的主要工具有(C)。A.IPO图B.PAD图C.PDLD.SC4.选择结构的复杂性比顺序结构的复杂性要(B)。A.小B.大C.相等D.无法比较5.软件需求分析是保证软件质量的重要步骤,它的实施应该是在(C)。A.编码阶段B.软件开发全过程C.软件定义阶段D.软件设计阶段6.模块内聚度越高,说明模块内各成分彼此结合的程度越(B)。A.松散B.紧密C.无法判断D.相等7.软件文档是软件工程实施中的重要部分,它不仅是软件开发各阶段的重要依据,而且影响软件的(A)。A.可理解性B.可维护性C.可扩展性D.可移植性8.单元测试阶段主要涉及(C)的文档。A.需求设计B.编码和详细设计C.详细设计D.概要设计9.鱼是一种水生动物。鱼与水生生物之间的关系是(A)。A.一般与特殊关系B.组装关系C.整体成员关系D.hasa得分第2页共14页10.下列选项不属于软件工程方法学三要素的是(D)。A.方法B.工具C.过程D.操作11.软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是(A)。A.运行和维护阶段B.设计阶段C.代码实现阶段D.测试阶段12..黑盒测试在设计测试用例时,主要需要研究(A)。A.需求规格说明与概要设计说明B.详细设计说明C.项目开发计划D.概要设计说明与详细设计说明13.可行性研究要进行一次(D)需求分析。A.深入的B.详尽的C.彻底的D.简化的、压缩了的14.下列属于维护阶段的文档是(C)。A.软件规格说明B.用户操作手册C.软件问题报告D.软件测试分析报告15.数据字典的最基本功能是(C)。A.数据库设计B.数据通信C.数据定义D.数据维护16.以下关于数据流图的说法不正确的是(C)。A.数据流图舍去了具体的物理元素,只剩下数据的流动、加工处理和存储B.数据流图是用作结构化分析建模的一种工具C.传统的数据流图主要由处理、数据源点/终点、数据流、控制流、数据存储组成D.数据流图的编绘采用自上向下、逐层分解的方法17.选择程序设计语言的关键因素是(D)。A.软件应用领域B.软件执行环境C.软件开发方法D.算法和数据结构18.所谓软件过程的里程碑,通常是指(C)。A.一定的时间间隔B.每个项目活动C.基线D.开发进度月报19.程序的三种基本控制结构是(B)。A.过程、子程序与分程序B.顺序、选择和重复第3页共14页C.递归、堆栈和队列D.调用、返回和转移20.因计算机硬件和软件环境的变化而作出的修改软件的过程称为(B)。A.改正性维护B.适应性维护C.完善性维护D.预防性维护二、填空题(每小题2分,共16分)1.软件不仅仅是程序,还应该有一整套_______文档_____________。2.传统的软件生命期模型是______瀑布模型______________。3.Jackson程序设计方法是一种______面向数据结构__________的设计方法。4.黑盒测试也称为______功能测试_____,白盒测试也称为____结构测试_______。5.与程序流程图相比,盒图没有__转移箭头_____,因此不允许随意转移控制。6.在单元测试中,使用_驱动程序_模拟被测单元的调用和数据传递动作,_存根程序__模拟被测模块的子程序。7.度量软件规模的常用技术主要有___代码行技术___和_____功能点技术____。8.可行性研究包括__技术可行性___、_经济可行性__和__社会可行性__等三个方面的可行性研究。三、简答题(每题8分,共32分)1.集成测试有哪两种测试策略?试比较它们的优缺点。答:主要是自顶向下集成测试策略和自底向上集成测试策略两种。自顶向下集成测试策略的优点是:能尽早地对程序的主要控制和决策机制进行检验,因此能较早地发现错误。缺点是:在测试较高层模块时,低层处理采用桩模块替代,不能反映真实情况,重要数据不能及时回送到上层模块,因此测试并不充分。自底向上集成测试策略的优点是:不用桩模块,测试用例的设计亦相对简单,但缺点是程序最后一个模块加入时才具有整体形象。2.简述结构化程序设计方法的基本要点。答:(1)采用自顶向下,逐步求精的程序设计方法.(2)使用三种基本控制结构构造程序,分别是顺序,选择和循环得分得分第4页共14页(3)采用主程序员组的组织形式.(4)采用单入口单出口的模块形式.3.试解释软件、软件工程和软件工程方法学的基本含义。答:软件:软件是一种产品,同时又是开发和运行产品的载体。作为一种产品,它表达了由计算机硬件体现的计算潜能。作为开发运行产品的载体,软件是计算机工作的基础、信息通信的基础,也是创建和控制其他程序的基础。具体包括以下三方面内容:(1)在运行中能提供所希望的功能和性能的指令集(即程序);(2)使程序能够正确运行的数据结构;(3)描述程序研制过程、方法所用的文挡。软件工程:是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。软件工程方法学:软件工程方法学是研究软件设计方法论及工程开发技术的一门新兴学科。4.简述面向对象开发方法的三大模型及各自的作用。答:面向对象开发方法中的三大模型是指对象模型、动态模型、功能模型。各自的作用是:对象模型:描述现实世界中的“类与对象”以及之间的关系,表示目标系统的静态数据结构。动态模型:描述对象之间的互相作用。功能模型:该模型表明系统中数据之间的依赖关系,以及有关的数据处理功能。四、应用分析题(共32分)1.根据给出的程序流程图,画出它的N-S图和流图(也称为程序图),并计算它的McCabe复杂度。(15分)其中:Pi代表操作语句,Ci代表判定条件得分第5页共14页答:(1)N-S图为:(2)流图为:(3)McCabe复杂度根据公式:V(G)=E–N+2=10–8+2=42.设计一个程序:先读入三角形的三条边的值(分别为A、B、C),再根据这些值判断三角形是普通的、等腰的或等边的,要求打印出说明信息。(10分)1)写出该程序的有关约束条件;2)结合黑盒测试中的等价分类法技术,设计有关测试用例。答:1)我们可以设三角形的3条边分别为A,B,C。如果它们能够构成三角形的3条边,必须满足的约束条件是:A0,B0,C0,且A+BC,B+CA,A+CB。如果是等腰的,还要判断A=B,或B=C,或A=C。如果是等边的,则需判断是否A=B,且B=C,且A=C。2)等价分类法有关部门等价类的划分:第6页共14页输入条件有效等价类无效等价类是否三角形的三条边(A0),(1)(B0),(2)(C0),(3)(A+BC),(4)(B+CA),(5)(A+CB),(6)(A≤0),(7)(B≤0),(8)(C≤0),(9)(A+B≤C),(10)(B+C≤A),(11)(A+C≤B),(12)是否等腰三角形(A=B),(13)(B=C),(14)(C=A),(15)(A≠B)and(B≠C)and(C≠A)(16)是否等边三角形(A=B)and(B=C)and(C=A)(17)(A≠B),(18)(B≠C),(19)(C≠A),(20)有关测试用例:序号【A,B,C】覆盖等价类输出1【3,4,5】(1),(2),(3),(4),(5),(6)一般三角形2【0,1,2】(7)不能构成三角形3【1,0,2】(8)4【1,2,0】(9)5【1,2,3】(10)6【1,3,2】(11)7【3,1,2】(12)8【3,3,4】(1),(2),(3),(4),(5),(6),(13)等腰三角形9【3,4,4】(1),(2),(3),(4),(5),(6),(14)10【3,4,3】(1),(2),(3),(4),(5),(6),(15)11【3,4,5】(1),(2),(3),(4),(5),(6),(16)非等腰三角形12【3,3,3】(1),(2),(3),(4),(5),(6),(17)是等边三角形13【3,4,4】(1),(2),(3),(4),(5),(6),(14),(18)非等边三角形14【3,4,3】(1),(2),(3),(4),(5),(6),(15),(19)15【3,3,4】(1),(2),(3),(4),(5),(6),(13),(20)第7页共14页3.绘制取款过程的数据流程图:(7分)储户将填好的取款单及存折交储蓄所,经查对储户帐,将不合格的存折和取款单退还储户,合格的存折和取款单被送交取款处理。处理时要修改储户帐和现金帐,并将存折利息单和现金交储户,同时将取款单存档。试画出以上存取款处理过程的数据流程图。答:数据流程图为:1.什么是软件?什么叫软件软件工程?其目标是什么?软件定义(1)在运行中能提供所希望的功能和性能的指令集(即程序);(2)使程序能够正确运行的数据结构;(3)描述程序研制过程、方法所用的文挡。软件工程定义1:应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。定义2:在软件设计、实现、检查、运行、维护各个过程中适用的立足于科学基础上的实用方法。软件工程的目标:a.降低开发和维护成本,提高软件质量,加快和控制开发进度,b.降低开发的风险(包括你提到的人员流动的风险),c.软件开发的实施使大型软件的开发成为可能2.什么是软件危机?它的表现是什么?文档:各种规格书、说明书、用户手册等等的总称。软件:程序与文档。软件危机:在计算机软件的开发和维护过程中,所遇到的一系列严重问题,这一系列问题使软件产生了危机。软件危机的表现:⑴对软件开发成本和进度的估计常常很不准确。⑵用户易对“已完成的”软件系统产生不满。⑶软件质量不可靠。⑷软件常常是不可维护的。⑸软件通常没有适当的文档资料。⑹软件成本越来越高。第8页共14页⑺软件开发生产率提高速度慢,跟不上发展。3.可行性研究的目的是什么?可行性研究的目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。若值得解,则推荐一个较好的方案,并制定一个初步的计划;若无可行解,则建议停止开发工程(以免浪费时间、人力、和金钱)。4.数据流图的基本要求是什么?描绘“做什么”,而不考虑“怎样做”。数据流图中描绘的是数据流,而不是控制流。5.软件生存期分几个阶段?每个阶段的主要作用是什么?(1)问题定义关键:要解决的问题是什么?作用:提出关于问题性质、工程目标和规模的书面报告。(2)可行性研究关键:问题是否有行得通的解决办法?作用:进行一次大大压缩和简化了的系统分析和设计的过程(抽象的),导出系统的高层逻辑模型(通常用数据流图表示),估计系统的成本和效益作为是否进行此项工程的重要依据。(3)需求分析确定目标系统必须具备哪些功能。得出经过用户确认的系统逻辑模型(一般用数据流图、数据字典和简要的算法描述表示)。(4)总体设计关键:应如何解决这个问题。作用:根据系统分析的结果来考虑系统的结构,即考虑算法与数据的结构。考虑如下问题:a.如何将系统划分成一个个模块;b.模块间传送什么数据;c.模块间如何调用;d.如何评价模块结构的质量。(5)详细设计如何具体实现这个系统?根据总体设计的结果,考虑在具体硬件与操作系统上的程序模块结构与数据结构。实际上是具体考虑每一模块内部采用什么算法。设计出程序的详细规格说明。(6)编码和单元测试写出正确的、容易理解的、容易维护的程序模块,并测试编写出的每一个模块。(7)综合测试通过各种类型的测试使软件达到预定的要求。集成测试:根据设计的软件结构,把经过单元测试的模块按某种选定的策略装配起来,进行必要的测试。验收测试:按规格说明书的规定,由用户对目标系统进行验收

1 / 14
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功