结构化分析中,常用到数据模型为实体关系图,功能模型是数据流图 DFD
可以认为,一个基于计算机的信息处理系统由数据流和一系列的转换构成,这些转换将输入数据流变换为输出数据流。数据流图就是用来刻画数据流和转换的信息系统建模技术的。它用简单的图形记号分别表示数据流、转换、数据源以及外部实体。
数据对象由其属性刻画 实体-关系图是表示数据对象及其关系的图形语言机制 数据对象彼此之间相互连接的方式称为关系,也称为联系。可以是一对一联系(1∶1)、一对多联系(1∶N)、多对多联系(M∶N)联系也可能有属性。
数据流图的功能主要为(1)描绘数据在系统中各逻辑功能模块之间的流动和处理过程,是一种功能型模型 (2)主要刻画“功能的输入和输出数据”、“数据的源头和目的地” (3)在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。它与数据字典一起用来构成系统的逻辑模型。
数据流图中个个对象的表示一般来说源点与终点:通常指外部对象,用长方形或长方体表示。处理(加工):可以代表一系列程序、单个程序或者程序的一个模块,还可代表人工过程等,用圆形或圆角矩形表示。数据存储:表示需要保存的数据流向,指处于静止状态的数据,用平行线或开口矩形表示。数据流:指处理运行中的数据,用箭头表示。
数据流图的设计原则:
(1):父图-子图平衡原则:
子图可以理解为父图中部分环节的细化。例如我们给出父图:
我们想对其中的成绩处理环节进行细化,画成如下数据流图:
其中一定要保证父图输入输出数据流 = 子图输入输出数据流
(2)数据守恒原则:
所有的输出数据流必须是通过加工的,且通过加工能直接产生。一般情况下要注意一下3个错误:
*1* 外部实体与外部实体间无数据流。
*2* 外部实体与数据存储文件无数据流。
*3* 数据存储文件间无数据流。
(3)守恒加工原则:
对于同一个加工,其输入与输出的名字必须不同。通常来说要注意一下2点:
*1* 对于每一个加工,都应该有输入、输出。
*2* 数据流与加工有关,且必须经过加工。
在数据流方法中,对数据的精化是伴随着对转换的精化而同步进行的。DFD是自顶向下分解的。顶层DFD图通过系统和尾部世界之间的联机来描述系统的范围,没有数据流图的雏形,只是一种思想的表达,所以也成为关联图。将顶层DFD的系统分解为若干个子系统,决定每个子系统间的数据接口和活动关系,得到0层DFD图,然后继续向下细化,得到1、2、3…DFD图。最后得到的那个叫做底层DFD图,底层的DFD图最为详细,操作也是基本操作。参照底层的DFD图来实施。
例如:简单的考务处理系统
有如下的一个简单考务处理系统,要求完成一下工作:
1. 对考生送来的报名单进行检查;
2. 对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站;
3. 对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者;
4. 制作考生通知单(含成绩及合格/不合格标志)送给考生;
5. 按地区进行成绩分类统计和试题难度分析,产生统计分析表。
我们对需求进行关键字提取,并用绿色标出实体,红色标出关键的数据流。
答:(1)顶层数据流图:
(2)一层数据流图:
(3)二层数据流图:
例:图书预订系统
书店向顾客发放订单,顾客将所填订单交由系统处理,系统首先依据图书目录对订单进行检查并对合格订单进行处理,处理过程中根据顾客情况和订单数目将订单分为优先订单与正常订单两种,随时处理优先订单,定期处理正常订单。最后系统将所处理的订单汇总,并按出版社要求发给出版社。
答:(1)构建顶层数据流图
(2)构建0层数据流图(细化顶层数据流图)
(3)逐层细化数据流图