软件工程复习题
第一章
1. 选择题
(1) 下列说法中正确的是( )。
A. 20 世纪 50 年代提出了软件工程的概念
B. 20 世纪 60 年代提出了软件工程的概念
C. 20 世纪 70 年代出现了客户机 / 服务器技术
D. 20 世纪 80 年代软件工程学科达到成熟
答案:B
(2) 产生软件危机的主要原因是( )。
A. 软件工具落后
B. 软件生产能力不足
C. 实施严格的版本控制
D. 软件本身的特点及开发方法不满足
答案:D
(3) 软件工程的三要素是( )。
A. 技术、方法和工具
B. 方法、对象和类
C. 方法、工具和过程
D. 过程、模型和方法
答案:C
(4) 在下列选项中,( )不属于软件工程学科所要研究的基本内容。
A. 软件工程材料
B. 软件工程方法
C. 软件工程原理
D. 软件工程过程
答案:A
2. 判断题
(1) 软件就是程序,编写软件就是编写程序。
答案:×
(2) 软件危机的主要表现是软件需求增加,软件价格上升。
答案:×
(3) 软件工程学科出现的主要原因是软件危机出现。
答案:√
(4) 软件工程工具的作用是为了延长软件产品的寿命。
答案:×
第二章
1. 选择题
(1) 增量模型本质上是一种( )。
A. 线性顺序模型
B. 整体开发模型
C. 非整体开发模型
D. 螺旋模型的准则
答案:C
(2) 软件过程是( )。
A. 特定的开发模型
B. 一种软件求解的计算逻辑
C. 软件开发活动的集合
D. 软件生命周期模型
答案:C
(3) 软件生命周期模型不包括( )。
A. 瀑布模型
B. 用例模型
C. 增量模型
D. 螺旋模型
答案:B
(4) 包含风险分析的软件过程模型是( )。
A. 螺旋模型
B. 瀑布模型
C. 增量模型
D. 喷泉模型
答案:A
(5) 软件工程中描述生命周期的瀑布模型一般包括需求分析、设计、编码、( )、维护等几个阶段。
A. 产品发布
B. 版本更新
C. 可行性分析
D. 测试
答案:D
(6) 软件开发的瀑布模型中,一般认为可能占用开发人员最多的阶段是( )。
A. 分析阶段
B. 设计阶段
C. 编码阶段
D. 测试阶段
答案:C
(7) 螺旋模型综合了( )的优点,并增加了风险分析。
A. 增量模型和喷泉模型
B. 瀑布模型和快速原型模型
C. 瀑布模型和喷泉模型
D. 快速原型模型和喷泉模型
答案:B
2. 判断题
(1) 瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
答案:×
(2) 螺旋模型在瀑布模型和增量模型的基础上增加了风险分析。
答案:×
(3) 软件工程通过迭代设计为中心,关键是编写程序。
答案:×
(4) 模型编程属于增量模型。
答案:×
第四章
1. 选择题
(1) 在需求分析之前有必要进行( )工作。
A. 程序设计
B. 可行性研究
C. E - R 分析
D. 行为建模
答案:B
(2) 需求分析是一个( ),它应该贯穿于系统的整个生命周期中,而不是仅仅属于软件生命周期早期的一项工作。
A. 概念
B. 工具
C. 方法
D. 过程
答案:D
(3) 软件需求规格说明书的内容不应该包括( )。
A. 对重要的描述
B. 对算法的详细过程描述
C. 对数据的要求
D. 软件的性能
答案:B
(4) 软件需求分析阶段的工作可以分为以下 5 个方面:对问题的识别、分析、综合、编写需求分析文档以及( )。
A. 总结
B. 阶段性报告
C. 需求分析评审
D. 以上答案都不正确
答案:C
(5) 进行需求分析可使用多种工具,但( )是不适用的。
A. 数据流程图
B. PAD
C. 状态转换图
D. 数据字典
答案:B
(6) 结构化分析方法的基本思想是( )。
A. 自底向上、逐步分解
B. 自顶向下、逐步分解
C. 自底向上、逐步抽象
D. 自顶向下、逐步抽象
答案:B
(7) 在 E - R 图中,包含以下基本要素( )。
A. 数据、对象、实体
B. 控制、关系、对象
C. 实体、关系、控制
D. 实体、属性、关系
答案:D
2. 判断题
(1) 用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。
答案:√
(2) 需求分析是开发方的工作,用户的参与度不大。
答案:×
(3) 需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性研究的依据。
答案:×
(4) 需求分析的主要目的是制订软件开发的具体方案。
答案:×
(5) 需求规格说明书描述了系统每个功能的具体实现。
答案:×
(6) 非功能性需求是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。
答案:√
(7) 需求分析阶段的成果主要是需求规格说明书,但该成果与软件设计、编码、测试以及维护关系不大。
答案:×
(8) 分层的 DFD 可以用于可行性研究阶段,描述系统的物理结构。
答案:×
(9) 信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是 E - R 图。
答案:√
(10) 在需求分析阶段主要采用图形工具来描述的原因是图形的信息量大,便于描述规模大的软件系统。
答案:×
(11) 设计数据流图时只需考虑系统必须完成的基本逻辑功能,完全不需要考虑怎样具体地实现这些功能。
答案:√
第五章
1. 选择题
(1) 面向数据流的软件设计方法可将( )映射成软件结构。
A. 控制结构
B. 模块
C. 数据流
D. 事务流
答案:C
(2) 模块的独立性是由内聚性和耦合性来度量的,其中内聚性表示的是( )。
A. 模块间的联系程度
B. 信息隐藏程度
C. 模块的功能强度
D. 接口的复杂程度
答案:C
(3) Jackson 方法根据( )来导出程序结构。
A. 数据流图
B. 数据间的控制结构
C. 数据结构
D. IPO 图
答案:C
(4) 为了提高模块的独立性,模块之间最好是( )。
A. 公共耦合
B. 控制耦合
C. 数据耦合
D. 特征耦合
答案:C
(5) 在面向数据流的软件设计方法中,一般将数据流分为( )。
A. 数据流和控制流
B. 变换流和控制流
C. 事务流和控制流
D. 变换流和事务流
答案:D
(6) 总体设计(概要设计)不包括( )。
A. 体系结构设计
B. 接口设计
C. 数据设计
D. 数据结构设计
答案:D
(7) 一个模块把一个数值作为参数传递给另一个模块,这两个模块之间的耦合是( )。
A. 公共耦合
B. 数据耦合
C. 控制耦合
D. 内容耦合
答案:B
(8) 划分模块时,一个模块的( )。
A. 作用范围应在其作用范围内
B. 控制范围应在其作用范围内
C. 作用范围和控制范围不同
D. 作用范围和控制范围不受任何限制
答案:A
(9) 详细设计的任务是定义每个模块的( )。
A. 外部特征
B. 内部特征
C. 算法和数据格式
D. 功能和输入输出数据
答案:C
(10) 下面不是结构化方法的基本原理的是( )。
A. 自底向上功能分解
B. 数据抽象
C. 功能抽象
D. 模块化
答案:A
2. 判断题
(1) 判定表的优点是容易转换为计算机实现,缺点是不能描述组合条件。
答案:×
(2) 面向数据结构的设计方法一般都包括下列任务:确定数据结构特征;用顺序型、选择型和循环型3种基本形式表示数据。
答案:√
(3) 模块独立性要求高耦合、低内聚。
答案:×
(4) 软件设计说明书是软件概要设计的主要成果。
答案:×
(5) 软件设计中设计评审和设计本身一样重要,其主要作用是避免后期付出高昂的代价。
答案:√
(6) 划分模块可以降低软件的复杂度和工作量,所以应该将模块分得越小越好。
答案:×
(7) 结构化设计方法是一种面向数据结构的设计方法,强调程序结构与问题结构相对应。
答案:×
(8) 所有的数据流图都可以看作变换型数据流图。
答案:×
(9) 数据耦合是高耦合。
答案:×
(10) 文件一般用于长期存储,数据库一般用于临时存储。
答案:×
第六章
1. 选择题
(1) 面向对象技术中,对象是类的实例。类有 3 种成分:( )、属性和方法(或操作)。
A. 标识
B. 继承
C. 封装
D. 消息
答案:A
(2) 汽车有一个发动机,那么汽车与发动机之间的关系是( )关系。
A. 组装
B. 整体 - 部分
C. 分类
D. 一般 - 具体
答案:B
(3) ( )是把对象的属性与操作结合在一起,构成一个独立的对象,其内部信息对外界是隐藏的,外界只能通过有限的接口与对象发生联系。
A. 多态
B. 继承
C. 消息
D. 封装
答案:D
(4) 关联是建立( )之间关系的一种手段。
A. 操作
B. 类
C. 功能
D. 属性
答案:B
(5) 面向对象软件技术的许多强有力的功能和突出的优点都来源于把类组织成一个层次结构的系统。一个类的上层可以有父类,下层可以有子类。这种层次结构系统的一个重要性质是( ),一个子类可以获得其父类的全部描述(数据和操作)。
A. 兼容性
B. 继承性
C. 复用性
D. 多态性
答案:B
(6) 所有的对象都可以成为各种对象类,每个对象类都定义了一组( )。
A. 说明
B. 类型
C. 过程
D. 方法
答案:D
(7) UML 是软件开发中的一个重要工具,它主要应用于( )。
A. 基于螺旋模型的结构化方法
B. 基于需求动态定义的原型化方法
C. 基于数据的数据流开发方法
D. 基于对象的面向对象的方法
答案:D
(8) ( )是从用户使用系统的角度来描述系统功能的图形表达方法。
A. 类图
B. 活动图
C. 用例图
D. 状态图
答案:C
(9) ( )描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。
A. 类图
B. 顺序图
C. 状态图
D. 协作图
答案:B
2. 判断题
(1) UML 是一种建模语言,是一种标准的表示,是一种方法。
答案:×
(2) 类图用来表示系统中类与类之间的关系,它是对系统动态结构的描述。
答案:×
(3) 在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。
答案:×
(4) 顺序图用于描述对象是如何交互的且将重点放在消息序列上。
答案:√
(5) 继承性是父类与子类之间共享数据结构和消息的机制,这是类之间的一种关系。
答案:×
(6) 多态性增强了软件的灵活性和复用性,允许用更为明确、易懂的方式去建立通用软件,多态性和继承性相结合使软件具有更广泛的复用性和可扩充性。
答案:√
(7) 类封装比对象封装更具体、更细致。
答案:×
(8) 用例之间有扩展、使用、组合等几种关系。
答案:×
(9) 活动图显示动作及其结果,着重描述操作实现中所完成的工作,以及用例实例或类中的活动。
答案:×
(10) UML 支持面向对象的主要概念,并与具体的开发过程相关。
答案:×
(11) 部署图用于描述系统硬件的物理拓扑结构以及在此结构上执行的软件
答案:√
第七章
1. 选择题
(1) 面向对象模型主要由以下哪些模型组成?( )
A. 对象模型、动态模型、功能模型
B. 对象模型、数据模型、功能模型
C. 数据模型、动态模型、功能模型
D. 对象模型、动态模型、数据模型
答案:A
(2) 面向对象分析的首要工作是建立( )。
A. 系统的动态模型
B. 系统的功能模型
C. 基本的 E - R 图
D. 问题的对象模型
答案:D
(3) 面向对象分析阶段建立的 3 个模型中,核心的模型是( )模型。
A. 功能
B. 动态
C. 对象
D. 分析
答案:C
(4) 面向对象的动态模型中,每张状态图表示( )的动态行为。
A. 某一个类
B. 有关联的若干个类
C. 一系列事件
D. 一系列状态
答案:A
(5) 在考察系统的一些涉及时序和改变的状况时,要用动态模型来表示。动态模型着重于系统的控制逻辑,它包括两个图:一个是事件追踪图;另一个是( )。
A. 顺序图
B. 状态图
C. 系统结构图
D. 数据流图
答案:B
(6) 对象模型的描述工具是( )。
A. 状态图
B. 数据流图
C. 结构图
D. 类图
答案:D
(7) 功能模型中所有的( )往往形成一个层次结构,在这个层次结构中一个数据流图的过程可以由下一层数据流图进行进一步的说明。
A. 事件追踪图
B. 物理模型图
C. 状态转换图
D. 数据流图
答案:D
(8) 在面向对象软件开发方法中,类与类之间主要有( )结构关系。
A. 继承和聚合
B. 一般和特殊
C. 聚合和消息传递
D. 继承和方法调用
答案:A
(9) 下面正确的说法是( )。
A. 对象表示客观中存在的实物
B. 类是对象的实例
C. 类是具有相同属性和操作的对象的集合
D. 对象也就是类
答案:C
2. 判断题
(1) 模型是对现实的简化,建模是为了更好地理解所开发的系统。
答案:√
(2) 在面向对象的需求分析方法中,建立动态模型是最主要的任务。
答案:×
(3) 面向对象分析阶段建立的 3 个模型中,核心的模型是功能模型。
答案:×
(4) 对象模型的描述工具是状态图。
答案:×
(5) 两个对象之间的关联关系只能有一个。
答案:×
第八章
1. 选择题
(1) 面向对象设计阶段的主要任务是系统设计和( )。
A. 结构化设计
B. 数据设计
C. 面向对象程序设计
D. 对象设计
答案:D
(2) ( )是表达系统类及其相互联系的图示,它是面向对象设计的核心,是建立状态图、协作图和其他图的基础。
A. 部署图
B. 类图
C. 组件图
D. 配置图
答案:B
(3) 下面所列的性质中,( )不属于面向对象设计的特性。
A. 继承性
B. 实用性
C. 封装性
D. 可视化
答案:D
(4) 下列是面向对象设计方法中有关对象的叙述,其中( )是正确的。
A. 对象在内存中没有它的存储区
B. 对象的属性集合是它的特征表示
C. 对象的定义与程序中类型的概念相当
D. 对象之间不能相互通信
答案:B
(5) 面向对象设计中,基于父类创建的子类具有父类的所有特性(属性和方法),这一特点称为类的( )。
A. 多态性
B. 封装性
C. 继承性
D. 复用性
答案:C
(6) 下列哪项不是面向对象设计的启发规则?( )
A. 设计结果应该清晰易懂
B. 类等级深度应该适当
C. 尽量添加设计的变动
D. 使用简单的协议
答案:C
(7) 下面哪项不是系统分解的好处?( )
A. 降低设计的难度
B. 有利于软件开发人员分工协作
C. 有利于维护人员理解并维护系统
D. 有利于增加系统依赖性
答案:D
(8) 不属于任务管理子系统的是( )。
A. 人机交互所需输入
B. 任务的定义
C. 任务的通信
D. 硬件分配
答案:A
(9) 以下哪个是人机交互子系统设计的原因?( )
A. 系统与外界的接口是容易变动的
B. 系统的服务容易变动
C. 鉴别、定界、追踪和评估变动产生的影响
D. 强调人如何命令系统
答案:D
(10) 在软件系统中,由于需求的变化,一些对象的实现可能会发生变化。为了应对这种 "易变对象" 的变化,人们提出了( )。
A. 工厂模式
B. 外观模式
C. 观察者模式
D. 以上都不是
答案:A
第十章
1. 选择题
(1) 软件测试的目的是( )。
A. 证明软件是正确的
B. 发现软件的错误
C. 找出软件中的所有错误
D. 评价软件的质量
答案:B
(2) 白盒测试法又称为逻辑覆盖法,主要用于( )。
A. 确认测试
B. 系统测试
C. α 测试
D. 单元测试
答案:D
(3) 在软件工程中,白盒测试方法可用于测试程序的内部结构,此方法将程序作为( )。
A. 循环的集合
B. 路径的集合
C. 目标的集合
D. 地址的集合
答案:B
(4) 成功的测试是指运行测试用例后( )。
A. 发现了程序错误
B. 未发现程序错误
C. 证明程序正确
D. 改正了程序错误
答案:A
(5) 白盒测试是根据程序的( )来设计测试用例的方法。
A. 输出数据
B. 内部逻辑
C. 功能
D. 输入数据
答案:B
(6) 在软件测试中,逻辑覆盖法属于( )。
A. 黑盒测试方法
B. 白盒测试方法
C. 灰盒测试方法
D. 软件验收方法
答案:B
(7) 黑盒测试是从( )角度进行的测试,白盒测试是从()角度进行的测试。
A. 开发人员、管理人员
B. 用户、开发人员
C. 用户、管理人员
D. 开发人员、用户
答案:B
(8) 软件测试用例主要由输入数据和( )两部分组成。
A. 测试计划
B. 测试规则
C. 以往测试记录分析
D. 预期输出结果
答案:D
(9) 使用白盒测试方法时,确定测试数据应根据( )和指定的覆盖标准。
A. 程序的内部逻辑
B. 程序的复杂程度
C. 程序的难易程度
D. 程序的功能
答案:A
(10) 黑盒测试方法根据( )设计测试用例。
A. 程序的调用规则
B. 软件要完成的功能
C. 模块间的逻辑关系
D. 程序的数据结构
答案:B
(11) 集成测试的主要方法有两个:一个是( );另一个是()。
A. 白盒测试方法、黑盒测试方法
B. 等价类划分法、边界值分析法
C. 增量式测试方法、非增量式测试方法
D. 因果图法、错误推测法
答案:C
(12) 软件测试的目的是尽可能发现软件中的错误,通常( )是代码编写阶段可进行的测试,它是整个测试工作的基础。
A. 集成测试
B. 系统测试
C. 验收测试
D. 单元测试
答案:D
(13) 单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是( )。
A. 系统功能
B. 局部数据结构
C. 重要的执行路径
D. 错误处理
答案:A
(14) 软件维护的副作用,是指( )。
A. 运行时误操作
B. 隐含的错误
C. 因修改软件而造成的错误
D. 开发时的错误
答案:C
(15) 影响软件可维护性的主要因素不包括( )。
A. 可修改性
B. 可测试性
C. 可用性
D. 可理解性
答案:C
2. 判断题
(1) 软件测试是对软件需求规格说明、软件设计和编码的最全面也是最后的审查。
答案:×
(2) 如果通过软件测试没有发现错误,则说明软件是正确的。
答案:×
(3) 白盒测试无须考虑模块内部的执行过程和程序结构,只需了解模块的功能即可。
答案:×
(4) 软件测试的目的是尽可能多地发现软件中存在的错误,并将它作为纠错的依据。
答案:√
(5) 测试用例由输入数据和预期的输出结果两部分组成。
答案:√
(6) 白盒测试是结构测试,主要以程序的内部逻辑为基础设计测试用例。
答案:√
(7) 软件测试的目的是证明软件是正确的。
答案:×
(8) 单元测试通常应该先进行 "人工走查",再以白盒测试为主,辅以黑盒测试进行动态测试。
答案:√
(9) 白盒测试是一种静态测试方法,主要用于模块测试。
答案:×
(10) 在等价类划分法中,为了提高测试效率,一个测试用例可以覆盖多个无效等价类。
答案:×
(11) 功能测试是系统测试的主要内容,用于检查系统的功能、性能是否与需求规格说明相同。
答案:√
(12) 适应性维护是在软件使用过程中,用户对软件提出新的功能和性能要求,为了满足这些新的要求而对软件进行修改,使之在功能和性能上得到完善和增强的活动。
答案:×
第十一章
1. 选择题
(1) ( )的作用是为有效地、定量地进行管理,把握软件工程过程的实际情况和它所产生的产品质量。
A. 估算
B. 度量
C. 风险分析
D. 进度安排
答案:B
(2) LOC 和 FP 是两种估算技术,但两者有许多共同的特征,只是 LOC 和 FP 技术对于分解所需要的( )不同。
A. 详细程度
B. 分解要求
C. 使用方法
D. 改进过程
答案:A
(3) 项目团队原来有 6 个成员,现在又增加了 6 个成员,这样沟通渠道增加了多少?( )
A. 4.4 倍
B. 2 倍
C. 6 倍
D. 6 条
答案:A
(4) 下列哪项不是风险管理的过程?( )
A. 风险规划
B. 风险识别
C. 风险评估
D. 风险收集
答案:D
(5) 按照软件配置管理的原始指导思想,受控制的对象应是( )。
A. 软件过程
B. 软件项目
C. 软件配置项
D. 软件元素
答案:C
(6) 下面( )不是人们常用的评价软件质量的 4 个因素之一。
A. 可理解性
B. 可靠性
C. 可维护性
D. 易用性
答案:D
(7) 软件文档是软件工程实施的重要成分,它不仅是软件开发各阶段的重要依据,而且影响软件的( )。
A. 可用性
B. 可维护性
C. 可扩展性
D. 可移植性
答案:B
(8) CMM 表示( )。
A. 软件过程能力成熟度模型
B. 软件配置管理
C. 软件质量认证
D. 软件复用
答案:A
简答题
一、请简述软件工程的基本原则(p16)
1.采用分阶段的生命周期计划实行严格的项目管理
2.坚持进行阶段评审
3.实施严格的版本控制
4.采用现代程序设计技术
5.软件产品应能被清楚审查
6.开发小组的人员应该少而精
7.持续不断的总结经验,学习新的软件技术
二、请简述软件工程研究的内容(p16)
1.软件开发技术
2.软件开发过程管理
三、请对比瀑布模型、快速原型模型、增量模型和螺旋模型(p35)
1.瀑布模型:简单好学但回溯性差,适合很少发生变化的项目
2.快速原型模型:开发速度快但不利于创新,适合已有产品原型的项目
3.增量模型:可以分阶段交付但用户不同意,适合系统可模块化和组件化的项目
4.螺旋模型:可以将风险拓展到各个阶段但开发周期长,适合庞大,复杂,高风险的项目
四、可行性研究的任务有哪些(p51)
1.战略可行性研究
2.操作可行性研究
3.计划可行性研究
4.社会可行性研究
5.技术可行性研究
6.市场可行性研究
7.经济可行性研究
8.风险可行性研究
五、如何理解结构化分析方法的基本思想(p72)
结构化分析方法是一种从问题空间到某种表示的映射方法,其逻辑由数据流图和数据词典构成并表示。他是一种面向数据流的需求分析方法,主要适用于数据处理方面
六、结构化设计的优点(p108)
(1)程序易于阅读、理解和维护。程序员采用结构化编程方法,将一个复杂的程序分解成若干个子结构,便于控制、降低程序的复杂性,因此容易编写程序,同时便于验证程序。
(2)提高了编程工作的效率,降低了软件开发成本。由于结构化编程方法能够把错误控制到最低限度,因此能够减少调试和查错的时间。
七、什么是面向对象方法?面向对象方法特点有哪些?(p130)
面向对象的方法是为了模拟现实世界,使各种不同的现实世界系统在计算机中得以实现,进而为工作、学习、生活提供帮助。
面向对象方法的特点有:
(1)把数据和操作封装在一起,形成对象。对象是构成软件系统的基本构件
(2)把特征相似的对象抽象为类
(3)类之间可以存在继承或被继承的关系,形成软件系统的层次结构
(4)对象类之间通过发送消息进行通信
(5)将对象的私有信息封装起来。
八、UML 的作用和优点有哪些?(p130)
UML的作用: UML是一种通用的可视化建模语言,可以用来描述、可视化、构造和文档化软件密集系统的各种工作。
UML 的优点:
(1)UML语言使系统建模过程标准化,统一化,规范化。
(2)UML在整个软件开发过程中采用相同的概念和表示方法,在不同的开发阶段,不必转换概念和表示方法,避免了传统软件开发方法的两个鸿沟。
(3)UML采用图形化的表现形式。产生的模型易于理解,易于开发人员与用户之间的沟通,从而能够及时得到用户的反馈信息。
(4)用UML进行系统建模所得到的建模制品不仅仅包括各种模型框图,还有大量丰富的文档,这些文档给系统后期的维护工作带来了便捷。
(5)UML不是一门程序设计语言,但可以使用代码生成工具将UML模型转换为多种程序设计语言代码,或使用反向生成工具将程序源代码转换为UML 模型。
九、比较结构化设计方法和面向对象设计方法(p193)
面向对象的设计更符合复杂的、随机性较强和考虑并发性的系统软件设计,而不适合逻辑辑性很强的系统软件设计。
结构化软件设计一般从系统功能入手,按照需求将系统功能分为若干个子功能模块。但随着用户的需求是在不断变化,需求的改变往往会对功能模块产生影响,从而对整个系统产生影响。
面向对象的设计基于类、对象、封装、继承等概念,相比之下,需求的变化对系统的局部影响并不容易扩展到全局,因此,面向对象设计方法比结构化设计方法更具有优势,使用范围更广。
由于在类中封装了属性和方法,因此在面向对象的类设计中已经包含了面向过程的过程设计,面向对象设计中的数据设计并不是独立进行的,因此,对象设计中的类图相当于数据的逻辑模型,可以很容易地转换成数据的物理模型。
十、白盒测试和黑盒测试(p258)
(1)白盒测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。而黑盘测试着重测试软件功能,它并不涉及程序的内部结构和内容特性,很可能发现白盒测试不易发现的其他类型错误。
(2)黑盒测试的目的是检测是否有不正确或遗漏的功能;数据或者参数上,输入能否正确接收;是否有数据结构错误或外部信息访问错误:性能上是否能够满足要求:是否有初始化或终止性错误。而白盒测试的目的是通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致,而不顾它的功能。
检测方式上白盒测试是穷举路径测试,黑盒测试是穷举输入测试。
大题题型
- 判定表判定树(p66 - 67)
- E - R 图(p63,p73)
- 用例图(p115 - 116)
- 程序流程图(p98)
- 状态转换图(p123)
评论区