《《软件工程》期末考试试卷集合.pdf》由会员分享,可在线阅读,更多相关《《软件工程》期末考试试卷集合.pdf(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 软件工程期末考试试卷一、填 空 题(在括号内填写正确的答案,每 空 1分,共 25分)1.软件工程学的基本原则包括 分解性、独立性、一致性、确定性等。2.软件生存周期一般可分为 问题定义、可行性研究、需求分析、设计、编码、a试_ _ _ _ _ _ _ _ _ _ _ _、运行与维护阶段。3.成本估计 方 法 主 要 有 白顶向卜方法、自底向上方法 和算法模型估计三种类型。4.数据流图的基本符号包括 数据输入的源点和数据输出的 汇 点、加 工、数 据 流、数据存储文件5.JSD是一种典型的 面向数据结构 的分析设计方法。6.详 细 设 计 的 工 具 有 图形工具、表格工 具 和 语言工具。
2、7.IPO图由 输入、处理和 输出 三个框组成。这个图的特点是能够直观的显示三者之间的关系。8.面向对象技术是一整套关于如何看待软件系统 和 现实世界 的关系,以什么观点来研究问题并进行分析求解,以及如何进行系统构造的软件方法学。面向对象方法是一种运用 类、_ 对塞_ _ _ _ _ _ _ _、继承、封装、聚集、消息传送、多态性等概念来构造系统的软件开发方法。9.分析已有的程序,寻求比源代码更高级的抽象表现形式,这就是软件的逆向工程。10.程序测试是对编码阶段的语法错、语义 和运行 进行查找的编码执行活动。二、单项选择题(将一个正确的答案代码填入括号中,每小题2 分,共 10分)1 .下列哪
3、个阶段不属于软件生存期的三大阶段(c)。A、计划阶段 B、开发阶段C、编码阶段 D、维护阶段2.下列哪个图不是N-S图的构件(c)。WHILE MBCUNTIL N3.对于下列各图,有关描述中正确的是(A)。A、数据A 和 B 同时输入变成C4.下 列哪种方法不是度量效益的方法(B)。A、货币的时间价值 B、算法模型估计C、投资回收期 D、纯收入5.下列描述错误的是(DA、数据流图将各种信息流抽象成数据流的形式B、数据流图不反映控制关系、调用关系C、数据流图不反映处理逻辑的先后顺序D、数据流图不反映数据的流向三、多 项 (将雌案脩霜中再中,每d题 3分,共15分)1.需求分析阶段应该完成的文档
4、资料包括(ABCD)。A、系统规格说明 B、数据要求C、用户系统描述 D、修正的开发计划2.下 列关于模块的描述,正确的是(ABCD)。A、具有独立的模块软件比较容易开发出来B、独立的模块比较容易测试和维护C、模块的独立程度可以通过内聚和耦合标定D、独立的模块可以完成个相对独立的特定子功能3.关于内容耦合的描述正确的是(ADA、内容耦合是最高程度的耦合B、应该尽量使用内容耦合C、高级语言一般设计成允许内容耦合的形式D、如果一个模块有多个入口,可能发生内容耦合4.下 列属于不标准的书写格式(BCD)。A、书写时适当使用空格分隔B、一行写入多条语句C、嵌套结构不使用分层缩进的写法D、程序中不加注释
5、5.软件测试主要包括(ABC)方面的差错和纠错。A、软件计划 B、软件设计C、软件编码 D、软件价格四、判 断 题(正确的在括号内打上“J”,错误的打上“X”。每小题3 分,共 30分)1.螺旋模型是利用笛卡尔坐标的四个象限分别代表四个方面的活动来表示。(Y)2.模块越多开发成本越小。(N)3.内聚是指一个软件结构内各个模块之间互连程序的度量。(N)4.结构化设计属于面向数据流的设计方法。(Y)5.详细设计是在概要设计之后进行的它利用概要设计的结果对系统中的每个模块给出足够的过程性描述y6.程序运行过程中出现错误叫做容错。(N)7.软件测试的目的是证明程序没有错误。(N)8.白盒测试法是将程序
6、看成一个透明的盒子,不需要了解程序的内部结构和处理过程。(N)9.PAD图在设置了五种基本的控制结构后,还允许递归调用。(Y)10.独立编译是指一个大程序的不同程序单元分别编译,然后重 新连接整个程序段。y五、问 答 题(每小题5 分,共 20分)1.什么是软件生存期。2.简述什么是系统流程图。3.为什么数据流图要分层?4.软件的质量反应为哪些方面的问题?五、问 答 题(每小题5 分,共 20分)1.答:一个软件从定义到开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。软件生存周期就是从提出软件产品开始,直到该软件产品被淘汰的全过程。2.答:系
7、统流程图是描述物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘系统里的每个 部 件(程序、文件、数据库、表格、人工过程等)。系统流程图表达的是部件的信息流程,而不表示对信息进行加工处理的控制过程。3.答:这了表达数据处理过程的数据加工情况,用一个数据流图是不够的。为表达稍为复杂的实际问题,需要按照问题的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系。4.答:软件需求是度量软件质量的基础,不符合需求的软件就不具备质量。在各种标准中定义了一些开发准则,用来指导软件人员用工程化的方法来开发软件。如果不遵守这些开发准则,软件质量就得不到保证。往往会有一些隐含的需求没有明确地提出来
8、。如果软件只满足那些精确定义了的需求而没有满足这些隐含的需求,软件质量也不能保证。软件质量是各种特性的复杂组合。它随着应用的不同而不同,随着用户提出的质量要求不同而不同。1.2.3.4.5.678912.3.4.软件生存周期一般可分为一问题定义_、可行性研究、一 需 求 分 析、设计编码、测试_ _ _ _ _ _ _ _、运行与维护阶段。按软件的功能进行划分,软 件 可 以 划 分 为 系统软件、支撑软件 和应用软件。可行性研究主要集中在以下四个 方 面 经济可行性、技术可行性、法律可行性 和抉择。用 户 界 面 的 可 使 用 性 是用户界面设计最重要的也是最基本的目标。常见的软件概要设计
9、方法有3 大类:以 数 据 流 图 为 基 础 构 造 模 块 结 构 的 一 结 构 化 设 计 方 法,以数据结构为基础构造模块的 ackson方法,以对象、类、继承和通信为基础的面向对象设计方法_ 数据流图_ _ _ _ _ _ _ 和数据字典 共同构成系统的逻辑模型。软件测试的方法有分析方法 和 _非 分 析 方 法 (即黑盒法)。单元测试一般以 白盒_ _ _ _ _ _ _ _ _ _ _ _ _ 测试为主,黑 盒 _ _ _ _ _测试为辅。成本估计方法主要有_ 自 底 向 上 估 计、_ 自顶向下估计 和算法模型估计三种类型。下列哪个阶段不属于软件生存周期的三大阶段(C)。A、
10、计划阶段 B、开发阶段C、编码阶段 D、维护阶段需求分析是(A)。A、软件开发工作的基础 B、软件生存周期的开始C、由系统分析员单独完成的 D、由用户自己单独完成的原型化方法是软件开发中一类常用的方法,它与结构化方法相比较,更 需 要(B)。A、明确的需求定义 B、完整的生命周期C、较长的开发时间 D、熟练的开发人员软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归测试过程称为(A),5.1.2.3.4512345678910.234A、改正性维护 B、适应性维护C、完善性维护 D、预防性维护一般说来,投入运行的软件系统中有错误(A)。A、不是不可以理解的 B、是不能
11、容忍的C、是要求退货的理由 D、是必然的下面哪些测试属于白盒测试(ae)。A、基本路径测试 B、等价类划分 C、边界值分析 D、错误推测E、逻辑覆盖测试下列I I 那些选项是属于内容耦合(abc)。A、一个模块直接访问另一个模块的内部数据B、一个模块有多个入口C、一个模块不通过正常入口转到另一模块内部D、一个模块只有一个入口下列属于度量效益方法的是(abc)。A、货币的时间价值 B、投资回收期B、收入 D、投资回报率数据流图是用于表示软件模型的一种图示方法,在下列可采用的绘制方法中,哪些是常采用的(acd)。A、自顶向下B、自底向上C、分层绘制D、逐步求精软件设计中一般将用到图形工具,卜列哪种
12、些可用作设计的图形工具(acdA、结构图B、实体联系图C、IPO图 D、层次图在进行总体设计时应加强模块间的联系。(N )系统结构图是精确表达程序结构的图形表示法。因此,有时也可以将系统结构图当作系统流程图使用。(N)用黑盒法测试时,测试用例是根据程序内部逻辑设计的。(N )在程序调试时,找出错误的位置和性质比改正该错误更难。(Y )以对象、类、继承和通信为基础的面向对象设计方法(00D)也是常见的软件概要设计方法之一。(Y )如果通过软件测试没有发现错误,则说明软件是正确的。(N)快速原型模型可以有效地适应用户需求的动态变化。(Y )模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高
13、内聚,低耦合度的软件产品。(Y )集成测试主要由用户来完成。(N )软件危机完全是由于硬件问题引起的。(N)什么是软件危机?为什么会产生软件危机?耦合性有哪几种类型?其耦合度的顺序如何简述需求分析工作可以分成哪四个方面?软件需求分析的有哪三个基本原则?什么是黑盒测试法?假定某靛名公司规总 乘客可以免费托运重量不超过30公斤的行李。当行李重量超过30公斤时,对头等舱的国内乘客超重部分每公斤收费4 元,对其它舱的国内乘客超重部分每公斤收费6 元,对国外乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。用判定树表示计算行李费的算法。答案:五、简答题(每小题5分,共
14、20分)1.答:软件危机是指软件在开发和维护过程中遇到的一系统严重问题,主要包含二方面的问题,一是如何开发利用软件,三是如何维护数量不断膨胀的已有软件。产生软件危机的原因,一方面与软件本身的特点有关,另一方面和软件开发与维护的方法不正确有关。2.答:低:非直接耦合-数据耦合-标记耦合一控制耦合一外部耦合一 公共耦合一内容耦合:高3.答:需求分析阶段分成四个方面:对问题的识别、分析与综合、制定规格说明和评审。三个基本原则:必须能够表达和理解问题的数据域和功能域;必须按自顶向下、逐步分解的方式对问题进行分解和不断细化;要给出系统的逻辑视图和物理视图。4.答:黑盒测试法把程序看成 个黑盒子,完全不考
15、虑程序的内部结构和处理过程,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据,产生正确地输出信息。六、分 析 设 计 题(-)判定树为下图残疾乘客一(W-30)x2行李费算法一头等仓-国内乘客 其他仓行李重量 W30厂头等仓-外国乘客 其他仓 行李重量-免精W C (P 2)显然 E (P l)E (P 2),则得出结论 E (P 1+P 2)E (P l)+E (P 2)就是:()A.模 块 化 的 根 据 B.逐 步 求精的根据C.抽象的根据 D.信息隐藏和局部化的根据(D )1 2.下面几种白箱测试技术,哪种是最强的覆盖准则()A.语句覆盖 B.条件覆盖
16、C.判定覆盖 D.条件组合覆盖(A )1 3.面向数据流的设计方法把()映射成软件结构。A.数据流 B.系统结构 C.控制结构 D.信息流(A )1 4.内聚程度最低的是()内聚A.偶然 B.过程 C.顺序 D.时间(A )1 5.确定测试计划是在()阶段制定的.A.总 体设计 B.详细设计 C.编码 D.测试(D )1 6.需求分析的产品是()A.数 据 流 程 图 案 B.数 据 字 典 C.判 定 表 D.需求规格说明书(C )1 7.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是()A.数据库设计 B.数据通信 C.数据定义 D.数据维护(D )1 8.()引入了“风险驱
17、动”的思想,适用于大规模的内部开发项目。A.增量模型 B.喷泉模型 C.原型模型 D.螺旋模型(D )1 9.模块的内聚性最高的是()A.逻辑内聚 B.时间内聚 C.偶然内聚 D.功能内聚(D )2 0.提高测试的有效性非常重要,成功的测试是指()A.证明了被测试程序正确无误 B.说明了被测试程序符合相应的要求C.未发现被测程序的错误 D.发现了至今为止尚未发现的错误二.判 断 题(每 题 1分,共 10分)将答案写在题号前的()中,正确用V ,错误用x。(X )1、开发软件就是编写程序。(X )2、系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。(X )3、
18、编程序时应尽可能利用硬件特点以提高程序效率.(义)4、软件需求分析的任务是建立软件模块结构图。(J )5、尽可能使用高级语言编写程序(X )6、以结构化分析方法建立的系统模型就是数据流图。(X )7、进行总体设计时加强模块间的联系。(X )8、编码时尽量多用全局变量.(V )9、用 C A S E 环境或程序自动生成工具来自动生成一部分程序.(X )1 0、软件测试是要发现软件中的所有错误。三、填 空 题(每 题 1 分,共 5 分):将结果填在()1、将卜面的关系按继承关系、聚集关系或普通关联进行分类。小汽车-红旗轿车(继承小汽车-驾驶员(普通关联班级-学生(聚集)2、将卜列各项分为类或类的
19、实例我的汽车(实例)交通工具(类)三、简答题:(每题5 分,共 25分)1.软件生命期各阶段的任务是什么?答:软件生命期分为7 个阶段:1、问题定义:要解决的问题是什么2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性3、需求分析:系统必须做什么4、总体设计:系统如何实现,包括系统设计和结构设计5、详细设计:具体实现设计的系统6、实现:编码和测试7、运行维护:保证软件正常运行。2.软件重用的效益是什么?答:1、软件重用可以显著地改善软件的质量和可靠性。2、软件重用可以极大地提高软件开发的效率。3、节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费。3 .自顶而下渐增
20、测试与自底而上渐增测试各有何优、缺点?答:,自顶而下渐增测试优点:不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能块的接口错误。缺点:需要存根程序,底层错误发现较晚。自底而上渐增测试优点与缺点和自顶而下渐增测试相反。4 .提高可维护性的方法有哪些?而且能够尽早发现上层模答:在软件工程的每一阶段都应该努力提高系统的可维护性,在每个阶段结束前的审查和复审中,应着重对可维护性进行复审。在需求分析阶段的复审中,应对将来要扩充和修改的部分加以注明。在讨论软件可移植性问题时,要考虑可能要影响软件维护的系统界面。在软件设计的复审中,因从便于修改、模块化和功能独立的目标出发,评价软件的结构和过
21、程,还应对将来可能修改的部分预先做准备。在软件代码复审中,应强调编码风格和内部说明这两个影响可维护性的因素。在软件系统交付使用前的每一测试步骤中都应给出需要进行预防性维护部分的提示。在完成每项维护工作后,都应对软件维护本身进行仔细认真的复审。为了从根本上提高软件系统的可维护性,人们正试图通过直接维护软件规格说明来维护软件,同时也在大力发展软件重用技术。简述软件测试要经过哪几个步骤,每个步骤与什么文档有关。【解答】测试过程按4 个步骤进行,即单元测试(模块测试)、集成测试(子系统测试和系统测试)、确认测试(验收测试)和平行运行。单元测试集中对用源代码实现的每一个程序单元进行测试,与其相关的文档是
22、单兀测试计划和详细设计说明书。集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。与其相关的文档是集成测试计划和软件需求说明书。确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。与其相关的文档是确认测试计划和软件需求说明书。平行运行把已经经过确认的软件纳入实际运行环境中,与其他系统成份组合在一起进行测试。与其相关的文档:用户指南、使用手册等。四、应用题(每题8 分,共 40分)1、假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:
23、零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。要求:画出系统的数据流图。答:2、将下面给出的伪码转换为N-S图和PAD图。void root(float rootl,float root2)i=1;j=0;while(i=10)输入一元二次方程的系数a,b,c;p=b*b-4*a*c;if(p 0)求出根并输出;if(p=0)求出重根并输出;j=j+Ui=i+1;)输出重根的方程的个数j;【解答】(1)N-S 图(2)PAD 图3、:输入三整数,判断是
24、否构成三角形,如构成三角形,则输出三条边的值,否则输出”不能构成三角形”.序流程图表示该问题的算法;2.计算程序复杂度;3.设计路径覆盖的测试用例。答:要求:1.用程路径:1.()2.3.4.(D _ 一程序复杂度=3+1=4测试用例路径测试用例(A,B,C)结果1A=3,B=4,C=5A=3,B=4,C=52A=5,B=8,C=2不能构成三角形3A=2,B=2,C=5不能构成三角形4A=5,B=2,C=2不能构成三角形4、某航空公司规定,乘客可以免费托运重量不超过3 0 k g 的行李。当行李重量超过3 0 k g 时,对头等舱的国内乘客超重部分每公斤收费4 元,对其他舱的国内乘客超重部分每
25、公斤收费6 元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。用判定树表示与上述每种条件组合相对应的计算行李费的算法.答案:国内乘客头 等 舱 行李费算法行李重量FF30kg外国乘客其 他 舱 头 等 舱 其他舱残疾乘客(-30)X2正常乘客W-30)X4残疾乘客 (IT-30)X3正常乘客(犷-30)X6残疾乘客(-30)X4正常乘客(犷-30)X8残疾乘客(爪-30)X6正常乘客(%-30)X12:行李重量 缶潺JF30kg 一 无 贺5、一个软件公司有许多部门,分为开发部门和管理部门两种,每个开发部门开发多个软件产品,每个部门由部门名字唯一确定。该公司有许多员工,员工分为经理,工作人员和开发人员。开发部门有经理和开发人员,管理部门有经理和工作人员。每个开发人员可参加多个开发项目,每个开发项目需要多个开发人员,每位经理可主持多个开发项目,建立该公司的对象模型。答案: