例如,考虑工资总额的算法。假设分析员和会计正在讨论数据流图中“加工事务数据”这个处理。在前一步骤中已经用IPO表(见图2.16)描述了计算工资总额的算法,并且知道基本工资、生活补贴、书报费、交通费和洗理费等数据应该存储起来,那么,它们到底存储在哪个数据存储中呢?会计说,这些数据属于人事数据。但是,在图2.13所示的数据流图中并没有一个数据存储保存人事数据,显然应该修改数据流图,补充进这个数据存储。这样一步一步地分析数据流找出未知的数据元素,未知的数据元素引出访问时的问题,而问题的答案又引入一个以前不知道的系统成分----人事数据存储。
上述新发现又引出下一个问题:人事数据存储是从哪里进入系统的呢?经询问得知,这些数据的来源是人事科,而且需要增加一个新的处理----更新人事数据。
接下来讨论计算课时费和岗位津贴的方法。会计告诉分析员,课时费等于教师当月的授课时数乘上每课时的课时费,再乘上职称系数和授课班数系数;岗位津贴由职工的职务和完成当月任务的情况决定。通过讨论还进一步了解到,应在每年年末计算机超课时费,也就是说,如果一位教师一年的授课时数超过学校规定的定额,则超出部分每课时的课时费按正常值的1.2倍计算。显然,为了计算超额课时费需要保存每位教师当年完成的授课时数,也就是说,需要一个数据存储来存放“年度数据“。
接下来讨论“加工事务数据“这个处理需要的其他算法。例如,在讨论住房公积金的算法时了解到,根据国务院2002年3月24日修订的《住房公积金管理条例》的规定,”职工住房公积金的月缴存额为职工本人上一年度月平均工资乘以职工住房公积金缴存比例“,”职工和单位住房公积金的缴存比例均不得低于职工上一年度月平均工资的5%“。因此,需要存储每名教职工上一年度的月平均工资,显然,这个数据元素也应该在”年度数据“中。表2.5是年度数据包含的数据元素。相应地,应该增加一个处理(”更新年度数据“)在每年年末更新年度数据。
表2.5 年度数据包含的数据元素
最后,把新发现的数据源点、数据处理和数据存储补充到数据流图中,得到新数据流图(见图2.17)。
④细化数据流图
经过上述工作分析员对工资支付系统已经有了更深入、更具体的认识。原有的数据流图已经不能充分表达他对系统的认识,应该进一步地细化数据流图。
通常,使用下述的功能分解方法来细化数据流图:选取数据流图上功能过分复杂的处理,把它分解成若干个子功能,这些较低层次的子功能成为新数据流图上的处理,它们有自己的数据存储和数据流。
例如,图2.17中“加工事务数据“这个处理的功能太复杂了,用一个处理框不能清晰地描绘它的功能,应该把它进一步分解细化。根据分析员现在对加工事务数据功能的了解,把这个处理分解成下述5个逻辑功能:、
● 取数据 取出事务数据、人事数据和年度数据 ● 计算正常工资 计算不包含超额课时费的工资
● 计算超额课时费 年终计算超额课时费,算得的钱数加到12月份的工资总额中。 ● 更新年度数据 把每月工资总额、实发工资及授课时数累加到相应的年度数据中,并在年终计算本年度的月平均工资。
● 印表格 印出工资表、工资明细表和各种财务报表
图2.17 补充后的工资支付系统数据流图
上述5个子功能及它们之间的关系,可以用一张数据流分图来描绘(见图2.18)。把分解“加工事务数据”处理框的结果加到原来的数据流图中,得到一张更详细的新数据流图(见图2.19)。
图2.18 对“加工事务数据”的细化
图2.19 工资支付系统完整的数据流图
新数据流图对工资支付系统的逻辑功能描绘得比以前更深入、更具体了。分析本系统其它处理功能后得知,对于这个具体系统来说,已经没有必要再分解其他功能了。一般说来,
如果进一步分解将促使你开始考虑为了完成该功能需要写出的代码,就不应该再分解了。在需求分析阶段分析员应该只在逻辑功能层工作,代码已经属于物理实现层了。
⑤书写正式文档
数据流图细化之后,组成系统的各个元素之间的逻辑关系变得更清楚了。以细化后的数据流图为基础,可以对系统需求做更进一步地分析。随着分析过程的进展,通过询问与回答的反复循环,将把目标系统定义得越来越准确。最终,分析员对系统需求有了令人满意的认识,应该把这些认识用正式文档“软件需求规格说明书”准确地记录下来。细化到适当层次的数据流图、数据字典和黑盒形式的算法描述,是构成软件需求规格说明书的重要成分。
⑥技术审核和管理复审
由从外单位聘请来的一位有经念的系统分析员担任技术审查小组的组长,并由具体处理工资事务的两名会计及本系统的分析员作为小组成员。图2.19所示的数据流图是审查的重点,用数据字典和IPO表辅助对数据流图的理解,由作为小组组员的一名会计朗读软件需求规格说明书,大家仔细审查这份文档。审查的目的是发现错误或遗漏,而不是对前一阶段的工作进行批评或争论。本系统的分析员负责改正审查小组发现的问题。
除了技术审查之外,在转入概要设计之前还必须进行管理方面的复审。由财务科长和学校校长对本项目的经费支出情况和开发进度,从管理角度进行审查。