软件工程第5章--详细设计.ppt
文本预览下载声明
第五章 详细设计(Program Design ? Coding) 结构程序设计的特点: ① 自顶向下逐步求精; ② 具有单入、单出的控制结构(取消GOTO语句) §1. 工具 ? 任何复杂的程序流程图都应由以上五种基本结构组合而成。 优点:易于实现由PDL到源代码的自动转换。 缺点:不够直观。 §2. JSD 例:一个正文文件由若干个记录组成,每个记录是一个字符串。要求统计每个记录中空格字符的个数,以及文件中空格字符的总个数。要求的输出数据格式是:每复制一行输入字符串之后,另起一行印出这个字符串中的空格数,最后印出文件中空格的总个数。 第2步:Data Structure ? Program Structure 。 第3步:将上图对应转换为程序流程图,并将每个处理框编号。 第4步:Pseudocode 分类。 例:(部分列举,) 输 入 类 010 — 读 040 — 读 100 — 读 分支准备类:040 — 顾客号送到访问顾客号 分支指令类:010 — 若EOF 030 040 — 若读出的顾客号 =访问的顾客号 060 100 — 若读出的顾客号 =访问的顾客号 070 ………… 计 算 类:040 — 旧余额送到工作区 ………… 输 出 类:040 — 旧余额送到参考区 040 — 编辑顾客标题 040 — 输出并复原打印区 ………… 第5步:将前一步分类结果标号排序 Pseudocode. §4.程序复杂程度的定量度量(Measuring Program Complexity) 1、mcCabe’s Theory (Thomas mcCabe , 1976) 第1步:将程序流程图转化为程序图(Control Flow Graph) §4.程序复杂程度的定量度量 第2步:计算CFG的环形复杂度(Cyclomatic Complexity) ① 分支或循环增多时,CC也随之增大,故CC值实际上是为软件测试的难易度提供了一个定量度量的方法,间接表示了软件的可靠性。 ② CC是可加的:2模块的总复杂度 = 各自CC之和。 ③ 实践经验表明,对于CC10的程序,应分成几个小程序处理,以降低出错率。 ④ 缺点: ? 有些控制结构不能区分,例如 IF 与 LOOP,嵌套 IF 与 CASE 等; ? 不能区分一个多行顺序结构与一个单行程序的复杂性。 Project Part ⅣHDIS v1.0 的隆重推出 ? 验收截止日期:5月?日 (星期四?) ? 验收地点:各组自定 ? 验收内容: ① 组长介绍分工情况及指定功能完成概况; ② 个人工作介绍(编程人员演示模块功能;测试人员出示测试报告;文档人员出示相应文档、文件夹)。 a(开始) b(入口) c d e f g h i j(出口) k(停止) 注: ① 对于一个正常的程序,其CFG应是连通的,即p = 1. ③ 对于平面图G, V(G) =G在平面上围成的区域的个数。 §4.程序复杂程度的定量度量 ②CFG通常不是强连通的,故须从出口到入口画一条虚弧,使其成为强连通图。 §4.程序复杂程度的定量度量 McCabe 环形复杂度的特点: 2. Halstead’s Theory (M. Halstead, 1977) —— based on source code measurements ? The primitive measures are n1 — the number of distinct operators that appear in a program n2 — the number of distinct operands that appear in a program N1 — the total number of operator occurrences N2 — the to
显示全部