1、一、 选择题 ( 20 题,每题 1 分。这是 ABC 三份试卷的全部题目,删去了选项)1 白盒测试法是通过分析程序的 ( 内部逻辑 )来设计测试用例的。2 风险预测从两个方面评估风险 ,即风险发生的可能性以及( 风险发生所产生的后果 ) 。3 下列不属于黑盒测试的技术是 ( 程序段或语句的功能 ) 。4 为了提高模块的独立性 ,模块之间最好是( 数据耦合 ) 。5 一个软件开发过程描述了 “谁做” , “做什么” , “怎么做 ”和“什么时候做” ,RUP 用( 角色 )来表述“谁做” 。6 功能性注释嵌入在源程序内部 ,它是用来说明( 程序段或语句的功能 ) 。7 在结构化分析方法中 ,数
2、据字典是重要的文档。对加工的描述是数据字典的组成内容之一,常用的加工描述方法( 有结构化语言、判定树和判定表 ) 。8 软件危机的主要原因是 ( 软件本身特点与开发方法 ) 。9 DFD 是常用的进行软件需求分析的图形工具,其基本符号是( 加工、数据流、数据存储和外部实体 ) 。10 软件工程管理是对软件项目的开发管理 ,或者说是对整个软件( 生存期 )的一切活动进行管理。11 在面向数据流的软件设计方法中 ,一般将信息流分为( 变换流和事务流 ) 。12 在软件工程项目中 ,不随参与人数的增加而使软件的生产率增加的主要问题是( 参与人员之间的通信困难 ) 。13 下面 ( 有形性与可控性 )
3、不是软件的特征。14 下列说法错误的是 ( 面向对象的设计是面向对象分析的另一种思维方式 ) 。15 在软件的可行性分析中 ,可以从不同的角度对软件进行研究,其中是从软件的功能可行性角度考虑的是( 技术可行性 ) 。16 下述任务中 ,不属于软件工程需求分析阶段的是( 确定软件系统的运行平台 ) 。17 在面向对象方法中 ,信息隐蔽是通过对象的( 封装性 )来实现的。18 面向对象方法中 ,抽取和整理用户需求并建立问题域精确模型的过程叫(面向对象分析 ) 。 19 在遵循软件工程原则开发软件过程中 ,计划阶段应该依次完成( 系统定义、软件计划、需求分析 ) 。20 某处代码错误被修正后 ,却引
4、起以前可以正确运行的代码出错。 ( 回归测试 )最可能发现这个问题。21 从工程管理的角度来看 ,软件设计分两步完成( 概要设计与详细设计 ) 。22 某系统重用了第三方组件 (但无法获得其源代码) ,则应采用( 黑盒测试 )对组件进行测试。23 在软件设计与编码过程中 ,采取( 编写详细正确的文档 采用良好的程序结构 )的做法将使软件更容易理解和维护。24 为了降低软件维护的成本和难度 ,可采取的措施有( 在开发过程中就采取有利于维护的措施并加强维护管理 ) 。25 ( 结构化开发方法 ) 是一种面向数据流的开发方法 ,其基本思想是软件功能的分解和抽象。26 在人机界面的设计过程中应该需要考
5、虑下列问题 ( 1 系统响应时间 2 用户帮助设施 3出错信息处理 4 命令交互 ) 。27 等价分类法的关键是 ( 划分等价类 ) 。28 为了使网上银行系统能够支持信用卡多币种付款功能而进行扩充升级 ,这需要对原有系统的数据类型进行修改,这样的修改属于( 适应性 )维护。29 测试用例是用于对软件某项功能或功能组合进行测试的文档化细则 。测试用例应对( 测试目标和被测功能。测试环境和其他条件。测试数据和测试步骤。 )进行详细描述。30 ( 螺旋 ) 适合于大型软件的开发 ,它吸收了软件工程“演化”的概念,使得开发人员和用户对每个周期出现的风险有所了解,从而做出相应的反应。31 软件测试中
6、,白盒法是通过分析程序的( 内部逻辑 )来设计测试用例的。32 可行性分析要作的需求分析和设计应是 ( 简化、压缩的 ) 。33 面向对象分析与面向对象设计的说法 ,不正确的是( 面向对象设计一般不关注技术和实现层而的细节 ) 。34 软件设计时需要遵循抽象 、模块化、信息隐蔽和模块独立原则。在划分软件系统模块时,应尽量做到( 高内聚低耦合 ) 。35 软件工程要求在每一个关键阶段结束前进行可维护性复审 。系统设计阶段复审时主要应针对( 容易修改、模块化和功能独立的目的 )进行复审,评价软件的结构和过程。36 软件的集成测试工作最好由 ( 不属于该软件开发组的软件设计人员 )承担,以提高集成测
7、试的效果。37 极限编程 (XP)由价值观、原则、实践和行为四部分组成,其中价值观包括沟通、简单性、( 反馈和勇气 ) 。二、填空题(每空 1 分,共 10 分)1在面向对象的软件中, 是对具有相同数据和相同操作的一组相似对象的定义;是由某个特定的类所描述的一个具体对象。2软件开发过程来自用户方面的干扰和阻力主要有:不积极配合,求快求全和 。3在类层次中,子类只继承一个父类的数据结构和方法,称为 ,子类继承了多个父类的数据结构和方法,称为 。 4多重性说明了一个类的 对象能够与另一个类的 对象发生关联。5 软件开发中的原型是软件的一个早期可运行的版本,它反映了最终系统的 。 6软件测试方法中的
8、 属于静态测试方法。 7软件设计包含过程设计、接口设计、体系结构设计和数据设计,其中最后完成的设计是。三、判断题(判断命题正确与否,并说明理由。每题 2 分,共 10 分)1法是面向数据流,建立在数据封闭原则上的需求分析方法。2一般说来,模块的内聚程度越高,它们之间的耦合程度也就越高。3软件测试只能证明程序有错误,不能证明程序没有错误。4 如 果 测 试 数 据 满 足 条 件 覆 盖 , 则 必 然 满 足 判 定 覆 盖 。5. 划分模块可以降低软件的复杂度和工作量,所以应该将模块分得越小越好四、 名词解释(每题 3 分,共 12 分)1 数据字典2模块独立性3软件复用4 软件维护五、简答
9、题(每题 5 分,共 25 分)1软件复用的层次可以分为哪几个级别? 2CMM 将软件过程的成熟度分为哪几个级别? 3在软件测试中,应注意哪些原则? 4为了具有良好的程序设计风格,应注意哪些方面的问题?5面向对象程序设计有哪些优点?38 程序的三种基本控制结构是( 顺序 条件 循环 ) 。39 ( 分析和理解程序 )是决定软件维护成败和质量好坏的关键。40 数据库设计时的概念数据模型一般用( E-R )图表示。41 若有一个计算类型的程序,它的输入量只有一个,其范围是 -1.0, 1.0,现从输入的角度考虑一组测试用例: -1.001,-1.0,1.0,1.001 。设计这组测试用例的方法是(
10、 边界值分析 ) 。42 在结构化分析方法( SA)中, ( 数据字典 )与数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。43 面向对象的分析方法主要是建立三类模型,即( 对象模型、动态模型、功能模型 ) 。44 成功的测试是指运行测试用例后( 发现了程序错误 ) 。45 面向数据流的设计方法把( 数据流图 )映身成软件结构。46 软件危机是指( 软件开发和维护过程中遇到的一系列严重问题 ) 。47 检查软件产品是否符合需求定义的过程称为( 确认测试 ) 。48 汽车有一个发动机,汽车和发动机之间的关系是( 整体与部分 )关系。49 详细设计的基本任务是确定每个模块的( 算
11、法和使用的数据结构 )设计50 软件产品的生产主要是脑力劳动,软件产品的成本主要体现在软件的( 开发和研制 )上。51 以下( 需求设计 )不属于系统设计。52 需求规格说明书的作用不应该包括( 软件可行性研究的依据 ) 。53 软件质量必须从需求分析开始,在( 整个开发过程 )加以保证。54 软件是( 一系列按照特定顺序组织的计算机数据和指令的集合 ) 。55 SA 方法的基本思想是( 自顶向下逐步分解 ) 。56 软件工程是一门( 交叉性 )学科。二、 名词解释题 ( 6 题,每题 3 分)1 模块独立性:指每个模块只完成系统要求的独立的子系统(即:功能单一) ,并且与其他模块的联系最少且
12、接口单一(比如:只有一个接口)2 软件复用:将已有的软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费3 模块耦合性 :块之间的联系,软件系统结构中各个模块之间相互联系紧密程度的一种度量4 模块内聚性:一个模块内部各成分之间相关联程度的度量5 测试用例:为摸个特殊的目标而编制的一组测试输入、执行条件及预期结果,以便测试摸个程序的路径或者是核实是否满足某个特定要求。6 软件生存期模型:描述软件开发过程中各种活动如何执行的模型7 瀑布模型:将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作 8 信息隐蔽原则:将每个程序的成分隐蔽或封装在一个单一的设计模块中, 定义每一个模块时
13、尽可能少地显露其内部的处理9 动态模型:用于描述系统的过程和行为10 软件维护:在软件运行和维护阶段对软件产品所进行的修改11 CMM:软件过程能力成熟度模型(Capability Maturity Model for Software)12 软件调试:软件测试成功后,根据错误迹象确定错误的原因和准确位置,并加以改正。13 E-RD:描述数据对象间的关系,用来进行数据建模活动的记号14 DFD:数据流图,描绘系统的逻辑模型15 数据字典:描述数据流阁的数据存储、数据加工(最底层加工) 和数据流。16 状态转换图:通过描绘系统的状态及引起的系统状态转换事件,来表示是系统的行为17 SA:stru
14、ctured analysis 结构化分析,是一种适用于大型数据处理系统的、面向数据流的需求分析方法18 UML:统一建模语言三、 填空题 ( 6 题 12 空,每空 1 分)1 软件能力成熟度模型( CMM)将软件能力自低到高依次划分为哪几级? a) 初始级、可重复级、定义级、管理级和优化级。2 软件工程的两大主要范型是什么?a) 结构化泛型和面向对象泛型3 软件需求分析必不可少的、关键参与者是哪些人?a) 需求分析员、开发人员、客户需求工程师4 除数据流模型外,结构化分析建模还可使用什么模型?a) 状态转换模型b) 实体关系模型5 数据字典是对哪四类元素的详细定义或描述?a) 数据流b)
15、数据流分量c) 数据存储d) 数据处理6 在 UML 中,特殊/一般关系怎么表示?整体/部分关系又怎么表示?a) 泛化b) 聚集7 面向对象程序中实现重用的主要机制是什么?a) 继承b) 多态8 在设计阶段,要充分体现软件工程的哪些基本原则?a) 模块化、抽象、信息隐蔽9 结构化需求分析(SA)的关键模型为哪个?其核心是什么?a) 结构化分析模型,核心是数据字典10 数据流图的 4 种基本元素是什么?(开口矩形、矩形、箭头、圆角矩形)a) 数据源点,产生数据的地方b) 数据终点:数据最终消费者c) 数据流:在系统中进行流动的数据d) 数据存储:存储数据的地方e) 数据处理:数据加工的过程11
16、E-R 模型是用来描述什么的数据建模技术?a) 数据库12 瀑布模型是一种靠什么驱动的过程模型?螺旋模型又是什么驱动?a) 文档驱动b) 风险驱动13 软件生存周期可划分为哪三个大的阶段?a) 计划b) 开发c) 运行14 统一过程模型是靠什么驱动的、以什么为中心的、迭代、增量过程模型?a) 风险驱动b) 用例技术、以架构为重心的、迭代、增量过程模型15 软件需求分析回答的是什么问题?软件设计又是要回答什么关键问题?a) 软件需求分析回答的分析回答软件要做什么b) 软件设计回到的问题是怎么做16 按照产生和使用的范围不同,软件文档主要可分为哪几种?a) 开发文档、管理文档和用户文档b) 可行性
17、研究报告属于开发文档四、 简答题 ( 5 题,每题 6 分)1 软件工程的两大范型分别是什么 ?它们有什么不同?a) 分别是传统的结构化范型和面向对象范型。结构化范型要么面向行为要么面向数据,但没有既面向数据又面向行为的;而面向对象范型把数据和行为看成同等重要,即将对象视作一个融合了数据及在其上操作的行为的统一的软件组件。面向对象相对于结构化技术,无论对象的内部细节如何变化,只要对象提供的方法即接口保持不变,则整个软件产品的其他部分就不会受到影响,不需要了解对象内部的变化。2 如何画分层数据流图 ?a) 第一步,画子系统的输入输出:把整个系统视为一个大的加工,然后根据数据系统从哪些外部实体接收
18、数据流,以及系统发送数据流到那些外部实体,就可以画出输入输出图。这张图称为顶层图。b) 第二步,画子系统的内部:把顶层图的加工分解成若干个加工,并用数据流将这些加工连接起来,使得顶层图的输入数据经过若干加工处理后,变成顶层图的输出数据流。这张图称为 0 层图。从一个加工画出一张数据流图的过程就是对加工的分解。3 面向对象程序设计有哪些优点 ?a) 易维护采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成本的。 b) 质量高在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量。 c)
19、 效率高在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。使用这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量。 d) 易扩展由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低。4 在软件测试中,应注意哪些原则? a) 认真执行测试计划 b) “尽早和不断地进行软件测试 /评审 ” c) 优选测试工具、技术和方法 d) 精心设计测试用例 e) 交叉进行软件检测 f) 重点测试群集现象 g) 全面检查并分析测试结果 h) 妥善保管测试文档5 良好的程序设计风格强调编程时应遵循哪些基本规范?a) 源程
20、序文档化 2)数据说明的方法 3)语言的结构 4)输入和输出6 面向对象分析与面向对象设计的关系 ?a) 面向对象分析与面向对象设计的任务相同,面向对象分析的结果可以作为开始面向对象设计的模型,面向对象的设计结果可以作为蓝图,利用面向对象编程方法最终实现一个系统。7 统一建模语言 UML 包括哪些视图及图?a)8 用户需求和系统需求各有什么特点?a) 用户需求是从用户角度来描述系统功能和非功能需求,以便让不具备专业技术方面知识的用户能看懂。用户需求是描述系统的外部行为,用自然语言、图表和直观的图形来叙述。系统需求是比用户需求更详细的需求描述,是系统实现的基本依据,因此,是一个完全的、一致的系统
21、描述,是软件工程人员系统设计的起点。9 简述面向对象设计的基本准则。a) 模块化 b) 抽象 c) 信息隐藏 d) 弱耦合 e) 强内聚 f) 可重用10 简述软件需求分析的任务及过程。a) 需求分析过程主要有沟通、导出需求、分析与精化、可行性研究、协商与沟通、规格说明、需求验证、变更管理等步骤。 11 软件设计分哪两个阶段?它们的主要任务各是什么?a) 总体设计概要设计、软件结构设计、高层设计,仔细地分析需求规格说明,研究开发产品的模块划分。 b) 详细设计(模块)过程设计、低层设计,为结构设计中的各个模块设计过程细节,确定模块所需的算法和数据结构等。c) 设计测试测试和复审,确保设计的正确
22、和优化。12 何谓软件结构图?它包括哪些符号元素? a) 软件结构图是软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制层次体系。b) 模块:模块带有名字和方框表示,名称应体现模块的功能信息关系:控制关系反映了模块间的调用关系,用单向箭头或直线表示信息传递:用带有注释的短箭头表示模型调用过程中传递的功能循环调用和选择调用:在上部模块底部加一个菱形符号表示选择调用,在上部模块的下方加一个弧形箭头,表示循环调用c) 主要元素有:模块、控制关系、信息传递、循环调用和选择调用13 何谓面向对象方法?它有什么特点和优势?a) 面向对象方法是以认识论为基础,用对象来理解和分析问题空间,并设
23、计和开发出由对象构成的软件系统(解空间)的方法。b) 特点:封装性、多态性、继承性,具有很强的类的概念,因此他就能很自然地直观的模拟人类认识客观世界的方式,亦即模拟人类在认知进程中的由一般到特殊的演绎功能或由特殊到一般的归纳功能,类的概念既反映出对象的本质属性,又提供了实现对象共享机制的理论根据。14 何谓编码风格?良好的编码风格主要体现在哪些方面?a) 是指一个人编制程序时所表现出来的特点、习惯和逻辑思路等。 b) 注意事项:c) 源程序文档化(标识符应按意取名。 程序应加注释。 )d) 数据说明:i. 数据说明顺序应规范,使数据的属性更易于查找,从而有利于测试、纠错与维护。例如按以下顺序:
24、常量寿命、类型说明、全程量说明、局部量说明。 ii. 一个语句说明多个变量时,各变量名按字典序排列。 iii. 对于复杂的数据结构,要加注释,说明在程序实现时的特点e) 语句构造:简单直接,不能为了追求效率而使代码复杂化f) 输入输出:i. 输入操作步骤和输入格式尽量简单。 ii. 应检查输入数据的合法性、有效性,报告必要的输入状态信息及错误信息。 iii. 输入一批数据时,使用数据或文件结束标志,而不要用计数来控制。 iv. 交互式输入时,提供可用的选择和边界值。 v. 当程序设计语言有严格的格式要求时,应保持输入格式的一致性。 vi. 输出数据表格化、图形化g) 追求效率i. 效率是一个性
25、能要求,目标在需求分析给出。 ii. 追求效率建立在不损害程序可读性或可靠性基础上,要先使程序正确,再提高程序效率,先使程序清晰,再提高程序效率。15 简述面向对象分析与设计的过程。a) 需求获取根据需求写用例描述或话用例图,做到已经了解用户想让系统实现的方方面面b) 系统分析(实体类)根据用例描述或用例图识别出类。先识别出类,再识别出类的属性,然后是类的方法,最后是类的关系。这中间伴随着活动图和顺序图,并且是个迭代的过程,直到各种业务实体类都已经被识别到系统来。c) 系统设计(界面层、业务层、服务层 )根据不同的业务规则,再结合各种设计模式,设计高级业务类、控制类、界面类、服务类。设计界面类
26、的时候一起设计用户控件,这些统统作为界面层的东西。设计高级业务类,控制类即为业务层。服务类即为服务层。在涉及持久对象的服务类时,可以只设计空的而服务,因为这个时候可以不必理会将来或其他人是用何种方法实现持久层的。d) 系统设计(持久层、数据层 )设计持久层与数据层,可以自己封装数据操作方法,也可以使用别人写好的。比如 IBatis工具。而对于实例类,则需要在这里进行关系数据库映射,把类都映射成数据表,并画出ER 图。然后通过代码工具(当然也可以自己写),实现这些映射。如 Ibatis 就是写一堆 Dao类与 XML 文件。e) 系统设计(补充服务层)现在回头把服务类的具体持久层服务方法补充完整。当然,你如果想采用 WCF,则还需要设计契约等。f) 静态工具类设计在整个过程中,可以逐步的完善此系统的静态工具类。五、 应用题 ( 2 题,每题 10 分)1 请画出 ATM 机系统的状态图。2 某 “调整工资 ”处理模块接受一个 “职称 ”的变量,根据职称的不同(助教、讲师、副教授、教授)作不同的处理,其中若是讲师和助教还必须输入工龄,讲师只有工龄超过 5 年,助教只有工龄超过 2 年才能调整工资。请用等价类划分法设计测试用例。