软件工程课件学习6_第1页
软件工程课件学习6_第2页
软件工程课件学习6_第3页
软件工程课件学习6_第4页
软件工程课件学习6_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 2 结构程序设计结构程序设计 人机界面设计人机界面设计 过程设计的工具过程设计的工具 面向数据结构的设计方法面向数据结构的设计方法 程序复杂度的定量度量程序复杂度的定量度量 3 6.1 6.1 结构程序设计结构程序设计 任务:任务: 是设计出程序的是设计出程序的“蓝图蓝图”,以后程序员将根,以后程序员将根 据这个蓝图写出实际的程序代码。据这个蓝图写出实际的程序代码。 结构程序设计的概念最早由结构程序设计的概念最早由E.W.Dijkstra提出。提出。 (19651965) 19661966年年BhmBhm和和JacopiniJacopini证明了,只用三种基本证明了,只用三种基本 的控制结

2、构就能实现任何单入口单出口的程序。的控制结构就能实现任何单入口单出口的程序。 19721972年年IBMIBM公司的公司的MillsMills进一步提出,程序应进一步提出,程序应 该只有一个入口和一个出口。该只有一个入口和一个出口。 4 结构程序设计的结构程序设计的经典定义经典定义如下所述:如下所述: 如果一个程序的代码块仅仅通过顺序、选择如果一个程序的代码块仅仅通过顺序、选择 和循环这三种控制结构进行连接,并且每个代码和循环这三种控制结构进行连接,并且每个代码 块只有一个入口和一个出口,则称这个程序是结块只有一个入口和一个出口,则称这个程序是结 构化的。构化的。 可能更全面的定义可能更全面的

3、定义: 结构程序设计是尽可能少用结构程序设计是尽可能少用GO TOGO TO语句的程语句的程 序设计方法。最好仅在检测出错误时才使用序设计方法。最好仅在检测出错误时才使用GO GO TOTO语句,而且应该总是使用前向语句,而且应该总是使用前向GO TOGO TO语句。语句。 6.1 6.1 结构程序设计结构程序设计 5 6.2 6.2 人机界面设计人机界面设计 应该考虑的设计问题应该考虑的设计问题 1. 系统响应时间系统响应时间 一般说来,系统响应时间指的是从用户一般说来,系统响应时间指的是从用户 完成某个控制动作(例如,按回车键或点击完成某个控制动作(例如,按回车键或点击 鼠标),到软件给出

4、预期的响应(输出或做鼠标),到软件给出预期的响应(输出或做 预期的动作)之间的这段时间。预期的动作)之间的这段时间。 系统响应时间有两个重要属性,分别是系统响应时间有两个重要属性,分别是长长 度和易变性度和易变性。 6 2. 用户帮助设施用户帮助设施 常见的帮助设施有常见的帮助设施有集成集成的和的和附加附加的两的两 类。类。集成的帮助设施集成的帮助设施从一开始就设计在软从一开始就设计在软 件里面,通常它对用户的工作内容是敏感件里面,通常它对用户的工作内容是敏感 的,因此用户可以从与刚刚完成的操作有的,因此用户可以从与刚刚完成的操作有 关的主题中选择一个请求帮助。关的主题中选择一个请求帮助。附加

5、的帮附加的帮 助设施助设施是在系统建成后再添加到软件中的,是在系统建成后再添加到软件中的, 在多数情况下,它实际上是一种查询能力在多数情况下,它实际上是一种查询能力 有限的联机用户手册。集成的帮助设施优有限的联机用户手册。集成的帮助设施优 于附加的帮助设施。于附加的帮助设施。 6.2 6.2 人机界面设计人机界面设计 7 3. 出错信息处理出错信息处理 一般说来,交互式系统给出的出错信息或警一般说来,交互式系统给出的出错信息或警 告信息,应该具有下述属性告信息,应该具有下述属性: 信息应该以用户可以理解的术语描述问题。信息应该以用户可以理解的术语描述问题。 信息应该提供有助于从错误中恢复的建设

6、性意见。信息应该提供有助于从错误中恢复的建设性意见。 信息应该指出错误可能导致哪些负面后果(例如,破坏数信息应该指出错误可能导致哪些负面后果(例如,破坏数 据文件),以便用户检查是否出现了这些问题,并在确实出据文件),以便用户检查是否出现了这些问题,并在确实出 现问题时予以改正。现问题时予以改正。 信息应该伴随着听觉上或视觉上的提示,也就是说,在显信息应该伴随着听觉上或视觉上的提示,也就是说,在显 示信息时应该同时发出警告声,或者信息用闪烁方式显示,示信息时应该同时发出警告声,或者信息用闪烁方式显示, 或者信息用明显表示出错的颜色显示。或者信息用明显表示出错的颜色显示。 信息不能带有指责色彩,

7、也就是说,不能责怪用户。信息不能带有指责色彩,也就是说,不能责怪用户。 6.2 6.2 人机界面设计人机界面设计 8 4. 命令交互命令交互 命令行曾经是用户和系统软件交互的命令行曾经是用户和系统软件交互的 最常用方式,而且也曾经广泛地用于各种最常用方式,而且也曾经广泛地用于各种 应用软件中。现在,面向窗口的、点击和应用软件中。现在,面向窗口的、点击和 拾取方式的界面已经减少了用户对命令行拾取方式的界面已经减少了用户对命令行 的依赖,但是,许多高级用户仍然偏爱面的依赖,但是,许多高级用户仍然偏爱面 向命令的交互方式。在多数情况下,用户向命令的交互方式。在多数情况下,用户 既可以从菜单中选择软件

8、功能也可以通过既可以从菜单中选择软件功能也可以通过 键盘命令序列调用软件功能。键盘命令序列调用软件功能。 6.2 6.2 人机界面设计人机界面设计 9 正文菜单、图标菜单、正文和图标混合菜单,如:正文菜单、图标菜单、正文和图标混合菜单,如: 开始菜单。开始菜单。 固定位置、浮动位置(弹出)、下拉式、嵌入式固定位置、浮动位置(弹出)、下拉式、嵌入式 图a 混合菜单 图b 固定及下拉菜单 固定菜单固定菜单 下拉菜单下拉菜单 10 在用户界面中,加入丰富多彩的画面,将能够更加行象地为用户提供在用户界面中,加入丰富多彩的画面,将能够更加行象地为用户提供 有用的信息,以达到可视化的目的。主要的处理操作有

9、:图象的隐蔽和再有用的信息,以达到可视化的目的。主要的处理操作有:图象的隐蔽和再 现、屏幕滚动和图案显示、动画等。现、屏幕滚动和图案显示、动画等。 11 对话框是在需要时,显示在屏幕上一个矩形区域内的图形和正文信息。对话框是在需要时,显示在屏幕上一个矩形区域内的图形和正文信息。 通过对话,实现系统和用户之间的通信。通过对话,实现系统和用户之间的通信。 对话框显示的方式与弹出式菜单类似,即瞬时弹出。同时,系统还应对话框显示的方式与弹出式菜单类似,即瞬时弹出。同时,系统还应 将对话框所覆盖的原图象进行保存,以便在对话结束后能立即恢复。将对话框所覆盖的原图象进行保存,以便在对话结束后能立即恢复。 有

10、三种对话形式:有三种对话形式: 必须回答式如图必须回答式如图a所示所示 无需回答式无需回答式 如图如图b所示所示 警告式警告式 如图如图c所示所示 图a 必须回答式对话框 图b 无需回答式对话框 图c 警告式对话框 12 4 4、窗口(、窗口(windowwindow) 图形学中称为视图区(图形学中称为视图区(ViewportViewport),视为虚拟屏幕。一个实用窗口,),视为虚拟屏幕。一个实用窗口, 可包含部件:可包含部件: 菜单区(菜单区(menu barmenu bar) 图标区(图标区(icon baricon bar) 标题区(标题区(title bartitle bar) 移动

11、区(移动区(move barmove bar) 大小区(大小区(size barsize bar) 退出区(退出区(quit barquit bar) 用户工作区(用户工作区(users work barusers work bar) 横向滚动区(横向滚动区(horizontal scroll barhorizontal scroll bar) 纵向滚动区(纵向滚动区(vertical scroll barvertical scroll bar) 图a 窗口 13 数据数据I/OI/O界面,是系统的重要组成部分。主要从界面,是系统的重要组成部分。主要从输入速度输入速度和和 减少出错率减少出错率

12、考虑。考虑。 1、尽量减少输入工作量、尽量减少输入工作量 对相同内容输入设置默认值对相同内容输入设置默认值 自动填入自动填入 列表选择或点击选择列表选择或点击选择 2、输入屏幕与输入格式匹配、输入屏幕与输入格式匹配 即屏幕显示按照数据使用频率、重要性、次序等即屏幕显示按照数据使用频率、重要性、次序等 组织。组织。 3、数据输入的一般规则、数据输入的一般规则 确定输入确定输入交互动作交互动作 确定删除确定删除提供反馈提供反馈 14 人机界面设计过程人机界面设计过程 创建设计模型创建设计模型 原型实现模型原型实现模型 试用和评估试用和评估 修改修改 15 1. 1. 一般交互指南一般交互指南 一般

13、交互指南涉及信息显示、数据输入和整一般交互指南涉及信息显示、数据输入和整 体系统控制,因此,这些指南是全局性的,忽略体系统控制,因此,这些指南是全局性的,忽略 它们将承担较大风险。它们将承担较大风险。 界面设计指南界面设计指南 2. 2. 信息显示指南信息显示指南 如果人机界面显示的信息是不完整的,含糊的如果人机界面显示的信息是不完整的,含糊的 或难于理解的,则应用软件显然不能满足用户的需或难于理解的,则应用软件显然不能满足用户的需 求。可以用多种不同方式求。可以用多种不同方式“显示显示”信息:用文字、信息:用文字、 图片和声音;按位置、移动和大小;使用颜色、分图片和声音;按位置、移动和大小;

14、使用颜色、分 辨率和省略。辨率和省略。 16 3. 3. 数据输入指南数据输入指南 用户的大部分时间用在选择命令、键入数据用户的大部分时间用在选择命令、键入数据 和向系统提供输入。在许多应用系统中,键盘仍和向系统提供输入。在许多应用系统中,键盘仍 然是主要的输入介质,但是,鼠标、数字化仪和然是主要的输入介质,但是,鼠标、数字化仪和 语音识别系统正迅速地成为重要的输入手段。语音识别系统正迅速地成为重要的输入手段。 界面设计指南界面设计指南 17 6.3 6.3 过程设计的工具过程设计的工具 1 1、程序流程图、程序流程图 2 2、盒图(、盒图(N-SN-S图)图) 3 3、PADPAD图图问题分

15、析图问题分析图 4 4、判定表、判定表 5 5、判定树、判定树 6 6、过程设计语言、过程设计语言PDLPDL 18 程序流程图程序流程图 a b X1 X2 X7 X6 X4 X3 X5 h i g f e d c j F T F F F T T T 多分支选多分支选 择结构择结构 先判定型循先判定型循 环结构环结构 选择结构选择结构 后判定型循环结构后判定型循环结构 19 程序流程图中使用的符号程序流程图中使用的符号 (a a)选择(分支);()选择(分支);(b b)注释;()注释;(c c)预先定义的处理;()预先定义的处理;(d d)多分支;()多分支;(e e)开始)开始 或停止;

16、或停止; (f f)准备;()准备;(g g)循环上界限;()循环上界限;(h h)循环下界限;()循环下界限;(i i)虚线;()省略符;()虚线;()省略符;(k k )并行方式;)并行方式; (l l)处理;()处理;(m m)输入输出;()输入输出;(n n)连接;()连接;(o o)换页连接;()换页连接;(p p)控制流)控制流 21 22 盒图盒图 盒图的基本符号盒图的基本符号 (a a)顺序;()顺序;(b b)IF_THEN_ELSEIF_THEN_ELSE型分支;型分支; (c c)CASECASE型多分支;(型多分支;(d d)循环;()循环;(e e)调用子程序)调用子

17、程序A A 23 24 25 PADPAD图基本结构图基本结构 PADPAD图图(Problem Analysis Diagram) 26 例1 27 s17s22=0 while num(1-1000) 输入 age s17+ s18+ s19+ s20+ s21+ s22+ while i(17-22) 输出 si begin end 28 BEGIN FIRST:=K1; SECOND:=0; FIRST=KI SECOND=0 I:=2 to N KI SECOND KIFIRST SECOND =FIRST FIRST=KI SECOND =KI ELSE SECOND:=KI EN

18、D END END. 对应对应PADPAD图图 FOR I:=2 TO N DO BEGIN IF KISECOND THEN BEGIN IF KIFIRST THEN BEGIN SECOND:=FIRST; FIRST:=KI END 例2 图3.49 PAD图应用举例 29 练习(画出PAD图) S=1+3+5+999 。 求f(x)= 求g(x)= 1 x0 0 x=0 -1 x0 -1 x=0 30 s=0 i=1 While i0 T 输出F(X) F Input x G(x)=1 x X0 X=0 X0 G(x)=0 G(x)=-1 输出g(X) 32 当算法中包含多重嵌套的条

19、件选择时,判定当算法中包含多重嵌套的条件选择时,判定 表能够清晰地表示复杂的条件组合与应做的动作表能够清晰地表示复杂的条件组合与应做的动作 之间的对应关系。之间的对应关系。 一张判定表由一张判定表由四部分四部分组成,组成,左上部左上部列出所有列出所有 条件,条件,左下部左下部是所有可能做的动作,是所有可能做的动作,右上部右上部是表是表 示各种条件组合的一个矩阵,示各种条件组合的一个矩阵,右下部右下部是和每种条是和每种条 件组合相对应的动作。判定表右半部的每一列实件组合相对应的动作。判定表右半部的每一列实 质上是一条规则,规定了与特定的条件组合相对质上是一条规则,规定了与特定的条件组合相对 应的

20、动作。应的动作。 判定表判定表 33 1 12 23 34 45 56 67 78 89 9 国内乘客国内乘客T TT TT TT TF FF FF FF F 头等舱头等舱T TF FT TF FT TF FT TF F 残疾乘客残疾乘客F FF FT TT TF FF FT TT T 行李重量行李重量W W3030T TF FF FF FF FF FF FF FF F 免费免费 (W W3030)2 2 (W W3030)3 3 (W W3030)4 4 (W W3030)6 6 (W W3030)8 8 (W W3030)1212 用判定表表示计算行李费的算法 34 35 36 37 判定

21、树判定树 判定树是判定表的变种判定树是判定表的变种 优点优点:形式简单易于掌握和使用:形式简单易于掌握和使用 用判定树表示计算行李费的算法用判定树表示计算行李费的算法 注:判定表与判定树并不适用于作为一种通注:判定表与判定树并不适用于作为一种通 用的设计工具,通常将之用于辅助测试用的设计工具,通常将之用于辅助测试 38 作业 某仓库发货方案如下: 客户欠款时间不大于30天,如 果需要量不大于库存量则立即 发货;否则先按库存量发货, 进货后再补发。 客户欠款时间不大于100天, 如果需要量不大于库存量则先 付款再发货;否则不发货。 客户欠款时间大于100天,要 求先付欠款。 用判定表和判定树表示

22、 39 PDL 是一种用于描述功能模块的算法设是一种用于描述功能模块的算法设 计和加工细节的语言。称为设计程序用计和加工细节的语言。称为设计程序用 语言。它是一种伪代码语言。它是一种伪代码( (Pseudo codePseudo code) ) -关键词+自然语言 40 1 1、数据说明数据说明: : 定义数据的类型和作用域定义数据的类型和作用域 格式格式: : TYPE AS 说明说明: : 1. 变量名:是一个模块内部使用的变量或模块间 共用的全局变量名。 2. 限定词1 :标明数据类型 3. 限定词2 :标明该变量的作用域 PDL 41 2 2、程序块、程序块: : PDL的过程成分是由

23、块结构构成的,而的过程成分是由块结构构成的,而 块将作为一个单个的实体来执行。块将作为一个单个的实体来执行。 BEGIN END PDL 42 3 3、子程序结构、子程序结构: : 把把 PDL 中的过程称为子程序。中的过程称为子程序。 PROCEDURE INTERFACE END PDL 43 4 4、基本控制结构、基本控制结构: : IF THEN ; ELSE ; ENDIF 选择型结构选择型结构 PDL 44 4 4、基本控制结构、基本控制结构: : DO WHILE ; ENDDO REPEAT UNTIL ; ENDREP 重复型结构重复型结构 PDL 45 4 4、基本控制结构

24、、基本控制结构: : 重复型结构重复型结构 DO LOOP ; EXIT WHEN ENDLOOP DO FOR ; ENDFOR PDL 46 4 4、基本控制结构、基本控制结构: : 多路选择结构多路选择结构 CASE OF case ; WHEN case 1 SELECT ; WHEN case 2 SELECT ; DEFAULT: 缺省或错误缺省或错误case:case: ; ENDCASE PDL 47 4 4、基本控制结构、基本控制结构: : READ/WRITE TO 输入输入/ /输出结构输出结构 PDL 48 例如:例如: if X is not negativeif X

25、 is not negative then then return(square root of X as a real number); return(square root of X as a real number); else else return(square root of -X as an imaginary return(square root of -X as an imaginary number); number); 外层语法外层语法IF-ELSE-THENIF-ELSE-THEN是确定的,内层操作是确定的,内层操作“square square root of X ro

26、ot of X ”是不确定的。是不确定的。 PDL 49 6.4 6.4 面向数据结构的设计方法面向数据结构的设计方法 面向数据结构的设计方法的面向数据结构的设计方法的最终目标最终目标 是得出对程序处理过程的描述。这种方法是得出对程序处理过程的描述。这种方法 最适合于最适合于在详细设计阶段使用。在详细设计阶段使用。 使用面向数据结构的设计方法,当使用面向数据结构的设计方法,当 然首先需要分析确定数据结构,并且用然首先需要分析确定数据结构,并且用 适当的工具适当的工具JacksonJackson图图清晰地描绘数清晰地描绘数 据结构。据结构。 50 图图3.29 A3.29 A由由B B、C C、

27、D D三个元素顺序组成三个元素顺序组成 (每个元素只出现一次,出现的次序依次是(每个元素只出现一次,出现的次序依次是B B、C C和和D D) 1. 1. 顺序结构顺序结构 顺序结构的数据由一个或多个数据元素组成,顺序结构的数据由一个或多个数据元素组成, 每个元素按确定次序出现一次。每个元素按确定次序出现一次。 JacksonJackson图图 51 图图3.30 3.30 根据条件根据条件A A是是B B或或C C或或D D中的某一个中的某一个 (注意:在(注意:在B B、C C和和D D的右上角有小圆圈做标记)的右上角有小圆圈做标记) 2. 2. 选择结构选择结构 选择结构的数选择结构的数

28、 据包含两个或多个据包含两个或多个 数据元素,每次使数据元素,每次使 用这个数据时按一用这个数据时按一 定条件从这些数据定条件从这些数据 元素中选择一个。元素中选择一个。 JacksonJackson图图 52 3. 3. 重复结构重复结构 重复结构的数据,根据使用时的条件由一个重复结构的数据,根据使用时的条件由一个 数据元素出现零次或多次构成。数据元素出现零次或多次构成。 图图3.31 A3.31 A由由B B出现出现N N次(次(N0N0)组成)组成 (注意,在(注意,在B B的右上角有星号标记)的右上角有星号标记) JacksonJackson图图 53 JacksonJackson图有

29、下述优点:图有下述优点: 便于表示层次结构,而且是对结构进行便于表示层次结构,而且是对结构进行 自顶向下分解的有力工具;自顶向下分解的有力工具; 形象直观可读性好;形象直观可读性好; 既能表示数据结构也能表示程序结构(既能表示数据结构也能表示程序结构( 因为结构程序设计也只使用上述三种基本因为结构程序设计也只使用上述三种基本 结构)。结构)。 JacksonJackson图图 54 JacksonJackson图的缺点:图的缺点: 选择条件或循环选择条件或循环 结束条件不能直接在结束条件不能直接在 图上表示出来;图上表示出来; 不易直接把图翻不易直接把图翻 译成程序;译成程序; 由于框间连线为

30、由于框间连线为 斜线,不易在行式打斜线,不易在行式打 印机上输出。印机上输出。 图图3.32 3.32 改进的改进的JacksonJackson图图 改进的改进的JacksonJackson图图 55 JacksonJackson图和描绘软件结构的层次图形图和描绘软件结构的层次图形 式相当类似,式相当类似,含义却很不相同含义却很不相同 层次图层次图 1.1.方框通常代表一个方框通常代表一个 模块;模块; 2.2.层次图表现调用关层次图表现调用关 系。系。 JacksonJackson图图 1.1.方框通常代表几个方框通常代表几个 语句;语句; 2.Jackson2.Jackson图表现组图表现

31、组 成关系。成关系。 56 JacksonJackson结构程序设计方法基本上由下述结构程序设计方法基本上由下述 五个步骤组成:五个步骤组成: 第第1 1步步 分析并确定输入数据和输出数据分析并确定输入数据和输出数据 的逻辑结构,并用的逻辑结构,并用JacksonJackson图描绘这些数据图描绘这些数据 结构。结构。 第第2 2步步 找出输入数据结构和输出数据结找出输入数据结构和输出数据结 构中有对应关系的数据单元。构中有对应关系的数据单元。 第第3 3步步 用三条规则从描绘数据结构的用三条规则从描绘数据结构的 JacksonJackson图导出描绘程序结构的图导出描绘程序结构的Jackso

32、nJackson图。图。 JacksonJackson方法方法 57 第第4 4步步 列出所有操作和条件(包括分支列出所有操作和条件(包括分支 条件和循环结束条件),并且把它们分配条件和循环结束条件),并且把它们分配 到程序结构图的适当位置。到程序结构图的适当位置。 第第5 5步步 用伪码表示程序。用伪码表示程序。 JacksonJackson方法方法 Jackson方法示例 正文文件正文文件 字符串字符串* * I I 字符字符* * 空格空格 非空格非空格 I I 输出表格输出表格 表格体表格体空格总数空格总数 串信息串信息* * I I 字符串字符串空格数空格数 S S Jackson方

33、法示例 统计空格统计空格 程序体程序体印总数印总数 处理字符串处理字符串 印字符串印字符串 分析字符串分析字符串 印空格数印空格数 分析字符分析字符* * I I 处理空格处理空格处理非空格处理非空格 S S 列出所有的操作和条件,并把它们分配到程序结构图的适当位置。列出所有的操作和条件,并把它们分配到程序结构图的适当位置。 (1 1)停止)停止 (2 2)打开文件)打开文件 (3 3)关闭文件)关闭文件 (4 4)印出字符串)印出字符串 (5 5)印出空格数)印出空格数 (6 6)印出空格总数)印出空格总数 (7 7)sum:=sum+1 sum:=sum+1 (8 8)totalsum:=

34、totalsum+sum totalsum:=totalsum+sum (9 9)读入字符串)读入字符串 (1010)sum:=0 sum:=0 (1111)totalsum:=0 totalsum:=0 (1212)pointer:=1pointer:=1 (1313)pointer:=pointer+1 I(1)pointer:=pointer+1 I(1)文件结束文件结束 I(2)I(2)字符串结束字符串结束 S(3)S(3)字符是空格字符是空格 统计空格统计空格 程序体程序体印总数印总数 处理字符串处理字符串* * 印字符串印字符串分析字符串分析字符串 印空格数印空格数 分析字符分析字

35、符* * I(2)I(2) 处理空格处理空格处理非空格处理非空格 2 29 911113 31 1 6 6 10101212 4 4 8 89 9 5 5 7 71313 1313 I(1)I(1) S(3)S(3) 62 (1) 流图流图 按照程序的控制结构设计测试用例时,往按照程序的控制结构设计测试用例时,往 往需要仔细分析程序的控制流。为了突出表现往需要仔细分析程序的控制流。为了突出表现 程序的控制流,可以使用流图(也称为程序程序的控制流,可以使用流图(也称为程序 图)。流图仅仅描绘程序的控制流程,它完全图)。流图仅仅描绘程序的控制流程,它完全 不表现对数据的具体操作以及分支或循环的具不

36、表现对数据的具体操作以及分支或循环的具 体条件。体条件。 6.5 6.5 程序复杂程度的定量度量程序复杂程度的定量度量 1 1、McCabeMcCabe方法方法: : 63 图图 6.15 把程序流程图映射成流图把程序流程图映射成流图 (a) 程序流程图程序流程图(b) 流图流图 6.5 6.5 程序复杂程度的定量度量程序复杂程度的定量度量 64 图图4.44.4是由包含复合是由包含复合 条件的条件的PDLPDL片断翻译成的片断翻译成的 流图,注意,与复合条流图,注意,与复合条 件件“a OR b”a OR b”对应的节对应的节 点有两个,这两个节点点有两个,这两个节点 分别标记为分别标记为“

37、a”a”和和 “b”b”。 图图6.17 6.17 由包含复合条件的由包含复合条件的 PDLPDL映射成的流图映射成的流图 6.5 6.5 程序复杂程度的定量度量程序复杂程度的定量度量 65 2 2 计算流图的环形复杂度。计算流图的环形复杂度。 环形复杂度定量度量程序逻辑的复杂程环形复杂度定量度量程序逻辑的复杂程 度。计算环形复杂度方法:度。计算环形复杂度方法: (1)流图中的区域数等于环形复杂度。)流图中的区域数等于环形复杂度。 (2)流图)流图G的环形复杂度的环形复杂度V(G)由下)由下 式计算:式计算: V(G)EN2 其中,其中,E是流图中边的条数,是流图中边的条数,N是流图是流图 中

38、节点数。中节点数。 (3)流图)流图G的环形复杂度的环形复杂度V(G)也可)也可 由下式计算:由下式计算: V(G)P1 其中,其中,P是流图中判定节点的数目。是流图中判定节点的数目。 66 3. 3. 环形复杂度的用途环形复杂度的用途 6.5 6.5 程序复杂程度的定量度量程序复杂程度的定量度量 分支或循环增多时,分支或循环增多时,CC也随之增大也随之增大,故,故CC值实际上是为值实际上是为 软件测试的难易度提供了一个定量度量的方法,间接表示软件测试的难易度提供了一个定量度量的方法,间接表示 了软件的可靠性。了软件的可靠性。 CC是可加的:是可加的:2模块的总复杂度模块的总复杂度 = 各自各

39、自CC之和之和。 实践经验表明,对于实践经验表明,对于CC10的程序,应分成几个小程序处的程序,应分成几个小程序处 理,以降低出错率。理,以降低出错率。 缺点:缺点: 有些控制结构不能区分有些控制结构不能区分,例如,例如 IF 与与 LOOP,嵌套,嵌套 IF 与与 CASE 等;等; 不能区分一个多行顺序结构与一个单行程序的复杂性。不能区分一个多行顺序结构与一个单行程序的复杂性。 67 a(开始)(开始) b(入口)(入口) c d e f g h i j(出口)(出口) k(停止)(停止) TOTAL=TOTAL+A K+ 输入输入A 输出输出K, L, TOTAL 停止停止 T 开始开始 K=0 L=0 TOTAL=0 输入输入A Do While TOTAL0 T L+ F a b c d e f g h i j k 例:例: 68 第第2 2步

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论