如前所述,分析模型包括数据模型、功能模型和行为模型。在上述任何一种模型中,数据对象或控制信息都有重要作用。因此,需要有一种系统化的方式来表示每个数据对象和控制信息的特性,数据字典正是用来完成这项任务的。
数据字典是为了描述在结构化分析过程中定义的对象的内容,而使用的一种半形式化的工具。下面是对这个重要的建模工具的定义。
数据字典是所有与系统相关的数据元素的有组织的列表,并且包含了对这些数据元素的精确、严格的定义,从而使得用户和系统分析员双方对输入、输出、存储的成分甚至中间计算结果有共同的理解。简而言之,数据字典是描述数据的信息的集合,是对系统中使用的所有数据元素的定义的集合。
目前,数据字典几乎总是作为CASE“结构化分析与设计工具”的一部分实现的。尽管不同工具中数据字典的形式不同,但是绝大多数数据字典都包含下列信息。
·名字——数据、控制项、数据存储或外部实体的主要名称。
·别名——第一项中对象的其他名字。
·使用地点与方式——使用数据或控制项的处理的列表,以及使用这些对象的方式(例如作为处理的输入,从处理输出,作为数据存储,作为外部实体)。
·内容描述——描述数据或控制项内容的符号。
·补充信息——关于数据类型、预置值、限制等的其他信息。
一旦把数据对象或控制项的名字和别名输进数据字典,就可以保持命名的一致性。也就是说,支持数据字典的cAsE工具能够发现重名现象并发出警告信息,这提高了分析模型的一致性,有助于减少错误。
“使用地点与方式”信息是从数据流图中自动提取的。表面看起来,数据字典工具的这项功能好像并不重要,实际上这是数据字典的最主要优点之一。在分析过程中几乎始终在进行修改,对于人型项目来说,确定修改的影响往往很困难,许多软件工程师都遇到过下述问题:“这个数据对象在什么地方使用?如果修改了它相应地还应该再修改哪些对象?这个改动在整体上有什么影响?”利用数据字典中的“使用地点与方式”信息,完全可以回答上述问题。
下面介绍用于书写“内容描述”信息的符号,也就是定义数据的方法。
定义绝大多数复杂事物的方法,都是用被定义事物成分的某种组合表示这个事物,这些组成成分又由更低层的成分的组合来定义。从这个意义上说,定义就是自顶向下的分解,所以数据字典中的定义就是对数据自顶向下的分解。那么,应该把数据分解到什么程度呢?一般说来,当分解到不需要进一步定义,每个和工程有关的人也都清楚其含义的元素时,这种分解过程就完成了。
由数据元素组成数据的方式只有下述三种基本类型。
·顺序 即以确定次序连接两个或多个分量。
·选择 即从两个或多个可能的元素中选取一个。
·重复 即把指定的分量重复零次或多次。
因此,可以使用上述三种关系算符定义数据字典中的任何条目。为了说明重复次数,重复算符通常和重复次数的上下限同时使用(当上下限相同时表示重复次数固定)。当重复的上下限分别为1和O时,可以用重复算符表示某个分量是可选的(可有可无的)。但是,“可选”是由数据元素组成数据时一种常见的方式,把它单独列为一种算符可以使数据字典更清晰一些。因此,增加了下述的第四种关系算符:
·可选即一个分量是可有可无的(重复零次或一次)。
虽然可以使用自然语言描述由数据元素组成数据的关系,但是为了更加清晰简洁起见,建议采用下列符号:
=意思是等价于(或定义为);
+意思是和(即,连接两个分量);
[ ]意思是或(即,从方括弧内列出的若干个分量中选择一个)通常用“|”号分开供选择的分量;
{ }意思是重复(即,重复花括弧内的分量);
( )意思是可选(即,圆括弧里的分量可有可无)。
常常使用上限和下限进一步注释表示重复的花括弧。一种注释方法是在开括弧的左边用上角标和下角标分别表明重复的上限和下限;另一种注释方法是在开括弧左侧标明重复的下限,在闭括弧的右侧标明重复的上限。例如
5
1|{A}和1{A}5含义相同。
下面举例说明上述描述数据内容的符号的使用方法:某种程序设计语言规定,用户说明的标识符是长度不超过8个字符的字符串,第一个字符必须是字母字符,随后的字符既可以是字母字符也可以是数字字符。利用上面讲述的符号,可以像下面那样定义标识符:
标识符=字母字符+字母数字串
字母数字串=0{字母或数字}7
字母或数字=[字母字符l数字字符]
由于和项目有关的人都知道字母字符和数字字符的含义,因此,关于标识符的定义分解到这种程度就可以结束了。
在丌发大型软件系统的过程中,数据字典的规模和复杂程度迅速增加,事实上,人工维护数据字典几乎是不可能的,因此,应该使用CASE工具来创建和维护数据字典。
最后给出一个google上的数据字典的图片示例: