軟件工程(數據字典)

數據字典

數據字典是關于數據的信息的集合,也就是對數據流圖中包含的所有元素的定義的集合。

任何字典最主要的用這都是供人查閱對不了解的條目的解釋,數據字典的作用也正是在軟件分析和設計的過程中給人提供關于數據的描述信息。
數據流圖和數據字典共同構成系統的邏輯模型,沒有數據字典,數據流圖就不嚴格,然而沒有數據流圖,數據字典也難于發揮作用。只有數據流圖和對數據流圖中每個元素的精確定義放在一起,才能共同構成系統的規格說明。

數據字典的內容

一般說來,數據字典應該由對下列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結構化分析與設計工具”的一-部分實現的。在開發大型軟件系統的過程中,數據字典的規模和復雜程度迅速增加,人工維護數據字典幾乎是不可能的。如果在開發小型軟件系統時暫時沒有數據字典處理程序,建議采用卡片形式書寫數據字典,每張卡片上保存描述一一個數據的信息。 這樣做會使更新和修改比較方便,而且能單獨處理描述每個數據的信息。每張卡片上主要應該包含下述這樣-些信息:名字、別名、描述、定義、位置。當開發過程進展到能夠知道數據元素的控制信息和使用特點時,再把這些信息記錄在卡片的背面。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534329.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534329.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534329.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Qt圖形界面編程入門(Qt的歷史、Qt安裝資源鏈接、Qt Creator簡介)

Qt的歷史淵源 Qt是1991年由挪威的奇趣科技(Trolltech)公司開發的跨平臺C圖形用戶界面(GUI)用程序開發框架,2008年,奇趣科技公司被諾基亞公可收購,Qt也因此成為諾基亞公司旗下的編程語言工具,曾稱霸一時的Symbian手機操作系統就是…

Qt圖形界面編程入門(創建一個簡單的程序)

1,手工編碼方式 利用手工編碼方式建立“Hello Qt!”程序 第一步: 得到界面 2,無UI的向導方式 從圖中,我們發現向導為窗口程序提供了3個基類,分別外QMainWindow、QWidget、QDialog,3個基類的區…

Linux基礎(Vim編輯器與Shell命令腳本)

1、Vim文本編輯器 Vim文本編輯器有三種模式 命令模型:控制光標移動,可對文本進行復制、粘貼、刪除和查找得等工作。 輸入模式:正常的文本錄入 末行模式:保存或退出文檔,以及設置編輯環境。 在每次運行Vim編輯器時&…

Python二級筆記(16)

知識點: 1,進程調度僅負責對CPU進行分配 2,帶鏈的隊列是采用鏈式存儲結構表示的隊列。鏈式存儲的存儲單元是不連續的,因為是不連續的存儲空間,所以指針將不會有規律的地連續變化。當front rear NULL時,…

Python二級筆記(17)

操作題: 1,接收用戶輸入的一個浮點數,輸出這個浮點數的小數部分各字符的和,以10為寬度,靠右顯示,,采用星號*填充。 代碼: s input("請輸入一個小數:") s s[::1] cs () for c in…

Python二級筆記(18,19合集操作篇)

操作題: 1,鍵盤輸入正整數n,按要求把n輸出到屏幕,格式要求:寬度為25個字符,等號字符()填充,右對齊,帶千位分隔符。如果輸入正整數超過25位,則按照真實長度輸…

Qt圖形界面編程入門(信號和槽通信機制)

信號和槽機制是Qt的核心機制,可以讓編程人員將互不相關的對象綁定在一起,實現對象之間的通信。 聲明了信號的對象,當其狀態改變時,信號就由該對象發送出去,而且該對象只負責發送信號,它不知道另一端是誰在…

Python二級筆記(18,19合集知識點篇)

知識點: 1,軟件測試的目的是發現程序中的錯誤。調試是作為成功測試的后過而出現的步驟,也就是,調試是在測試發現錯誤之后排除錯誤的過程。軟件調試的任務是診斷和改成程序中的錯誤。 2,深度等于控制的層數 3&#x…

軟件工程(成本/效益分析)

一般說來,人們投資于一項事業的目的是為了在將來得到更大的好處。開發一個軟件系統也是一種投資,期望將來獲得更大的經濟效益,經濟效益通常表現為減少運行費用或增加收入。但是,投資開發新系統往往需要冒一定的風險。系統的開發成…

Linux基礎(用戶身份和文件權限)

用戶身份與能力 Linux是一個多用戶、多任務的操作系統,具有很好的穩定性與安全性,在幕后保障Linux系統安全則是一系列復雜的配置工作。 Linux系統的管理員之所以是root,并不是因為它的名字叫root,而是因為該用戶的身份號碼即UID…

Centos 8 RHEL 8 破解root密碼

https://blog.csdn.net/u014042047/article/details/107309890/

TensorFlow實驗(1)

實驗1-2 搭建深度學習開發環境 1)安裝Anaconda 2)創建虛擬環境: 3)激活環境 4)安裝tensorflow 5)安裝jupyter notebook 安裝完成之后,運行第一個程序“Hello,World” 要求:詳細安裝步驟&…

TensorFlow實驗(2)

實驗3-4 數據結構-張量 1)已知兩個張量[1,3,5,7]和[2,4,4,8],編寫一個模型,計算兩個張量的加法,輸出結果,并在tensorboard中顯示 2)已知張量[1,2,3,4,5,6,7,8,9,10,11,12]有12個元素,利用tf.reshape()將其…

Linux基礎(文件權限續篇)

文件的特殊權限 在復雜多變的生產環境中,單純設置文件的rwx權限無法滿足我們對安全和靈活性的需求,因此便有了SUID,SGID,SBIT的特殊權限位。這是一種對文件權限進行設置的特殊功能,可以與一般權限同時使用,以彌補一般權限不能實現…

Linux基礎(存儲結構和磁盤劃分)

一切從“/”開始 在Linux系統中,目錄、字符設備、塊設備、套接字、打印機等都被抽象成了文件,一切皆為件 與windows操作系統不同,Linux系統內不存在C/D/E/F盤等,一切文件都是從根(/)目錄開始的 Linux系統…

軟件工程(需求分析)

需求分析 為了開發出真正滿足用戶需求的軟件產品,首先必須知道用戶的需求。對軟件需求的深人理解是軟件開發工作獲得成功的前提條件,不論人們把設計和編碼工作做得如何出色,不能真正滿足用戶需求的程序只會令用戶失望.給開發者帶來煩惱。 需求分析是軟…

TensorFlow構建二維數據擬合模型(1)

知識圖譜 TensorFlow運行機制 TensorFlow是基于計算圖的深度學習編程模型 Tensor表示張量,其實質上是某種類型的多維數組 Flow表示基于數據流圖的計算,實質上是張量在不同節點間的轉化過程。 在TensorFlow中,計算圖中的節點稱為OP&…

Qt圖形界面編程入門(標簽與槽機制習題分享)

標簽對象初始顯示0&#xff0c;每次單擊標簽對象后&#xff0c;其顯示內容就加1&#xff0c;依次變為1、2、3等。 #ifndef DIALOG_H #define DIALOG_H#include <QDialog> #include <QPushButton> //包含命令按鈕類 #include "MyLabel.h"class Dialo…

js中執行到一個if就停止的代碼_Node 中如何引入一個模塊及其細節

在 node 環境中&#xff0c;有兩個內置的全局變量無需引入即可直接使用&#xff0c;并且無處不見&#xff0c;它們構成了 nodejs 的模塊體系: module 與 require。以下是一個簡單的示例const fs require(fs)const add (x, y) > x ymodule.exports add雖然它們在平常使用…

二級MS Office公共基礎知識錯題本(1)

1&#xff0c;順序程序具有順序性、封閉性和可再現性的特點&#xff0c;不具備并發性 2&#xff0c;為了降低算法的空間復雜度&#xff0c;主要應減少輸入數據所占的存儲空間以及額外空間&#xff0c;通常采用壓編存儲技術。 3&#xff0c;樹的總的結點數為樹中所有結點的度數…