面向数据流设计方法

上传人:tian****1990 文档编号:81573946 上传时间:2019-02-21 格式:PPT 页数:13 大小:285.81KB
返回 下载 相关 举报
面向数据流设计方法_第1页
第1页 / 共13页
面向数据流设计方法_第2页
第2页 / 共13页
面向数据流设计方法_第3页
第3页 / 共13页
面向数据流设计方法_第4页
第4页 / 共13页
面向数据流设计方法_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《面向数据流设计方法》由会员分享,可在线阅读,更多相关《面向数据流设计方法(13页珍藏版)》请在金锄头文库上搜索。

1、实例解析(面向数据流的设计方法),例1:假设某学校教材采购系统有若能需求如下: (1):依据学校的授课计划,为上课的学生准备教材; (2):检查学生单是否在效,对有效书单发放所购教材; (3):如果教材已经脱销,对暂时脱销的教材进行登记; (4):根据缺书登记向出版社补订教材; (5):将缺书登记表汇总为待购计划表; (6):补订教材到货后,通知学生购书。 请用结构化为该系统画出分层的数据流图,并转换成软件结构图。,解析:首先画数据流程图。 画数据流图的第一步是画出系统顶层图,将整个教材采购系统当作一个大的加工。如下图1所示,系统从学生接受购书单,经处理后把领书单返回给学生,使学生可凭书单到仓

2、库领书。对脱销的教材,系统用缺书单的形式通知书库;新书进库后,由书库将进书单通知返回系统。,图1:教材采购系统顶层数据流图,接下来把顶层数据流图分解为0层数据流图,0层数据流图由两个加工组成;售书和购书。如下图2所示,售书加工将脱销的教材存入“缺书登记表”,购书加工从“缺书登记表”补订教材;当新书进货后,购书加工将进书信息传递给售书加工。,图2:教材采购系统0层数据流图,在0层数据流图基础上继续分解,可得到1层数据流图。图3由售书加工分解得到,图3由购书加工分解得到,图3:教材采购系统1层DFD售书加工分解图,在图3中,售书加工被分解成7个子加工,编号为1.11.7。“审查有效性”加工是比较购

3、书单的内容与学生用书表是否一致,同时还要通过售书登记表检查学生是否已经买过这些教材。如果购书单内容与学生用书表不符或已经买过教材,则给学生返回无效购书单。如果购书单有效,则由“开发票”加工框按购书单的内容与教材库存表比较,把可供应的教材写入发票,并填写领书单交给购书的学生,同时登记售书情况。对于脱销的教材信息则传递给“缺书登记”加工,由该加工登记到缺书登记表中,等待接到进书通知后再补售给学生。补售的手续及数据与第一次购书单相同。 下图4购书加工被分解为三个子加工。“修改库存与待购量”加工在接到进书通知后,修改“教材库存表”,“待购教材表”和“进书登记表”,并通过“进书登记表”把进书信息通知销售

4、部门,使销售人员能通知缺书的学生来补买。另外,根据销售部门建立的“缺书登记表”,首先由“按书号汇总缺书”加工汇总后存入“待购教材表”中,然后再由“按出版社汇总缺书”加工分别统计缺书单,送给书库保管员作为采购教材的依据。,图4:教材采购系统1层DFD购书加工分解图,其次判断数据流图的类型,即它们是事务型还是变换型图。 对于图3,粗看起来,它具有变换型结构的特点。加工1.1与1.6为输入部分,1.3与1.7为输出部分,其余三个(1.2,1.4,1.5)属于变换中心。经过以上的分析,可以在图上画出两条界线,图3-22中的两条虚线之间的加工即为变换中心。 图3中的输入部分含有两个加工:加工1.1用于第

5、一次售书,产生的输入数据流是“有效购书单”;加工1.6用于补售,产生的输入数据流“补售书单”。在一次售书过程中只能执行其中一种功能,要么是初售,要么是补售。因此,图3中加工1.2的左方应添加一个 号,表明这两种输入流不会同时出现。 综上所述,图3属于事务型结构数据流图。它的输入部分包括两个动作分支:第一次售书与补售,除此之外,其余的加工都是公用的。也就是说,图3的数据流图在整体上属于事务型结构,但它的两个动作分支又具有变换型结构。,对于图4,它也是具有两个动作分支的事务型结构。第一个动作分支是“统计缺书”,包括编号2.1与2.2两个加工;第二个动作分支是“登记进书”,包括一个加工2.3。其中,

6、统计缺书分支具有变换型结构,加工2.1是它的输入部分,加工2.2是它的输出部分。它没有事务中心部分,待购教材表即是这个分支的传入数据,也是它的传出数据。 最后画出软件结构图。其中图5为教材采购系统的主图,图6为售书加工的结构图,图7为购书加工的结构图。,图6:售书加工结构图,例2:下图是某成绩管理的部分结构图,图中(a)和(b)分别是同一模块A的两个不同设计方案,你认为哪一个设计方案好?请说明理由。,解析:两个方案中(b)方案较好。要评价一个软件结构设计好坏,主要看模块的独立性,要从软件结构的耦合性和内聚性两个方面来衡量。对于(a)方案,模块A与模块B之间形成了控制耦合,因此独立性不高,因为在B模块内部,有两个不同的功能被放在一起,开成的是逻辑内聚,内聚性不高。对于(b)方案,模块A与B1和B2之间是数据耦合,独立性较强,在B1和B2内部,只完成单一的功能,是功能内聚,因此内聚性高,可维护性好,所以(b)方案更好一些。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号