第 5章 总 体设计 5 .1 设计过程 1 . 设想供选择的方案 2 . 选取合理的方案 3 . 推荐最佳方案 4 . 功能分解 5 . 设计软件结构 6 . 设计数据库 7 . 制定测试计划 8 . 书写文档 9 . 审查和复审 5 .2 设计原理 5 .2 .1 模块化 图 5 .1 模块化和软件成本 软件工程导论(第五版) 2 5 .2 .2 抽 象 5 .2 .3 逐 步 求 精 5 .2 .4 信息隐藏和局部化 5 .2 .5 模块独立 1 . 耦合 2 . 内聚 5 .3 启发规则 1 . 改进软件结构提高模块独立性 2 . 模块规模应该适中 3 . 深度、宽度、扇出和扇入都应适当 4 . 模块的作用域应该在控制域之内 图 5 .2 模块的作用域和控制域 5 . 力争降低模块接口的复杂程度 6 . 设计单入口单出口的模块 7 . 模块功能应该可以预测 软件工程导论(第五版) 3 5.4 描 绘 软 件结构的图形工具 5.4.1 层次图和 HIPO 图 图 5.3 正文加工系统的层次图 图 5.4 带编号的层次图(H 图) 软件工程导论(第五版) 4 5 .4 .2 结 构 图 图5.5 结构图的例子——产生最佳解的一般结构 图5.6 判定为真时调用 A,为假时调用 B 图5.7 模块 M 循环调用模块 A、B、C 5.5 面 向数据流的设计方法 5 .5 .1 概念 1. 变换流 2. 事务流 软件工程导论(第五版) 5 图5 .8 变换流 图5 .9 事务流 3 . 设计过程 软件工程导论(第五版) 6 图 5 .1 0 面向数据流方法的设计过程 5 .5 .2 变 换 分析 1 . 例子 2 . 设计步骤 软件工程导论(第五版) 7 图 5 .1 1 数字仪表板系统的数据流图 软件工程导论(第五版) 8 图5 .1 2 具有边界的数据流图 图5 .1 3 第一级分解的方法 软件工程导论(第五版) 9 图5 .1 4 数字仪表板系统的第一级分解 图5 .1 5 第二级分解的方法 图5 .1 6 未经精化的输入结构 软件工程导论(第五版) 1 0 图 5 .1 7 未经精化的变换结构 图 5 .1 8 未经精化的输出结构 图 5 .1 9 精化后的数字仪表板系统的软件结构 软件工程导论(第五版) 1 1 5 .5 .3 事 务 分 析 图5 .2 0 事务分析的映射方法 5 .5 .4 设 计 优 化 5 .6 小 结 习题 5 1 . 为每种类型的模块耦合举一个具体例子。 2 . 为每种类型的模块内聚举一个具体例子。 3 . 用面向数据流的方法设计下列系统的软件结构。 (1 ) 储蓄系统(...