數據字典
數據字典是關于數據的信息的集合,也就是對數據流圖中包含的所有元素的定義的集合。
任何字典最主要的用這都是供人查閱對不了解的條目的解釋,數據字典的作用也正是在軟件分析和設計的過程中給人提供關于數據的描述信息。
數據流圖和數據字典共同構成系統的邏輯模型,沒有數據字典,數據流圖就不嚴格,然而沒有數據流圖,數據字典也難于發揮作用。只有數據流圖和對數據流圖中每個元素的精確定義放在一起,才能共同構成系統的規格說明。
數據字典的內容
一般說來,數據字典應該由對下列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結構化分析與設計工具”的一-部分實現的。在開發大型軟件系統的過程中,數據字典的規模和復雜程度迅速增加,人工維護數據字典幾乎是不可能的。如果在開發小型軟件系統時暫時沒有數據字典處理程序,建議采用卡片形式書寫數據字典,每張卡片上保存描述一一個數據的信息。 這樣做會使更新和修改比較方便,而且能單獨處理描述每個數據的信息。每張卡片上主要應該包含下述這樣-些信息:名字、別名、描述、定義、位置。當開發過程進展到能夠知道數據元素的控制信息和使用特點時,再把這些信息記錄在卡片的背面。