标签:
杂谈 |
分类: 软件工程 |
2.4.1 数据流图
数据流图(Data Flow Diagram,DFD)是描述系统中数据流的图形工具,是一种用来表示信息流和信息变换过程的图解方法,可以标识一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理。数据流图把软件系统看成是由数据流联系的各种功能的组合,在需求分析的过程中,可以用来建立目标系统的逻辑模型。
结构化需求分析采用的是“自顶向下,由外到内,逐层分解”的思想,开发人员要先画出系统顶层的数据流图,然后再逐层画出低层的数据流图。顶层的数据流图要定义系统范围,并描述系统与外界的数据联系,它是对系统架构的高度概括和抽象。底层的数据流图是对系统某个部分的精细描述。
数据流图的目的是在用户和系统开发人员之间提供语义的桥梁。
——Kenneth Kozar
按照Gane-Sarson法,在绘制数据流图的过程中,主要用到了4个基本符号,如表2-1所示。
表2-1 数据流图的基本符号
http://book.csdn.net/BookFiles/1130/img/image008.jpg
为了对数据流图有更直观的认识,我们以一个考试成绩管理系统为例,介绍它的数据流图。某单位进行招聘考试,应聘者报名后,单位的招聘委员会将每位应聘者的基本情况输入系统。招聘考试结束后,招聘委员会需要将应聘者的成绩输入系统,并按照成绩对应聘者进行排序,将成绩单发放给每位应聘者,并发放录用通知书。该考试成绩管理系统顶层和底层的数据流图分别如图2-6和图2-7所示。
http://book.csdn.net/BookFiles/1130/img/image009.jpg
图2-6 考试成绩管理系统顶层数据流图
http://book.csdn.net/BookFiles/1130/img/image010.jpg
图2-7 考试成绩管理系统底层数据流图
在绘制数据流图的过程中,要注意以下几点。
(1) 数据的处理不一定是一个程序或一个模块,也可以是一个连贯的处理过程。
(2) 数据存储是指输入或输出文件,但它不仅仅可以是文件,还可以是数据项或用来组织数据的中间数据。
(3) 数据流和数据存储是不同状态的数据。数据流是流动状态的数据,而数据存储是指处于静止状态的数据。
(4) 当目标系统的规模较大时,为了描述的清晰和易于理解,通常采用逐层分解的方法,画出分层的数据流图。在分解时,要考虑到自然性、均匀性和分解度几个概念。
自然性是指概念上要合理和清晰。
均匀性是指尽量将一个大问题分解为规模均匀的若干部分。
分解度是指分解的维度,一般每一个加工每次分解最多不宜超过7个子加工,应分解到基本的加工为止。
(5) 数据流图分层细化时必须保持信息的连续性,即细化前后对应功能的输入和输出数据必须相同。
关于数据流图的详细绘制方法,本章的实践部分会详细介绍。
2.4.2 数据字典
用数据流图来表示系统的逻辑模型直观且形象,但是缺乏细节描述,也就是说它没有准确和完整地定义各个图元。可以用数据字典(data dictionary,DD)来对数据流图做出补充和完善。
数据字典用于定义数据流图中各个图元的具体内容,为数据流图中出现的图形元素做出确切的解释。数据字典包含4类条目:数据流、数据存储、数据项和数据加工。这些条目按照一定的规则组织起来便构成了数据字典。定义规则时,常用的符号如表2-2所示。
表2-2 数据字典符号
http://book.csdn.net/BookFiles/1130/img/image011.jpg
例如,数据流“应聘者名单”由若干应聘者姓名、性别、年龄、专业和联系电话等信息组成,那么“应聘者名单”可以表示为:应聘者名单={应聘者姓名+性别+年龄+专业+联系电话}。数据项考试成绩可以表示为:考试成绩 =0..100。再如,某教务系统的学生成绩库文件的数据字典描述可以表示为以下形式。
文件名:学生成绩库
记录定义:学生成绩 = 学号+姓名+{课程代码+成绩+[必修|选修]}
学号:由6位数字组成
姓名:2~4个汉字
课程代码:8位字符串
成绩:1~3位十进制整数
文件组织:以学号为关键字递增排列
2.4.3 E-R图
E-R图用于描述应用系统的概念结构数据模型,它是进行需求分析,并归纳、整理、表达和优化现实世界中数据及其联系的重要工具。
在建模的过程中,E-R图以实体、联系和属性三个基本概念概括数据的基本结构。实体就是现实世界中的事物,多用矩形框来表示,框内含有相应的实体名称。比如,在一个教务系统中,“学生”就是一个实体,如图2-8所示。
http://book.csdn.net/BookFiles/1130/img/image012.jpg
图2-8 学生实体
属性多用椭圆形表示,并用无向边与相应的实体联系起来,表示该属性归某实体所有。可以说,实体是由若干个属性组成的,每个属性都代表了实体的某些特征。学生实体的属性如图2-9所示。
http://book.csdn.net/BookFiles/1130/img/image013.jpg
图2-9 学生实体的属性
联系用菱形表示,并用无向边分别与有关实体连接起来,以此描述实体之间的关系。实体之间存在着三种联系类型,分别是一对一、一对多、多对多,它们反映到E-R图中就为相应的联系类型,即1:1、1:n和m:n。
(1) 一对一联系是指甲实体的任何一个实例只能对应到乙实体的一个实例,并且乙实体的任何一个实例只能对应到甲实体的一个实例。比如,在一个座位分配系统中,“学生”实体和“座位”实体之间的关系就是一对一的,如图2-10所示。
(2) 一对多联系是指甲实体的任何一个实例能够对应到乙实体的多个实例,而乙实体的任何一个实例只能对应到甲实体的一个实例。比如,在一个住宿管理系统中,一个“学生”只能分配到一间“宿舍”,而一间“宿舍”可以容纳多个“学生”,如图2-11所示。
http://book.csdn.net/BookFiles/1130/img/image014.jpg
图2-10 一对一联系
http://book.csdn.net/BookFiles/1130/img/image015.jpg
图2-11 一对多联系
(3) 多对多联系是指甲实体的任何一个实例能够对应到乙实体的若干个实例,而乙实体的任何一个实例也可以对应到甲实体的若干个实例。比如,在一个选课系统中,一个“学生”可以选修若干门“课程”,同时一门“课程”也可以被若干个“学生”选修,如图2-12所示。
http://book.csdn.net/BookFiles/1130/img/image016.jpg
图2-12 多对多联系
需要指出的是,同一个系统的E-R图不具有唯一性,即不同的软件开发人员所设计出来的E-R图可能不同。

加载中…