- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
河北经贸软件工程——结构设计方法
引言 结构化开发方法(Structured Developing Method) 是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。 结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD法)及结构化程序设计方法(SP法)构成的。 结构化设计方法(SD 法 Structured Design)是结构化开发方法的核心,与SA法,SP法密切联系,主要完成软件系统的总体结构设计。 面向数据流的设计方法又称结构化设计。 传统的结构化软件设计有两种基本方法: (1)面向行为的设计 如:面向数据流的设计方法基于数据处理过程建立软件结构,也称为结构化设计方法(SD)。 (2)面向数据的设计 如:Jackson(JSD)设计方法基于输入/输出数据结构设计软件结构。 从 DFD 图导出 SC图的步骤 变换分析 事务分析 事务分析的映射方法 设计优化 设计优化应该力求做到在有效的模块化的前提下使用最少量的模块,以及在能够满足信息要求的前提下使用最简单的数据结构。 对于时间是决定性因素的应用场合,可能有必要在详细设计阶段,也可能在编写程序的过程中进行优化。 软件开发人员应该认识到,程序中相对说比较小的部分(典型地,10%~20%),通常占用全部处理时间的大部分(50%~80%)。 用下述方法对时间起决定性作用的软件进行优化是合理的: 在不考虑时间因素的前提下开发并精化软件结构; 在详细设计阶段选出最耗费时间的那些模块,仔细地设计它们的处理过程(算法),以求提高效率; 使用高级程序设计语言编写程序; 在软件中孤立出那些大量占用处理机资源的模块; 必要时重新设计或用依赖于机器的语言重写上述大量占用资源的模块的代码,以求提高效率。 上述优化方法遵守了一句格言:“先使它能工作,然后再使它快起来。” 结构程序设计的经典定义如下所述:“如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。” 上述经典定义过于狭隘了,结构程序设计本质上并不是无GO TO语句的编程方法,而是一种使程序代码容易阅读、容易理解的编程方法。 结构程序设计尽可能少用GO TO语句,最好仅在检测出错误时才使用GO TO语句。 如果只允许使用顺序、IF-THEN-ELSE型分支和DO-WHILE型循环这3种基本控制结构,则称为经典的结构程序设计。 如果除了上述3种基本控制结构之外,还允许使用DO-CASE型多分支结构和DO-UNTIL型循环结构,则称为扩展的结构程序设计。 如果再加上允许使用LEAVE(或BREAK)结构,则称为修正的结构程序设计。 2. 盒图(N-S流程图) 盒图的基本符号 N-S图举例 3. PAD图(问题分析图) PAD是问题分析图(problem analysis diagram)的英文缩写,自1973年由日本日立公司发明以后,已得到一定程度的推广。 它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。 PAD图的基本原理:采用自顶向下、逐步细化和结构化设计的原则,力求将模糊的问题解的概念逐步转换为确定的和详尽的过程,使之最终可采用计算机直接进行处理。 PAD图的基本符号 使用PAD图提供的def功能 来逐步求精的例子 9.6 程序复杂程度的定量度量 详细设计阶段设计出的模块质量如何呢? 定量度量程序复杂程度的方法很有价值:把程序的复杂程度乘以适当常数即可估算出软件中错误的数量以及软件开发需要用的工作量。 定量度量的结果可以用来比较两个不同的设计或两个不同算法的优劣;程序的定量的复杂程度可以作为模块规模的精确限度。 McCabe方法 1. 流图 McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度。 为了突出表示程序的控制流,人们通常使用流图(也称为程序图)。 所谓流图实质上是“退化了的”程序流程图,它仅仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。 程序流程图转化为流图(程序图)的一般过程: (1)在流图中用圆表示结点,一个圆代表一条或多条语句。 (2)程序流程图中的一个顺序的处理框序列和一个菱形判定框,可以映射成流图中的一个结点。
文档评论(0)