- 1、本文档共56页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 总体设计设计举例 结构化设计方法 ?结构化设计方法 无论是何种类型的设计,都要从需求分析获得的分析模型导出软件的设计模型。 ?结构化设计方法的特点是面向软件系统结构,采用结构图来描述程序的结构。根据需求分析阶段对数据流的分析结果来设计软件结构,把数据流图变换成程序结构。理论上,结构化设计方法可以用于任何软件系统的开发。由于结构化设计的工作与结构化分析工作相衔接,所以又说它是一种面向数据流的设计方法。 ?结构化设计(SD)的基本观念 ?认为程序或系统是由一组功能操作构成的,需要实现的系统是逻辑功能(模块)的抽象集合,着重分析模块之间关系,忽视模块内部的情况。 ?软件应该设计为结构简单,功能单一、相互独立的模块组织。 ?重视“模块度”(软件系统中的模块数目)概念。 ?内聚和耦合是评价软件设计质量的标准。 ?图形工具 ?结构图(SC) 结构图是描绘系统结构的图形工具,描述系统由哪些模块组成、程序中模块之间的调用关系、每个模块“做什么”以及每个模块输入和输出。 ?结构图是结构化设计中的重要的结果。 ?结构图的基本成分有方框、箭头或直线以及带注释的箭头。 ?结构图的基本成分 ?方框代表一个模块,框内注明模块的名字或主要功能,方框之间的箭头或直线表示模块的调用关系。在结构图中带注释的箭头表示模块调用过程中来回传递的信息或数据。箭头尾部是空心圆表示传递的是数据,箭头尾部是实心圆表示传递的是控制信息。 当一个模块调用另一个模块时,调用模块把数据或控制信息传给被调用模块,以使被调用模块能够运行。另方面被调用模块在执行过程中又把它产生的数据或控制信息送回给调用模块。 ?模块间的调用关系和接口表示 ?报表加工程序结构图 ? 结构图的辅助符号 ?结构图描述了模块间的调用关系,揭示了模块结构的偶合和内聚关系,这种关系代表系统的一种静态结构,表明模块间是否有关系,是否相互发生影响,但没有说明如何发生影响。 ?结构图的主要质量指标是模块内聚度和偶合度。 ?获取结构图 根据需求规格说明书建立初始结构图;按高内聚、低藕合的标准修改初始结构图;反复修改调整直至获得满意的最终结构图。 ?层次图(H图) 用于描绘软件的层次结构,层次图中一个矩形框代表一个模块,框间的连线表示调用关系,位于上方的矩形框所代表的模块调用位于下方的矩形框所代表的模块 ?面向数据流的设计方法 ?基本概念和设计过程 SD根据DFD的特性定义变换映射与事务映射。变换映射与事务映射可以机械地把DFD转换成初始SC图或程序结构。 ?变换流 如果数据流图中输入信息流沿传入路径进入系统,同时由外部形式变换为内部形式,经过系统变换中心加工或处理后,再沿输出通道变换成外部形式离开系统,则称数据流图所描述的信息流是变换流。变换流型数据流图有明显的输入、加工/变换、输出三部分。 ?变换分析的步骤 复查基本系统模型(确认系统的输入数据和输出数据符合实际);复查并精化数据流图;确定数据流图具有变换特性还是事务特性;确定输入流和输出流的边界,从而分离出变换中心;完成“第一级分解”;完成“第二级分解”;采用启发规则对得到的程序结构的初始结果进一步精化。 ?事务分析 当数据流具有明显的事务特性时,则应该采用事务分析法处理问题。事务分析是从事务流型的数据流图导出程序结构,它的步骤与变换分析基本类似,主要差别是从数据流图到程序结构的映射,相关规则及处理参见教材。 ?设计优化 ?不能工作的‘最佳设计’是值得怀疑的。 设计应该追求能够满足所有功能和性能要求,遵循设计原理和启发式规则的软件。 ?早期精化 尽量在设计的早期对软件结构进行精化,对不同的软件结构进行评价和比较,力求 “最好”结果。 ?少而简 优化时,只要不违反模块化原则,应该使用尽可能少的模块;只要满足信息要求,应该使用尽可能简单的数据结构。 ?简洁的结构容易调试和维护。 ?对时间复杂性有特殊要求的应用,优化过程会延续到详细设计甚至编码阶段。 ?对时间有特殊要求的软件优化对策 ?优先设计并精化软件结构; ?借助CASE工具模拟分析运行时的性能,找出低效部分; ?详细设计时对最耗时的模块仔细推敲; ?用高级语言编码; ?必要时,对大量占用CPU资源的模块用低级语言重新编码。即“先让它干起来,再让它快起来”。 ?模块设计原则 启发式规则(用于改进设计、提高质量) ?提高模块独立性(高内聚,低藕合) ?模块规模应该适中(30~60个语句行为宜) ?深度、宽度、扇出和扇入都应适当 …... 应追求的结构 应避免的结构 启发式规则(用于改进设计、提高质量) ?模块的作用域应该在控制域之内 追求所有受判定影响的模块都从属于作出判定的那个模块。
文档评论(0)