第1章软件工程详解.ppt
文本预览下载声明
(2)通讯内聚 模块中所有元素都使用同一输入 数据和(或)产生同一个输出数 据,则称之为通讯内聚。 3.高内聚包括 (1)顺序内聚 一个模块内的处理元素和同一个 处理功能密切相关,而且这些处 理必须顺序执行,则称之为顺序 内聚。 (2)功能内聚 模块内所有处理元素属于一个整 体,完成一个单一的功能则称之 为功能内聚。 概要设计阶段重要任务是设计高内聚低耦合的模块。 1.层次图和HIPO图 层次图中用一个矩形框代表一个模块,方框的连线(没有箭头)表示调用关系,它比较适合于描述用自顶向下地进行分解方法设计的软件结构的层次关系。例如在工资档案管理中经常涉及到数据修改、数据查询、数据统计及打印等操作、该系统描述见图1. 13 : 描述系统结构采用的图形工具 在概要设计阶段,为了描述软件系统的结构,广泛使用图形工具,使用得比较多的是层次图和HIPO图,以及结构图,下面予以介绍: 工资档案管理 数据修改 数据查询 数据统计 打印工资表 录入 更新 删除 按姓名查询 组合查询 按性别统计 按年龄统计 除了层次图外,还有一种HIPO图,其形式见图1.14 该图左边的框中列出有关的输入数据,中间的框列出主要的处理,在右边的框内列出产生的输出数据。处理框中所列出的处理次序暗示了执行的顺序。图中还用箭头指出每个处理与输入数据和输出数据之间的关系。HIPO要有一套IPO图,每个模块均要有一张IPO图。每张图上应有图号加以标识。 2.? 结构图 结构图可用于表达系统内部各部分的组织结构和相互关系。它主要由三部分组成分别为模块、调用和数据。 结构图中一个方框代表一个模块,框内注明模块的名字或主要功能。方框之间的直线表示调用关系(上层模块调用下层模块)。在结构图中通常还用带注释的箭头表示模块调用过程中来回传递的信息。尾部是空心圆的箭头表示传递的信息是数据,实心圆则表示传递的是控制信息。 下图为一工资系统中扣款结构图。 消 扣 扣款单 费 款 单 单 合计 消费单 扣款计算 获得消费单 计算扣款 合计个人扣款 1.4.2? 面向数据流的设计方法 结构化设计(SD)是按自顶向下进行软件系统总体设计的思想发展而来的,实际上是以数据流为基础、自顶向下、逐步求精和模块化的一个过程。由于该方法能够使得数据流图向结构图进行系统地转换,因而可以和需求分析阶段所采用的结构化分析技术(SA方法)很好地结合。也正是由于这一点,该方法也被称为面向数据流的设计方法。 1.面向数据流设计方法的步骤: (1)精化数据流图:仔细研究和分析数据流图,考察其输入、输出和加工,看其是否合理,必要时可修改和精化。 (2)从整体上确认数据流图的类型,事务型的找出其事务中心,变换型的找出其变换中心。 (3)实现从数据流图到软件结构的映射,映射方法有事务型和变换型的区别; (4)优化初始结构,对模块进行调整、合并等以达到模块的高内聚和低耦合。 (5)对模块间接口提供描述。 1.4.3 设计的准则 根据人们长期的软件开发实践中积累的经验,在软件设计时应遵循以下7条准则: 1.改进软件结构提高模块独立性。通过模块分解与合并,力求降底耦合提高内聚。 2.模块规模应适中,一个利于理解的模块通常不要超过60行。 3.深度、宽度、扇入和扇出都应适当。深度表示软件结构中控制的层数,宽度是软件结构内同一个层次上的模块个数的最大值。扇出数是一个模块直接调用的模块数目。扇入数是一个模块被多少个模块调用。通过调整模块结构可改变系统的深度,宽度,模块的扇出,扇入数。好的系统中模块的平均扇出数通常是3或4(扇出的上限通常是5—9)。好的软件结构中通常顶层扇出比较高,中层扇出较少,底层模块有较高的扇入。 4.模块的作用域应在控制域之内。模块的作用域为模块内一个受判定影响的所有模块的集合。模块控制域是这个模块本身以及所有直接或间接从属于他的模块的集合。 5.力争降低模块接口的复杂度。提高模块的独立性是降低接口复杂度的主要途径,此外还要注意模块参数的命名及书写格式。 6.设计单入口和单出口的模块。这是结构化程序设计的基本要求。 7.模块的功能应能预测。既对给定的输入应产生相同的输出。 1.5 详细设计 在总体设计阶段,设计出了软件系统的结构。在软件生存周期模型中,前一个阶段的
显示全部