欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    结构化详细设计.ppt

    • 资源ID:2383048       资源大小:1.96MB        全文页数:55页
    • 资源格式: PPT        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    结构化详细设计.ppt

    2023/2/16,曲阜师范大学计算机科学学院,1,第3篇 软件开发及维护,第8章 结构化详细设计,2023/2/16,曲阜师范大学计算机科学学院,2,第8章 结构化详细设计,本章的主要目标是基于总体设计结果,进行结构化的软件模块详细设计。读完本章,你将了解以下基本内容:结构化程序设计的理念。人机界面设计原理及注意问题。详细设计工具。面向数据结构的设计方法。程序复杂程度定量度量标准。详细设计的根本目标是确定怎样具体地实现所要求的系统。即经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。详细设计阶段的任务还不是具体地编写程序代码,而是设计出程序的“蓝图”,程序员则根据蓝图写出实际的程序代码。,2023/2/16,曲阜师范大学计算机科学学院,3,Contents,8.1 结构化程序设计基础8.2 人机界面设计8.3 过程设计的工具8.4 面向数据结构的设计方法8.5 程序复杂程度的定量度量,2023/2/16,曲阜师范大学计算机科学学院,4,8.1 结构化程序设计基础 结构化程序设计的概念最早由E.W.Dijkstra提出。1966年Bohm和Jacopini证明了,只用3种基本的控制结构就能实现任何单入口单出口的程序。,2023/2/16,曲阜师范大学计算机科学学院,5,1968年Dijkstra再次建议从一切高级语言中取消GOTO语句,只使用3种基本控制结构写程序。1971年IBM公司在纽约时报信息库管理系统设计中成功地使用了结构化程序设计技术,随后在美国宇航局空间实验室飞行模拟系统的设计中,结构化程序设计技术再次获得圆满成功。1972年IBM公司的Mills进一步提出,程序应该只有一个入口和一个出口,从而补充了结构程序设计的规则。,6,三种基本的控制结构,顺序结构,先执行A再执行BIF_THEN_ELSE型选择(分支)结构DO_WHILE型循环结构:在循环控制条件成立时,重复执行特定的加工。实际上用顺序结构和循环结构(又称DO_WHILE结构)完全可以实现选择结构(又称IF_THEN_ELSE结构),因此,理论上最基本的控制结构只有两种。,7,三种基本的控制结构,8,结构程序设计的定义,结构程序设计是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。在总体设计阶段采用自顶向下逐步求精的方法:把一个复杂问题的解法分解和细化成一个由许多模块组成的层次结构的软件系统。详细设计或编码阶段采用自顶向下逐步求精的方法:可以把一个模块的功能逐步分解细化为一系列具体的处理步骤或某种高级语言的语句。,9,结构程序设计的优点,可以显著提高软件开发工程的成功率和生产率。程序有清晰的层次结构,因此容易阅读和理解。开发时比较容易保证程序的正确性,即使出现错误也比较容易诊断和纠正。源程序清晰流畅,易读易懂而且容易测试。程序清晰和模块化使得在修改和重新设计一个软件时可以重用的代码量最大。程序的逻辑结构清晰,有利于程序正确性证明。,10,扩充的控制结构,为了实际使用方便起见,常常还允许使用DO_CASE型多分支结构和DO_UNTIL型循环结构。有时需要立即从循环(甚至嵌套的循环)中转移出来,如果允许使用LEAVE(或BREAK)结构,则不仅方便而且会使效率提高很多。,11,扩充的控制结构,12,结构程序设计,经典的结构程序设计:只允许使用顺序、IF_THEN_ELSE型分支和DO_WHILE型循环这三种基本控制结构。扩展的结构程序设计:还允许使用DO_CASE型多分支结构和DO_UNTIL型循环结构。修正的结构程序设计:再加上允许使用LEAVE(或BREAK)结构。,2023/2/16,曲阜师范大学计算机科学学院,13,什么是结构化程序设计呢?结构化程序设计的经典定义为:“如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称程序是结构化的。”常常还允许使用DO_UNTIL和DO_CASE两种控制结构:,14,15,16,17,18,2023/2/16,曲阜师范大学计算机科学学院,19,8.2 人机界面设计 人机界面设计是系统接口设计的一个重要的组成部分。人机界面的设计质量,直接影响用户对软件产品的评价,从而影响软件产品的竞争力和寿命。,20,21,22,23,2023/2/16,曲阜师范大学计算机科学学院,24,8.3 过程设计的工具 8.3.1 程序流程图 程序流程图又称为程序框图,它是历史最悠久、使用最广泛的描述过程设计的方法,然而它也是用得最混乱的一种方法。,2023/2/16,曲阜师范大学计算机科学学院,25,从20世纪40年代末到70年代中期,程序流程图一直是软件设计的主要工具。程序流程图的主要缺点如下:程序流程图本质上不是逐步求精的好工具。程序流程图中用箭头代表控制流,因此程序员不受任何约束。程序流程图不易表示数据结构。,2023/2/16,曲阜师范大学计算机科学学院,26,8.3.2 盒图(N-S图)Nassi和Shneiderman提出了盒图,又称为N-S图:,2023/2/16,曲阜师范大学计算机科学学院,27,N-S图有下述特点:功能域(即,一个特定控制结构的作用域)明确,可以从盒图上一眼就看出来。不可能任意转移控制。很容易确定局部和全局数据的作用域。很容易表现嵌套关系,也可以表示模块的层次结构。,2023/2/16,曲阜师范大学计算机科学学院,28,8.3.3 PAD图 PAD是问题分析图(Problem Analysis diagram,PAD)的英文缩写,自1973年由日本日立公司发明以后,已得到一定程度的推广。,2023/2/16,曲阜师范大学计算机科学学院,29,PAD图的主要优点如下:所设计出来的程序必然是结构化程序。所描绘的程序结构十分清晰。表现程序逻辑,易读、易懂、易记。容易将PAD图转换成高级语言源程序。既可用于表示程序逻辑,也可用于描绘数据结构。PAD图的符号支持自顶向下、逐步求精方法的使用。,2023/2/16,曲阜师范大学计算机科学学院,30,2023/2/16,曲阜师范大学计算机科学学院,31,8.3.4 判定表 判定表能够清晰地表示复杂的条件组合与应做的动作之间的对应关系。一张判定表由4部分组成,左上部列出所有条件,左下部是所有可能做的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。判定表右半部的每一列实质上是一条规则,规定了与特定的条件组合相对应的动作。假设某航空公司规定,乘客可以免费托运重量不超过30kg的行李。当行李重量超过30kg时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。,2023/2/16,曲阜师范大学计算机科学学院,32,2023/2/16,曲阜师范大学计算机科学学院,33,8.3.5 判定树,2023/2/16,曲阜师范大学计算机科学学院,34,8.3.6 过程设计语言过程设计语言(PDL)也称为伪码。PDL应该具有下述特点:关键字的固定语法,它提供了结构化控制结构、数据说明和模块化的特点。自然语言的自由语法,它描述处理特点。数据说明的手段。模块定义和调用的技术,应该提供各种接口描述模式。,2023/2/16,曲阜师范大学计算机科学学院,35,8.4 面向数据结构的设计方法 面向数据结构的设计方法的最终目标是得出对程序处理过程的描述。Jackson方法和Warnier方法是最著名的两个面向数据结构的设计方法。,2023/2/16,曲阜师范大学计算机科学学院,36,8.4.1 Jackson图数据元素彼此间的逻辑关系只有顺序、选择和重复3类。顺序结构 顺序结构的数据由一个或多个数据元素组成,每个数据元素按确定的次序出现一次。选择结构 选择结构的数据包含两个或多个数据元素,每次使用这个数据时按一定的条件从这些数据元素中选择一个。,2023/2/16,曲阜师范大学计算机科学学院,37,重复结构根据使用时的条件由一个数据元素出现零次或多次是表示重复结构。,2023/2/16,曲阜师范大学计算机科学学院,38,8.4.2 改进的Jackson图,2023/2/16,曲阜师范大学计算机科学学院,39,8.4.3 Jackson方法 Jackson结构程序设计方法基本上由下述5个步骤组成:分析并确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构。找出输入数据结构和输出数据结构中有对应关系的数据单元。用下述3条规则从描绘数据结构的Jackson图导出描绘程序结构的Jackson图:第一,为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序构图的相应层次画一个处理框;第二,根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的对应层次分别为它们画上对应的处理框;第三,根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的对应层次分别为它们画上对应的处理框。,2023/2/16,曲阜师范大学计算机科学学院,40,列出所有操作和条件(包括分支条件和循环结束条件),并且把它们分配到程序结构图的适当位置。用伪码表示程序。下面结合一个具体例子进一步说明Jackson结构程序设计方法。例 一个正文文件由若干个记录组成,每个记录是一个字符串。要求统计每个记录中空格字符的个数,以及文件中空格字符的总个数。要求的输出数据格式是,每复制一行输入字符串之后,另起一行印出这个字符串中的空格数,最后印出文件中空格的总个数。,2023/2/16,曲阜师范大学计算机科学学院,41,最后得到的程序结构图为图8.13:,2023/2/16,曲阜师范大学计算机科学学院,42,Jackson程序设计方法的第四步是列出所有的操作和条件,并且把它们分配到程序结构图的适当位置。首先,列出统计空格个数需要的全部操作和条件如下:(1)停止(2)打开文件(3)关闭文件(4)印出字符串(5)印出空格数目(6)印出空格总数(7)sum:sum+1(8)totalsum:totalsum+sum(9)读入字符串(10)sum:0(11)totalsum:0(12)pointer:1(13)pointer:pointer+1 I(1)文件结束I(2)字符串结束 S(3)字符是空格,2023/2/16,曲阜师范大学计算机科学学院,43,经过简单分析不难把这些操作和条件分配到程序结构图的适当位置。,2023/2/16,曲阜师范大学计算机科学学院,44,8.5 程序复杂程度的定量度量 定量度量程序复杂程度的方法很有价值:把程序的复杂程度乘以适当常数即可估算出软件中错误的数量以及软件开发需要用的工作量。,2023/2/16,曲阜师范大学计算机科学学院,45,8.5.1 McCabe方法流图 流图实质上是“退化了的”程序流程图,它仅仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。把程序流程图映射成流图的方法。,2023/2/16,曲阜师范大学计算机科学学院,46,用PDL表示的处理过程及与之对应的流图。,2023/2/16,曲阜师范大学计算机科学学院,47,当过程设计中包含复合条件时,生成流图的方法稍微复杂一些。,2023/2/16,曲阜师范大学计算机科学学院,48,计算环形复杂度的方法流图中的区域数等于环形复杂度。流图G的环形复杂度V(G)EN+2,其中,E是流图中边的条数,N是结点数。流图G的环形复杂度V(G)P+1,其中,P是流图中判定结点的数目。环形复杂度的用途 实践表明,模块规模以V(G)10为宜,也就是说,V(G)10是模块规模的一个更科学更精确的上限。,2023/2/16,曲阜师范大学计算机科学学院,49,8.5.2 HalStead方法 令为程序中运算符出现的总次数,为操作数出现的总次数,程序长度定义为:Halstead给出预测程序长度的公式如下:多次验证都表明,预测的长度与实际长度非常接近。Halstead还给出了预测程序中包含错误的个数的公式如下:,2023/2/16,曲阜师范大学计算机科学学院,50,习题 8,假设只允许使用SEQUENCE和IF_THEN_ELSE两种控 制结构,怎样利用它们完成DO_WHILE操作?画出下列伪码程序的程序流程图和盒图:START IF p THEN WHILE q DO f END DO ELSE BLOCK g n END BLOCK END IFSTOP,2023/2/16,曲阜师范大学计算机科学学院,51,图8.18给出的程序流程图代表一个非结构化的程序,请问:(1)为什么说它是非结构化的?(2)设计一个等价的结构化程序。(3)在(2)题的设计中你使用附加的标志变量flag了吗?若没用,请再设计一个使用flag的程序;若用了,再设计一个不用flag的程序。,2023/2/16,曲阜师范大学计算机科学学院,52,研究下面的伪码程序:LOOP:Set I to(START+FINISH)2 If TABLE(I)=ITEM goto FOUND If TABLE(I)ITEM Set FINISH to(I-1)If(FINISH-START)1 goto LOOP If TABLE(START)=ITEM goto FOUND If TABLE(FlNISH)=ITEM goto FOUND Set FLAG to 0 Goto DONEFOUND:Set FLAG to 1DONE:Exit要求:(1)画出程序流程图。(2)程序是结构化的吗?说明理由。(3)若程序是非结构化的,请设计一个等价的结构化程序并且画出程序流程图。(4)此程序的功能是什么?它完成预定功能有什么隐含的前提条件?,2023/2/16,曲阜师范大学计算机科学学院,53,某交易所规定给经纪人的手续费计算方法如下:总手续费等于基本手续费加上与交易中的每股价格和股数有关的附加手续费。如果交易总金额少于1000元,则基本手续费为交易金额的8.4;如果交易总金额在1000元到10000元之间,则基本手续费为交易金额的5,再加34元;如果交易总金额超过10000元,则基本手续费为交易金额的4加上134元。当每股售价低于14元时,附加手续费为基本手续费的5,除非买进、卖出的股数不是100的倍数,在这种情况下附加手续费为基本手续费的9。当每股售价在14元到25元之间时,附加手续费为基本手续费的2,除非交易的股数不是100的倍数,在这种情况下附加手续费为基本手续费的6。当每股售价超过25元时,如果交易的股数零散(即,不是100的倍数),则附加手续费为基本手续费的4,否则附加手续费为基本手续费的1。要求:(1)用判定表表示手续费的计算方法;(2)用判定树表示手续费的计算方法。,2023/2/16,曲阜师范大学计算机科学学院,54,画出下列伪码程序的流图,计算它的环形复杂度。你觉得这个程序的逻辑有什么问题吗?C EXAMPLE LOOP:DO WHILE Zo A=B+1 IF A10 THEN X=A ELSE Y=Z END IF IF Y0 THEN PRINT G ELSE PRINT K END IF STOP,2023/2/16,曲阜师范大学计算机科学学院,55,谢谢!,

    注意事项

    本文(结构化详细设计.ppt)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开