软件工程试题及答案[2].docx
软件工程期末试卷(A)说明:本试卷为04级计算机专业专升本软件工程期末试卷,总计100分,时间100分钟一, 选择题:每题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 11设函数CX定义问题X的困难程序,函数EX确定解决问题X须要的工作量时间。对于两个问题P1和P2,假如CP1>CP2明显EP1>EP2,那么得出结论EP1+P2>EP1+EP2就是: A模块化的依据 B逐步求精的依据 C抽象的依据 D信息隐藏和局部化的依据 D 12下面几种白箱测试技术,哪种是最强的覆盖准那么 A语句覆盖 B条件覆盖 C判定覆盖 D条件组合覆盖 A 13面对数据流的设计方法把 映射成软件构造。 A数据流 B系统构造 C限制构造 D信息流 A 14.内聚程度最低的是( )内聚 A 15.确定测试方案是在( )阶段制定的. 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. 说明白被测试程序符合相应的要求二推断题每题1分,共10分将答案写在题号前的 中,正确用, 错误用。 × 1, 开发软件就是编写程序。 ×, 系统测试的主要方法是白盒法,主要进展功能测试, 性能测试, 平安性测试及牢靠性等 测试。 × 3, 编程序时应尽可能利用硬件特点以提高程序效率. × 4, 软件需求分析的任务是建立软件模块构造图。 5, 尽可能运用高级语言编写程序 × 6, 以构造化分析方法建立的系统模型就是数据流图。 × 7, 进展总体设计时加强模块间的联系。 × 8, 编码时尽量多用全局变量. 9, 用CASE环境或程序自动生成工具来自动生成一局部程序. × 10, 软件测试是要发觉软件中的全部错误。三, 填空题每题1分,共5分:将结果填在 1, 将下面的关系按继承关系, 聚集关系或一般关联进展分类。小汽车-红旗轿车 继承 小汽车-驾驶员 一般关联 班级-学生 聚集 2, 将以下各项分为类或类的实例我的汽车 实例 交通工具 类 三, 简答题:每题5分,共25分1. 软件生命期各阶段的任务是什么? 答:软件生命期分为7个阶段: 1, 问题定义:要解决的问题是什么2, 可行性探讨:确定问题是否值得解,技术可行性, 经济可行性, 操作可行性3, 需求分析:系统必需做什么4, 总体设计:系统如何实现,包括系统设计和构造设计5, 具体设计:具体实现设计的系统6, 实现:编码和测试7, 运行维护:保证软件正常运行。 2, 软件重用的效益是什么? 答:1, 软件重用可以显著地改善软件的质量和牢靠性。2, 软件重用可以极大地提高软件开发的效率。3, 节约软件开发的本钱,防止不必要的重复劳动和人力, 财力的奢侈。 3, 自顶而下渐增测试与自底而上渐增测试各有何优, 缺点? 答: 自顶而下渐增测试 优点:不须要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能够尽早发觉上层模块的接口错误。 缺点:须要存根程序,底层错误发觉较晚。 自底而上渐增测试 优点与缺点和自顶而下渐增测试相反。 4 , 提高可维护性的方法有哪些? 答:在软件工程的每一阶段都应当努力提高系统的可维护性,在每个阶段完毕前的审查和复审中,应着重对可维护性进展复审。 在需求分析阶段的复审中,应对将来要扩大和修改的局部加以注明。在探讨软件可移植性问题时,要考虑可能要影响软件维护的系统界面。 在软件设计的复审中,因从便于修改, 模块化和功能独立的目标动身,评价软件的构造和过程,还应对将来可能修改的局部预先做打算。 在软件代码复审中,应强调编码风格和内部说明这两个影响可维护性的因素。 在软件系统交付运用前的每一测试步骤中都应给出须要进展预防性维护局部的提示。 在完成每项维护工作后,都应对软件维护本身进展细致细致的复审。 为了从根本上提高软件系统的可维护性,人们正试图通过干脆维护软件规格说明来维护软件 ,同时也在大力开展软件重用技术。简述软件测试要经过哪几个步骤,每个步骤与什么文档有关。【解答】测试过程按 4 个步骤进展,即单元测试模块测试, 集成测试子系统测试和系统测试, 确认测试验收测试和平行运行。单元测试集中对用源代码实现的每一个程序单元进展测试,与其相关的文档是单元测试方案和具体设计说明书。集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系构造的构造进展测试。与其相关的文档是集成测试方案和软件需求说明书。确认测试那么是要检查已实现的软件是否满意了需求规格说明中确定了的各种需求,以及软件配置是否完全, 正确。与其相关的文档是确认测试方案和软件需求说明书。平行运行把已经经过确认的软件纳入实际运行环境中,与其他系统成份组合在一起进展测试。与其相关的文档:用户指南, 运用手册等。四, 应用题每题8分,共40分1、 假设一家工厂的选购部每天须要一张定货报表,报表按零件编号排序,表中列出全部须要再次定货的零件。对于每个须要再次定货的零件应当列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应当再次定货。要求:画出系统的数据流图。 答: 2、 将下面给出的伪码转换为N-S图和PAD图。void root ( float root1, float root2 ) i = 1; j = 0; while ( i <= 10 ) 输入一元二次方程的系数a, b, c;p = b*b 4*a*c;if ( p < 0 ) 输出“方程i无实数根;else if ( p > 0 ) 求出根并输出;if ( p = 0 ) 求出重根并输出; j = j + 1;i = i +1; 输出重根的方程的个数j;【解答】1N-S图i = 1; j = 0;while ( i <= 10 )输入a, b, c; 计算 p = b2 - 4ac; p < 0 输出“方程i无实根求出根并输出âp > 0 p = 0 求出重根并输出; j = j + 1;âi = i + 1;输出重根的方程个数iTTTFFF2PAD图i = 1; j = 0;输出重根的方程个数iwhile ( i <= 10 )输入a,b,c; 计算 p = b24ac;求出根并输出p > 0 p < 0 输出方程i无实根p = 0 求出重根并输出; j = j+1;i = i + 1;3, :输入三整数,推断是否构成三角形,如构成三角形,那么输出三条边的值,否那么输出不能构成三角形. 要求:1.用程序流程图表示该问题的算法;2.计算程序困难度; 3.设计路径覆盖的测试用例。答:开场输入A,B,CA+B>CA+C>BB+C>A输出ABC不能构成三角形完毕FFFTTT 路径: 1 2 3 4 程序困难度=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, 某航空公司规定,乘客可以免费托运重量不超过30kg的行李。当行李重量超过30kg时,对头等舱的国内乘客超重局部每公斤收费4元,对其他舱的国内乘客超重局部每公斤收费6元,对外国乘客超重局部每公斤收费比国内乘客多一倍,对残疾乘客超重局部每公斤收费比正常乘客少一半。用判定树表示与上述每种条件组合相对应的计算行李费的算法.答案:5, 一个软件公司有很多部门,分为开发部门和管理部门两种,每个开发部门开发多个软件产品,每个部门由部门名字唯一确定。该公司有很多员工,员工分为经理,工作人员和开发人员。开发部门有经理和开发人员,管理部门有经理和工作人员。每个开发人员可参与多个开发工程,每个开发工程须要多个开发人员,每位经理可主持多个开发工程,建立该公司的对象模型。软件公司部门名部门开发部门管理部门软件产品开发人员经理开发工程工作人员员工是是有有有有开发参与1+1+1+1+1+1+1+有答案: