4.6.4 事务分析法
事务分析的设计步骤和变换分析的设计步骤大致相同或类似,区别仅在于映射方法。
由事务流映射成的软件结构包括一个接收分支和一个发送分支。从事务中心的边界开始,把沿着接收流通路的处理映射成模块。发送分支由一个调度模块控制它下面的所有模块。然后把数据流图中的每个活动流通路映射成与它的流特征相对应的结构。如图4.14所示。
一般来说,如果数据流图不具有显著的事务特征,最好使用变换分析;反之,则使用事务分析技术。对于大型的或复杂的系统,事务分析和变换分析往往兼而有之。
例4.1 由于总体设计的主要工作开始于对需求分析获得的数据流图的分析,下面以某个“学生档案管理系统”的数据流图为例,运用面向数据流的方法设计其软件结构。假设某“学生档案管理系统”的数据流图如图4.15所示,并且假设该数据流图已经经过复查和精化,其中的每个处理已代表一个规模适中、相对独立的子功能。接下来,按照面向数据流方法设计的步骤,依次进行数据流类型确定、“第一级分解”、“第二级分解”和优化的工作。

图4.14 事务分析映射法

图4.15 学生档案管理系统的数据流图
按照信息流的分类方法,该数据流图属于变换型数据流,并不存在明显的事务特征。按照各项处理的功能划分输入、处理、输出的边界,孤立出变换中心,如图4.16所示。
变换中心的主要工作是查询、统计和打印报表。接收数据模块负责数据的输入和审查。输出数据模块负责浏览、打印各类统计结果。
将变换中心映射为主控模块,变换中心边界线左侧的部分映射为输入控制模块,变换中心边界线右侧的部分映射为输出控制模块,变换中心部分映射为变换控制模块。然后,以模块的主要功能命名模块。经过第一级的分解得到学生档案管理系统的顶层结构,如图4.17所示。

图4.16 学生档案管理系统数据流图的变换中心及边界(https://www.daowen.com)

图4.17 学生档案管理系统“一级分解”结果
接下来,按前述“第二级分解”的方法,沿着输入通路和输出通路从变换中心向外推演,进行第二级分解,分别得到“接收数据”、“处理数据”和“输出数据”各模块分支下面的模块结构,如图4.18、图4.19及图4.20所示。

图4.18 接收分支结构

图4.19 输出分支结构

图4.20 变换分支结构
最后一步,对以上结构进行优化。该系统可以进行的优化如下。
“处理数据”中的“统计分析”可以进一步分解为“统计数据”和“分析数据”。由于系统的使用需要验证用户的身份,日常的管理需要数据备份,可以在第一层增加一个“用户登录”模块,在“处理数据”下面增加一个“数据备份”模块,最终形成的软件总体结构如图4.21所示。

图4.21 学生档案管理系统层次图