第5章 详细设计37169.ppt

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 详细设计37169.ppt

5.3 结构化程序设计 缺点:当程序内嵌套的层数较多时,内层的方块越画越小,不仅会增加画图的困难,并将使图形的清晰性受到影响。 5.3 结构化程序设计 3、PAD图 PAD图,问题分析图(Problem Analysis Diagram) 用二维树形结构的图来表示程序的控制流。 图符: 图中最左纵线是程序的主干线,即程序的第一层结构。 其后每增加一个层次,图开向右扩展一条纵线。 5.3 结构化程序设计 5.3 结构化程序设计 5.3 结构化程序设计 4、过程设计语言 过程设计语言(PDL,Program Design Language)采用严格语法定义伪代码方式,来定义软件的控制结构和数据结构。 可使用自然语言的词汇 5.3 结构化程序设计 5.4 面向数据结构的设计 面向数据结构的设计方法 Jackson 方法 Warnier方法 Michael Jackson mcs.open.ac.uk/mj665/ 5.4 面向数据结构的设计 Jackson 方法 Jackson方法发展的两个阶段: 阶段一:20世纪70年代Jackson方法的核心是面向数据结构的设计,以数据驱动为特征,形成了最初的JSP(Jackson Structure Programming)方法。 Jackson方法把问题分解为可由三种基本结构形式表示的各部分层次结构。 JSP方法是以数据结构为驱动的,适合于小规模的项目。当输入数据结构与输出数据结构无对应关系时,难于应用该方法。 5.4 面向数据结构的设计 阶段二:20世纪80年代初开始,Jackson方法已经演变到基于进程模型的事件驱动。 基于JSP方法的局限性,又发展了JSD(Jackson System Development)方法,它是JSP方法的扩充。 JSD方法是一个完整的系统开发方法。该方法以事件作为驱动,是一种基于进程的开发方法,应用于时序特点较强的系统,包括数据处理系统和一些实时控制系统。 JSD方法的缺陷 5.4 面向数据结构的设计 结构化设计方法(SD):面向数据流的设计方法 Jackson方法( JSP ):面向数据结构的设计方法 比较异同 SD方法和JSP方法的共同点都是数据信息驱动的,都试图将数据表示转换成软件表示; 不同之处在于面向数据结构的设计不利用数据流图,而根据数据结构的表示来设计。JSP方法定义了一组以数据结构为指导的映射过程,它根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,最终目标是生成软件过程的描述,即程序结构,而不是软件的体系结构。而SD方法是根据数据流图来设计,最终目标是建立软件体系结构的描述,即软件模块的层次结构。 JSP方法与SD方法 数据结构(Jackson 图) 程序结构(Jackson 图) 程序的过程性表示(Jackson 伪代码) 问题结构 (DFD) 软件结构 (SC) 模块的过程描述 (PDL) 5.4 面向数据结构的设计 Jackson方法把问题分解为可由三种基本结构形式表示的各部分层次结构。这三种基本结构形式就是顺序、选择和重复。 设计原则:程序结构同数据结构相对应 描述工具: Jackson图 纲要逻辑 5.4 面向数据结构的设计 Jackson图 三种基本结构:由方框、连线和一些附加标记组成。标记“0”代表选择,标记“*”代表重复。连线代表“包含”或“由……组成”。 纲要逻辑 纲要逻辑是一种描述算法过程的语言,分别用seq、iter和sel-alt三类关键字描述顺序、重复和选择三种结构。 5.4 面向数据结构的设计 5.4 面向数据结构的设计 示例:信用卡记账系统的Jackson表示 表示输入数据结构的Jackson图 5.4 面向数据结构的设计 表示输出数据结构的Jackson图 5.4 面向数据结构的设计 表示程序结构的Jackson图 5.4 面向数据结构的设计 PROCESS_CUST_DATA seq Open PAY FILE: open CUST M FILE;{分别打开支付文件和顾客主文件} PROCESS_CNO_GROP iter until eof:PAY_FILE; {处理顾客号码组} Read PAY FILE: {读支付文件一个记录) PROCESS_CNO; {读顾客主文件一个记录,找老结余} PROCESS PAY RECORD iter until end:CNOGROP: {处理顾客号码组中每个支付记录} write report line; {写出报告行} compute total payments; {计算总支付额} read PAY_FI

文档评论(0)

cai + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档