软件工程PPT教学课件第十一章 面向对象设计

上传人:痛*** 文档编号:48345279 上传时间:2022-01-04 格式:PPT 页数:48 大小:649.50KB
返回 下载 相关 举报
软件工程PPT教学课件第十一章 面向对象设计_第1页
第1页 / 共48页
软件工程PPT教学课件第十一章 面向对象设计_第2页
第2页 / 共48页
软件工程PPT教学课件第十一章 面向对象设计_第3页
第3页 / 共48页
点击查看更多>>
资源描述
第第十一章十一章 面向对象设计面向对象设计(Object-Oriented Design)1. OOD准则:优秀软件设计的一个重要特点是准则:优秀软件设计的一个重要特点是容易维护容易维护回顾:回顾:SD准则包括准则包括 Modularization 模块化模块化 Abstraction抽象抽象 Information hiding屏蔽屏蔽 Module independence独立性独立性对于对于 OOD有类似的有类似的准则:准则: 1、Module = Object1. OOD准则准则 Procedure abstraction: 在在SD中已讨论中已讨论 Data abstraction: Class即是一种抽象数据类型。外界无须即是一种抽象数据类型。外界无须知道实现方法就可按照类协议使用知道实现方法就可按照类协议使用class中定义的数据。中定义的数据。 Parameter abstraction: 将数据类型作为参数处理。将数据类型作为参数处理。2、Abstraction(抽象)抽象):抽出事物的本质特性:抽出事物的本质特性, 暂不暂不考虑其细节,使设计从具体实现方法中超脱。考虑其细节,使设计从具体实现方法中超脱。1. OOD准则准则3、Information hiding = Encapsulation of object 对象封装对象封装4、耦合(、耦合(Coupling):交互耦合交互耦合(interactive coupling): 通过传递通过传递message发生要求。发生要求。 降低参数个数和参数复杂性降低参数个数和参数复杂性 减少减少objects发送发送 接收接收message的个数的个数 as loose as possible尽可能弱耦合尽可能弱耦合 继承耦合继承耦合(inheritance coupling): 要求要求 Parent class IS_A child class as high as possible 子类不应舍弃父类的基本属性和操作子类不应舍弃父类的基本属性和操作1. OOD准则准则 一般一般-特殊内聚特殊内聚(general-particular cohesion): High g-p cohesion High inheritance coupling 高继承高继承5、内聚(、内聚(Cohesion): 服务内聚服务内聚(service cohesion):一个服务只完成一个功能。一个服务只完成一个功能。 类内聚类内聚(class cohesion):一个类只有一个用途,否则分一个类只有一个用途,否则分解之。解之。6、Reusability(详见详见3) 可重用可重用2. 启发式规则启发式规则1、设计结果清晰易懂,应做到:、设计结果清晰易懂,应做到: 用词一致用词一致 按习惯用法命名。不同按习惯用法命名。不同classes中中相似的相似的methods最好取同一名字。最好取同一名字。 使用已有的协议使用已有的协议。 尽量减少尽量减少message模式的数目。模式的数目。 避免模糊定义。避免模糊定义。2、一般一般-特殊结构的深度应适当(约特殊结构的深度应适当(约100个个classes,则则设计设计72层)层)2. 启发式规则启发式规则3、设计简单的设计简单的class(定义不超过一页纸或两屏)。(定义不超过一页纸或两屏)。应注意:应注意: 避免过多避免过多attributes; 能用简单的语句描述一个能用简单的语句描述一个class的任务;的任务; objects之间合作关系要简单;之间合作关系要简单; 避免过多避免过多methods( 7个个)。问题:设计出大量的问题:设计出大量的classes,使结构复杂度增加。,使结构复杂度增加。解决:划分主题,提高可理解性。解决:划分主题,提高可理解性。4、使用简单的协议使用简单的协议(protocol),减少,减少message 中中传递的传递的 parameters5、使用简单的使用简单的method(CASE 可考虑用可考虑用 inheritance替代替代)。6、把设计变动减至最小。把设计变动减至最小。1、概念:概念: 知识重用(例如软件工程知识的重用)知识重用(例如软件工程知识的重用) 方法和标准重用(例如方法和标准重用(例如OO方法和国家规定方法和国家规定的软件开发规范的重用)的软件开发规范的重用) 软件成分软件成分的重用的重用3. 软件重用软件重用 (Software Reuse)知识知识工程工程 源码剪贴源码剪贴 无法溯源,无配置管理无法溯源,无配置管理 Include Include 修改后所有包含了此段代码的程修改后所有包含了此段代码的程序都须重新编译。序都须重新编译。 继承(继承(Inheritance) 无须改动原有代码无须改动原有代码 想象一下,想象一下,stdio.h 被改动之后被改动之后重用软件成分有三个级别:重用软件成分有三个级别: 代码重用:代码重用:3. 软件重用软件重用 设计重用设计重用 当移植系统时当移植系统时 分析重用分析重用 当需求未变,而系统结构改变当需求未变,而系统结构改变时(例如将时(例如将HDIS改为改为OO实现)实现)2、典型的可重用软件成分(、典型的可重用软件成分(10种种) 项目计划:跨项目项目计划:跨项目成本估计:跨项目成本估计:跨项目体系结构:程序、数据体系体系结构:程序、数据体系需求模型和规格说明需求模型和规格说明3. 软件重用软件重用 设计设计源代码源代码用户文档和技术文档用户文档和技术文档用户界面用户界面数据数据测试用例测试用例4、类构件、类构件(Class component):可重用的软构件应具备的特点:可重用的软构件应具备的特点: 独立、可塑、接口清晰(文档详尽)独立、可塑、接口清晰(文档详尽)3. 软件重用软件重用重用方式:重用方式: 实例重用实例重用(instance reuse black-box reuse): 创建创建class的不同的不同instances,通过,通过messages完完成不同的任务。是最基本的重用方式。成不同的任务。是最基本的重用方式。 用几个简单的用几个简单的objects创建出更复杂的创建出更复杂的class,是实例重用的另一种形式是实例重用的另一种形式继承重用继承重用(inheritance reuse):是一种是一种安全地安全地裁剪已有的裁剪已有的class component的方式。的方式。关键:继承层次的设计关键:继承层次的设计 多态重用多态重用(polymorphism reuse): Parent class与与child class有相同的对外接口,使有相同的对外接口,使 消息连接的复杂度降低。消息连接的复杂度降低。3. 软件重用软件重用注意:有些操作可能会妨碍注意:有些操作可能会妨碍class component的重用,如的重用,如 与表示方法有关的操作与表示方法有关的操作 与数据结构、大小有关的操作与数据结构、大小有关的操作 与外部设备有关的操作与外部设备有关的操作 实现算法在将来可能会改进实现算法在将来可能会改进改变的核心操作改变的核心操作解决方法:将这些操作分离出来,作为适配接口解决方法:将这些操作分离出来,作为适配接口(AI,adaptive interface),使,使class中中其它操作通过调用其它操作通过调用AI而实现。在不同而实现。在不同应用环境下,用户只须重新定义应用环境下,用户只须重新定义AI操操作就可以重用作就可以重用class。3. 软件重用软件重用4、重用效果的衡量:、重用效果的衡量: 额外代价:额外代价: 创建可重用成分的专门投资创建可重用成分的专门投资 多花多花2 4倍时间测试以保证质量倍时间测试以保证质量 构件库的建立与维护需要投资构件库的建立与维护需要投资 以上投资将分摊到重用这些构件的新系统以上投资将分摊到重用这些构件的新系统成本中。重用次数越多,分摊成本越少。成本中。重用次数越多,分摊成本越少。3. 软件重用软件重用记:记:Lt = Total length of code ( # of lines) Ln = Length of new code Lr = Length of reused code Et 、En、 Er are the corresponding efforts ( # of m-d) 重用率重用率(Reusability)与生产率与生产率(Productivity)rnrnttEELLELProductivityReusability =trLL开发代码的开发代码的生产率生产率nnnELC 重用新代码的重用新代码的生产率生产率rrrELC )R/CC(11CPrnn3. 软件重用软件重用重用技术:指利用可重用的构件开发软件的技重用技术:指利用可重用的构件开发软件的技术,及开发可重用软件的技术。术,及开发可重用软件的技术。 软件组合技术:软件组合技术: 底层部件库法底层部件库法(Bottom-up compositional reuse) :从可重用的代码部件库从可重用的代码部件库(reuse repository)中选用中选用部件,组合成软件。部件,组合成软件。A:是,前提条件为:是,前提条件为CnCr ,即重用比新开发效率高。即重用比新开发效率高。Q:是否:是否R 越高越高P就越高?就越高? 上层组合法上层组合法:完整程序的组合完整程序的组合3. 软件重用软件重用 软件生成技术:软件生成技术: 按照形式化的软件功能描述和一定的生成机理,按照形式化的软件功能描述和一定的生成机理,由生成器系统由生成器系统(generator system)自动生成目标程序。重自动生成目标程序。重用的是生成器的代码规则用的是生成器的代码规则 OO重用技术:重用技术:Class component的重用(详见下文)的重用(详见下文)IPO问题域问题域Application Domain人机交互人机交互Human-ComputerInterface(HCI)任务管理任务管理TaskManagement数据管理数据管理DataManagementMethodAttributeStructureClass-&-ObjectCategory4. 系系 统统 分分 解解回顾回顾SD:从:从DFD出发出发 OOD模型分解:模型分解:4. 系系 统统 分分 解解1、子系统之间的交互方式、子系统之间的交互方式(collaboration) 客户客户-供应商供应商(client-server)关系:关系: 平等伙伴平等伙伴(peer-to-peer)关系:关系:ClientsubsystemcontractServersubsystemrequestcontractPeersubsystemcontractPeersubsystemrequestrequest4. 系系 统统 分分 解解2、系统组织方案、系统组织方案 水平层次组织:水平层次组织: 将系统组织成将系统组织成hierarchy,同一层中的,同一层中的objects相相互独立,而上、下层间有互独立,而上、下层间有 client-server关系。关系。 一个一个client只能调用其相邻下层的只能调用其相邻下层的server 封闭式封闭式(closed) 一个一个client可调用其下任一层的可调用其下任一层的server 开放式开放式(open) 优点:高效;优点:高效; 缺点:修改影响面广缺点:修改影响面广HCI典型应用系统的组织结构典型应用系统的组织结构应应 用用 软软 件件 包包操操 作作 系系 统统计计 算算 机机 硬硬 件件人机对人机对话控制话控制仿真仿真软件包软件包图形图形处理处理窗口图形窗口图形屏幕图形屏幕图形象素图形象素图形4. 系系 统统 分分 解解 垂直块组织:垂直块组织: 将系统垂直分解成若干独立的子系统,一个子将系统垂直分解成若干独立的子系统,一个子系统相当于一块,每块提供一种类型的服务。系统相当于一块,每块提供一种类型的服务。4. 系系 统统 分分 解解3、四种子系统的设计、四种子系统的设计 问题域子系统:基于问题域子系统:基于OOA建立的建立的object model,进行补充修改。进行补充修改。 调整需求调整需求 重用重用class: 选出可用的选出可用的class,标出与本问题无关,标出与本问题无关 的的 attributes 和和 methods 派生出派生出child class,标出继承的,标出继承的attributes 和和 methods 修改关联修改关联 组合组合class:通过引入:通过引入root class完成,用于建立完成,用于建立public protocol。 调整调整inheritance。 人机交互人机交互(HCI)子系统:好的包装子系统:好的包装4. 系系 统统 分分 解解 设计准则设计准则: 一致性:一致性: 术语、步骤、操作等始终一致。术语、步骤、操作等始终一致。 减少步骤:使完成一件任务所需敲键盘、点鼠标、减少步骤:使完成一件任务所需敲键盘、点鼠标、下拉菜单等的次数都减至最少。下拉菜单等的次数都减至最少。 及时提供反馈信息:及时提供反馈信息:提供提供hot key操作操作做一个体贴的做一个体贴的status bar 提供撤销提供撤销(undo)命令:命令: 无须记忆:不应要求用户记住某个窗口的信息,无须记忆:不应要求用户记住某个窗口的信息,然后再用到窗口中然后再用到窗口中 这是系统的责任而不是这是系统的责任而不是用户的任务。用户的任务。仁慈的你如佛祖对众生:回头是岸仁慈的你如佛祖对众生:回头是岸 易学:提供易学:提供HELP、联机参考等。联机参考等。 富有吸引力富有吸引力4. 系系 统统 分分 解解 设计策略设计策略 设计设计HCI类:例如类:例如VC提供的提供的MFC类库类库(Microsoft Foundation Class Library) 将用户分类(按技能、职务等)将用户分类(按技能、职务等) 描述用户的类型、水平、使用目的、其它特征描述用户的类型、水平、使用目的、其它特征(如年龄、性别、习惯等),写出操作脚本(如年龄、性别、习惯等),写出操作脚本 设计命令层次:注意同用户熟悉的方式设计命令层次:注意同用户熟悉的方式( 如如windows界面)尽量保持一致界面)尽量保持一致. 次序、深度、次序、深度、宽度调整适当宽度调整适当4. 系系 统统 分分 解解 任务管理子系统:基于任务管理子系统:基于OOA建立的建立的dynamic model 分析并发性:分析并发性: 若两个若两个objects之间无交互行为,或它们同时接之间无交互行为,或它们同时接受受events,则它们本质上是,则它们本质上是并发的并发的(synchronous) 考察考察event flow diagram,找出没有并发对象的,找出没有并发对象的路径(称为路径(称为控制线控制线),每条对应一个),每条对应一个任务任务(task,亦称亦称process) 不同的不同的tasks对应必须同时发生的不同行为对应必须同时发生的不同行为4. 系系 统统 分分 解解 确定确定task类型,并分配给适当的软类型,并分配给适当的软硬件去执行硬件去执行 事件驱动型事件驱动型(event-driven):主要完成通信工作。:主要完成通信工作。 event = 数据到达的中断(数据到达的中断(interrupt) 时钟驱动型时钟驱动型(clock-driven):完成周期性工作。:完成周期性工作。 优先型优先型(priority):将:将high priority或或 low priority的任务专门分离出来先做或后做。的任务专门分离出来先做或后做。 关键任务关键任务(key task):指关系系统成败的处理,:指关系系统成败的处理,要求高可靠性,应分离考虑,严格测试。要求高可靠性,应分离考虑,严格测试。 协调任务协调任务(coordinator):当系统中存在三个以上:当系统中存在三个以上tasks时,应增设一个协调任务,用于封装不同时,应增设一个协调任务,用于封装不同tasks之间的协调控制。之间的协调控制。4. 系系 统统 分分 解解 数据管理子系统:数据管理子系统: 选择管理模式选择管理模式 文件管理文件管理(file manager)系统系统 关系数据库关系数据库(Relational Data Base)管理系统管理系统 面向对象数据库面向对象数据库(OODB)管理系统管理系统 设计数据格式及相应的服务设计数据格式及相应的服务(请参阅教材(请参阅教材p.268-270)5. 设计类中的服务设计类中的服务 细化细化object model中的中的 methods1、确立服务、确立服务 从从 dynamic model出发:出发:Event flow diagram中中 Event = message ; 接受接受message 的的object 必有对应的必有对应的 method; Method 改变改变 status(即(即 attributes),并完成),并完成 action。5. 设计类中的服务设计类中的服务Event Status 1 do: Action 1 Status 2 do: Action 2 则算法应有则算法应有DO_CASE型控制型控制 从从function model出发:出发:DFD的一般结构是的一般结构是IPO注意:注意:Action (即算法)(即算法)与与status 有关。例有关。例如:不同如:不同status接接受同一个受同一个 event 时,时,其其action不同不同 Input FlowClassProcessI O ClassProcess5. 设计类中的服务设计类中的服务 若若 Process=从从Input Flow中抽取一个值,则中抽取一个值,则IO 若若 和和 类型相同,而类型相同,而output实质上是实质上是input的另一个状态,则的另一个状态,则IO是一类,是一类, 有有 若若 则则I1I2I3POOutput Flow ClassProcess5. 设计类中的服务设计类中的服务 若若 则则 ProcessStorageStorage ClassProcess 对照对照DFD与与Class-&-Object图,若一个图,若一个process涉及涉及多个多个classes,则必须判断它属于哪一个,则必须判断它属于哪一个class。 例如:例如:ActivatorReceiverProcess若若Process 改变了改变了 Receiver,则,则Receiver ClassProcess又如:从关联上看,又如:从关联上看,process所涉及的所有所涉及的所有classes中,中,处于中心地位的处于中心地位的class,一般拥有该一般拥有该process。5. 设计类中的服务设计类中的服务2、设计实现方法、设计实现方法 算法设计:要求做到易修改,并且复杂度低(即算法设计:要求做到易修改,并且复杂度低(即效率高)效率高) ,易理解,易实现。,易理解,易实现。 数据结构设计:需要考虑具体的物理结构的选择。数据结构设计:需要考虑具体的物理结构的选择。 新添用于存放内部处理中间结果的新添用于存放内部处理中间结果的class;引入新;引入新的低层操作,进一步细化。的低层操作,进一步细化。6. 设计关联设计关联1、单向关联、单向关联 例:例: 雇雇 员员公公 司司被雇用被雇用1+ 由由雇员雇员找其所属找其所属公司公司,则设则设雇主雇主为其属性,为其属性,即一即一单向指针单向指针雇雇 员员雇主雇主公公 司司 由由公司公司找其下属某一找其下属某一雇员雇员,则有两种方法:,则有两种方法:方法方法1:遍历所有:遍历所有雇员雇员,找,找雇主雇主匹配且满足特征的匹配且满足特征的雇雇员员。(省空间)。(省空间)6. 设计关联设计关联方法方法2:设公司:设公司的属性雇员为的属性雇员为一 指 针 集 。一 指 针 集 。(快速)(快速)雇雇 员员公公 司司雇员雇员指针集指针集2、双向关联、双向关联方法方法1:将上述两种单向:将上述两种单向关联结合使用关联结合使用雇雇 员员雇主雇主公公 司司雇员雇员指针集指针集雇雇 员员公公 司司关联类关联类雇主雇主雇员雇员工资工资方法方法2:另设关联类(特:另设关联类(特别适用于链属性)别适用于链属性)雇雇 员员公公 司司find_skill雇雇 用用1+技技 能能具有技能具有技能1+1+7. 优优 化化1、确定优先级:、确定优先级: 必须站在必须站在全局全局高度确定各项质量指标的优先级,高度确定各项质量指标的优先级,在优化设计时制定折衷方案。切忌各子系统自以为在优化设计时制定折衷方案。切忌各子系统自以为是,导致最终优化目标对立。是,导致最终优化目标对立。 最常见的情况是在最常见的情况是在效率效率与与清晰性清晰性之间的折衷。之间的折衷。 2、提高效率的技术、提高效率的技术 增加关联(类)增加关联(类)例:设某公司有例:设某公司有2000名雇员,平均每名雇员会名雇员,平均每名雇员会10种技能,其中有种技能,其中有5人精通日语,现要查询人精通日语,现要查询公司中会讲日语的雇员是哪些人公司中会讲日语的雇员是哪些人雇雇 员员公公 司司精通语言精通语言1+语语言言1+7. 优化优化方法方法1:嵌套查询:嵌套查询 遍历遍历雇员雇员2000次,而对每个次,而对每个雇员遍历雇员遍历技能技能10次。命中率为次。命中率为1/4000。方法方法2:用:用Hash Table实现实现技能技能,使,使“会讲日语会讲日语”对对应唯一的技能对象,则命中率上升为应唯一的技能对象,则命中率上升为1/400。方法方法3:增加一个额外的限定关联:增加一个额外的限定关联“精通语言精通语言”,即可立刻查得结果。即可立刻查得结果。7. 优化优化 调整查询次序,优化算法调整查询次序,优化算法 例如公司有例如公司有5名会日语的雇员,有名会日语的雇员,有200名会法语名会法语的雇员。现要找日、法语均会的雇员,则应先找的雇员。现要找日、法语均会的雇员,则应先找到到 雇员,再从中找雇员,再从中找 的雇员。的雇员。会日语会日语 会法语会法语 保留内部中间过程产生的派生属性。保留内部中间过程产生的派生属性。3、调整继承关系、调整继承关系 向上归纳向上归纳 向下派生向下派生建立这样的索引必然多占空间,而且基关联改建立这样的索引必然多占空间,而且基关联改变时也必须相应地修改索引。因此,应只给那些经变时也必须相应地修改索引。因此,应只给那些经常执行并且开销大、命中率低的查询建立索引。常执行并且开销大、命中率低的查询建立索引。第十二章第十二章 面向对象实现面向对象实现两项工作两项工作:1. 面向对象的设计结果翻译成面向对象面向对象的设计结果翻译成面向对象的程序的程序2. 测试并调试测试并调试1. 面向对象的程序设计语言面向对象的程序设计语言 1.一致性一致性 面向对象开发基于不随时间变化的、一面向对象开发基于不随时间变化的、一致的表示方法。这种表示方法从问题域到致的表示方法。这种表示方法从问题域到OOA,到,到OOD到到OOP. 一致的表示法既有利于在软件外发过程一致的表示法既有利于在软件外发过程中始终使用统一的概念,也有利于维护人中始终使用统一的概念,也有利于维护人员理解软件的各种配置成分。员理解软件的各种配置成分。2. 可重用性可重用性 在更广泛的范围运用重用机制,在在更广泛的范围运用重用机制,在OOA,OOD直到直到OOP中都显式地表示问题域语义中都显式地表示问题域语义. 既可能重用它在某个问题域内的既可能重用它在某个问题域内的OOA结结果,也可能重用相应的果,也可能重用相应的OOD和和OOP结果。结果。1. 面向对象的程序设计语言面向对象的程序设计语言3. 可维护性可维护性 尽管人们反复强调保持文档与源程序一致尽管人们反复强调保持文档与源程序一致的必要性,但是,在实际工作中很难做到的必要性,但是,在实际工作中很难做到. 特别是考虑到进度、预算、能力和人员等限特别是考虑到进度、预算、能力和人员等限制因素时,完全一致几乎是不可能的。因此,制因素时,完全一致几乎是不可能的。因此,维护人员最终面对的往往只有源程序本身。维护人员最终面对的往往只有源程序本身。 尽量选用面向对象语言来实现尽量选用面向对象语言来实现.1. 面向对象的程序设计语言面向对象的程序设计语言选择面向对象语言标准选择面向对象语言标准1. 将来能否占主导地位将来能否占主导地位2. 可重用性可重用性3. 类库和开发环境类库和开发环境4. 其他因素其他因素1. 面向对象的程序设计语言面向对象的程序设计语言2. 程序设计风格程序设计风格 可重用、可扩充、健壮性可重用、可扩充、健壮性1、提高可重用性、提高可重用性 提高方法的内聚提高方法的内聚 减小方法的规模减小方法的规模 保持方法的一致性保持方法的一致性 把策略与实现分开把策略与实现分开 全面覆盖全面覆盖 尽量不使用全局信息尽量不使用全局信息 利用继承机制,通过调用公用方法实现利用继承机制,通过调用公用方法实现代码重用代码重用 2、提高可扩充性、提高可扩充性 封装实现策略封装实现策略 不要用一个方法遍历多条关联链不要用一个方法遍历多条关联链 避免使用多分支语句避免使用多分支语句 精心确定公有方法精心确定公有方法 3、提高健壮性、提高健壮性 预防用户的操作错误预防用户的操作错误 检查参数的合法性检查参数的合法性 不要预先确定限制条件不要预先确定限制条件 先测试后优化先测试后优化 3. 3. 面向对象测试面向对象测试 在面向对象环境下,最小的可测试的单在面向对象环境下,最小的可测试的单元是封装了的元是封装了的,而不是程序模块。,而不是程序模块。 面向对象软件的面向对象软件的等价于传统软件等价于传统软件开发方法中的单元测试。但它是由类中开发方法中的单元测试。但它是由类中封装的操作和类的状态行为驱动的。封装的操作和类的状态行为驱动的。 完全孤立地测试类的各个操作是不行的。完全孤立地测试类的各个操作是不行的。 因为面向对象软件没有一个层次的因为面向对象软件没有一个层次的控制结构,所以传统的自顶向下和控制结构,所以传统的自顶向下和自底向上的组装策略意义不大。自底向上的组装策略意义不大。 每次将一个操作组装到类中(像传每次将一个操作组装到类中(像传统的增殖式组装那样)常常行不通,统的增殖式组装那样)常常行不通,因为在构成类的各个部件之间存在因为在构成类的各个部件之间存在各种各种直接的和非直接的交互直接的和非直接的交互。 对于面向对象系统的组装测试,存对于面向对象系统的组装测试,存在两种不同的测试策略。在两种不同的测试策略。 在进行在进行确认测试确认测试和和系统测试系统测试时,不时,不关心类之间连接的细节。着眼于用关心类之间连接的细节。着眼于用户的要求和用户能够认可的系统输户的要求和用户能够认可的系统输出。出。 为了帮助确认测试的执行,测试者为了帮助确认测试的执行,测试者需要回到需要回到分析模型分析模型,根据那里提供,根据那里提供的事件序列(脚本)进行测试。的事件序列(脚本)进行测试。 可以利用黑盒测试的方法来驱动确可以利用黑盒测试的方法来驱动确认测试。认测试。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!