【软件工程】根据数据流图导出程序结构

本文介绍了数据流图在软件设计中的应用,区分了变换流和事务流两种类型。通过变换分析和事务分析方法,展示了如何从数据流图导出程序结构,特别强调了在变换流中如何确定输入、输出流界,并进行模块化。同时,对于事务流,提到了其特征和在数据流图映射为程序结构的过程。最后,给出了一个具体的实例,展示了如何进行事务分析法导出程序结构。
摘要由CSDN通过智能技术生成

基本概念

  • 数据流图:主要描绘信息在系统内部加工和流动的情况。

信息流分为变换流事务流两种。

  • 变换流:简单来说就是输入流与输出流之间顺序执行的一段数据流。数据在变换流内加工、处理。
    在这里插入图片描述

  • 事务流:数据流图呈辐射型,根据输入数据的性质选择加工路径。事务中心从若干动作路径中选定一条继续执行,分支后又成了变换流。
    在这里插入图片描述
    面向数据流的软件设计过程,如下图:
    在这里插入图片描述

变换分析

在变换之前需要先复审基本系统模型及精化软件数据流图。获取足够详细的数据流图(DFD)

确定DFD的特性,判定它为变换流还是事务流
以家庭保安系统的传感器检测子系统的第三级DFD为例
在这里插入图片描述
输入和输出之间数据的加工路径只有一条,很明显该信息流属于变换流。

通过划定输入流和输出流的边界来孤立变换中心
根据变换过程中给出的流程图,如果是变换流,则需要确定输入、输出流界。其实就是为了方便找出数据加工的路径。“传感器检测子系统”的边界已经在上图中以虚线表示。

执行“一级分解”
目标:导出具有三个层次的程序结构。
顶层模块(主控模块)
中层模块(输入流控制模块、变换流控制模块、输出流控制模块)
底层模块

下图展示的是顶层到中层的一分三结构
在这里插入图片描述
“传感器监测子系统”一级分解如下图
在这里插入图片描述
执行“二级分解”
从变换中心的边界开始沿输入、输出通道向外移动,把遇到的每个处理框映射为程序结构中的一个模块

输入流部分导出程序结构的过程:
在这里插入图片描述
输出流部分导出的程序结构:
在这里插入图片描述
最终得到传感器监测子系统的程序结构“雏形”
在这里插入图片描述
精化所得程序结构雏形
(1)因只存在一条传入路径,故输入控制模块可删除;
(2)由变换中心产生的整个子结构可归并为“建立警报条件”一个模块(选择电话号码的功能纳入其中),变换控制模块不再需要;·
(3)“格式化显示”和“生成显示”两个模块归并为“产生显示”一个模块。
在这里插入图片描述

事务分析

与变换分析相同,需要先复审基本系统模型及精化软件数据流图。获取足够详细的数据流图(DFD)

对于事务流应该采取事务分析法
在这里插入图片描述
以上用户交互子系统中,输入和输出之间的加工路径有多条,数条动作路径的公共源头即为事务中心。易得“启动命令处理”为事务中心,该图为事务流图。

确定由事务中心发出的每一动作路径的数据流特征
在此系统的数据流图中,变换流与事务流交织在一起。所以经过事务中心后的每一条路径也要对其进行分析。划分输入、变换、输出的流界。
数据流特征分析结果如下:
在这里插入图片描述
把数据流图映射为事务处理型的程序结构
事务处理型的程序结构由“输入”和“散转”两部分组成,输入部分的构成方法如变换分析法。
在这里插入图片描述
“散转”部分顶层为一“散转”模块,它总控所有对应于每一动作路径的控制模块,映射的整个过程可用下图说明:
在这里插入图片描述
d下层有一个模块c1,针对流1这条分支。这一条分支是变换流。对它划分流界。易知输入流控制模块包括q、p,变换流控制模块是r,输出流控制模块是s

一级分解
用户交互子系统的一级分解
在这里插入图片描述
继续分解并精化
在这里插入图片描述

课后作业:
教材第321页习题11.17:针对图11.39所示DFD,采用事务分析法导出程序结构。
区域Ⅰ为变换流;区域Ⅱ为事务流,但其各个子流为变换流;区域Ⅲ为变换流。
在你所设计的程序结构中,除了每个变换对应一个模块外,可能还需增加若干控制模块。

答:
图是网上找的,SUBIII的G和F应该互调。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值