《2022年软件工程试题借鉴 .pdf》由会员分享,可在线阅读,更多相关《2022年软件工程试题借鉴 .pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1、面向对象方法学主要有哪些优点?答:主要有以下优点:1)与人类习惯的思维方法一致2)稳定性好3)可重用性好4)较易开发大型软件产品5)可维护性好a)面向对象的软件稳定性比较好。b)面向对象的软件比较容易修改。c)面向对象的软件比较容易理解。d)易于测试和调试。2、软件测试的目标是什么?软件测试有哪些基本准则?答:软件测试的目标是为了发现程序错误而执行程序的过程;好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;成功的测试是发现了至今为止尚未发现的错误的测试。所有的测试都应该能追溯到用户需求;应该在测试开始之前的相当长的时间,就制定出测试计划;把 Pareto 原理应用到软件测试;测试
2、应该从“小规模”开始;穷举测试是不可能的;为了达到最佳效果,应该有第三方来从事测试工作。3、软件需求规格说明书一般由哪几部分构成?各部分的作用分别是什么?答:需求规格说明书包括如下主要内容:引言: 用于说明项目的开发背景,应用范围, 定义所用到的术语和缩略词,以及列出文档中所应用的参考资料等。项目概述: 主要包括功能概述和约束条件。功能概述用于简要叙述系统预计实现的主要功能和各个功能之间的相互关系:约束条件用于说明对系统设计产生影响的限制条件。具体需求:主要包括功能需求,接口定义,处理。性能需求,软件属性及其他需求等。功能需求用于说明系统中每个功能需求,处理, 输出等信息, 主要借助于数据流图
3、和数据字典等工具进行表达:接口定义用于说明系统软/ 硬件接口。通信接口和用户接口的需求:性能需求用于说明系统对包括精度,影响时间, 灵活性等方面的性能要求:软件属性用于说明软件对可使用性, 安全性, 可维护性即可移植性等方面的需求:其他需求主要指系统需求对数据库,操作及故障处理等方面的需求。4、什么是非渐增式测试方法和渐增式测试方法?它们各有什么优缺点?答:先分别测试每个模块,再把所有模块按设计要求放在一起组合成所要的程序,这种方法称为非渐增式测试方法;把下一个要测试模块同已经测试好的那些模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试,这种方法称为渐增式测试。非渐增式测试
4、的缺点:测试者面对的场面往往混乱不堪,测试时会遇到许多错误,改正错误更是极端困难。而且一旦改正一个错误后,马上又会遇到新的错误,这个过程会继续下去,看起来好像永远也没有尽头。渐增式测试的优点: 把程序划分成小段来构造和测试,在这个过程比较容易分离和改正错误;对接口可进行更彻底测试;而且可以使用系统化的测试方法。(2 分)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - 5、模块间的耦合性有哪几种?它们各表示什么含义?答:耦合性有六
5、种: 完全独立、 数据耦合、 控制耦合、 特征耦合、 公共环境耦合、 内容耦合。完全独立: 两个模块中的每一个都能独立地工作而不需要另一个模块的存在,它们彼此完全独立,模块间无任何连接。数据耦合: 两个模块之间彼此通过参数交换信息,而且交换的信息仅仅是数据,那么这种耦合称为数据耦合。控制耦合: 两个模块之间传递的消息中有控制信息(尽管有时这种控制信息以数据的形式出现) ,则这种耦合称为控制耦合。特征耦合: 把数据结构作为参数传递而被调用的模块只需要使用其中一部分数据元素时,就出现了特征耦合。公共环境耦合: 两个或多个模块通过一个公共数据环境相互作用时,它们之间的耦合称为公共环境耦合。内容耦合:
6、 一个模块访问另一个模块的内部数据,或一个模块不能通过正常入口而转入另一个模块内部,或两个模块有一部分代码重叠,或一个模块有多个入口。6、在面向对象设计中,每个关联要选择具体的策略,请简述链属性的实现方法?答:它的实现方法取决于关联的阶数。对于一对一关联来说,链属性可作为其中一个对象的属性而存储在该对象中。对于一对多关联来说,链属性可作为 “多”端对象的一个属性。如果是多对多关联,则链属性不可能只与一个关联对象有关,通常使用一个独立的类来实现链属性,这个类的每个实例表示一条链及该链的属性。7、体系结构的设计原则是什么? 降低模块的耦合性,提高模块的内聚性;保持适中的模块规模;模块应具有高扇入和
7、适当的扇出; 软件结构中的深度和宽度不宜过大;模块的作用域应处于其控制域范围之内;尽量降低模块的接口复杂度。8、面向对象设计应该遵循哪些准则?简述每条准则的内容。答:模块化。 对象就是模块, 它是把数据结构和操作这些数据的方法紧密结合在一起所构成的模块。 抽象。 类实际是一种抽象数据类型,它对外开放的公共接口构成类的规格说明(即协议)。信息隐藏。它是通过对象的封装性实现,类结构分离了接口与实现,从而支持了信息隐藏。弱耦合。降低对象之间的交互耦合,提高继承耦合。强内聚。多利用服务内聚、类内聚和一般特殊内聚。可重用。有两个含义,一是尽量使用已有的类,二是在创建新类时,应该考虑将来的可重复使用性。9
8、、什么是集成测试?什么是非渐增式测试和渐增式测试?答:集成测试是测试和组装软件的系统化技术,是把模块按照设计要求组装起来的同时进行测试,主要目标是发现与接口有关的问题。先分别测试每个模块,再把所有模块按设计要求放在一起组合成所要的程序,这种方法称为非渐增式测试方法。把下一个要测试模块同已经测试好的那些模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试,这种方法称为渐增式测试。10、面向对象方法学中建立的三种模型各有什么特征?三种模型之间又有什么关系?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理
9、- - - - - - - 第 2 页,共 3 页 - - - - - - - - - 答:面向对象建模技术所建立的三种模型,分别从三个不同侧面描述了所要开发的系统。这三种模型相互补充、相互配合, 使得我们对系统的认识更加全面:功能模型指明了系统应该“做什么”; 动态模型明确规定了什么时候( 即在何种状态下接受了什么事件的触发) 做;对象模型则定义了做事情的实体。在面向对象方法学中,对象模型是最基本最重要的,为其他两种模型奠定了基础,我们依靠对象模型完成三种模型的集成。下面扼要地叙述三种模型之间的关系:(1) 针对每个类建立的动态模型,描述了类实例的生命周期或运行周期。(2) 状态转换驱使行为
10、发生,这些行为在数据流图中被映射成处理,在用例图中被映射成用例,它们同时与类图中的服务相对应。(3) 功能模型中的处理(或用例)对应于对象模型中的类所提供的服务。(4) 数据流图中的数据存储,以及数据的源点/ 终点,通常是对象模型中的对象。(5) 数据流图中的数据流,往往是对象模型中对象的属性值,也可能是整个对象。(6) 用例图中的行为者,可能是对象模型中的对象。(7) 功能模型中的处理(或用例)可能产生动态模型中的事件。(8)对象模型描述了数据流图中的数据流、数据存储以及数据源点/终点的结构。11、面向对象设计有哪五个层次?那四个部分?答:面向对象设计模型有主题,类-和对象,结构,属性,服务
11、五个层次组成;问题域,人机交互,任务管理和数据管理四个部分组成。12、模块间的内聚性有哪几种?它们各表示什么含义?答:模块间内聚包括了:偶然内聚、 逻辑内聚、 时间内聚、 过程内聚、 通信内聚、 顺序内聚、功能内聚。偶然内聚 : 一个模块完成一组任务,这些任务彼此间即使有联系关系,关系也是很松散的称为偶然内聚。逻辑内聚:一个模块完成的任务在逻辑上属于相同或相似的一类,则称为逻辑内聚。时间内聚:一个模块包含的任务必须在同一时间内执行,就叫做时间内聚。过程内聚:一个模块内的处理元素是相关的,而且必须以特定次序执行,则称为过程内聚。通信内聚: 如果模块中所有元素都使用同一个输入数据产生同一个输出数据,则称为通信内聚。顺序内聚: 一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行,则称为顺序内聚。功能内聚:如果模块内所有处理元素属于一个整体,完成单一的功能,则称为功能内聚名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 3 页 - - - - - - - - -