数据字典

数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

任何字典最主要的用这都是供人查阅对不了解的条目的解释,数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。
数据流图和数据字典共同构成系统的逻辑模型,没有数据字典,数据流图就不严格,然而没有数据流图,数据字典也难于发挥作用。只有数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。

数据字典的内容

一般说来,数据字典应该由对下列4类元素的定义组成。
(1)数据流;
(2)数据流分量(即数据元素);
(3)数据存储;
(4)处理。

但是,对数据处理的定义用其他工具(如IPO图或PDL)描述更方便,因此本书中数据字典将主要由对数据的定义组成,这样做可以使数据字典的内容更单纯,形式更统.。除了数据定义之外,数据字典中还应该包含关于数据的一些其他信息。典型的情况是,在数据字典中记录数据元素的下列信息:一般信息(名字,别名,描述等),定义(数据类型,长度,结构等) ,使用特点(值的范围,使用频率,使用方式一一输人、输出 、本地,条件值等),控制信息(来源,用户,使用它的程序,改变权,使用权等)和分组信息(父结构,从属结构,物理位置一记录 、文件和数据库等)。
数据元素的别名就是该元素的其他等价的名字,出现别名主要有下述3个原因:
(1)对于同样的数据,不同的用户使用了不同的名字。
(2)一个分析员在不同时期对同一个数据使用了不同的名字。
(3)两个分析员分别分析同一个数据流时,使用了不同的名字。
虽然应该尽量减少出现别名,但是不可能完全消除别名。

定义数据的方法

定义绝大多数复杂事物的方法,都是用被定义的事物的成分的某种组合表示这个事物,这些组成成分又由更低层的成分的组合来定义。从这个意义上说,定义就是自顶向下的分解,所以数据字典中的定义就是对数据自顶向下的分解。那么,应该把数据分解到什么程度呢?一般说来, 当分解到不需要进一步定义,每个和工程有 关的人也都清楚其含义的元素时,这种分解过程就完成了。
由数据元素组成数据的方式只有下述3种基本类型:

(1)顺序即以确定次序连接两个或多个分 量。
(2)选择即从两个或多个可能的元素中选取一个。
(3)重复即把指定的分量重复零次或多次。

因此,可以使用上述3种关系算符定义数据字典中的任何条目。为了说明重复次数,重复算符通常和重复次数的上下限同时使用(当上下限相同时表示重复次数固定)。当重复的上下限分别为1和0时,可以用重复算符表示某个分量是可选的(可有可无的)。但是,“可选”是由数据元素组成数据时一种常见的方式,把它单独列为一种算符可以使数据字典更清晰一些。因此,增加了下述的第4种关系算符。(

(4)可选即一个分量是可有可无的(重复零次或一次)。

虽然可以使用自然语言描述由数据元素组成数据的关系,但是为了更加清晰简洁,建议采用下列符号:
=  意思是等价于(或定义为);
+  意思是和(即连接两个分量);
[ ]  意思是或(即从方括弧内列出的若干个分量中选择-个), 通常用“1”号隔开供选择的分量;
{ }  意思是重复(即重复花括弧内的分量);
( )  意思是可选(即圆括弧里的分量可有可无)。

常常使用上限和下限进一步注释表示重复的花括弧。 一种注释方法是在开括弧的左边用上角标和下角标分别表明重复的上限和下限;另一种注释方法是在开括弧左侧标明重复的下限,在闭括弧的右侧标明重复的上限。例如{A}和1{A}5含义相同。

下面举例说明上述定义数据的符号的使用方法:某程序设计语言规定,用户说明的标识符是长度不超过8个字符的字符串,其中第一个字符必须是字母字符,随后的字符既可以是字母字符也可以是数字字符。使用上面讲过的符号,可以像下面那样定义标识符:
标识符=字母字符+字母数字串
字母数字串=0{字母或数字}7
字母或数字=[字母字符|数字字符]

由于和项目有关的人都知道字母字符和数字字符的含义,因此,关于标识符的定义分解到这种程度就可以结束了。

数据字典的用途

数据字典最重要的用途是作为分析阶段的工具。在数据字典中建立的一组严密一致的定义很有助于改进分析员和用户之间的通信,因此将消除许多可能的误解。对数据的这一系列严密一致的定义也有助于改进在不同的开发人员或不同的开发小组之间的通信。如果要求所有开发人员都根据公共的数据字典描述数据和设计模块,则能避免许多麻烦的接口问题。

数据字典中包含的每个数据元素的控制信息是很有价值的。因为列出了使用一个给定的数据元素的所有程序(或模块),所以很容易估计改变一个数据将产生的影响,并且能对所有受影响的程序或模块作出相应的改变。最后,数据字典是开发数据库的第一步,而且是很有价值的一步。

数据字典的实现

目前,数据字典几乎总是作为CASE结构化分析与设计工具”的一-部分实现的。在开发大型软件系统的过程中,数据字典的规模和复杂程度迅速增加,人工维护数据字典几乎是不可能的。如果在开发小型软件系统时暂时没有数据字典处理程序,建议采用卡片形式书写数据字典,每张卡片上保存描述一一个数据的信息。 这样做会使更新和修改比较方便,而且能单独处理描述每个数据的信息。每张卡片上主要应该包含下述这样-些信息:名字、别名、描述、定义、位置。当开发过程进展到能够知道数据元素的控制信息和使用特点时,再把这些信息记录在卡片的背面。

软件工程(数据字典)相关推荐

  1. [软件工程 复习] 记录

    文章目录 第一章 1.1 软件危机 消除软件危机的途径 1.2 软件工程 1.3 软件工程知识体系 第二章 2.1 软件生命周期(SDLC,Systems Development Life Cycle ...

  2. 【软件工程】软件工程中应用的几种图辨析:系统流程图、数据流图、数据字典、实体联系图、状态转换图、层次方框图、Warnier图、IPO图、层次图、HIPO图、结构图、程序流程图、盒图、PAD图、判定表、

    软件工程中应用的几种图辨析:系统流程图.数据流图.数据字典.实体联系图.状态转换图.层次方框图.Warnier图.IPO图.层次图.HIPO图.结构图.程序流程图.盒图.PAD图.判定表.判定树.Ja ...

  3. 【软件工程】数据流图 ( 数据字典 | 数据流图平衡原则 | 父图与子图平衡 | 子图内平衡 | 数据流图绘制原则 )

    文章目录 一.数据字典 二.数据流图平衡原则 1.父图 ( 上层数据流图 ) 与 子图 ( 下层数据流图 ) 平衡 2.子图内平衡 三.数据流图绘制原则 一.数据字典 数据字典 可以 配合 数据流图 ...

  4. (软件工程复习核心重点)第二章可行性研究-第四节:数据字典

    文章目录 一:相关概念 (1)定义 (2)作用 (3)意义(了解) 二:内容 三:定义数据的方法 (1)数据元素组成数据的方式 (2)符号表示 四:数据字典示例 五:用途 一:相关概念 (1)定义 数 ...

  5. 软件工程导论 00章数据流图与数据字典

    1.数据流图的概念 数据流图用于描述信息流和数据从输入移动到输出过程中所经受的变换 2.数据流图的绘制: ①基本图形符号 ②数据流之间的关系 ③几个特定名词 a. 数据流 是数据在系统内传播的路径,由 ...

  6. 舰队管理系统分析与设计-舰队管理系统分析与设计(Oracle),功能需求,数据字典,软件工程

    大型数据库技术项目 舰队管理系统分析与设计 舰队管理系统 1.项目背景介绍 中美海军实力对比分析: 中国海军虽然有了很大的进步,但是我们和世界先进的海军的实力有着很大差距,通过对比中美海军主战舰的数量 ...

  7. 【软件工程】VB版机房文档总结

    前言: 软工视频+软工文档+UML视频+UML图的学习过程图! 这部分的知识很厚,只是知道了个大概!最开始 慢悠悠的像个老爷爷走进度,后来遇到点什么事,妈呀,管不了那么多了,赶紧弄完在说,拖了多久了都 ...

  8. 华农软件工程实验报告_华南农业大学15年软件工程复习提纲

    2015 <软件工程>复习提纲 一.试卷的分值分布如下:判断题 10 分.选择题 10 分.名词解释和简答题 50 分.测 试用例设计 10 分. 结构化分析与设计 20 分. 大题里面, ...

  9. 如何编写一份软件工程实验报告

    软件工程实验报告,实际上写的是一份软件需求说明书. 首先是封面.说明自己的个人信息,项目,班级,姓名,指导教师. 然后是正文部分: 正文部分,第一,介绍一下自己要做的项目 第二,可行性研究.用最小的代 ...

最新文章

  1. 2022-2028年中国DMF行业市场研究及前瞻分析报告
  2. python怎么开发安卓程序_怎样用python开发安卓app-到底如何使用Python开发Android程序.txt...
  3. 8屏幕滚动_对标iOS?Android 11或无缘屏幕长截图
  4. C语言学习之分别用while、 for双重循环的方式编程绘制如下图形
  5. 处理中文乱码_为什么PDF转换成Word后是乱码?这种PDF要怎么转换?
  6. JAVA_WEB--jsp概述
  7. 关于我的知识星球服务
  8. python2和3_python2和python3的区别
  9. rstudio安装后打不开_R与RStudio最简单安装指南
  10. 随想录(skyeye中的soc仿真)
  11. Android 与 unity3d 基于微信授权、支付、分享,QQ分享,支付宝支付的交互
  12. vijos 1471 线性DP+贪心
  13. javascript爱心特效
  14. UNet++ 论文翻译
  15. java嵌套条件运算符_java条件运算符的嵌套使用
  16. DPI/DFI/端口识别技术
  17. FinalShell Mac OS版安装
  18. 安装Win10之后如何进入BIOS
  19. 大厂面试突击——集合篇
  20. 【阿旭机器学习实战】【15】人脸自动补全(多目标回归),并比较5种不同模型的预测效果

热门文章

  1. CleanMyMac X mac2021系统优化清理软件激活云盘分享推荐
  2. 期货开户加一分高交返靠谱吗?
  3. 什么情形下计算机会休眠,什么是计算机休眠状态
  4. 奥运五环-web前端
  5. SAP所有模块用户出口
  6. java输出五行十一列星星_星是什么意思 星字五行属什么
  7. MATLAB零相位数字滤波 filtfilt
  8. 二维小波变换_让你永远忘不了的傅立叶变换解析
  9. AV3680A天馈线测试仪使用方式
  10. JVM类加载过程,JDK和JER区别