- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
I2SE--面向数据流图设计
?Copyright Xinjun Mao 面向数据流的软件设计方法 第6讲 面向数据流的软件设计方法 前言 软件设计基础知识 软件的需求分析及其需求规格说明书(SRS) 软件的SRS - 软件设计信息 面向数据流的设计方法:提供了方法和策略 本讲内容 基本概念和软件设计过程 变换分析方法 事务分析方法 启发式设计策略 设计优化原则 面向数据流设计基本概念和过程 前提 经过评审后的需求模型 -- 数据流图 数据流的类型 变换流 信息通常以“外部世界”所具有的形式进入系统,经过处理后,又以这种形式离开系统 事务型的数据流图 数据沿输入通道到达一个转换,该转换根据输入流类型和特征在若干动作序列中选择一条来执行 输入数据(事务) 具有一个转换(事务中心) 一组动作执行路径 数据流图类型的特点 实际上所有的数据流图都是变换流,事务流是变换流的一种特殊形式 为什么要将事务型的数据流图独立出来考虑? 大多数系统的数据流途中,事务流和变换流往往交织在一起 混合型数据流图 面向数据流的软件设计过程 面向数据流的设计方法的主要过程 确定数据流的类型:变换流还是事务流 划定流界 将数据流图转换为软件结构 通过设计复审和启发式策略精化所得到软件结构 本讲内容 基本概念和软件设计过程 变换分析方法 事务分析方法 启发式设计策略 设计优化原则 变换分析方法 基本思想 通过一系列的设计步骤,将变换型的数据流图映射为软件结构 输入:SRS(数据流图、数据字典、小说明) 输出:软件总体结构 步骤1. 复审基本系统模型 什么是基本系统模型 基本系统模型即SRS中的顶级数据流图 为什么需要对基本系统模型进行复审 对系统规格说明书和SRS进行评估,以确保系统的输入和输出数据符合实际 步骤2. 复审和精化数据流图 为什么需要复审和精化数据流图 确保DFD给出目标系统正确的逻辑模型 以获得足够详细的DFD 确保DFD中每个转换代表一个规模适中、相对独立的子功能 步骤3. 确定数据流图的类型 信息流都可用变换流表示,但是如果有明显的事务流特征,则还应采用事务流的映射方法 设计人员负责判定在数据流图中占主导地位的信息流是变换流还是事务流 步骤4. 划分输入流、输出流边界 输入流处理部分 变换中心 输出流处理部分 划分流界例子 步骤5. 执行一级分解 任务: 导出三个层次结构的软件结构 底层模块:用于输入、输出和计算等基本功能 中间层模块:协调、控制底层模块的工作 高层模块:用于协调和控制所有的从属模块 原则 在确保完成系统功能并保持低耦合度、高内聚度的情况下尽可能的减少模块数目 一级分解的结果可以用层次图、结构图等来表示 一级分解例子 步骤6. 执行二级分解 任务 把DFD中每个转换映射为软件结构中的模块 方法 从变换中心边界开始沿输入、输出通道向外移动,把输入、输出通道中的每个转换映射为软件结构中的 一个模块 沿着输入流到输出流的方向移动,将每个转换映射为 相应的模块 有必要为每一模块写简要的处理说明,包括:进出模块的信息,模块处理功能的陈述,有关的限制和约束 步骤7. 精化软件结构改良软件质量 以“模块化”的思想,对软件结构中的模块进行拆并,以追求高内聚、低耦合、易实现、易测试、易维护的软件结构 本讲内容 基本概念和软件设计过程 变换分析方法 事务分析方法 启发式设计策略 设计优化原则 事务分析方法 当数据流具有明显的事务特征时,应该采用事务流的分析方法 基本步骤 步骤1. 复审基本系统模型 步骤2. 复审和精化数据流图 步骤3. 确定数据流图的类型:变换流还是事务流 步骤4.识别事务流各个组成部分 把整个事务型DFD划分为以下三个部分 接受路径部分:接受事务的输入 事务处理中心 动作路径部分 判定在每一条动作路径上数据流的特征:变换流或者事务流 事务型DFD划分例子 步骤5.把事务型DFD映射为软件结构 步骤6.分解精化事务结构以及每个动作路径 步骤7. 精化初步软件结构 本讲内容 基本概念和软件设计过程 变换分析方法 事务分析方法 启发式设计策略 设计优化原则 启发式设计策略 改造软件结构,降低耦合度,提高内聚度 如果在几个模块中发现共有的子功能,一般应该将该子功能独立出来作为一个模块,以提高模块的独立性 合并那些具有较多的控制信息传递的模块以降低模块之间的耦合度 减少扇出,追求高扇入 一个好的软件结构通常顶层扇出较高,中间层扇出较低,底层又高扇入到公共模块中去 使任一模块的作用域在其控制域内 作用域是指受模块内部判定影响的所有模块 控制域是指其所有的下属模块 其他启发式设计策略 降低模块接口复杂度和冗余度,提高协调性 模块接口应尽可能简单并与模块功能相一致如: Sort(Data; Number
文档评论(0)