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

基本概念

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

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

  • 变换流:简单来说就是输入流与输出流之间顺序执行的一段数据流。数据在变换流内加工、处理。
    【软件工程】根据数据流图导出程序结构_第1张图片

  • 事务流:数据流图呈辐射型,根据输入数据的性质选择加工路径。事务中心从若干动作路径中选定一条继续执行,分支后又成了变换流。
    【软件工程】根据数据流图导出程序结构_第2张图片
    面向数据流的软件设计过程,如下图:
    【软件工程】根据数据流图导出程序结构_第3张图片

变换分析

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

确定DFD的特性,判定它为变换流还是事务流
以家庭保安系统的传感器检测子系统的第三级DFD为例
【软件工程】根据数据流图导出程序结构_第4张图片
输入和输出之间数据的加工路径只有一条,很明显该信息流属于变换流。

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

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

下图展示的是顶层到中层的一分三结构
【软件工程】根据数据流图导出程序结构_第5张图片
“传感器监测子系统”一级分解如下图
【软件工程】根据数据流图导出程序结构_第6张图片
执行“二级分解”
从变换中心的边界开始沿输入、输出通道向外移动,把遇到的每个处理框映射为程序结构中的一个模块

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

事务分析

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

对于事务流应该采取事务分析法
【软件工程】根据数据流图导出程序结构_第11张图片
以上用户交互子系统中,输入和输出之间的加工路径有多条,数条动作路径的公共源头即为事务中心。易得“启动命令处理”为事务中心,该图为事务流图。

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

一级分解
用户交互子系统的一级分解
【软件工程】根据数据流图导出程序结构_第15张图片
继续分解并精化
【软件工程】根据数据流图导出程序结构_第16张图片

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

答:
图是网上找的,SUBIII的G和F应该互调。
【软件工程】根据数据流图导出程序结构_第17张图片

你可能感兴趣的:(软件工程,软件工程师)