西南科技大学软件工程复习重点

上传人:人*** 文档编号:571491412 上传时间:2024-08-11 格式:PPT 页数:120 大小:1.28MB
返回 下载 相关 举报
西南科技大学软件工程复习重点_第1页
第1页 / 共120页
西南科技大学软件工程复习重点_第2页
第2页 / 共120页
西南科技大学软件工程复习重点_第3页
第3页 / 共120页
西南科技大学软件工程复习重点_第4页
第4页 / 共120页
西南科技大学软件工程复习重点_第5页
第5页 / 共120页
点击查看更多>>
资源描述

《西南科技大学软件工程复习重点》由会员分享,可在线阅读,更多相关《西南科技大学软件工程复习重点(120页珍藏版)》请在金锄头文库上搜索。

1、 软软件件危危机机指指的的使使软软件件开开发发和和维维护护过过程程中中遇遇到到的的一系列严重问题,包含两方面的问题:一系列严重问题,包含两方面的问题:如何开发软件,怎样满足对软件的日益增长的需求如何开发软件,怎样满足对软件的日益增长的需求如何维护数量不断膨胀的已有软件如何维护数量不断膨胀的已有软件软件工程的原理与方法软件工程的原理与方法软件危机的形成软件危机的形成: :高 中 低分析 设计 编程 测试 维护修改错误的阶段代价(成本、质量、效率)原始要求原始要求正确的规格说明 错误的规格说明需求分析设计正确的设计 错误的设计 对错误说明的设计编码正确编码 对错误说明的编码错误编码对错误设计的编码

2、测试正确功能 潜伏的错误 不可改正的错误 可改正的错误不完善的软件不完善的软件软件工程的原理与方法软件工程的原理与方法在运行中能提供所希望的功能和性能的指令集(即程序)。在运行中能提供所希望的功能和性能的指令集(即程序)。描述程序研制过程和方法使用的文档。描述程序研制过程和方法使用的文档。程序程序程序程序软软 件件可执行部分可执行部分不可执行部分不可执行部分文档文档文档文档1 1文档文档文档文档2 2文档文档文档文档3 3什么是软件什么是软件?软件工程的原理与方法软件工程的原理与方法F 程程序序是是用用某某种种计计算算机机语语言言规规定定的的指指令令或或语语句句编编写写的指令或语句的集合。的指

3、令或语句的集合。F 程序设计语言具有良好、严格语法和语义。程序设计语言具有良好、严格语法和语义。什么是程序什么是程序?软件工程的原理与方法软件工程的原理与方法F 文文档档是是记记录录软软件件开开发发活活动动和和阶阶段段性性成成果果、理理解解软软件所必需的阐述性资料。件所必需的阐述性资料。F 编写文档目的:编写文档目的:促进对软件的开发促进对软件的开发, ,管理和维护;管理和维护;便于各种人员便于各种人员( (用户用户, ,开发人员开发人员) )的交流;的交流;F 文文 档档 标标 准准 (国国 际际 ISO, 国国 家家 GB, 行行 业业 标标 准准IEEE) 需求分析文档需求分析文档 软件

4、设计文挡软件设计文挡 .什么是文档什么是文档?软件工程的原理与方法软件工程的原理与方法1.1 GIS软件工程软件工程一 GIS软件的主要特点GIS软件特点采用两种数据库:空间数据库和属性数据库沿袭地图处理模式支持树型的系统结构,以图层为单位进行数据交换可处理二维空间数据,DEM数据,三维实体的表面显示不同格式空间数据之间转换,实现有缝的数据共享程序是按既定算法,用某种计算机语言规定的指令或语句编写的指令或语句的集合。 软件是程序再加上程序实现和维护程序时所必需的文档的总称。 是程序和程序设计发展到规模化和商品化后所逐渐形成的概 念。 工程是将理论和所学的知识应用于实践的科学。 “软件工程”一词

5、是1968年北大西洋公约组织(NATO)在联邦德国召开的一次会议上首次提出的。它的中心思想是把软件当作一种工业产品,而不是某种个体或小作坊的神秘技巧,要求“采用工程化的原理与方法对软件进行计划、开发和维护”。1.1 GIS软件工程软件工程三 软件工程1.1 GIS软件工程软件工程 软件工程是用科学知识和技术原理来定义,开发,维护软的一门学科。即:将用户的需求转化成有效的软件解决方案的一系列活动。 GIS软件工程就是在GIS软件的开发整个过程中,遵循一般软件开发的工程化原理和方法,并照顾到GIS软件开发的特殊规律和要求,对GIS软件从可行性研究,需求分析,总体设计,详细设计,软件编制,软件测试,

6、直到软件维护 的 各 个 阶 段 进 行 工 程 化 规 范 的 一 门 技 术 。三 软件工程1.2 软件生存周期模型软件生存周期模型增量模型增量模型瀑布模型瀑布模型智能模型智能模型喷泉模型喷泉模型螺旋模型螺旋模型软件生存周期模型软件生存周期模型 软件开发的阶段:可行性分析,需求分析,总体设计,详细设计,编码,测试,维护。 软件生存周期模型:描述软件开发过程中各种活动如何进行的模型。1.2 软件生存周期模型软件生存周期模型瀑布式模型:将软件生存周期各活动规定为依线性 顺序连接的若干阶段的模型。包含以下活动:软件需求分析设计代码生成测试维护1.2 软件生存周期模型软件生存周期模型需求文档说明文

7、档程序文档维护文档测试文档1.2 软件生存周期模型软件生存周期模型瀑布模型的特点:瀑布模型的特点:1. 具有顺序性和依赖性具有顺序性和依赖性2.推迟实现的观点推迟实现的观点3.质量保证的观点质量保证的观点文档驱动的模型文档驱动的模型传统的瀑布模型传统的瀑布模型 存在什么问题?存在什么问题? 传统的瀑布模型过于理想化了,事实上,人在工作过程中不可能不犯错误。 在设计阶段可能发生规格说明文档中的错误。 而设计上的缺陷或错误可能在实现过程中显现 出来。 在综合测试阶段将发现需求分析、设计或编码阶段的许多错误。用户必须有耐心。; 增量模型 融合了瀑布模型的基本成分和原型的迭代特征。采用随着日程时间的进

8、展而交错的线性序列。1.2 软件生存周期模型软件生存周期模型需求分析验证设计验证维护针对每个构件完成详细设计、编码和集成,经测试后交付给用户1.2 软件生存周期模型软件生存周期模型原型增量1 增量2增量3 1.2 软件生存周期模型软件生存周期模型 增量模型融合了瀑布模型的基本成分,并且具有迭代特性。 例如,使用增量模型开发字处理软件1.基本的文件管理、编辑和文档生成功能。2.更完善的编辑和文档生成能力。3.实现拼写和文法检查功能。4.完成高级的页面布局功能。1.2 软件生存周期模型软件生存周期模型 螺旋模型: 将瀑布模型和增量模型结合起来,加入风险分析的一种模型。1.2 软件生存周期模型软件生

9、存周期模型第一圈第一圈 产生产生产品规格说明产品规格说明第二圈第二圈 产生一个产生一个用于开发的原型用于开发的原型第三圈第三圈 产生产生软件产品的软件产品的初始版本初始版本第四圈第四圈 产生产生软件产品比较软件产品比较完善的新版本完善的新版本原型原型1 1原型原型2 2原型原型3 3风险风险分析分析风险分析风险分析风险分析风险分析风险分析风险分析操作原型操作原型评审评审需求计划需求计划和生和生存周存周期计划期计划操作的概念操作的概念软件需求软件需求需求有效需求有效性验证性验证预估可选方案,预估可选方案,明明确并解决风险确并解决风险验收测试计划验收测试计划组装测试计划组装测试计划规划下阶段工作规

10、划下阶段工作设计验证设计验证与确认与确认产品产品设计设计详细设计详细设计编码编码单元单元测试测试组装组装测试测试验收验收测试测试运行运行维护维护开发验证下一级产品开发验证下一级产品对目标、对目标、可选方可选方案和约束的确定案和约束的确定提交线提交线制定计划制定计划风险分析风险分析实施工程实施工程客户评估客户评估建模建模模拟模拟评价评价需求评价需求评价需求精化计划需求精化计划开发计划开发计划实现计划实现计划顺时针为进展方向顺时针为进展方向优点对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标;件

11、质量作为软件开发的一个重要目标;减少了过多测试或测试不足;减少了过多测试或测试不足;维护和开发之间并没有本质区别。维护和开发之间并没有本质区别。特点风险驱动的风险驱动的 主要适用于内部开发的大规模软件项目。1.2 软件生存周期模型软件生存周期模型 喷泉模型对软件复用和生存周期中多项开发活动的集成提供了支持,以面向对象的软件开发方法为基础,它适合面向对象的开发方法。 无间隙是指在分析、设计和实现等开发活动之间不存在明显的边界。喷泉模型参见下图。1.2 软件生存周期模型软件生存周期模型“喷泉喷泉”这个词体现了面向对象软这个词体现了面向对象软件开发过程,迭代和无缝的特性。件开发过程,迭代和无缝的特性

12、。1.2 软件生存周期模型软件生存周期模型维维 护护测测 试试实实 现现设设 计计分分 析析软件系统可维护性较好;软件系统可维护性较好;各各阶阶段段相相互互重重叠叠,表表明明了了面面向向对对象象开开发发方方法法各各阶阶段段间间的的交交叉叉和和无缝过渡;无缝过渡; 整整个个模模型型是是一一个个迭迭代代的的过过程程,包包括括一一个个阶阶段段内内部部的的迭迭代代和和跨跨阶阶段的迭代;段的迭代;模模型型具具有有增增量量开开发发特特性性,即即能能做做到到分分析析一一点点、设设计计一一点点、实实现现一点,测试一点,使相关功能随之加入到演化的系统中。一点,测试一点,使相关功能随之加入到演化的系统中。模模型型

13、是是对对象象驱驱动动的的,对对象象是是各各阶阶段段活活动动的的主主体体,也也是是项项目目管管理理的基本内容。的基本内容。喷泉模型的特点:喷泉模型的特点:喷泉模型的特点:喷泉模型的特点:1.2 软件生存周期模型软件生存周期模型n 智能模型是基于知识的软件开发模型,它把瀑布模型和专家系统综合在一起。n 该模型在各个开发阶段都利用了相应的专家系统来帮助软件人员完成开发工作。n 为此,建立了各个阶段的知识库,将模型、相应领域知识和软件工程知识分别存入数据库。以软件工程知识为基础的生成规则构成的专家系统与包含应用领域知识规则的其他专家系统相结合,构成该应用领域的开发系统。 1.2 软件生存周期模型软件生

14、存周期模型1.2 软件生存周期模型软件生存周期模型可行性分可行性分析析需求分析需求分析总体设计总体设计详细设计详细设计程序编写程序编写测试测试维护维护支持需求支持需求 分析的分析的专家系统专家系统支持软件支持软件 设计的设计的专家系统专家系统支持测试支持测试的专家系统的专家系统支持维护支持维护的专家系统的专家系统2.2 可行性研究可行性研究可行性研究的任务2.2.经济可经济可行性行性 3.3.社会因社会因素的考虑素的考虑 分析成本分析成本收收益与短期效益益与短期效益长远利益这长远利益这两个方面。要两个方面。要作出投资的估作出投资的估算和系统投入算和系统投入运行后可能获运行后可能获得的经济效益得

15、的经济效益或可节约的费或可节约的费用估算。用估算。分析利用现有的技分析利用现有的技术能否实现,能否术能否实现,能否解决系统中的技术解决系统中的技术难题,所开发的系难题,所开发的系统能否达到所要求统能否达到所要求的功能和性能,系的功能和性能,系统对技术人员的要统对技术人员的要求,现有的技术人求,现有的技术人员能否胜任,开发员能否胜任,开发所需要的软件与硬所需要的软件与硬件能否如期得到等件能否如期得到等 1.1.技术可行性技术可行性 主要考虑的主要考虑的是市场、政是市场、政策与法律方策与法律方面的问题。面的问题。分析在系统分析在系统开发的全部开发的全部过程中可能过程中可能出现和涉及出现和涉及的法律

16、问题。的法律问题。4.4.开发方开发方案的选择案的选择 可行性研究的任务可行性研究的任务 确定问题定义确定问题定义后,导出系统后,导出系统逻辑模型,并逻辑模型,并给出主要解决给出主要解决方案,每种方方案,每种方案应认真分析案应认真分析其可行性。其可行性。2.2 可行性研究可行性研究技术可行性分析技术可行性至少要考虑以下几方面因素:在给定的时间内能否实现需求说明中的功能。在给定的时间内能否实现需求说明中的功能。必须充分考虑到可能出现的技术问题,否则麻烦就大了。必须充分考虑到可能出现的技术问题,否则麻烦就大了。 软件的质量如何?软件的质量如何?实时性软件的速度;实时性软件的速度;高风险软件的正确性

17、与精确性。高风险软件的正确性与精确性。软件的生产率如何?软件的生产率如何?软件的质量不好,将导致维护的代价很高,会把前期拿到软件的质量不好,将导致维护的代价很高,会把前期拿到的利润慢慢地消耗光的利润慢慢地消耗光 。如果企图通过偷工减料而提高生产率,是得不偿失的事。如果企图通过偷工减料而提高生产率,是得不偿失的事。 2.2 可行性研究可行性研究技术可行性分析 在进行技术可行性分析时,一个重要的内容是对现有系统绘制系统流程图。 系统流程图中所用的符号与程序设计语言中的程序流程图所用的符号类似。系统流程图表达的是信息在系统中各个部件之间的流动情况。2.2 可行性研究可行性研究的工具的工具系统流程图

18、可行性分析时需分析现有系统和设计新系统,我们常用系统流程图来描述。 系统流程图的基本作用: 以黑箱方式描述系统各部件(如人工处理、程序、以黑箱方式描述系统各部件(如人工处理、程序、数据库、图表等数据库、图表等),),它描述了信息在系统各部件中的流它描述了信息在系统各部件中的流动情况,它不对信息在系统中的加工进行描述。动情况,它不对信息在系统中的加工进行描述。2.3 成本效益分析成本效益分析 是从经济角度评价一个项目是否值得开是从经济角度评价一个项目是否值得开发。发。步骤:首先估算开发的成本,然后与取得的步骤:首先估算开发的成本,然后与取得的效益比较。效益比较。效益估计(Benefit Esti

19、mation)例:假设某软件生存周期为例:假设某软件生存周期为5年。现在投资年。现在投资20万元,平万元,平均年利率均年利率3%。从第一年起,每年年底收入。从第一年起,每年年底收入4.2万元,问万元,问该项目是否值得投资?该项目是否值得投资?P = 20万万4.2万万4.2万万4.2万万4.2万万4.2万万0123452.3 成本效益分析成本效益分析到第到第5年底结算时:年底结算时:投资额投资额 = 200000 (1+3%)5 231855(元元)(利息)(利息)收入收入 = 42000 (1+3%)4+ (1+3%)3+ (1+3%)2+ (1+3%)+1 222984(元元)不合算!不合

20、算!2.3 成本效益分析成本效益分析 衡量工程价值的经济指标有: 纯收入 = 折合现价的总收入折合现价的总收入 - 当前投资额当前投资额 = 投资回收期投资回收期例:第例:第6年底可收回年底可收回2.3 成本效益分析成本效益分析 投资回收率:设为j2.3 成本效益分析成本效益分析西南科技大学西南科技大学4.1 结构化分析方法结构化分析方法数据流图数据流图1数据流图(Data Flow Diagram 简称DFD ) 是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出以及把逻辑输入转换为逻辑输出所需要的加工。结构化分析方法的描述工具结构化分析方法的描述工具西南科技大学西南科技大

21、学数据流图的组成 由四种基本成分组成,如图4.4所示:数据流加工图4.4 数据流图的基本成分PXFS数据存储源点终点不是指数据保存的物理地点或物理存储介质,也不是指文件不是指数据保存的物理地点或物理存储介质,也不是指文件不是指数据保存的物理地点或物理存储介质,也不是指文件不是指数据保存的物理地点或物理存储介质,也不是指文件箱、磁盘或磁带,而是指数据存储的逻辑描述箱、磁盘或磁带,而是指数据存储的逻辑描述箱、磁盘或磁带,而是指数据存储的逻辑描述箱、磁盘或磁带,而是指数据存储的逻辑描述4.1 结构化分析方法结构化分析方法数据流图数据流图第一种第二种西南科技大学西南科技大学学生学籍学生学籍新生名单新生

22、名单毕业生登记表毕业生登记表学生成绩学生成绩招生招生办办统计报表统计报表学生成绩单学生成绩单学生学生信息信息管理管理学生登记表学生登记表统计统计报表报表学生学生成绩成绩管理管理教务教务管理管理教学计划教学计划学生学生学籍学籍管理管理各各系部系部教师教师省省教委教委校长校长有关有关单位单位教学计划教学计划排课排课课表课表打印打印课表课表学生学生4.1 结构化分析方法结构化分析方法示例示例学生学生用人用人单位单位西南科技大学西南科技大学图4.6学生学籍管理子系统数据流程图审批表审批表学籍变动学籍变动申请申请审批审批变动变动申请申请学籍变动学籍变动通知通知审批审批毕业毕业资格资格毕业证书毕业证书留退

23、留退处理处理修改修改学生学生学籍学籍学生学籍学生学籍学生学生毕业毕业登记登记毕业生毕业生登记表登记表学生成绩学生成绩留退留退名单名单打印打印变动变动通知通知奖励奖励处理处理奖励名单奖励名单4.1 结构化分析方法结构化分析方法示例示例学生学生学生学生用人用人单位单位教务教务处处西南科技大学西南科技大学4.1 结构化分析方法结构化分析方法数据字典数据字典2数据字典(Data Dictionary简称DD) 描述软件系统的信息流程和加工,SA方法使用数据字典对这些成分进行详细说明。 数据流图中的数据流名、数据存储名、数据项名、基本加工名的严格定义的集合构成了数据字典。结构化分析方法的描述工具结构化分

24、析方法的描述工具西南科技大学西南科技大学4.1 结构化分析方法结构化分析方法数据字典数据字典数据字典的描述方法可采用卡片格式。对数据流、数据存储和 数据项的描述可采用如下符号: (1) “+”表示与。例如:登记表=姓名+专业+班级+年龄+性别+籍贯; (2) “|”表示或。例如:存期= 1 | 2 | 3 | 5 ,表示银行存期可有1年,2年,3年,5年,而“ ”表示选择项。 (3)“ ”表示重复。例如:发票= 发票行,表示一张发票有若干行。西南科技大学西南科技大学图4.7 数据字典(a)数据流条目(b) 数据存储条目;(c) 数据项条目;(d) 基本加工条目(c)名字种类简述别名组成数量注毕

25、业生登记表数据流毕业登记情况无姓名专业班级每天50张(a)名字种类简述别名组成组织注学生学籍数据存储学籍登记无学号姓名专业按学号递增排列(b)名字种类简述别名类型长度注姓名数据项学生项目无字符8名字种类编号激发条件加工逻辑注奖励处理数据加工收到奖励名单If 收到奖励名单 奖励处理(d)4.1 结构化分析方法结构化分析方法示例示例西南科技大学西南科技大学4.1 结构化分析方法结构化分析方法描述加工逻辑的工具描述加工逻辑的工具3描述加工逻辑的工具是基本加工条目中的一项重要内容,有三种工具来描述加工逻辑:结构化语言,判定表,判定树。 结构化分析方法的描述工具结构化分析方法的描述工具西南科技大学西南科

26、技大学(1)年交易额在5万或5万以下,则不给予折扣;(2)对于年交易额在5万以上时: 如果无欠款,则给予15%的折扣; 如果有欠款,而且与本公司的交易关系在20年以上,则折扣为10%; 如果有欠款,而且与本公司交易关系在20年以下,则折扣为5%。 订货折扣逻辑描述如下:订货折扣逻辑描述如下:4.1 结构化分析方法结构化分析方法示例示例西南科技大学西南科技大学订货处理订货处理优惠待遇优惠待遇年交易额年交易额5 5万以上万以上年交易额年交易额5 5万或以下万或以下无欠款无欠款有欠款有欠款交易交易2020年年以上以上交易交易2020年年以下以下15%15%10%10%5%5%0%0%4.1 结构化分

27、析方法结构化分析方法判断树判断树西南科技大学西南科技大学条件及行动12345678条件组合C1:交易额5万以上C2:无欠款 C3:交易20年以上行 动A1:折扣率15%A2:折扣率10%A3:折扣率5%A4:折扣率0%Y YY YY YY YN NN NN NN NY YY YN NN NY YY YN NN NY YN NY YN NY YN NY YN N4.1 结构化分析方法结构化分析方法判断表判断表西南科技大学西南科技大学 三种工具各有优缺点,所以在不同的情况下,使用三种不三种工具各有优缺点,所以在不同的情况下,使用三种不三种工具各有优缺点,所以在不同的情况下,使用三种不三种工具各有优

28、缺点,所以在不同的情况下,使用三种不同的工具。同的工具。同的工具。同的工具。1.1.从掌握这项工具的从掌握这项工具的难易难易程度看,判断树最容易被初学者接受,易于掌程度看,判断树最容易被初学者接受,易于掌握;结构化语言的难度居中;而判断表的难度最高。握;结构化语言的难度居中;而判断表的难度最高。2.2.对于对于逻辑验证逻辑验证,判断表最好,它能够把所有的可能性全部考虑到,能,判断表最好,它能够把所有的可能性全部考虑到,能够澄清疑问;结构化语言较好;而判断树不如这两项工具。够澄清疑问;结构化语言较好;而判断树不如这两项工具。3.3.从从直观表达直观表达逻辑来看,判断树最好,它用图形表达,一目了然

29、,易于逻辑来看,判断树最好,它用图形表达,一目了然,易于和用户讨论;结构化语言居中;而判断表的表达能力最低。和用户讨论;结构化语言居中;而判断表的表达能力最低。4.1 结构化分析方法结构化分析方法三种表达工具的比较三种表达工具的比较西南科技大学西南科技大学4.4.作作为为程程序序设设计计资资料料,结结构构化化语语言言和和判判断断表表最最好好,而而判判断断树树却却不不如如这这两项工具。两项工具。5.5.对对于于可可修修改改性性,结结构构化化语语言言的的可可修修改改性性较较高高;判判断断树树居居中中;而而判判断断表的可修改性最低。表的可修改性最低。4.1 结构化分析方法结构化分析方法三种表达工具的

30、比较三种表达工具的比较五个步骤常根据需要交叉进行OOA方方法法5个个步骤步骤4.3Coad分析方法分析方法OOA步骤步骤 识别类与对象 确定系统中所有的对象及对象的属性和操作。 (1)发现对象人员和组织结构物品和设备扮演的角色事件文档位置例: 银行储蓄管理系统4.3Coad分析方法分析方法 1 1. .识别类与对象识别类与对象 1名词往往是候选对象名词往往是候选对象; 结构也可提取候选的结构也可提取候选的类及对象类及对象; 系统必须观测、记忆的与时间有关的事件可作为候选的类及对象; 如:建立帐户的日期如:建立帐户的日期 打开一个帐户等打开一个帐户等与系统发生交互的人及系统必须保留其信息的人,可

31、作为候选的类及对象; 如:柜员、储户等如:柜员、储户等这些人所属的组织单位,可作为候选的类及对象; 如:总行、分行等如:总行、分行等4.3Coad分析方法分析方法 1 1. .识别类与对象识别类与对象 系统必须记忆、且不在问题域约束中的顺序操作过程(为了指导人机交互)可作为候选的类及对象; 如:柜员事务、远程事务等。如:柜员事务、远程事务等。 其中属性是操作过程名,操作特权及操作步骤的描述;系统需了解掌握的物理位置、办公地点等可作为候选的类及对象; 如:如:ATMATM机器、帐户等机器、帐户等4.3Coad分析方法分析方法 1 1. .识别类与对象识别类与对象 (2)审查和筛选, 舍弃无用的类

32、 对象的精简只有一个属性的对象只有一个属性的对象只有一个服务的对象只有一个服务的对象 推迟到OOD考虑的对象 4.3Coad分析方法分析方法 1 1. .识别类与对象识别类与对象 帐册 上级系统接口供货员销售事件特价商品计量商品收款机商品一览表超市销售管理系 统(对象层)4.3Coad分析方法分析方法 1 1. .识别类与对象识别类与对象 定义结构与连接初步确定关联对应于描述性动词或动词短语对应于描述性动词或动词短语需求陈述中隐含需求陈述中隐含根据问题域知识得出根据问题域知识得出分析标识对象之间的关系对象之间的分类关系:一般对象之间的分类关系:一般- -特殊结构特殊结构对象之间的组成关系:整体

33、对象之间的组成关系:整体- -部分结构部分结构对象之间的静态联系:实例连接对象之间的静态联系:实例连接对象之间的动态关系:消息连接对象之间的动态关系:消息连接4.3Coad分析方法分析方法 2.2.定义结构与连接定义结构与连接2分类结构:从一般类发现特殊类公司职员股东姓名身分证号码股份职员工资公司职员姓名身分证号码股份工资?4.3Coad分析方法分析方法 2.2.定义结构与连接定义结构与连接通过增加属性简化一般-特殊结构男人性别国籍人员女人美国人日本人人员中国人4.3Coad分析方法分析方法 2.2.定义结构与连接定义结构与连接 标识主题(主体) Coad/Yourdon方法中主题的概念: 主

34、题是把一组具有较强联系的类组织在一起而得到的类的集合。 4.3Coad分析方法分析方法 3.3.标识主题标识主题( (主体主体) ) 3 主题概念及其用途主题层是在OOA基本模型(类图)之上建立一个能帮助人们从不同的认识层次来理解系统的补充模型;主题是一种比类和对象抽象层次更高、粒度更大的概念,用以建立系统的高层抽象视图;主题有助于指导系统设计者或用户等理解一个大的系统模型, 有助于组织一个大项目的工作。4.3Coad分析方法分析方法 3.3.标识主题标识主题( (主体主体) ) 主题概念的特点:是由一组类构成的集合一个主题内部的对象类应具有某种意义上的内在联系描述系统中相对独立的组成部分(如

35、一个子系统)描述系统中相对独立的组成部分(如一个子系统)描述系统中某一方面的事物(如人员、设备)描述系统中某一方面的事物(如人员、设备)解决系统中某一方面的问题(如输入输出)解决系统中某一方面的问题(如输入输出)主题的划分有一定的灵活性和随意性4.3Coad分析方法分析方法 3.3.标识主题标识主题( (主体主体) ) 主题的表示法三种表示方式:压缩方式 半展开方式 全展开方式半展开方式:编号 主题名压缩方式编号 主题名类名 类名 类名主题名主题名下层主题4.3Coad分析方法分析方法 3.3.标识主题标识主题( (主体主体) ) 定义属性属性是数据元素,用来描述对象或分类结构的实例。4.3C

36、oad分析方法分析方法 4.4.定义属性定义属性4属性的类型:描述型:指属性的值由对象实例的添加、变动、删除描述型:指属性的值由对象实例的添加、变动、删除及选择等操作来建立和维持。及选择等操作来建立和维持。定义型:用于标识和命名各个实例。定义型:用于标识和命名各个实例。派生型:由其他属性的数据计算得到派生型:由其他属性的数据计算得到。参考型:与另一个实例的属性值相关参考型:与另一个实例的属性值相关。西南科技大学西南科技大学4.3Coad分析方法分析方法 4.4.定义属性定义属性西南科技大学西南科技大学 上级系统接口帐册前班节余销售事件表收入累计上交款本班节余帐目目册供货员缺货登记表销售事件收款

37、人购物清单应收款商品编号名称单价架上数量下限1m商品一览表商品目录1m(关系层, 完整的类图)收款机本班收款员开始时间结束时间特价商品计量商品超市销售管理系 统(属性层)开始日期结束日期单价计量单位计价方式4.3Coad分析方法分析方法 4.4.定义属性定义属性 定义服务 服务是在接收到一条消息后所要进行的加工。 包括操作和方法,如:检索、维护、计算、事件响应、状态改变、消息传送等这样一类操作和具体采用的某一种算法。 4.3Coad分析方法分析方法5.定义服务及消息连接定义服务及消息连接5服务和消息传递主动对象Aa被动对象Bb被动对象Cc被动对象Dd1d2运行开始运行结束服务执行消息发送控制点

38、返回示意4.3Coad分析方法分析方法5.定义服务及消息连接定义服务及消息连接帐册前班节余销售事件表收入累计上交款本班节余接班计帐报帐交班 上级系统接口帐目目册消息发送查帐报帐价格更新种类增删供货员缺货登记表缺货登记供货销售事件收款人购物清单应收款销售计划入帐商品编号名称单价架上数量下限售出补充价格更新特价商品开始日期结束日期计量商品*单价计量单位计价方式*售出*补充*价格更新1m商品一览表商品目录检索种类增删1m(关系层, 完整的类图)收款机本班收款员开始时间结束时间登录 售货 结帐4.3Coad分析方法分析方法5.定义服务及消息连接定义服务及消息连接OOA的结构 类的边界Class &ob

39、ject layer (类及对象层)实例的边界消息连接Structure layer (结构层)Subject layer (主题层)主题Service layer (服务层)服务Attribute layer (属性层)实例连接属性4.3Coad分析方法分析方法OOA步骤步骤西南科技大学西南科技大学OMT方法使用3种模型从不同角度来描述一个系统:(1)对象模型描述系统对象、类和它们之间关系的静态结构,反映了系统的“数据”性质。(2)动态模型用对象的状态和事件描述了瞬时的、行为化的系统的“控制”性质。(3)功能模型描述系统内的数据变化,指明了如何用输入值得到输出值,即反映了系统的“功能”性质。

40、4.4OMT分析方法分析方法西南科技大学西南科技大学 对象模型 对象模型是通过描述系统中的对象、对象间的关系、标识类中对象的属性、操作来表示系统的静态组织结构。 对象模型是3种模型中最重要的模型。 面向对象的设计技术强调的是围绕对象,而不是围绕功能来构筑系统。4.4OMT分析方法分析方法1西南科技大学西南科技大学例如:某个棒球手一年内可能为多个球队打球,也可能只为一个球队打球;每个球队有多个球员;每个球员又都有个人每年打球的输赢记录。投手投手年年赢球赢球输球输球球队球队 多对多相关关系属性多对多相关关系属性4.4OMT分析方法分析方法西南科技大学西南科技大学动态模型 动动态态模模型型描描述述系

41、系统统中中与与时时间间有有关关的的方方面面以以及及操操作作执执行行的的顺顺序序,包包括括引引起起变变化化的的事事件件,事事件件的的序序列列,定定义义事事件件序列上下文的状态以及事件和状态的主次。序列上下文的状态以及事件和状态的主次。动态模型是用“状态图”和“事件追踪图”表示。一个动态模型可由多个状态图表组成。基本概念:事件、脚本和事件追踪、状态、 触发条件与事件、动作(操作)4.4OMT分析方法分析方法2西南科技大学西南科技大学时间事件位 置鼠标键字 符键盘控制基本按下鼠标释放鼠标键空格字母数字标点设备用户输入4.4OMT分析方法分析方法某一事件发生时刻西南科技大学西南科技大学 功能模型 功能

42、模型描述了系统中要发生什么。功能模型描述了系统中要发生什么。功能模型考虑如何从输入值得到输出值,而不考虑参加计算的数据按什么时序执行。功能模型采用数据流图描述,一个功能模型由多个分层的数据流图组成。4.4OMT分析方法分析方法3西南科技大学西南科技大学 3个模型之间的关系:(1)通过3个模型,系统以3视图的形式呈现给设计人员,以便设计者 采用统一的描述方法设计实现。(2)模型是可以独立地进行测试和理解的,但不是无关的、绝对独立 的。一个好的设计是指:实现了系统内部不同实质的分离,但又 相互补充,限制耦合。(3)三者关系:4.4OMT分析方法分析方法4OM:操作的实体操作的实体DM:何时做:何时

43、做FM:做什么:做什么(3) (3) 先判定型循环结构先判定型循环结构(while-loop structure)( (1) 1) 顺序结构顺序结构( (sequential structure)(2) (2) 选择结构选择结构(selective structure)ABPBAFT(4) (4) 后判定型循环结构后判定型循环结构(until-loop structure)TPSFFSTP(5) (5) 多情况选择多情况选择(case structure)TA1FP=1TA2FP=2TAnFP=n1程序流程图程序流程图1程序流程图程序流程图例子2盒图(N_S图) 出于要有一种不允许违背结构程序

44、设计精神的图形工出于要有一种不允许违背结构程序设计精神的图形工具的考虑,具的考虑,NassiNassi和和ShneiderShneider-man-man提出了盒图,又称为提出了盒图,又称为N_SN_S图。图。也叫做盒图。五种基本控制结构由五种图形构件表示。2盒图(N_S图)示例示例2盒图(N_S图)PAD(Problem Analysis Diagram)3PAD图 PADPADPADPAD描述的示例描述的示例3PAD图N-S图与图与PAD的转换的转换x4TFDo-Until x5ighfkx1TFbDo-Until x6ajx21cDo-While x323dek :3PAD图 判定表判定

45、表 & & 判定树判定树( (Decision Table & Decision Table & Tree)Tree)表示复杂的条件表示复杂的条件( (input)input)组合与应组合与应做动作做动作( (output)output)之间的对应关系。之间的对应关系。 4判定表 & 判定树西南科技大学西南科技大学(1)年交易额在5万或5万以下,则不给予折扣;(2)对于年交易额在5万以上时: 如果无欠款,则给予15%的折扣; 如果有欠款,而且与本公司的交易关系在20年以上,则折扣为10%; 如果有欠款,而且与本公司交易关系在20年以下,则折扣为5%。 订货折扣逻辑描述如下:订货折扣逻辑描述如下

46、:4判定表 & 判定树订货处理订货处理优惠待遇优惠待遇年交易额年交易额5 5万以上万以上年交易额年交易额5 5万或以下万或以下无欠款无欠款有欠款有欠款交易交易2020年年以上以上交易交易2020年年以下以下15%15%10%10%5%5%0%0%判定树判定树4判定表 & 判定树条件及行动12345678条件组合C1:交易额5万以上C2:无欠款 C3:交易20年以上行 动A1:折扣率15%A2:折扣率10%A3:折扣率5%A4:折扣率0%Y YY YY YY YN NN NN NN NY YY YN NN NY YY YN NN NY YN NY YN NY YN NY YN N判断表判断表4判

47、定表 & 判定树 PDL PDL是一种用于描述功能模块的算法设计和加工细节的语言。称为设计程序用语言。它是一种伪码。 伪码的语法规则分为“外语法”和“内语法”。 PDL PDL具有严格的关键字外语法,用于定义控制结构和数据结构,同时表示实际操作和条件的内语法可使用自然语言的词汇。5过程设计语言(PDL)PDL (Program Design Language)(Program Design Language)又称又称 Pseudo code 显示系统用户界面; PUT(“请输入用户口令:”); GET(password); IF password系统口令 提示警告信息; 退出运行 ENDIF

48、显示本系统主菜单; WHILE(true) 接收用户选择ABC; IF ABC=“退出”5过程设计语言(PDL) Break; ENDIF 调用相应下层模块完成用户选择功能; ENDWHILE; 清屏; RETURNEND5过程设计语言(PDL)主要的域主要的域视图图主要概念主要概念结构构静静态视图类图类,关,关联,泛化,依,泛化,依赖关系,关系,实现,接口,接口用例用例视图用例用例图用例,参与者,关用例,参与者,关联,扩展,包含,泛化展,包含,泛化实现视图构件构件图构件,接口,依构件,接口,依赖关系,关系,实现培植培植视图配置配置图节点,构件,依点,构件,依赖关系,位置关系,位置动态状状态机

49、机视图状状态视图状状态,事件,事件,转换,动作作活活动视图活活动图状状态,活,活动,完成,完成转换,分叉,分叉,结合合交互交互视图顺序序图交互,交互,对象,消息,激活象,消息,激活协作作图协作,交互,作,交互,协作角色,消息作角色,消息模型管理模型管理模型管理模型管理视图包包图包,子系包,子系统,模型,模型各种软件错误的出现比例 功能错,占整个软件错误功能错,占整个软件错误27,是需求分析设计不完,是需求分析设计不完整而引起的。整而引起的。 系统错,占整个软件错误系统错,占整个软件错误16,是总体设计错误而,是总体设计错误而引起的。引起的。 数据错,占整个软件错误数据错,占整个软件错误10,由

50、编码错误引起的。,由编码错误引起的。 编码错,占整个软件错误编码错,占整个软件错误4,程序员编码错误引起的。,程序员编码错误引起的。 其它错,占整个软件错误其它错,占整个软件错误16,由文档错和硬件错所,由文档错和硬件错所引起的引起的。 10.3软件测试概述软件测试概述10.3.1测试步骤:测试步骤:(1) 单元测试单元测试 程序设计程序设计 & 编码编码 bugs(2) 集成测试集成测试 模块之间的连接模块之间的连接(3) 确认测试确认测试 用户参与用户参与综合综合测试测试测试阶段的信息流:测试阶段的信息流:测试测试评价评价调试调试可靠性可靠性模型模型软件配置软件配置测试配置测试配置测试结果

51、测试结果可靠性预测可靠性预测错错 误误正正 确确错误率数据错误率数据预期结果预期结果 对源程序中每一个程序单元进行测试,检查各个模对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。算法中的错误。主要测试以下五个方面:1、模块接口:、模块接口:内部检查:传输参数的数目、属性、单位、次序是否匹内部检查:传输参数的数目、属性、单位、次序是否匹配;全程变量的定义是否一致;只做输入的变元有无被配;全程变量的定义是否一致;只做输入的变元有无被修改,等等。修改,等等。外部检查:打开、结束、关闭文件的操作;

52、文件和属性;外部检查:打开、结束、关闭文件的操作;文件和属性;IO错误处理;输出拼写等等。错误处理;输出拼写等等。(1) 单元测试单元测试3、 重要的执行路径:重要的执行路径: 由于穷尽测试不可能,故通常针对最常见的错误设计测试方案。由于穷尽测试不可能,故通常针对最常见的错误设计测试方案。4、出错处理通路:、出错处理通路: 预见出现错误的条件,设置处理。预见出现错误的条件,设置处理。5、边界条件、边界条件 : 单元测试中最后,也可能是最重要的任务,因为软件常在其边界失效。单元测试中最后,也可能是最重要的任务,因为软件常在其边界失效。(1) 单元测试单元测试2、局部数据结构:、局部数据结构: 数

53、据说明数据说明(declaration);初始化与缺省值的设置;变量名拼写;数;初始化与缺省值的设置;变量名拼写;数 据类型的相容性;上据类型的相容性;上下文溢出及地址异常等等。下文溢出及地址异常等等。1、非渐增式测试、非渐增式测试 (Big-bang testing)Test A,B, C, DTestATestBTestCTestD(2)集成测试集成测试 (Integration Testing)是指在单元测试的基础上,将所有模块按照设计要是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统而进行的测试,也称组装求组装成一个完整的系统而进行的测试,也称组装测试或联合测试。测试

54、或联合测试。 自顶向下测试自顶向下测试 第1步:测试顶端模块,用桩模块(stub)代替直接附属的 下层模块。 Stub: 模拟未测试模块的活动。MS1S22、渐增式测试、渐增式测试 (Incremental testing)逐个把未经过测试的模块组装到已经测试过的模块上逐个把未经过测试的模块组装到已经测试过的模块上去,进行集成测试。去,进行集成测试。(2)集成测试集成测试 (Integration Testing)第第2步:根据深度优先或宽度优先的策略,每次用一个步:根据深度优先或宽度优先的策略,每次用一个实实 际模块代换一个际模块代换一个stub。(2)集成测试集成测试 (Integrati

55、on Testing)第第3步:在结合进一个模块的同时进行测试。步:在结合进一个模块的同时进行测试。第第4步:步: 回归测试回归测试(regression testing)全全部或部分地重复以前做过的测试。部或部分地重复以前做过的测试。优点:在早期即对主要控制及关键的抉择进行检验。优点:在早期即对主要控制及关键的抉择进行检验。问题:问题:Stub只是对低层模块的模拟,测试时没有重只是对低层模块的模拟,测试时没有重 要的数据自下往上流,许多重要的测试须推要的数据自下往上流,许多重要的测试须推 迟进行,而且在早期不能充分展开人力。迟进行,而且在早期不能充分展开人力。(2)集成测试集成测试 (Int

56、egration Testing) 自底向上测试自底向上测试第第1步:把低层模块组合成族,每族实现一个子功能。步:把低层模块组合成族,每族实现一个子功能。第第2步:用驱动模块步:用驱动模块(Driver)协调测试数据的协调测试数据的IO,测测试子功能族。试子功能族。Driver: 用来模拟被测模块的上级调用来模拟被测模块的上级调用模块,功能要比正真的上级模块简用模块,功能要比正真的上级模块简单的多,只完成接受测试数据,接受单的多,只完成接受测试数据,接受被测模块的测试结果并输出。被测模块的测试结果并输出。DM1M2(2)集成测试集成测试 (Integration Testing)第第3 3步:

57、去掉步:去掉DriverDriver,自下而上把子功能族合成自下而上把子功能族合成更大的子功能族。更大的子功能族。MMMMMMMMMMMMDDDDDD注意:注意:两种策略两种策略的优、缺点刚好的优、缺点刚好互补,但单用其互补,但单用其中任一种都不实中任一种都不实际,通常根据软际,通常根据软件的特点将二者件的特点将二者混用。混用。(2)集成测试集成测试 (Integration Testing)(3) 确认测试确认测试(Acceptance testing)任务:确任软件的有效性(功能和性能达标)。任务:确任软件的有效性(功能和性能达标)。手段:黑盒测试;用户参与;主要用实际数据进行手段:黑盒测

58、试;用户参与;主要用实际数据进行测试。测试。内容:按合同规定审查软件配置;内容:按合同规定审查软件配置; 设计测试计划,使通过测试保证软件能满足所有功能、设计测试计划,使通过测试保证软件能满足所有功能、性能要求;性能要求; 文档与程序一致,具有维护阶段所必须的细节;文档与程序一致,具有维护阶段所必须的细节; 严格按用户手册操作,以检查手册的完整性和正确性。严格按用户手册操作,以检查手册的完整性和正确性。改正性维护在软件交付使用后,因开发时测试的不彻底、不完全,必然会有部分隐藏的错误遗留到运行阶段。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就

59、叫做改正性维护。适应性维护在使用过程中,外部环境(新的硬、软件配置)数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就叫做适应性维护。完善性维护在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动叫做完善性维护。预防性维护预防性维护,是为了提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试,称为预

60、防性维护。 1. 黑盒法黑盒法 该该方方法法把把被被测测试试对对象象看看成成一一个个黑黑盒盒子子,测测试试人人员员完完全全不不考考虑虑程程序序的的内内部部结结构构和和处处理理过过程程,只只在在软软件件的的接接口口处处进进行行测测试试,依依据据需需求求说说明明书书,检检查查程程序序是是否否满满足足功功能能要要求求。因因此此,黑黑盒盒测测试试又又称称为为功功能能测测试试或或数数据据驱动测试。驱动测试。 10.4 黑盒测试法与白盒测试法黑盒测试法与白盒测试法例例 输入输入值是学生成绩,范围是值是学生成绩,范围是0 01001000 1000 100 有效有效等价类等价类11成绩成绩100100无效等

61、价类无效等价类 成绩成绩100100 无效等价类无效等价类 成绩成绩00(1)黑盒测试)黑盒测试-等价类划分等价类划分 输入输入条件条件报表日报表日期的类期的类型及长型及长度度1 1个个数字数字字符字符5 5个个数字数字字符字符7 7个个数字数字字符字符有有1 1个个非数字字符非数字字符全部是全部是非数字字符非数字字符6 6个个数字数字字符字符显示出错显示出错显示出错显示出错显示出错显示出错显示出错显示出错显示出错显示出错输入有效输入有效日期日期范围范围月份月份范围范围“报表日期报表日期”边界值分析法测试用例边界值分析法测试用例测试用例说明测试用例说明测试数据测试数据期望结果期望结果选取理由选

62、取理由5 52001520015200100520010052001.52001.5MAY-MAY-200105200105月份为月份为1 1月月月份为月份为1212月月月份月份11212200101200101200112200112200100200100200113200113200101200101200512200512200100200100200513200513输入有效输入有效输入有效输入有效显示出错显示出错显示出错显示出错输入有效输入有效输入有效输入有效显示出错显示出错显示出错显示出错在有效范围在有效范围边界上选取边界上选取数据数据仅有仅有1 1个合法字符个合法字符比有效长度

63、少比有效长度少1 1比有效长度多比有效长度多1 1只有只有1 1个非法字符个非法字符6 6个非法字符个非法字符类型及长度均有效类型及长度均有效最小日期最小日期最大日期最大日期刚好小于最小日期刚好小于最小日期刚好大于最大日期刚好大于最大日期最小月份最小月份最大月份最大月份刚好小于最小月份刚好小于最小月份刚好大于最大月份刚好大于最大月份错误推测错误推测 基本思想是列举出程序中可能的错误和容易发生错误的基本思想是列举出程序中可能的错误和容易发生错误的特殊情况,并且根据它们选择测试方案。错误推测方法是特殊情况,并且根据它们选择测试方案。错误推测方法是根据经验来设计测试用例的方法。根据经验来设计测试用例

64、的方法。例如,数据测试中的例如,数据测试中的 缺省值、空白、空值、零值、无缺省值、空白、空值、零值、无(3)黑盒测试)黑盒测试-错误推测错误推测因果图法实例某电力公司有A、B、C、D四类收费标准,并规定:居民用电 100度/月 按A类收费 100度/月 按B类收费动力用电 10000度/月,非高峰,B类收费 10000度/月,非高峰,C类收费 10000度/月, 高峰,C类收费 10000度/月, 高峰,D类收费(4)黑盒测试)黑盒测试-因果图因果图列出原因和结果 原因: 1居民用电 2动力用电 3100度/月 3100度/月 4非高峰 4高峰 51错错写写为为X 1OR B=0TA=2OR

65、X 1TX = X / AX = X + 1返回返回FFTest case : A=2 , B=0 , X=4. (1)语语句句覆覆盖盖:就是设计足够的调试用例,使得程序中的每个语句至少执行一次。2. 白盒法白盒法If ( A 1 ) And (B = 0 )Then x: = x/A ;If (A=2) or (x 1)Then x: = x + 1 判定覆盖判定覆盖(Branch coverage):在在的基础上,每的基础上,每个判定的每个分支至少执行一次。个判定的每个分支至少执行一次。Test cases:A=3 , B=0 , X=3A=2 , B=1 , X=1问题:若问题:若X1错

66、错写为写为X 1AND B=0TA=2OR X 1TX = X / AX = X + 1返回返回FFX 1 ) And (B = 0 )Then x: = x/A ;If (A=2) or (x 1)Then x: = x + 1 条件覆盖条件覆盖(Condition coverage):在在的基础上,使每个判的基础上,使每个判定表达式的每个条件都取到各种可能的结果。定表达式的每个条件都取到各种可能的结果。Test cases:A=2 , B=0 , X=4(满足满足A1, B=0; A=2, X1)A=1, B=1, X=1(满足满足A 1, B 0; A 2, X 1)判定判定/条件覆盖:

67、即条件覆盖:即判定覆盖判定覆盖 条件覆盖条件覆盖 入口入口A 1AND B=0TA=2OR X 1TX = X / AX = X + 1返回返回FF2. 白盒法白盒法If ( A 1 ) And (B = 0 )Then x: = x/A ;If (A=2) or (x 1)Then x: = x + 1 条件组合覆盖:每个判定表达式中条件的各种可能组条件组合覆盖:每个判定表达式中条件的各种可能组合都至少出现一次。合都至少出现一次。入口入口A 1AND B=0TA=2OR X 1TX = X / AX = X + 1返回返回FF全部可能的条件组合为:全部可能的条件组合为: A1, B=0 A1

68、, B 0 A 1, B=0 A 1, B 0 A=2, X1 A=2, X 1 A 2, X1 A 2,X 1 Test cases: A=2, B=0, X=4 (T T) A=2. B=1, X=1 (F T) A=1, B=0, X=2 (F T) A=1, B=1, X=1 (F F)问题:没有测试到问题:没有测试到(T F)的情形的情形2. 白盒法白盒法If ( A 1 ) And (B = 0 )Then x: = x/A ;If (A=2) or (x 1)Then x: = x + 1(6)路径覆盖 选取足够多测试数据,使程序的每条可能路径都至少执行一次(如果程序图中有环,则

69、要求每个环至少经过一次)。 在例子中,共有四条可能的执行路径,1-2-3;1-2-6-7;1-4-5-3;1-4-5-6-7。因此,为了做到路径覆盖必须设计四组测试数据。2. 白盒法白盒法2、调试策略、调试策略 调试过程的关键不是调试技术,而是用来推断错误原调试过程的关键不是调试技术,而是用来推断错误原因的基本策略。主要有:因的基本策略。主要有: 试探法,凭经验猜测。试探法,凭经验猜测。 回溯法:由症状回溯法:由症状(symptom)最先出现的地方,沿最先出现的地方,沿control flow向回检查。适用于小型程序。向回检查。适用于小型程序。 对分法:在关键点插入变量的正确值,则:对分法:在

70、关键点插入变量的正确值,则:输出正确输出正确错误在前半段错误在前半段错误在后半段错误在后半段NY10.6调调 试试(Debugging)收集数据收集数据组织数据组织数据研究数据研究数据间的关系间的关系提出假设提出假设证明假设证明假设纠正错误纠正错误能能能能不不能能不能不能 归纳法:从错误症状中找出规律,推断根源。归纳法:从错误症状中找出规律,推断根源。10.6调调 试试(Debugging)列举可能列举可能的原因的原因排除不正确排除不正确的假设的假设精化余下精化余下的假设的假设证明证明假设假设收集更多数据收集更多数据纠正纠正错误错误有剩余有剩余能能不能不能无剩余无剩余 演绎法:普通演绎法:普通 特殊特殊 从假设中逐步排除、精化,从而导出错误根源。从假设中逐步排除、精化,从而导出错误根源。10.6调调 试试(Debugging)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号