1.4系统设计 主要任务:把系统分析阶段确定的逻楫模型向物 理模型(在计算机上的实现方法)转化。 系统设计阶段又可划分为; 概要设计(总体设计、初步设计)和详细设计两个 阶段
1. 4 系统设计 • 主要任务:把系统分析阶段确定的逻辑模型向物 理模型(在计算机上的实现方法)转化。 系统设计阶段又可划分为: 概要设计(总体设计、初步设计)和详细设计两个 阶段
1.4.1概要设计 主要任务 1.将系統划分成模块(最重要的任务); 2.决定每个模块的功能; 3.决定模块的调用关系; 4.决定模块间的接口; 5.进行教据库逻辑设计; 今划分模块的主要依据:尽可能提高模块独立性 模块独立性的两个定性度量标准:耦合性和内聚性
1.4.1 概要设计 ▪ 主要任务 1.将系统划分成模块(最重要的任务); 2.决定每个模块的功能; 3.决定模块的调用关系; 4.决定模块间的接口; 5.进行数据库逻辑设计; ❖ 划分模块的主要依据:尽可能提高模块独立性 模块独立性的两个定性度量标准:耦合性和内聚性
耦合性:表示模块间相互关联的程度。 模间的耦合性的强跼取决于模柍间接口的复杂性, 接口越单,耦合性燧低,模块独立性越好。反之, 模块独立性则差。存在以下4种耦合: 1.数据耦合两个模块彼此间通过参教交换信息, 而且交换的信息仅仅是数据。 2.控制耦合传递的信息中有控制信息。 3.公共耦合两个或多个模块通过一个公共数 据环境相互作用。 4.内耦合一个模块访问另一个模块的内部数据 咸一个模块不通过正常入口而转入另 一个模块内部(高级语言已社绝) 这四种耦合中内容耦合的耦合程度最高,数据耦合的 耦合程度最低
耦合性:表示模块间相互关联的程度。 模块间的耦合性的强弱取决于模块间接口的复杂性, 接口越简单,耦合性越低,模块独立性越好。反之, 模块独立性则差。存在以下4种耦合: 1.数据耦合 两个模块彼此间通过参数交换信息, 而且交换的信息仅仅是数据。 2.控制耦合 传递的信息中有控制信息。 3.公共耦合 两个或多个模块通过一个公共数 据环境相互作用。 4.内容耦合 一个模块访问另一个模块的内部数据 或一个模块不通过正常入口而转入另 一个模块内部(高级语言已杜绝) 这四种耦合中内容耦合的耦合程度最高,数据耦合的 耦合程度最低
內聚性:是指棋块内部各成分之间联系的强弱。内 聚性越好,模塽內部音成分的联系强度越大,会增加 可理解性、可维护性和可靠性。内聚可分为低、中、 高三类 1.低内聚包括 (1)偶然内聚一个模块完成一组任务,这些任 务彼此间既使有关系。关系也是 很松散。 (2)逻辑内聚一个模块完成的任务在逻辑上属 于相同或相似的一类。 (3)时间内聚一个模块包含的任务必须在同一 段时间内执行
• 内聚性:是指模块内部各成分之间联系的强弱。内 聚性越好,模块内部各成分的联系强度越大,会增加 可理解性、可维护性和可靠性。内聚可分为低、中、 高三类: 1.低内聚包括: (1) 偶然内聚 一个模块完成一组任务,这些任 务彼此间既使有关系,关系也是 很松散。 (2) 逻辑内聚 一个模块完成的任务在逻辑上属 于相同或相似的一类。 (3) 时间内聚 一个模块包含的任务必须在同一 段时间内执行
2.中内聚包括 (1)过程内聚一个模块内的处理元素是相关 ,而且必须以特定次序执行。 (2)通讯内聚模块中所有元素都使用同一输入 数据和(或)产生同一个输出数 据 3,高内聚包括 (1)顺序内聚一个模块内的处理元素和同一个 处理功能密切相关,而且这些处 理必须顺序执行。 (2)功能内聚模块内所有处理元素属于一个蓬 体,完成一个单一的功能。 概要设计阶段量要任务是设计髙內合的模块
2.中内聚包括 (1)过程内聚 一个模块内的处理元素是相关的 ,而且必须以特定次序执行。 (2)通讯内聚 模块中所有元素都使用同一输入 数据和(或)产生同一个输出数 据。 3.高内聚包括 (1)顺序内聚 一个模块内的处理元素和同一个 处理功能密切相关,而且这些处 理必须顺序执行。 (2)功能内聚 模块内所有处理元素属于一个整 体,完成一个单一的功能。 概要设计阶段重要任务是设计高内聚低耦合的模块
描迷系统结构采用的图形工具 1.层次图 工资档枭管理 数据 数据 教据 修改 查询 统计 工资 表 录更删‖按组按按 入新除‖姓合性年 名查别龄 查询统统 询 计计
1.层次图 ▪ 描述系统结构采用的图形工具 工资档案管理 数据 修改 数据 查询 数据 统计 打印 工资 表 录 入 更 新 删 除 按 姓 名 查 询 组 合 查 询 按 性 别 统 计 按 年 龄 统 计
2.HIP0图 处理1 数据1 数据1 数据2 处理2 数据2 数据3 处理3 数据4 输入 处理 输出 ☆注:以上两种图形工具在实际工作中经常配 合使用
2.HIPO图 ❖ 注:以上两种图形工具在实际工作中经常配 合使用
3.结构图 扣款计算 消费单 消扣扣款 费款 单/单合计 获得 计算 合计 消费 扣款 个人 单 扣款
3. 结构图 消 扣 扣款单 费 款 单 单 合计 消费单 扣款计算 获 得 消 费 单 计 算 扣款 合 计 个 人 扣款
14.3设计的准则 根据人们长期的软件开发实践中积累的经验,在 软件设计时应遵循以下7奈准则: 1。改进软件结构提高模块独立性。通过模块分解 与合并,力求降低耦合提高内聚。 2.模块规模应适中,一个利于理解的模块通常不 要超过60行。 3.深度、宽度、扇入和扇出都应适当。深度表示 软件结构中控制的层数,宽度是软件结构内同一个层次 上的模块个数的最大值。扇岀数是一个模块直接调用的 模块数目。扇入数是一个模埉被多少个模块调用。好的 系统中模块的平均扇出数通常是3或4(扇出的上限通常 是59)。好的软件结构中通常顶层扇出比较高,中层 扇岀较少,底层模块有较高的扇入
1.4.3 设计的准则 根据人们长期的软件开发实践中积累的经验,在 软件设计时应遵循以下7条准则: 1.改进软件结构提高模块独立性。通过模块分解 与合并,力求降低耦合提高内聚。 2.模块规模应适中,一个利于理解的模块通常不 要超过60行。 3.深度、宽度、扇入和扇出都应适当。深度表示 软件结构中控制的层数,宽度是软件结构内同一个层次 上的模块个数的最大值。扇出数是一个模块直接调用的 模块数目。扇入数是一个模块被多少个模块调用。好的 系统中模块的平均扇出数通常是3或4(扇出的上限通常 是5—9)。好的软件结构中通常顶层扇出比较高,中层 扇出较少,底层模块有较高的扇入
4。模块的作用域应在控制域之内。模块的作用 域为模埉内一个受判定影响的所有模块的集合。模 块控制域是这个模块本身以及所有直接或间接从属 于他的模块的集合。 5,力争降低模块接口的复杂度 6,设计单入口和单出口的模块。这是结构化程 序设计的基本要求。 7.模块的功能应能预测。既对给定的输入应产 生相同的输出
4.模块的作用域应在控制域之内。模块的作用 域为模块内一个受判定影响的所有模块的集合。模 块控制域是这个模块本身以及所有直接或间接从属 于他的模块的集合。 5.力争降低模块接口的复杂度。 6.设计单入口和单出口的模块。这是结构化程 序设计的基本要求。 7.模块的功能应能预测。既对给定的输入应产 生相同的输出