580 likes | 904 Views
第五章 数据字典 Data Dictionary : DD. 数据字典的作用:对 DFD 的定义. 在设计 DFD 时,为提高可读性,要求数据流名、加工名、文件名及外部项名都要简单明了。这使得难以从数据流名字、文件的名字中看出它们的数据结构,也无法从加工名字中看出加工的加工逻辑,给后来的设计带来困难。. DD 就是对 DFD 中加工、数据流、文件和外部项逐个做出定义的一部文件。 DFD 和 DD 结合起来定义系统。 手工 DD 是把字典条目逐一填写到卡片或表格中,再把它们按一定顺序排好、装订成册以便查阅 。 也可以编写电子 DD 。 用计算机对字典实施管理。.
E N D
第五章 数据字典Data Dictionary:DD 数据字典的作用:对DFD的定义
在设计DFD时,为提高可读性,要求数据流名、加工名、文件名及外部项名都要简单明了。这使得难以从数据流名字、文件的名字中看出它们的数据结构,也无法从加工名字中看出加工的加工逻辑,给后来的设计带来困难。在设计DFD时,为提高可读性,要求数据流名、加工名、文件名及外部项名都要简单明了。这使得难以从数据流名字、文件的名字中看出它们的数据结构,也无法从加工名字中看出加工的加工逻辑,给后来的设计带来困难。
DD就是对DFD中加工、数据流、文件和外部项逐个做出定义的一部文件。DFD和DD结合起来定义系统。DD就是对DFD中加工、数据流、文件和外部项逐个做出定义的一部文件。DFD和DD结合起来定义系统。 手工DD是把字典条目逐一填写到卡片或表格中,再把它们按一定顺序排好、装订成册以便查阅。 也可以编写电子DD。用计算机对字典实施管理。
建立DD需要大量细致的工作,但这一工作是必须的。因为不仅系统分析阶段需要它整个开发过程乃至系统交付后的长期运行。维护过程中都要依据它、维护它。建立DD需要大量细致的工作,但这一工作是必须的。因为不仅系统分析阶段需要它整个开发过程乃至系统交付后的长期运行。维护过程中都要依据它、维护它。
5.1 定义数据流、文件和外部项 一、数据流的组成 • 数据流可以由几个数据元素加几个数据结构组成。 • 数据元素是不可/不必再分解的简单数据项; • 数据结构的组成与数据流类似。由于事务的复杂性,数据结构中可能还包含有数据元素和数据结构。但不管嵌套多少层,最后一级数据结构中一定只含有数据元素。
5.1 定义数据流、文件和外部项 要严格定义一个数据流必须: .定义其自身的组成; .定义所含每一个数据元素; .定义所含每一个数据结构; .若数据结构中还含有数据元素和数据结构时应进一步定义,直至组成数据结构的所有数据元素被定义为止。
5.1 定义数据流、文件和外部项 由于数据元素和数据结构具有公用性,即一个数据元素或数据结构可以被多个数据流或数据结构所调用。所以在数据字典中可以把它们的定义分开,分别定义数据流,数据结构和数据元素。
加工被分解,数据流也被分解,高层DFD中的数据流的组成情况可以由分解后的数据流说明。但为检验DFD的平衡,我们规定:加工被分解,数据流也被分解,高层DFD中的数据流的组成情况可以由分解后的数据流说明。但为检验DFD的平衡,我们规定: .定义MDFD中的所有数据流。 .临时数据流不定义。 .所有流入/流出文件的数据流不定义,这些数据流的含义可以从文件的定义中获得。
定义数据流、数据元素、数据结构和文件采用如下规定符号:定义数据流、数据元素、数据结构和文件采用如下规定符号: = 表示定义为。例如,学生情况=学号+姓名牛成绩+地址; + 表示“与”: I 表示“或”。如,性别=男I女; () 表示整体,与数学中用法相同; m..n 表示值域。如,星期几=1..7,月份=1..12;
n m { }表示重复若干次。例如,通讯录文件:{姓名+电话+邮码} ( ) 表示重复自m次至n次; [ ] 表示可选。例如,存款单=储户帐号+存款额+日期+[密码],表示存款时可以/不带密码。 建议:数据流编号用字母”L”打头,数据结构用”S”打头,数据元素用“E”打头,文件”F”打头,加工”P”打头,外部项”W”打头。
二、定义数据流 数据流自身的定义。内容包括; .编号:即DFD中的编号,应具有唯一性以便检索。 .名称:即该数据流在DFD中的名称; .[内部名]为使用方便,可用拼音或字母缩写给每个数据流起一个别名;
二、定义数据流 .组成指明组成该数据流的所有数据元素(编号)和所有数据结构(编号); .[流量]即数据流量。通常说明正常流量,必要时可指明高峰期流量; .[备注]:必要的说明. 组成数据流的数据元素、数据结构的编号,待它们定义后反填回来。 定义数据流用数据流定义表。
三、定义数据结构 数据结构的定义内容与数据流相同,用数据结构定义表定义。 四、定义数据元素 数据元素是数据流和数据结构的基本组成项,只有数据元素被定义了,数据流和数据结构才能被最后定义下来。 数据元素定义一般包括以下内容:
.编号 数据元素在DD中的统一编码。编号应具有唯一性,以便检索。 .名称 数据元素的名字; .[内部名] 系统内使用的名字; .[值域] 数据元素可能的取值范围; .[值义] 对值意的解释。 . [类型和长度] .[备注] 必要的说明. 定义数据结构用数据结构定义表。
五、定义文件 在DD中要对DFD中所有文件做出定义. 文件的组成与数据流类似,即文件由若干数据元素和若干数据结构组成.在DD中文件定义部分只定义文件自身,组成文件的数据元素和数据结构分别与数据流部分的相应定义合并。
五、定义文件 文件定义的内容包括; .编号 文件在DFD中的编号,该编号应具有唯一性 .文件名 即文件在DFD中的名字; .[内部名] 系统中使用的文件名; .[备注] 必要的说明。 文件用文件定义表定义。
六、定义外部项 系统的外部项(源点和终点)是系统环境中的实体.因为它们与系统有信息联系。所以在DD中应对它们统一定义。定义的内容包括; 编号;外部项在DFD中的编号,编号应具有唯一性以便检索;
.名称:外部项在DFD中的名称; .输出数据流:外部项到系统的数据流; .输入数据流 系统到外部项的数据流; .[备注] 必要的说明。如果外部项是一个计算机系统应当说明其数据处理情况,特别是数据量、数据格式、载体形式、数据精度等。 外部项用外部项定义表定义。
5.2 定义加工 定义加工要定义它的编号、名字、加工逻辑,必要时应定义加工的执行条件、执行频率等有关信息。所谓加工逻辑是指加工都作了些什么事情?说明加工把输人数据流变换成输出数据流的过程。
5.2 定义加工 要定义加工逻辑,应选择适当的表达工具。人们熟悉自然语言,使用方便,但由于语言自身的随意性,常常造成加工逻辑的二义性。 1 动作不确定。例如:“优惠销售”中的优惠标准没确定。 2 动作执行条件不确定。例如:“对老顾客优惠”,老顾客的标准没指明。
3 执行动作的条件组合有二义性。如“三好学生、英语过四级且总分在600分以上的学生可获奖金50元”。这里三个条件有四种组合,到底取哪种组合不清楚。 目前,常用的加工逻辑表达工具有结构化语言、判定树和判定表。
加工逻辑的定义又不能太严格、太专业化。因为这是逻辑设计,不是定义模块内部的算法。当然,这里的加工逻辑应当是将来模块内部算法定义的基础。加工逻辑的定义又不能太严格、太专业化。因为这是逻辑设计,不是定义模块内部的算法。当然,这里的加工逻辑应当是将来模块内部算法定义的基础。
5.2.1 结构化语言(Structured Language) 结构化语言是一种介于自然语言与程序设计语言之间的人造语言。它有一定的结构,因而较严谨;不太死板,便于理解和交流。 一、结构化语言使用的词汇和语句 .陈述句中的动词; .已在DD中定义的名词。如数据流名、文件名等; .一些保留字。
结构化语言使用的语句只有以下三类: .简单的陈述句; .判断语句; .循环语句。 一个陈述句说明要做的一件事情,它至少要包含一个动词来说明要执行的功能;还应该包含至少一个名词,用以指明动作的对象。如计算工资、打印资产负债表等。陈述句应尽量简短。
结构化语言有三种结构,即顺序结构、选择结构和循环结构以及它们的嵌套。结构化语言有三种结构,即顺序结构、选择结构和循环结构以及它们的嵌套。 二、顺序结构 顺序结构由一组有序的陈述句组成。下面是一顺序结构的加工逻辑: 输人用电量; 计算电费, 输出电费.
3.DO CASE CASE<条件> 动作A CASE<条件> 动作B ……. ENDCASE 三、选择结构 与程序设计语言类似 1.IF<条件> 动作A ENDIF 2.IF<条件> 动作A ELSE 动作B ENDlF
四、循环结构 DO while <条件> 动作 ENDOO 例如: DO while 全班每个学生 计算总分; 计算平均分 输出总分和平均分. ENDDO
五、使用结构化语育的注童事项 用结构化语言定义加工所形成的数据字典具有较强的可读性和易修改性,也便于与用户交流.但由于它的语法规则比较自由,也给使用带来一定困难.在使用时必须注意: 1. 语句力求准确、向练,不使用形容词和副词作修饰.
2. 在整个DD中,不能使用意义相同的多个动词,而要自始至终使用同一个动词.例如修改、改变、修正是同义词。在DD中要自始至终使用其中的一个,不能随便使用。 3. 选择结构、循环结构用缩格书写,以提高可读性。
5.2.2 判定树 有些加工逻辑选择条件较多,用结构化语言描述不容易表达清楚。判定树(Decision Tree)用图形方式描述加工逻辑,具有直观、容易理解等特点。 判定树的图形是一棵横向树,左端树根是加工的名字,中间是条件及条件的组合,右端是相应的动作。
5.2.2 判定树 例: 某商业公司的销售策略规定:不同的购货量、不同的顾客可以享受不同的优惠。具体办法是:年购货额在5万元以上且最近三个月无欠款的顾客可享受85折;若近三个月有欠款,若是本公司十年以上的老顾客,可享受90折;若不是老顾客,只有95折。年购货额不足5万元者无折扣。
5.2.2 判定树 判定树
5. 2.3 判定表(Decision Table) 判定表用表格的形式表达加工逻辑。判定表分为四部分:左上角为各种条件,左下角为各种动作,右上角为某件的组合,右下角为相应条件下的动作. 一、初始判定表
二、判定表的优化 始判定表中若有相互矛盾的条件组合应予删除;有些条件组合可以合并.例如,表右栏第1、2列的两种条件组合所采取的动作是一样的(只要C1、C2成立,可以不考虑C3)可以合并.同理,第5、6、7、8栏也可以合并.
例 某厂职工调配的政策如下: 1 若年龄不满18岁,文化程度是小学的,脱产学习; 是中学的当电工。 2 若年龄满18岁但不满40岁,若文化程度是小学或中学,若是男性,则当钳工,若是女性,则当车工。 3 若年龄满40岁及以上者,文化程度是小学或中学的,则当材料员。 4 凡大学毕业生,都当技术员。
:年龄 :学历
二、判定表的优化 第7 16列合并,8 17列合并,优化的判定表如下:
注意,表中第4、5列是不能合并的。我们不能说:当C1=1和C2=2时可以不考虑C3,注意,表中第4、5列是不能合并的。我们不能说:当C1=1和C2=2时可以不考虑C3, 因为C3有三个取值(此时只有两个)。第6、7列,8、9列的情况类似。就是说,只有当某个条件的所有取值都不起作用是才可以取消(不考虑)这个条件。
5.2.4 三种描述工具的比较 各具特色,现就八项指标列表比较如下:
注意: 在定义加工逻辑时,如果条件过多,应当考虑加工的分界是否到位?分解加工可以简化加工逻辑。
5.2.5 定义加工 在MDFD中,加工逐层分解,其加工逻辑只有当它被分解成基本加工时才是明确的。基本加工定义了,其父加工也就被定义了。因此规定:定义所有的基本加工。加工的完整定义包括以下内容: :各加工在DFD中的编号,应具有唯一性;
5.2.5 加工定义内容 1、编号 2、名称 3、[内部名] 4、加工逻辑 5、[输入数据流] 6、[输出数据流] 7、[关联加工] 8、[关联文件] 9、[备注] 加工逻辑指工作过程。类似模块的流程图。
如果加工逻辑简单,可直接写入表中 如果较复杂,就须用判定表或判定树定义,则判定表或判定树单独编号装订,在加工定义表中指出定义该加工的判定表的表号或判定树的图号.
应当指出:对加工逻辑的定义,不能太严格,不能用流程图定义加工逻辑。原因有二:其一流程图太专业化;应当指出:对加工逻辑的定义,不能太严格,不能用流程图定义加工逻辑。原因有二:其一流程图太专业化; 其二分析阶段不过多地考虑实现阶段的问题。