资源描述
*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,实例解析面向数据流的设计方法,例1:假设某学校教材采购系统有假设能需求如下:,1:依据学校的授课方案,为上课的学生准备教材;,2:检查学生单是否在效,对有效书单发放所购教材;,3:如果教材已经脱销,对暂时脱销的教材进行登记;,4:根据缺书登记向出版社补订教材;,5:将缺书登记表汇总为待购方案表;,6:补订教材到货后,通知学生购书。,请用结构化为该系统画出分层的数据流图,并转换成软件结构图。,解析:首先画数据流程图。,画数据流图的第一步是画出系统顶层图,将整个教材采购系统当作一个大的加工。如以下图1所示,系统从学生接受购书单,经处理后把领书单返回给学生,使学生可凭书单到仓库领书。对脱销的教材,系统用缺书单的形式通知书库;新书进库后,由书库将进书单通知返回系统。,学生,书库,教材,采购,系统,购书单,领书单,缺书单,进书通知,图,1,:教材采购系统顶层数据流图,接下来把顶层数据流图分解为0层数据流图,0层数据流图由两个加工组成;售书和购书。如以下图2所示,售书加工将脱销的教材存入“缺书登记表,购书加工从“缺书登记表补订教材;当新书进货后,购书加工将进书信息传递给售书加工。,D1,教材库存表,D2,缺书登记表,售书,购书,1,2,进书,进书通知,缺书单,购书单,领书单,图,2,:教材采购系统,0,层数据流图,在0层数据流图根底上继续分解,可得到1层数据流图。图3由售书加工分解得到,图3由购书加工分解得到,1.1,1.3,1.2,1.4,1.5,1.6,1.7,学生用书表,售书登记表,进书登记表,缺书登记表,教材库存表,购书单,无效购书单,补售书单,有效购书单,审查,有效性,产生补,售书单,开发,票,登记,售书,打印,领书单,打印,发票,缺书,登记,D3,D2,D4,D5,D1,缺书信息,发票,领书单,发票,领书单,售书信息,图,3,:教材采购系统,1,层,DFD,售书加工分解图,在图3中,售书加工被分解成7个子加工,编号为1.11.7。“审查有效性加工是比较购书单的内容与学生用书表是否一致,同时还要通过售书登记表检查学生是否已经买过这些教材。如果购书单内容与学生用书表不符或已经买过教材,那么给学生返回无效购书单。如果购书单有效,那么由“开发票加工框按购书单的内容与教材库存表比较,把可供给的教材写入发票,并填写领书单交给购书的学生,同时登记售书情况。对于脱销的教材信息那么传递给“缺书登记加工,由该加工登记到缺书登记表中,等待接到进书通知后再补售给学生。补售的手续及数据与第一次购书单相同。,以下图4购书加工被分解为三个子加工。“修改库存与待购量加工在接到进书通知后,修改“教材库存表,“待购教材表和“进书登记表,并通过“进书登记表把进书信息通知销售部门,使销售人员能通知缺书的学生来补买。另外,根据销售部门建立的“缺书登记表,首先由“按书号汇总缺书加工汇总后存入“待购教材表中,然后再由“按出版社汇总缺书加工分别统计缺书单,送给书库保管员作为采购教材的依据。,修改库存,与待购量,D2,缺书登记表,D1,教材库存表,D3,进书登记表,D6,待购教材表,2.1,2.3,2.2,D7,教材一览表,按书号,汇总,缺书,按出版,社汇总,缺书,进书通知,缺书单,图4:教材采购系统1层DFD购书加工分解图,其次判断数据流图的类型,即它们是事务型还是变换型图。,对于图3,粗看起来,它具有变换型结构的特点。加工1.1与1.6为输入局部,1.3与1.7为输出局部,其余三个1.2,1.4,1.5属于变换中心。经过以上的分析,可以在图上画出两条界线,图3-22中的两条虚线之间的加工即为变换中心。,图3中的输入局部含有两个加工:加工1.1用于第一次售书,产生的输入数据流是“有效购书单;加工1.6用于补售,产生的输入数据流“补售书单。在一次售书过程中只能执行其中一种功能,要么是初售,要么是补售。因此,图3中加工1.2的左方应添加一个 号,说明这两种输入流不会同时出现。,综上所述,图3属于事务型结构数据流图。它的输入局部包括两个动作分支:第一次售书与补售,除此之外,其余的加工都是公用的。也就是说,图3的数据流图在整体上属于事务型结构,但它的两个动作分支又具有变换型结构。,对于图4,它也是具有两个动作分支的事务型结构。第一个动作分支是“统计缺书,包括编号2.1与2.2两个加工;第二个动作分支是“登记进书,包括一个加工2.3。其中,统计缺书分支具有变换型结构,加工2.1是它的输入局部,加工2.2是它的输出局部。它没有事务中心局部,待购教材表即是这个分支的传入数据,也是它的传出数据。,最后画出软件结构图。其中图5为教材采购系统的主图,图6为售书加工的结构图,图7为购书加工的结构图。,该用户选择,教材采购系统,售书,购书,第一次售书,补售,统计缺书,登记缺书,用户命令,售书命令,购书命令,第一次售书,补售,统计,登记,图5:教材采购系统主图,审查有效性,登记缺书,售书,第一次售书,补售,获得有效购书单,开发票,打印发票,开领发票,获得补售书单,登记售书,打印领书单,读进书登记表,读订书单,图6:售书加工结构图,购书,统计缺书,登记缺书,按书号汇总,按出版社汇总,打印缺书单,修改库存量,修改教材待购,图7:购书加工结构图,例2:以下图是某成绩管理的局部结构图,图中(a)和(b)分别是同一模块A的两个不同设计方案,你认为哪一个设计方案好?请说明理由。,班级,成绩汇总,平均/最高,成绩,学号,成绩,C取个人成绩,B取平均成绩,或最高成绩,A取班级成绩,(a),A取班级成绩,B1取平均成绩,B2取最高成绩,C取个人成绩,班级,成绩汇总,平均成绩,最高成绩,成绩,学号,学号,成绩,(b),解析:两个方案中b方案较好。要评价一个软件结构设计好坏,主要看模块的独立性,要从软件结构的耦合性和内聚性两个方面来衡量。对于a方案,模块A与模块B之间形成了控制耦合,因此独立性不高,因为在B模块内部,有两个不同的功能被放在一起,开成的是逻辑内聚,内聚性不高。对于b方案,模块A与B1和B2之间是数据耦合,独立性较强,在B1和B2内部,只完成单一的功能,是功能内聚,因此内聚性高,可维护性好,所以b方案更好一些。,
展开阅读全文