工资支付系统的结构设计我们可以从图2.19所示的工资支付系统完整数据流图来设计工资支付系统的结构。从图2.19可以看出,交易数据和人事数据沿两条输入路径进入系统,输出数据沿一条输出路径离开系统。数据流图中没有明显的交易中心。因此,从整体上看,此数据流图具有转换流的基本特征。接下来,应分析确定输入流和输出流的边界,隔离转换中心。“获取数据”和“收集数据”显然位于输入流中。“审核数据”只对收集到的交易数据进行验证,并不对数据进行处理,其基本功能是确保输入的交易数据合理。因此,也应将其纳入输入流的行列。“更新人事数据”由人事部门通过另一个程序完成,不属于本系统应完成的功能。“打印表单”显然应位于输出流中。 工资明细的分配是手工完成的,不属于工资支付程序的一部分。综上所述,画出具有流程边界的数据流图,如图3.14所示。 银行 6 更新人事人事部门数据 D2工资表 D6人事数据 D5年度数据 3.13.23.33.43.5 获取数据计算正常计算加班更新年度打印表工资工资数据 D1交易数据报表工资明细表收集数据复核数据更新台账 4 分配工资明细教师表会计人员教师人员精细数据 图3.14 具有流程边界的工资支付系统数据流图 接下来的设计步骤是完成“第一级分解”。
所谓一级分解,就是确定系统总体的控制结构。通常,通过变换分析得到的系统高层结构是“三叉戟”的控制结构。针对工资支付系统得到的高层控制结构如图3.15所示。 计算教职工工资 接受工资 计算工资 打印出计算数据 结果 图3.15 工资支付系统一级分解 接下来的设计步骤就是完成“二级分解”。所谓二级分解就是将数据流图中的各个过程映射到软件结构中合适的模块中。变换分析的映射规则是从变换中心边界出发,沿输入路径向外移动,将输入路径中的各个过程映射到软件结构中受“输入信息处理控制模块”控制的低级模块上;再沿输出路径向外移动,将输出路径中的各个过程映射到受“输出信息处理控制模块”直接或间接控制的低级模块上; 最后将转换中心的各个流程映射到由“转换中心控制模块”控制的低级模块。对于工资支付系统,二级分解的结果如图3.16所示。 精细数据 计算教职工工资 接受工资 打印出计算数据 计算工资结果 计算正常计算 加班更新 年度数据收集 工时费 打印表单 工资 工资收款 交易审计 交易数据 数据 图3.16 工资支付系统的二级分解 最后一步设计,是对工资支付系统初步设计结果进行优化。

结合工资支付系统的功能研究,从图3.16所示的系统初步结构可以看出,“接收工资数据”控制模块是多余的:“数据获取”模块本身具有根据需要读取相应数据的功能,无需在其上再增加控制模块。另外,完成具体输出功能的模块只有一个,无需另设输出信息处理控制模块,因此应将“打印出计算结果”模块去掉。优化后的工资支付系统结构如图3.17所示。 计算教职工工资 获取数据 计算工资 打印表单 收集交易 审核交易计算 正常计算 加班更新 年度数据 数据 工资 小时工资 工资 保费数据 图3.17优化后的工资支付软件结构 保费数据!!!欢迎下载,信息仅供参考! 保费数据