第五章详细设计.ppt_第1页
第五章详细设计.ppt_第2页
第五章详细设计.ppt_第3页
第五章详细设计.ppt_第4页
第五章详细设计.ppt_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

1、可行性研究,需求分析,总体设计,详细设计,编码,测试,运行/维护,软件生命周期模型结构图,问题定义,第5章 详细设计与编码,结构化程序设计 过程设计的工具 程序设计语言 程序设计风格 程序复杂度的定量度量,5.1 结构化程序设计,三种基本的控制结构,结构化程序设计,结构化程序设计技术是一种设计程序的技术。 它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构,并且只包含顺序、选择和循环三种控制结构。 实际上用顺序结构和循环结构完全可以实现选择结构,因此,理论上最基本的控制结构只有两种。,其他常用的控制结构,5.1 结构化程序设计,自顶向下、逐步细化方法举例 用筛选法求100以内的素数。 所

2、谓的筛选法,就是从2到100中去掉2,3,5,7的倍数,剩下的就是100以内的素数。,5.1 结构化程序设计,首先按程序功能写出一个框架 main () 建立2到100的数组A ,其中Aii;- - - - - 1 建立2到10的素数表B ,存放2到10以内的素数;- - 2 若Aii是B 中任一数的倍数,则剔除Ai; - - 3 输出A 中所有没有被剔除的数; - - - - - - - 4 ,5.1 结构化程序设计,上述框架中每一个加工语句都可进一步细化成一个循环语句 main () /*建立2到100的数组A ,其中Aii*/ - - 1 for (i = 2;i = 100;i+)Ai

3、 = i; /* 建立2到10的素数表B ,存放2到10以内的素数*/ - 2 B1 =2; B2 = 3; B3 = 5; B4 = 7; /*若Aii是B 中任一数的倍数,则剔除Ai*/ - - 3 for (j = 1; j = 4; j+) 检查A 所有的数能否被Bj整除并将能被整除的数从A中剔除; /*输出A 中所有没有被剔除的数*/ - - - - - - - 4 for (i = 2; i = 100; i+) 若Ai没有被剔除,则输出之; ,5.2 过程设计的工具,程序流程图 盒图 PAD图 判定表 判定树 过程设计语言,程序流程图,程序流程图中常用的符号,程序流程图实例,登录

4、模块的程序流程图,退出,退出,登录模块的程序流程图,盒图(N_S图),N-S图的符号,N-S图的扩展表示,盒图有以下一些特点:,功能域(即某一个特定控制结构的作用域)有明确的规定,并且可以很直观地从N-S图上看出来; 它的控制转移不能任意规定,必须遵守结构化程序设计的要求; 很容易确定局部数据和全局数据的作用域; 很容易表现嵌套关系,也可以表示模块的层次结构。,N-S图的实例,盒图练习,将登录模块的程序流程图转换为盒图来表示.,PAD图,PAD图的基本符号,PAD图提供的定义功能,PAD图练习,将以下算法用PAD图来表示: WHILE P DO S1; IF B0 THEN B1; WHILE

5、 C DO S2;S3 ENDWHILE; ELSE B2 ENDIF; B3ENDWHILE;,判定表,所 有 条 件,可 能 的 动 作,各种组合,相应的动作,例:某校制定了教师的讲课课时津贴标准。对于各种性质的讲座,无论教师是什么职称,每课时津贴费一律是50元;而对于一般的授课,则根据教师的职称来决定每课时津贴费:教授30元,副教授25元,讲师20元,助教15元。,判定表练习,假设某航空公司规定,乘客可以免费托运重量不超过30公斤的行李。当行李重量超过30公斤时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一

6、倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。用判定表表示。,判定树,教师课时津贴判定树,伪代码,伪代码是一种介于自然语言和形式化语言之间的半形式化语言,是一种用于描述功能模块的算法设计和加工细节的语言,也称为程序设计语言(Program Design Language,PDL)。 伪码的语法规则分为“外语法”和“内语法”。 外语法应当符合一般程序设计语言常用语句的语法规则; 内语法可以用英语中一些简单的句子、短语和通用的数学符号来描述程序应执行的功能。,伪代码,伪代码的基本控制结构 简单陈述句结构:避免复合语句。 判定结构:IF_THEN_ELSE或CASE_OF结构。 重复结构:WHI

7、LE_DO或REPEAT_UNTIL结构。,伪代码,伪代码实例:“检查订货单”例子,伪码的优、缺点,优点: 可作为注释直接插在源程序中; 伪码的编辑方便; 已有自动处理程序存在。 缺点: 不如图形工具形象直观; 不如判定表清晰。,5.3 程序设计语言,程序编码阶段的任务是将软件的详细设计转换成用程序设计语言实现的程序代码。 程序设计语言的要求: 详细设计应能直接地容易地翻译成代码程序。 源程序应具有可移植性。 编译程序应具有较高的效率。 尽可能应用代码生成的自动工具。 可维护性。,选择程序设计语言,程序设计语言分类: 1GL机器语言 2GL汇编语言 3GL高级语言 4GL支持面向对象技术、事件

8、驱动编程的语言,选择语言的主要实用标准:,软件的应用领域 工程规模 软件可移植性要求 系统用户的要求 可以使用的编译程序 可以得到的软件工具 程序员的知识,5.4 程序设计风格,好程序的一个重要标准: 源程序代码的逻辑简明清晰、易读易懂 为了做到这一点,应该遵循一定的规则: 1. 源程序文档化:标识符、注解和程序布局 2. 数据说明标准化:次序标准化,适当的注解 3. 语句构造简单化:12条经验规则 4. 输入输出规范化: 9条经验规则 5. 效率:不要牺牲程序的清晰性和可读性,练习,修改以下程序的形式,使之清晰易读:,5.5 程序复杂程度的定量度量,McCabe 方法 Halstead 方法

9、,软件复杂性度量的参数很多,主要有: 规模:总共的指令数或源程序行数; 难度:通常由程序中出现的操作数数目所决定的量来表示; 结构:通常用与程序结构有关的度量表示; 智能度:算法的难易程度。,5.5 程序复杂程度的定量度量,McCabe方法,McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度。 为了突出表示程序的控制流,人们通常使用流图(也称为程序图)。,图 4.4.1 程序流程图和程序图 (a) 程序流程图; (b) 程序图 /流图,结点,边,一条边必须终止于一个结点,在选择结构中的分支汇聚处即使无语句也应有汇聚结点; 若判断中的逻辑表达式是

10、复合条件,应分解为一系列只有单个条件的嵌套判断。,在转换时注意,图 4.4.2 复合条件下的程序图 (a) 程序; (b) 程序图,由PDL翻译成的流图,1,2,3,4,6,5,7a,7b,8,7c,1: do while records remain 2: read record; if record field 1=0 3: then process record; store in buffer; incremert counter; 4: elseif record field 2=0 5: then reset counter; 6: else process record; sto

11、re in file; 7a: endif 7b: endif 7c: enddo 8: end,计算环形复杂度的方法,可以用下述3种方法中的任何一种来计算环形复杂度。 流图中的区域数等于环形复杂度。 区域数为边和结点圈定的封闭区域数加上图形外的区域数1 流图G的环形复杂度V(G)=E-N+2 E是流图中边的条数,N是结点数。 流图G的环形复杂度V(G)=P+1 P是流图中判定结点的数目。,环形复杂度的用途,当程序内分支数或循环个数增加时,环形复杂度也随之增加,因此它是对测试难度的一种定量度量。 McCabe研究大量程序后发现,环形复杂度高的程序往往是最困难、最容易出问题的程序。 实践表明,模

12、块规模以V(G)10为宜,也就是说,V(G)=10是模块规模的一个更科学更精确的上限。,Halstead方法,Halstead方法是根据程序中运算符和操作数的总数来度量程序的复杂程度。 程序长度N为: N=N1+N2 N1为运算符出现的总次数,N2为操作数出现的总次数 Halstead给出预测程序长度的公式如下: H=n1 log2 n1+n2 log2 n2 程序中使用的不同运算符(包括关键字)的个数n1,不同操作数(变量和常数)的个数n2。 Halstead还给出了预测程序中包含错误的个数:E=N log2 (n1+n2)/3000,小结,详细设计阶段应完成的主要工作是设计解题的详细步骤(即算法)。 结构程序设计技术是进行详细设计的逻辑基础。 过程设计的工具可分为图形、表格和语言3类 定量度量程序的复杂程度McCabe,Halstead,int main(void) int a,b,c,max,min; printf(“input three numbers: ”); scanf(“%d%d%d”, ,if(maxc) /*判断3*/ min=c; printf(“max=%dnmin=%d”,max,min); return 0; ,画出以下程序段的控制

温馨提示

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

评论

0/150

提交评论