画法:
层DFD称为基于系统的模型,可以将整个软件系统表示为具有输入/输出的黑匣子。 用圆圈表示。
上一级DFD中的每个圆可以扩展到更独立的数据流图表中,以清楚地显示系统中程序的详细部分。
依次进行,直到最下位层的图只说明原子过程的操作。 各级数据流图必须与其上一级的数据流图保持平衡。 因此,子图的所有输入/输出流都必须与其父图匹配。
概括的就是说:自外向内,自顶向下,逐层细化,完善求精。
确定系统的输入和输出,以反映有关外部环境的系统接口。 第0层DFD将整个系统表现为一个加工; 这没有表达数据加工的要求,需要进一步细分。 确定并显示主要输入和输出,从输入端根据业务工作流程,绘制数据流加工框,反映数据的实际处理过程,逐步绘制输出端,得到第一层数据流图。 给图的加工编号。 细化各加工框。 如果加工框中有数据流,则可以将加工框进一步细分为多个“子加工”,并在每个子加工框之间绘制数据流。 一次比一次细分加工。 重复步骤,直到所有加工只需重复简单的操作即可通过程序轻松实现。
为了表现处理过程的数据加工状况,需要采用分层结构的数据流图。 通过按照系统的层次结构逐步分解,并在层次数据流图中反映这种结构关系,可以清楚和理解整个系统。
系统可以划分为三个子系统: DFD/L1、DFD/L2和DFD/L3。 另外,对于第二层将DFD/1.1 DFD/1.2等分层。
示例一:飞机机票预订系统下图为飞机机票预订系统的数据流图,具有将旅行社预订机票的旅客信息(姓名、年龄、单位、身份证号码、旅行时间、目的地等)输入机票预订系统的功能系统为旅客安排航班,收据(附有应支付的账款)。 旅客在飞机起飞前一天凭领票通知书领票,系统检查无误,并将机票输出旅客。
)1)首先绘制系统的输入输出,即顶层流程图。 顶级流图表只包含一个表示已开发系统的加工,并考虑该系统中有哪些输入数据流、输出数据流。 顶层图的作用是表示开发的系统范围和周围环境的数据交换关系,图3-3系统的顶层图
)2)绘制系统内部,即下层的数据流图。 不再分解的加工称为基本加工。 通常采用层数从0开始编号,从上到下,从外到内的原则。 绘制0楼流程图时,分解顶层流程图的系统是几个子系统,决定各子系统之间的数据接口和活动关系。 例如,上面的机票预订系统按功能分为两部分,一部分为旅行社预订机票,另一部分为旅客取票,两部分通过机票文件的数据存储连接。 图3-4是0楼数据流程图
)3)注意事项。
绘制数据流而不是控制流。 因为数据流反映系统的“做什么”,不反映“怎么办”,所以箭头的数据流名称只能是名词或名词短语,整个图不能反映加工的执行顺序。
一般不描绘物质流动。 数据流反映了计算机可以处理的数据,而不是实物,因此一般不在目标系统的数据流图中绘制物质流程。
每个加工至少有一个输入数据流和一个输出数据流,反映该加工数据的来源和加工结果。
号码。 当一个数据流图的一个加工被分解为另一个数据流图时,上图是父图,直接下图是子图。 必须对子图及其所有加工进行编号。
父图与子图的平衡。 子图的输入输出数据流必须与对应父图加工的输入输出数据流一致。 也就是说,是父图与子图的平衡。
本地数据存储器。 如果层次数据流图中的数据存储是此图中某些加工之间的数据接口,而不是父图中相应加工的外部接口,则这些数据存储称为本地数据存储。
图3-6示出了利用该符号描绘的与图3-2等效的DFD。
示例二:销售管理系统
示例三:点餐系统
示例四:家教系统
上图顶层数据流图
上图第一层数据流图
上图第二层数据流图(1图)
上图第二层数据流图(2图)
上图第二层数据流图(3图)
上图第二层数据流图(4图) 注意事项 1层次的划分遵守原则
(1)同一张图上所有处理过程应该处于同一个抽象层次上。
(2)一个处理经过展开,一般以分解为4~10个处理为宜。
2正确性检查(1)数据守恒,或称为输入数据与输出数据匹配
①处理有输入就应该有输出
②处理有输出就肯定有输入
③输入的数据应该全部流出该处理或者要用于产生流出该处理的数据(排除无用数据)
④输出的所有数据必须曾经流入过该处理或者是由流入该处理的数据加工产生(保证必要数据)
(2)在一套数据流图中的任何一个数据存储,必定有流入的数据流和流出的数据流。
(3)父图中的某一处理的输入、输出数据流必须出现在相应的子图中。
3提高易读性
(1)简化处理间的关系(利用数据存储)
例:
设P1,P2为处理,D1为数据存储
P1->P2可以改变为:P1->D1 D1->P2
(2)均匀分解
(3)适当的命名
4确定系统边界(1)排除纯手工活动
(2)排除其他外部系统的活动
(3)和系统外的外部源点之间的接口通过数据流来实现