实用软件工程教程 教学课件 作者 陈雄峰 第6章6.5节 软件结构设计.pptVIP

实用软件工程教程 教学课件 作者 陈雄峰 第6章6.5节 软件结构设计.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
6.5 软件结构设计 概要设计确定: 软件系统的组成结构; 各模块功能及模块间联系(接口)。 表示软件结构的图形工具 结构图 层次图和HIPO图 6.5.1 结构表示 1.层次图(H图) 表示软件的层次结构。 带编号的层次图(H图) “图书管理系统”软件层次图 例子:酒店管理信息系统功能层次图 大型零售商场管理信息系统功能层次图 2.HIPO图 IBM公司发明的HIPO图: 层次图 + 输入 / 处理 /输出图 (H图) (IPO图) (Hierachy Input Process Output) H图中每一方框(模块)均有一张IPO图对应。 航线调度系统HIPO图举例 H图: 传统的IPO图举例 改进的IPO图格式 3.结构图(SC Structure Chart) 是SD方法在概要设计中的主要表达工具。约定: SC中的四种模块 SC中的调用 (1)选择调用 (2)循环调用 结构图(SC)举例 6.5.2 面向数据流的设计方法 (结构化设计方法SD) 面向数据流设计方法的基本概念 SD以数据流图为基础,它定义了把DFD变换成软件结构的不同映射方法。 系统结构特征的两种典型形式: 变换型结构 事务型结构 对应于 数据流图可分为两种类型: 变换型数据流 事务型数据流 基本类型 特征 大型系统DFD中,变换型和事务型 结构往往共存: 变换型数据流举例 变换流示意图 事务型数据流图举例 设计步骤 (1)精化DFD (2)确定DFD类型 (3)把DFD映射到系统模块结构设计 出模块结构的上层 (4)基于DFD逐步分解高层模块设计 出下层模块 (5)根据模块独立性原理,精化模 块结构 (6)模块接口描述 设计过程 两种映射过渡方法 初始的SC 1.变换分析设计方法 步骤: (1)区分传入、变换中心、 传出部分,在 DFD 上 标明分界线; 步骤(续) (2)第一级分解(建立初始SC框架) 设计顶层和第一层模块; 例子图上部 步骤(续) (3)第二级分解(分解SC各分支) 自顶向下分解,设计出每个分支的中、下层模块。 例子图下部 第一级分解后的SC 传入分支的分解 (1) 传入分支的分解 (2) 传出分支的分解 中心加工分支的分解 第一级分解后的SC(另一种画法) 2.事务分析设计方法 任何情况下都可使用变换分析方法设计软件结构,但如数据流具有明显的事务特点时 (有一个明显的事务中心),以采用事务分析方法为宜。 步骤: (1)在DFD上确定事务中心、接收部 分和发送部分; (2)画出SC框架,把DFD上的三部分 分别映射为事务控制模块、接收 模块和动作发送模块; (3)分解细化接收分支和发送分支, 完成初始SC。 事务分析的映射方法 事务流设计举例 事务流设计举例(另一种画法) 动作分支的典型结构 3.混合流设计 举例 混合流设计举例 混合流设计举例 4.结构设计优化 将初始SC根据模块独立性原 则进行精化,对模块进行合并、分 解修改、调整,得到高内聚、低 耦合模块,以及易于实现、易于 测试和易于维护的软件结构,产 生设计文档的最终SC。 改进软件结构设计的指导原则 (软件结构设计的启发式规则) (1)模块功能的完善化 (2)消除重复功能 (3)将模块的影响限制在模块的控制范围内 (4)深度、宽度、扇出和扇入适中 (5)模块大小适中 (6)降低模块接口的复杂性 (7)模块功能可预测 (8)避免模块的病态连接 (9)根据设计约束和可移植性要对软件打包 (1) 模块功能的完善化 完整的模块应包括三部分: 1)执行规定功能部分 2)出错处理部分 3)需返回给调用者数据时, 返回是否正确结束标志。 (2)消除重复功能 (4) 减少模块高扇出,争取模块高扇入 高扇出的模块结构举例: 增加中间层降低扇出 (5) 模块大小适中 模块过大:可理解程度下降。 模块过小:开销大于有效操作 系统接口复杂。 (6)降低模块接口的复杂性 接口传递信息应简单且和模块功能一致。 (7) 模块功能可预测 模块看成黑盒子,相同输入产生相同输出,其功能为可预测的。模块带有内部状态其功能可能是不可预测的。难理解、难测试、难维护。 防止模块功能过分局限 功能单一的模块具有高内聚。 但如任意限制局部数据结构的 大小,过分限制控制流中可做的选 择或外部接口的模式,模块功能就 过分局限,使用范围过分狭窄,缺 乏灵活性和可扩充性。 (8)避免模块的病态连接

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档