软设考试笔记–数据流图
意义:
软件设计师不仅需要具备高水平的编程能力,而且要熟练掌握软件设计的方法和技术,具备一定的软件设计能力。
对于一些诸如管理系统的软件来说,往往要处理一定的数据流。所以数据流图的设计显得非常关键。
其中软设的考纲中对软件设计师的要求中有提到:
理解系统需求说明
指定详细的工作流程和数据流
能够使用面向数据流的模型和面向对象模型描述软件的功能需求
更够根据具体问题,绘制相应的数据流,定义数据字典、采用决策树或决策表的方式描述加工逻辑模型。
软件是围绕数据处理而存在的,所以这部分内容,在具体的项目开发中也非常有价值。
考点内容:
数据流图中的基本概念:
一、数据流图(DFD):
它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
二、数据流图的组成:
1 数据流图的构成
(1)数据流图使用的符号
DFD由四种基本符号组成。如下图所示。
(2)数据流
数据流(Data Flow)由一个或一组确定的数据组成。
①数据流名应能直观地反映数据流的含义。
②数据流的流向
③数据流可以同名,也可以有相同的数据结构,但必须有不同的数据或具有不同的含义。
④两个符号(加工、外部项、数据存储)之间可以有多个数据流存在,DFD并不表明它们之间的任何关系,诸如次序、主次等。
⑤避免错误的数据流命名方法
(3)加工
加工又称处理亦称变换,它表示对数据流的操作。
加工的符号分成上、下两部分,从上到下分别是标识部分和功能描述部分。
标识部分用于标注加工编号,加工编号应具有唯一性,以标识加工,以“P”开头。
功能描述部分用来写加工名。为使DFD清晰易读,加工名应简单,能概括地说明对数据的加工行为,其详细描述在数据词典中定义。
加工要逐层分解,以求得分解后的加工功能简单、易于理解。
(4)数据存储
数据存储是用来存贮数据的。在分层DFD中,数据存储一般仅属于某一层或某几层,因此又称数据存储为局部文件。现对数据存储符号说明如下:
①数据存储名写在开口的长方框内,应概要地说明文件中的主要数据。
②数据存储上一定要有数据流。
③为便于说明和管理,数据存储亦应编号,编号写在文件符号左端小方格中,以“D”开头。
④为避免DFD中出现交叉线,同一数据存储可在多处画出,可以用下图所示符号表示数据存储重复。
(5)外部项
源点和终点(又称端点)是系统外的实体,称作外部项。它们存在于环境之中,与系统有信息交流,从源点到系统的信息叫系统的输入;从系统到终点的信息称系统的输出。同—个端点可以是人或其它系统。在DFD中引入源点和终点是为了便于理解系统,所以不需要详细描述它们。它们可有编号,以“S”开头。
2 数据流图的绘制步骤
(1)确定所开发的系统的外部项(外部实体),即系统的数据来源和去处。
(2)确定整个系统的输出数据流和输入数据流,把系统作为一个加工环节,画出关联图。
(3)确定系统的主要信息处理功能,按此将整个系统分解成几个加工环节(子系统)确定每个加工的输出与输入数据流以及与这些加工有关的数据存储。
(4)根据自顶向下,逐层分解的原则,对上层图中全部或部分加工环节进行分解。
(5)重复步骤(4),直到逐层分解结束。
(6)对图进行检查和合理布局,主要检查分解是否恰当、彻底,DFD中各层是否有遗漏、重复、冲突之处,各层DFD及同层DFD之间关系是否争取及命名、编号是否确切、合理等,对错误与不当之处进行修改。
(7)和用户进行交流,在用户完全理解数据图的内容的基础上征求用户的意见。
3 绘制数据流图的主要原则
(1)明确系统界面。
(2)自顶向下逐层扩展。
(3)合理布局。
(4)数据流图绘制过程,就是系统的逻辑模型的形成过程,必须始终与用户密切接触,详细讨论,不断修改,也要和其他系统建设者共同商讨一求一致意见。
4 绘制数据流图的注意事项
(1)关于自顶向下、逐层分解
(2)数据流必须通过加工
(3)数据存储环节一般作为两个加工环节的界面来安排
(4)编号
三、数据流图的分层
对于一个软件系统,其数据流图可能有许多层,每一层又有许多张图。
顶层图只有一张。
0层图只有一张
子图就是父图中被分解的加工号
四 设计原则
(1)父图与子图的平衡原则
子图的输入输出数据流同父图相应加工的输入输出数据流必须一致,此即父图与子图的平衡。
(3)守恒加工原则
对同一个加工来说,输入与输出的名字必须不相同,即使它们的组成成分相同。
1.对于每个加工,必须既有输入数据流,又有输出数据流。
2.数据流与加工有关,且必须经过加工。
五、数据字典
数据字典是对数据流图中出现的所有被命名的图形元素在数据字典中作为一个词条加以定义,使每个图形元素的名称都有一个确切的解释。
在数据字典中有4种类型的条目:
1、数据项条目:通常为数据项的值类型,允许的取值范围等
2、数据流条目:给出某个数据流的定义,列出该数据流的各组成数据项。
3、文件条目:对文件的定义,列出期组成的数据项
4、加工条目:对每个不能再分解的加工做说明,包括加工的激发条件,加工的逻辑,优先级等等。
考点分析:
主要根据数据平衡原则对数据流图中的组成部分进行补充,修改。得分率应该普遍较高。
具体考点细节:
1、补充实体:
(1)人物角色:如客户、管理员、主管、经理、老师、学生。
(2)组织机构:如银行、供应商、募捐机构
3)外部系统:如银行系统、工资系统、后台数据库(当要开发的是中间件时)
2、补充存储:
存储文字方面特征“文件“表“库“清单“档案“
3、补充数据流:
(1)顶层图与0层图对比,是否顶层图有,但0层图没有。或反之。
(2)检查每个图中的加工,是否存在只有入没有出,或只有出没有入,或根据输入的数据无法产生对应的输出的情况。
2、按题目说明与图进行匹配
说明中的每一句,都能与图中有对应关系,当把说明中的实体与数据流标识出来后,容易缩小对应范围,找出纰漏。
4、补充加工名
可以把加工涉及到的数据流,在说明中标识出来,再在数据流名称所在的句子中,找“动词+名词”:如生产报告,发出通知,批改作业,物流跟踪,用户管理等。
5、数据流图中的改错
错误的数据流名称、错误的数据流的起点和终点、多余的数据流等。。。。
**总结:**这部分考题实际上考察的是对数据流图的理解上,这类题型规律性强,得分应该比较容易。