
第4章结构化软件设计 6学时
第4章 结构化软件设计 6学时

引言一设计人员把分析的结果→设计图纸 程序员拿着设计图纸编写代码 概要设计 设计图纸-软件结构图 桃1 →横3 块2 描述:记录读者的基本信息 详细设计 位置:数据库的读者信息表 模块4设计 处理说明输出 ” 输入读者DS102 需求规 <> 备注: 商项多中椅在车转专☐ 需求分析成果
引言— 设计人员把分析的结果→设计图纸 程序员拿着设计图纸编写代码 IPO2 查 询 IPO1 预定图书 IPO3 图书编目 IPO4 新书发布 IPO7 读者管理 IPO8 处罚管理 IPO9 系统参数 IPO6 借 书 IPO5 还 书 读 者 采编部 流通部 办公室 DS1 读者信息 DS2 图书信息 DS5 预订记录 DS3 借还书信息 DS4 罚款信息 DS6 系统参数 订 读者 名字:读者信息 编号:DS01 描述:记录读者的基本信息 定义:读者信息= 姓名 + 单位 + 读者类型 + 职称 + 电话 位置:数据库的读者信息表 输 入 处理说明 输出 读 者 输入读者 DS102 备注: 需求规 格说明 书 概要设计 模块 1 模块 2 模块 3 模 块4 模块 5 模块 6 设计图纸-软件结构图 模块4设计 详细设计 需求分析成果 在原记录上填写还书日期 发现记录? 图书信息中的在库册数+1 提示没有借书记录 开始 还书处理模块 输入:读者号,图书号 按读者号和图书号检索借书记录表 结束 无 有

第4章结构化软件设计 要求 1)结构化设计的基本概念 掌握 2)方法和步骤 掌握 2)详细设计的方法。 掌握 3)软件设计的原则。 理解 4)影响软件设计的主要因素。 了解
第4章 结构化软件设计 1)结构化设计的基本概念 2)方法和步骤 2)详细设计的方法。 3)软件设计的原则。 4)影响软件设计的主要因素。 掌握 掌握 掌握 理解 了解 要求

口通过软件设计将用户的需求变为实现软件的“蓝 图”。蓝图只描述软件的整体框架,也叫做概要设 计。概要设计之后,就要对软件进行详细设计,通 过对软件设计的不断细化,形成一个可以实施的设 计方案。 ▣软件设计的最终目标是要取得最佳方案。“最佳” 是指在所有候选方案中,能够以最低的成本,在最 短的时间内,生产出可靠性和可维护性俱佳软件的 方案
通过软件设计将用户的需求变为实现软件的“蓝 图”。蓝图只描述软件的整体框架,也叫做概要设 计。概要设计之后,就要对软件进行详细设计,通 过对软件设计的不断细化,形成一个可以实施的设 计方案。 软件设计的最终目标是要取得最佳方案。“最佳” 是指在所有候选方案中,能够以最低的成本,在最 短的时间内,生产出可靠性和可维护性俱佳软件的 方案

4.1软件设计的概念 4.1.1模块和模块化 ▣一般把用一个名字就可调用的一段程序称为 “模块”。模块具有如下三个基本属性。 ■功能:指该模块要完成的任务。 ■逻辑:模块内部执行过程。 ■状态:使用该模块时的环境和条件
4.1 软件设计的概念 4.1.1模块和模块化 一般把用一个名字就可调用的一段程序称为 “模块”。模块具有如下三个基本属性。 ◼ 功能:指该模块要完成的任务。 ◼ 逻辑:模块内部执行过程。 ◼ 状态:使用该模块时的环境和条件

4.1.1模块和模块化(续) ▣把整个系统划分成若干个模块,每个模块完成一个 子功能,将多个模块组织起来实现整个系统的功能 口模块化设计方法强调清楚地定义每个模块的功能和 它的输入/输出参数,而模块的实现细节隐藏在各 自的模块之中,与其它模块之间的关系可以是调用 关系,因此模块化程序易于调试和修改。 ▣随着模块规模的减小,模块的开发成本减少,但是 模块之间的接口变得复杂起来,使得模块的集成成 本增加
4.1.1模块和模块化(续) 把整个系统划分成若干个模块,每个模块完成一个 子功能,将多个模块组织起来实现整个系统的功能。 模块化设计方法强调清楚地定义每个模块的功能和 它的输入/输出参数,而模块的实现细节隐藏在各 自的模块之中,与其它模块之间的关系可以是调用 关系,因此模块化程序易于调试和修改。 随着模块规模的减小,模块的开发成本减少,但是 模块之间的接口变得复杂起来,使得模块的集成成 本增加

4.1.2内聚和耦合 口在软件设计中应该保持模块的独立性原则。 反映模块独立性的有两个标准:内聚和耦合。 ■内聚衡量一个模块内部各个元素彼此结合的紧 密程度 ■耦合衡量模块之间彼此依赖的程度
4.1.2内聚和耦合 在软件设计中应该保持模块的独立性原则。 反映模块独立性的有两个标准:内聚和耦合。 ◼ 内聚衡量一个模块内部各个元素彼此结合的紧 密程度 ◼ 耦合衡量模块之间彼此依赖的程度

4.1.2内聚和耦合(续) ▣模块间相互关联的程度取决于下面几点 ■一个模块对另一个模块的访问,比如模块A可能 要调用模块B来完成一个功能。 ■模块间传递的数据量。 ■模块间接口的复杂程度。 Great deal of dependence Independent ⑧Highly coupled Loosely coupled Uncoupled©
4.1.2内聚和耦合(续) 模块间相互关联的程度取决于下面几点: ◼ 一个模块对另一个模块的访问,比如模块A可能 要调用模块B来完成一个功能。 ◼ 模块间传递的数据量。 ◼ 模块间接口的复杂程度。 Great deal of dependence Independent Highly coupled Loosely coupled Uncoupled ☺

7种耦合的独立性 模块耦合性 高 低人 内容耦合 公共耦合 外部耦合 控制耦合 数据结 构耦合 数据耦合 非直接耦合 弱 模块独立性 强
7种耦合的独立性 内容耦合 公共耦合 外部耦合 控制耦合 数据结 构耦合 数据耦合 非直接耦合 模块独立性 模块耦合性 高 低 弱 强

4.1.2内聚和耦合(续) 内容耦合:如果一个模 块直接引用另一个模块 的内容。 例1:A访问C的内部数 据或不通过正常入 A: 口而转入C的内部。 goto C1 C: C1:
4.1.2内聚和耦合(续) 内容耦合:如果一个模 块直接引用另一个模块 的内容。 例1:A访问C的内部数 据或不通过正常入 口而转入C的内部。 …… A B A: C D ………… ………… goto C1 ………… ………… C: ………… ………… C1: …… ……