《武汉理工大学软件工程a考试总结》由会员分享,可在线阅读,更多相关《武汉理工大学软件工程a考试总结(18页珍藏版)》请在金锄头文库上搜索。
1、一、单选题 (25分,每题1分)(1) 软件可以分为系统软件、支撑软件、应用软件等,这是根据( )来划分的。 A. 软件的工作方式 B. 软件的用途 C. 软件的功能 D. 软件的制造过程(2) 基于软件的服务范围一般将其划分为产品软件和( )。 A. 免费软件 B. 定制软件 C. 管理软件 D. 服务软件(3) 软件设计包括概要设计和( )。 A. 宏观设计 B. 计算机辅助设计 C. 面向过程的设计 D. 详细设计,二、简单题 (35分,每题7分),1.什么是软件工程?简述软件工程的七条基本原理。,软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,
2、以提高质量,降低成本为目的。七条基本原理:用分阶段的生命周期计划严格管理;坚持进行阶段评审;实行严格的产品控制;采用现代程序设计技术;结果应能清楚地审查;开发小组的人员应该少而精;承认不断改进软件工程实践的必要性。,2.什么是软件生存周期模型?请至少列举四种主要的模型。,答:软件生存周期模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。四种主要的模型:瀑布模型,演化模型,喷泉模型,基于构件的开发模型,3.为什么软件需要维护?简述软件维护的过程。,原因:1)改正在特定使用条件下暴露出来的一些潜在程序错误或设计缺陷;2)因在软件使用
3、过程中数据环境发生变化(如所要处理的数据发生变化)或处理环境发生变化(如硬件或软件操作系统等发生变化),需要修改软件,以适应这种变化;3)用户和数据处理人员在使用时常提出改进现有功能、增加新功能、以及改善总体性能的要求,为满足这些要求,需要修改软件。软件维护的过程:首先建立维护的机构,申明提出维护申请报告的过程及评价的过程,为每一个维护申请规定标准的处理步骤,建立维护活动的记录保管,并规定复审的标准。,4.影响软件维护工作量的因素有哪些?,答:1)系统大小。系统越大,功能越复杂,理解掌握起来就越困难,需要的维护工作量越大。2)程序设计语言。使用功能强的程序设计语言可以控制程序的规模。语言的功能
4、越强,生成程序所需的指令数就越少;语言的功能越弱,实现同样功能所需的语句就越多,程序就越大,维护起来就越困难。3)系统年龄。老系统比新系统需要更多的维护工作量。许多老系统在当初并未按照软件工程的要求进行开发,没有文档,或文档太少,或者在长期的维护中许多地方与程序不一致,维护起来困难较大。4)数据库技术的应用。使用数据库工具,可有效地管理和存储用户程序中的数据,可方便地修改、扩充报表。数据库技术的使用可以减少维护工作量。5)先进的软件开发技术。在软件开发时,如果使用能使软件结构比较稳定的分析与设计技术(如面向对象分析、设计技术),可以减少一定的工作量。6)其它。如,应用的类型、数学模型、任务的难
5、度、IF嵌套深度等等都会对维护工作量产生一定的影响。,5.提高可维护性的方法有哪些?,答: 建立明确的软件质量目标和优先级使用提高软件质量技术和工具进行明确的质量保证审查选择有利于可维护性的程序设计语言提供完整和一致的文档,6.软件重用的效益是什么?,答:可重用的软部件有的可以不加修改直接使用,有的需要修改后再用。可重用软部件应具有清晰的结构和注解,应具有正确的编码和较低的时/空开销。各种可重用软部件还可以按照某种规则存放在软部件库中,供软件工程师选用。可重用性有助于提高软件产品的质量和开发效率、有助于降低软件的开发和维护费用。从更广泛的意义上理解,软件工程的可重用性还应该包括:应用项目的重用
6、,规格说明(也称为规约)的重用,设计的重用,概念和方法的重用,等等。一般来说,重用的层次越高,带来的效益也就越大。,7.如何理解模块独立性?用什么指标来衡量模块独立性?,答:模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他模块的接口是简单的。模块的独立程度可以由两个定性标准度量:耦合,模块之间的相对独立性的度量;内聚,模块功能强度的度量 。,8.原型化方法主要用于解决什么问题?试说明这种方法的主要优缺点。,答:主要用于解决诸如用户定义了一组一般性目标,但不能标识出详细的输入、处理及输出需求;开发者可能不能确定算法的有效性、操作系统的适应性或人机交互的形式等问题
7、原型模型的优点:原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户需求,因此,在开发过程的后续阶段不会因为发现了规格说明文档的错误而进行较大的返工。开发人员通过建立原型系统已经学到了许多东西(至少知道了“系统不应该做什么,以及怎样不去做不该做的事情”),因此,在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。原型模型的缺点:,9.简述软件测试要经过哪几个步骤,每个步骤与什么文档有关。,答: 1. 模块测试 - 单元2. 子系统测试 - 局部3. 系统测试 - 集成4. 验收测试 - 用户参与5. 平行运行 - 新旧共存,
8、10.采用黑盒技术设计测试用例有哪几种方法?这些方法各有什么特点?,答:黑盒测试技术:等价划分法、边界值分析法、错误推测法、因果图法等。等价类划分即把输入空间分解成一系列子域,软件在一个子域内的行为应是等价的。边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件;边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。错误推测法是列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。因果图适合于描述对于多种输入条件的组合,相应产生多个动作的形式来设计测试用例。因果图方法最终生成的是判定表。,三.应用题,1. 某公司为本科以上学历的人
9、重新分配工作,分配原则如下: (1)如果年龄不满26岁,学历是本科,男性要求报考研究生,女性则担任行政工作; (2)如果年龄满26岁不满50岁,学历是本科,不分男女,任中层领导职务,学历是硕士,不分男女,任课题组组长; (3)如果年龄满50岁,学历是本科,男性任科研人员,女性则担任资料员,学历是硕士,不分男女,任课题组组长; 用判定树表示与上述每种条件组合相对应的分配工作的算法。(答案以发货单为例),2. 给出一段程序,请设计测试用例,实现语句覆盖、判断覆盖、条件覆盖或条件组合覆盖。,3.条件覆盖测试用例,4 上图判定条件覆盖的测试用例,3. 给出一段程序的伪码,画出该程序的程序流程图、N-S图和PAD图,并计算该程序的McCabe复杂性度量。,程序流程图示例:,对于N-S图示例:,计算程序的McCabe复杂性度量有三种方法(先将其转换成程序图):(1)流图中的区域数等于环形复杂度,当计算区域数时应该包括图外部未被围起来的那个区域。(2) 流图G的环形复杂度V(G)= E N + 2 ; 其中,E是流图中边的条数,N是结点数。(3) 流图G的环形复杂度V(G)= P + 1 ;其中,P是流图中判定结点的数目。,PAD图示例:,