4.6 结构化设计方法


  • 数据流图及其类型
    1. 变换流:信息通常以“外部世界”所具有的形式进入系统,经过处理后,又以这种形式离开系统
      • ![[Pasted image 20230621151714.png]]
    2. 变换型结构是一种线性状的结构,具有明显的边界,可以明显地分成输入主加工(或称变换、处理)内容耦合和输出三部分。
    3. 变换型数据流图基本呈线性形状的结构,由输入、变 换、输出三部分组成,变换是系统的变换中心。
      • ![[Pasted image 20230621151734.png]]
    4. 事务流:在事务型数据流图,数据项沿着输入同路到达一个处理 T , T 根据输入数据的类型在若干动作序列中选出一个来执行。处理 T 称为事务中心。
      • ![[Pasted image 20230621151759.png]]
    5. 事务型数据流完成以下任务:
      • 接受输入的数据
      • 分析并确定对应的事务
      • 选取与该事务对应的一条活动路径
  • 结构化设计方法的步骤
    1. 复审数据流图,必要时可进行修改或精化;
      • 对需求分析阶段得出的数据流图认真复查,并且在必要时 进行精化。
      • 不仅要确保数据流图给出了目标系统的正确的逻辑模型, 而且应该使数据流图中每个处理都代表一个规模适中相对 独立的子功能。
      • 目的:
        1. 为了确保系统的输入数据和输出数据符合实际情况
        2. 为了确保是否需要进一步精化系统的 DFD 图
    2. 确定数据流图类型
      • 如果是变换型,确定逻辑输入和逻辑输出的边界, 找出变换中心,映射为变换结构的顶层和第一层;
      • 如果是事务型,确定事务中心和活动路径,映射为 事务结构的顶层和第一层,建立软件结构的基本框架
    3. 分解上层模块,设计中下层模块结构;
    4. 根据软件结构设计准则对软件结构求精并改进;
    5. 导出接口描述和全程数据结构;
    6. 复审。如果有错,转入修改完善,否则进入下一阶段详 细设计
    7. ![[Pasted image 20230622163126.png]]
  • 变换型分析设计
    1. 确定逻辑输入和逻辑输出的边界,找出变换中心
      • 找到逻辑输入和逻辑输出
      • ![[Pasted image 20230622163206.png]]
    2. 第一级分解 – 设计系统模块结构图的顶层和第一层
      • 主模块:位于最顶层,一般以所建系统的名字命名,其任务是协调控制第一层模块
      • 输入模块部分:为主模块提供加工数据,有几个逻辑输入就设计几个输入模块
      • 变换模块部分:接受输入模块部分的数据,并对内部形式的数据加工,产生系统所有的内部输出数据
      • 输出模块部分:将变换模块产生的输出数据,以用户可见的形式输出。有几个逻辑输出,就设计几个输出模块
      • ![[Pasted image 20230622163439.png]]
      • ![[Pasted image 20230622163458.png]]
    3. 第二级分解 – 设计中下层模块。自顶向下,逐步求精
      • 对每一个输入模块设计其下层模块
        1. 接收数据模块(即输入模块)
        2. 把接收的数据变换成它的上级模块所需的数据(即变换模块)
        3. 直到输入模块为物理输入,则细化停止
      • 对每一个输出模块设计其下层模块
        1. 将得到的数据向输出形式进行转换
        2. 将转换后的数据进行输出
        3. 直到输出模块是物理输出,则细化停止
      • 对变化模块进行分解(无通用法则)
    4. 对初始结构图优化
      • 为了产生合理的分解,得到尽可能高的内聚、尽 可能松散的耦合,为了得到一个易于实现、易于 测试和易于维护的软件结构,应该对初步分割得 到的模块进行再分解或合并
  • 事务型分析设计
    1. 在数据流图上确定事务中心、输入流和活动路径
    2. . 第一级分解 —- 设计事务结构的顶层和第一层
      • 首先,为事务中心设计一个主模块
      • 然后,为每一条活动路径设计一个事务处理模块
      • 对其输入部分设计一个输入模块
      • 如果一个事务数据流图的活动路径集中于一个加工, 则设计一个输出模块,否则第一层不设计输出模块
    3. 第二级分解 —- 设计事务结构的中下层。自顶向下,逐步求精
      • 从事务中心的边界开始,把沿着接收流通路的处理映射成模块
      • 发送分支的结构包含一个调度模块,它控制下层的所有活动模块;然 后把数据流图中的每个活动流通路映射成与它的流特征相对应的结构
    4. 对初始的事务结构优化工作同变换结构
  • 综合分析设计:
    实际中,一些大型软件系统数据流图往往既不是单纯的变换型, 也不是单纯的事务型,而是变换型结构和事务型结构的混合结构。 对于这种既有变换型又有事务型,两种类型混合在一起的综合型 数据流图的转换,通常采用变换分析为主、事务分析为辅的方式 进行软件结构设计。
    1. 首先确定数据流图整体上的类型。
    2. 然后利用变换型数据流图的分析方法,先找出主加工,把软 件系统分为输入、变换、输出三部分,由此设计出软件系统的顶 层和第一层。
    3. 最后根据数据流图各个部分的结构特点,适当地运用“变换 分析”或“事务分析”就可得出初始软件结构图的某个方案
    4. 步骤
      1. 功能描述:
      2. 设计步骤
        • 第 1 步 复查基本系统模型。
        • 第 2 步 复查并精化数据流图
        • 第 3 步 确定数据流图的类型
        • 第 4 步 确定输入、变换和输出边界
          输入流、输出流的边界的确定具有一定的任 意性,因为不同的人对系统的理解不同
        • 第 5 步 设计系统的上层模块结构
          上层的模块结构有两层,顶层是系统模块,第一层由输入模 块、变换模块和输出模块三个模块组成。
        • 第 6 步 分解上层模块,设计下层模块。
          1. 输入部分下层模块的设计,从变换中心的输 入流边界开始沿着输入通路向外移动,把输入 通路中每个处理映射成软件结构中输入模块控 制下的一个低层模块。
          2. 输出部分的下层模块设计从变换中心输出流边 界开始然后沿输出通路向外移动,把输出通路 中每个处理映射成系统结构中输出模块控制的 一个低层模块
          3. 变换部分的映射是把变换中心内的每个处理,映射 成系统结构中变换模块控制下的若干个模块。
        • 第七步 精化模块结构
          在二级分解后,得到系统的初步结构图,根据模块独立性原理启发规则进行精化
    5. 总结:
      • 变换分析是软件系统结构设计的主要方法。一般,一个 大型的软件系统数据流图往往是变换型结构和事务型结 构的混合结构
      • 此时一般以“变换分析”为主,“事务分析”为辅进行 软件结构设计 : 先找出主加工,设计出结构图的上层, 然后根据数据流图各部分的结构特点适当地运用“变换 分析”或“事务分析”就可得出初始结构图的某个方案
  • 设计优化
    设计优化应在满足信息要求的情况下,力求做到在有效结构之下,使模块最少接口最简单,一般设计优化应考虑以下几个方面:
    1. 在不考虑时间因素的前提下开发并精 化软件结构;
    2. 在详细设计阶段选出最耗费时间的那 些模块,仔细地设计它们的处理过程 ( 算 法 ) ,以求提高效率
    3. 使用高级程序设计语言编写程序;
    4. 在软件中孤立出那些大量占用处理机资 源的模块
    5. 必要时重新设计或用依赖于机器的语言 重写上述大量占用资源的模块的代码,以求提 高效率
      上述优化方法遵守了一句格言: “先使它能工 作,然后再使它快起来。 ”

文章作者: Chipfron
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Chipfron !
  目录