信息系統(tǒng)分析的輔助工具
第三節(jié) 信息系統(tǒng)分析的輔助工具
一套數(shù)據(jù)流圖描述了一個(gè)系統(tǒng)的邏輯模型,但是有關(guān)數(shù)據(jù)流圖的所有細(xì)節(jié)還要依靠其他文檔來加以描述,如用數(shù)據(jù)字典描述數(shù)據(jù)流圖中的數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)等細(xì)節(jié),而在過程描述中表述數(shù)據(jù)的加工處理細(xì)節(jié)。
一、數(shù)據(jù)字典
數(shù)據(jù)字典是信息系統(tǒng)關(guān)于系統(tǒng)數(shù)據(jù)的中心存儲(chǔ)倉庫。數(shù)據(jù)字典用來收集、存檔、組織有關(guān)系統(tǒng)的具體事實(shí),包括數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、外部實(shí)體等詳細(xì)的內(nèi)容。數(shù)據(jù)字典還定義和描述數(shù)據(jù)項(xiàng)和數(shù)據(jù)項(xiàng)的組合。數(shù)據(jù)項(xiàng)是信息系統(tǒng)中有意義的最小單位的數(shù)據(jù)。數(shù)據(jù)項(xiàng)可組合成記錄或數(shù)據(jù)結(jié)構(gòu),記錄是有關(guān)數(shù)據(jù)項(xiàng)的有意義的組合,它存在于數(shù)據(jù)流或數(shù)據(jù)存儲(chǔ)。
例如,“成績”、“工資”、“社會(huì)保險(xiǎn)號(hào)”、“賬戶余額”、“公司名稱”等是數(shù)據(jù)項(xiàng)。而一張“汽車配件存貨單”記錄包含了數(shù)據(jù)項(xiàng)“零部件號(hào)”、“規(guī)格”、“供應(yīng)商編號(hào)”、“庫存量上下限”、“成本”、“報(bào)價(jià)”。所以“汽車配件存貨單”是一個(gè)組合的數(shù)據(jù)項(xiàng)。
注意,數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)流是以數(shù)據(jù)結(jié)構(gòu)為基礎(chǔ)并由數(shù)據(jù)項(xiàng)組成的。數(shù)據(jù)流連接數(shù)據(jù)存儲(chǔ)、外部實(shí)體、處理等。
數(shù)據(jù)字典描述了系統(tǒng)中的數(shù)據(jù)項(xiàng)、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、外部實(shí)體等相關(guān)數(shù)據(jù)的定義、性質(zhì)、功能、作用等。
1.?dāng)?shù)據(jù)項(xiàng)描述
數(shù)據(jù)字典中的每個(gè)數(shù)據(jù)項(xiàng)必須進(jìn)行描述??墒褂脴?biāo)準(zhǔn)格式定義數(shù)據(jù)項(xiàng),也可使用某些工具(如CASE軟件)來記錄相同的信息。
在數(shù)據(jù)字典中描述的有如下內(nèi)容。
(1)數(shù)據(jù)項(xiàng)名或編號(hào):數(shù)據(jù)項(xiàng)的名稱,它對(duì)用戶來說應(yīng)是有意義,且易于記憶的。
(2)可選名:數(shù)據(jù)項(xiàng)標(biāo)準(zhǔn)名稱之外的可選名稱,又稱別名。例如,有一個(gè)名為“當(dāng)前余額”的數(shù)據(jù)項(xiàng),不同的用戶可使用其他別名,如,“客戶余額”、“欠款總額”、“應(yīng)收賬款余額”等。
(3)類型和長度:類型是指數(shù)值型、字符型、邏輯型等;長度是指字符的最大長度,對(duì)于是數(shù)值型的最大值要加上小數(shù)甚至還要加上小數(shù)點(diǎn)的最大位數(shù)。除了文本和數(shù)值等以外,聲音和圖像也可以數(shù)字的方式存儲(chǔ)。在一些系統(tǒng)中,這些二進(jìn)制數(shù)據(jù)對(duì)象的管理和處理同其他數(shù)據(jù)類型對(duì)象一樣。例如,一個(gè)“員工”記錄可以包含該員工的數(shù)字化相片。
(4)輸出格式或編輯掩碼:用戶打印輸出或在屏幕上顯示數(shù)據(jù)項(xiàng)的格式。例如:電話號(hào)碼可以被存儲(chǔ)為91912345678,但是它的輸出格式為(919)12345678。
(5)缺省值:當(dāng)沒有輸入任何值時(shí)數(shù)據(jù)項(xiàng)的默認(rèn)值或初始值。例如,對(duì)于所有的新客戶的“信貸限額”,數(shù)據(jù)項(xiàng)的初始的默認(rèn)值都是¥500。
(6)提示、列標(biāo)題或字段名:當(dāng)信息系統(tǒng)輸出數(shù)據(jù)項(xiàng)時(shí),提示、列標(biāo)題或字段名將顯示在屏幕上。
(7)源:數(shù)據(jù)項(xiàng)值來源的說明。源可以是一份表格、一個(gè)部門、外部組織、另一個(gè)信息系統(tǒng)以及計(jì)算的結(jié)果。
(8)安全性:個(gè)人或部門在存取或更新數(shù)據(jù)項(xiàng)時(shí)的權(quán)限表示。任何人都必須在其規(guī)定的權(quán)限范圍內(nèi)使用該數(shù)據(jù)。
(9)負(fù)責(zé)的用戶:標(biāo)識(shí)應(yīng)負(fù)責(zé)輸入或更新數(shù)據(jù)項(xiàng)的用戶。
(10)數(shù)據(jù)的有效性和有效范圍:它指定了哪些有效的數(shù)值可以賦予數(shù)據(jù)項(xiàng),數(shù)據(jù)項(xiàng)的取值范圍。例如:?jiǎn)T工的工資必須在其工資等級(jí)范圍之內(nèi)。
(11)派生的公式:如果數(shù)據(jù)項(xiàng)的值是計(jì)算的結(jié)果,應(yīng)指明計(jì)算公式。
(12)注釋:它是數(shù)據(jù)項(xiàng)描述的一部分,可以提供附加的定義和描述。
2.?dāng)?shù)據(jù)流描述
除了數(shù)據(jù)項(xiàng)描述以外,還必須對(duì)數(shù)據(jù)字典中的每個(gè)數(shù)據(jù)流進(jìn)行描述。對(duì)數(shù)據(jù)流的描述可以用標(biāo)準(zhǔn)格式或軟件工具來定義。盡管不同的軟件工具使用不完全相同的術(shù)語,但是每個(gè)數(shù)據(jù)流卻有著共同的特性,都需要對(duì)這些共性加以描述。
(1)數(shù)據(jù)流名或編號(hào):它就是寫在數(shù)據(jù)流圖上的數(shù)據(jù)流的名稱。
(2)可選名:數(shù)據(jù)流的別名。
(3)簡(jiǎn)寫或標(biāo)識(shí):這是數(shù)據(jù)流名稱的代碼,在自動(dòng)化的數(shù)據(jù)字典中可以用來快速地存取某個(gè)數(shù)據(jù)流。
(4)描述:它描述了數(shù)據(jù)流的內(nèi)含和作用。
(5)源:數(shù)據(jù)流的開始處或是源頭。源頭可以是處理、數(shù)據(jù)存儲(chǔ)、外部實(shí)體。
(6)目的地:數(shù)據(jù)流在數(shù)據(jù)流圖中的終點(diǎn)。目的地可以是處理、數(shù)據(jù)存儲(chǔ)、外部實(shí)體。
(7)記錄:每個(gè)數(shù)據(jù)流表示一組相關(guān)的數(shù)據(jù)項(xiàng)。在許多數(shù)據(jù)字典中,記錄的定義是獨(dú)立于數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)的。
(8)容量和使用頻率:它描述了數(shù)據(jù)流在單位時(shí)間內(nèi)可能被使用的次數(shù),以及總?cè)萘俊?/p>
3.?dāng)?shù)據(jù)存儲(chǔ)描述
在數(shù)據(jù)流圖中并沒有對(duì)各個(gè)數(shù)據(jù)存儲(chǔ)進(jìn)行描述。因此在數(shù)據(jù)字典中就要定義數(shù)據(jù)存儲(chǔ)的各種特性。一個(gè)數(shù)據(jù)存儲(chǔ)的典型特性如下所述。
(1)數(shù)據(jù)存儲(chǔ)名稱:它就是在數(shù)據(jù)流圖中使用的數(shù)據(jù)存儲(chǔ)名。
(2)可選名:數(shù)據(jù)存儲(chǔ)的別名。
(3)簡(jiǎn)寫或標(biāo)識(shí):它是數(shù)據(jù)存儲(chǔ)名稱的代碼,在自動(dòng)化的數(shù)據(jù)字典中可以幫助快速地存取一個(gè)數(shù)據(jù)存儲(chǔ)。
(4)描述:它描述數(shù)據(jù)存儲(chǔ)的內(nèi)含和作用。
(5)輸入數(shù)據(jù)流:流入數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)流名稱。
(6)輸出數(shù)據(jù)流:流出數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)流名稱。
(7)記錄:在數(shù)據(jù)字典中數(shù)據(jù)存儲(chǔ)的記錄名稱。
(8)容量和使用頻率:它描述了存儲(chǔ)在數(shù)據(jù)存儲(chǔ)中記錄的大致容量,以及數(shù)據(jù)存儲(chǔ)的增長和更新速度。
4.外部實(shí)體描述
信息系統(tǒng)加工的數(shù)據(jù)來源于系統(tǒng)的外部實(shí)體。因此作為一個(gè)完整的數(shù)據(jù)字典還需要包含對(duì)外部實(shí)體的描述。外部實(shí)體的典型特性如下所述。
(1)外部實(shí)體名:它是在數(shù)據(jù)流圖中使用的外部實(shí)體的名稱。
(2)可選名:它是外部實(shí)體的別名。
(3)描述:它說明外部實(shí)體的內(nèi)含和主要作用。
(4)輸入數(shù)據(jù)流:它是流入外部實(shí)體的數(shù)據(jù)流名。
(5)輸出數(shù)據(jù)流:它是流出外部實(shí)體的數(shù)據(jù)流名。
(6)在信息系統(tǒng)的文檔中,數(shù)據(jù)字典如同是一個(gè)中央存儲(chǔ)倉庫。除了描述和說明每個(gè)數(shù)據(jù)項(xiàng)、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、外部實(shí)體等特性以外,數(shù)據(jù)字典還描述了這些成分的相互關(guān)系??梢詮臄?shù)據(jù)字典中獲得許多有價(jià)值的報(bào)告,例如:
●所有數(shù)據(jù)項(xiàng)按照名稱排序的清單。
●必須被某個(gè)部門更新的數(shù)據(jù)項(xiàng)的報(bào)告。
●使用某個(gè)數(shù)據(jù)項(xiàng)的數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)的報(bào)告。
●數(shù)據(jù)項(xiàng)、記錄、數(shù)據(jù)流、處理或別的數(shù)據(jù)字典中的任一條目的特性的詳細(xì)報(bào)告。
二、過程描述
每個(gè)數(shù)據(jù)流圖的單一功能處理代表一個(gè)特殊的過程,必須對(duì)每個(gè)單一功能的處理進(jìn)行描述,以便得到信息系統(tǒng)完整的邏輯模型。在對(duì)單一功能處理進(jìn)行描述時(shí),要力求做到簡(jiǎn)潔、精確、完整。
在處理過程的描述中,往往使用模塊化設(shè)計(jì)思想對(duì)單一功能處理的細(xì)節(jié)進(jìn)行描述。模塊化設(shè)計(jì)主要由3個(gè)邏輯結(jié)構(gòu)組成。順序結(jié)構(gòu):按線性的順序,一個(gè)接一個(gè)地執(zhí)行處理步驟;選擇結(jié)構(gòu):按條件的判斷結(jié)果來決定執(zhí)行哪個(gè)處理步驟;循環(huán)結(jié)構(gòu):處理步驟一直循環(huán)執(zhí)行,直到循環(huán)的條件判斷為“假”。3種邏輯結(jié)構(gòu)的流程如圖8 11所示。
結(jié)構(gòu)化分析的所有處理描述工具都是基于上述3種邏輯結(jié)構(gòu)的。最常用的處理描述工具是結(jié)構(gòu)化語言、決策表、決策樹。
1.結(jié)構(gòu)化語言
結(jié)構(gòu)化語言可以清晰地、精確地描述邏輯處理過程。當(dāng)使用結(jié)構(gòu)化語言時(shí),必須遵循以下規(guī)則。
●只使用順序、選擇、循環(huán)這3種程序結(jié)構(gòu);
●使用縮進(jìn)格式,以增強(qiáng)可讀性;
●使用有限的詞匯,包括在數(shù)據(jù)字典中的標(biāo)準(zhǔn)術(shù)語以及說明處理過程的特定詞匯。
表8 1是一個(gè)結(jié)構(gòu)化語言描述加工邏輯的例子,用來說明“核對(duì)訂單”的處理過程。
讀者不妨用DFD來對(duì)此加工邏輯進(jìn)行描述,并請(qǐng)與結(jié)構(gòu)化語言的描述進(jìn)行比較,以體會(huì)兩者的優(yōu)劣。
結(jié)構(gòu)化語言很像在設(shè)計(jì)程序時(shí)所用的偽代碼。結(jié)構(gòu)化語言和偽代碼的不同之處在于前者表達(dá)邏輯處理,它必須被用戶所理解,后者只需被程序員理解就可以了。
圖8 11 3種邏輯結(jié)構(gòu)的流程
表
8 1 “核對(duì)訂單”處理過程
注意:在結(jié)構(gòu)化語言中,漢語單詞是來自數(shù)據(jù)字典中定義的術(shù)語,它用來確保處理描述和數(shù)據(jù)字典的一致性。其他術(shù)語,如for each、if、output等是用來描述處理的邏輯。如果按照這種結(jié)構(gòu)化語言的規(guī)則來寫,用戶就容易理解處理描述了。此外,遵循這樣的規(guī)則對(duì)于根據(jù)處理描述而繼續(xù)設(shè)計(jì)信息系統(tǒng)的分析員和程序員來說也不會(huì)產(chǎn)生誤解。
2.決策表
決策表是通過把每個(gè)條件都一一羅列出來,然后根據(jù)所羅列的條件進(jìn)行各種可能的組合,以此來表示加工的邏輯結(jié)構(gòu)。
仍以表8 1所示的例子來學(xué)習(xí)決策表的應(yīng)用。從結(jié)構(gòu)化語言的描述來看,當(dāng)“信用狀態(tài)”是“OK”,并且?guī)齑嬷杏小爱a(chǎn)品”就可以接受訂單,其他任何情況下都是拒絕訂單的。表8 2給出了“核對(duì)訂單”的決策表描述。
表8 2 “核對(duì)訂單”的決策表描述
從表8 2中可以看到,決策表由4部分構(gòu)成。如表8 3所示。其左上角是基本的條件區(qū)域,在這里需要將每一個(gè)基本的條件一筆一筆地羅列出來。右上角是實(shí)際上可能會(huì)出現(xiàn)的情況。這些情況實(shí)際上就是左邊基本條件的不同情況的組合。在本例中,由于只有兩個(gè)基本條件,而
表8 3 決策表的構(gòu)成
這兩個(gè)條件分別有各自的兩個(gè)方面,因此組合后有4種實(shí)際的情況出現(xiàn)。左下角是基本的行動(dòng)區(qū)域,在這里羅列出每個(gè)要采取的基本行動(dòng)。在本例中就是“接收訂單”和“拒絕訂單”。表中的右下角是根據(jù)具體的情況所采取的具體決策行動(dòng)。顯然,只要能夠?qū)⒏鱾€(gè)基本的條件羅列出來,一般就可以寫出不同的條件組合,而這些組合的條件往往可以代表實(shí)際中可能會(huì)出現(xiàn)的某種情況。請(qǐng)讀者考慮:在實(shí)際情況中,會(huì)不會(huì)出現(xiàn)兩種或兩種以上的條件組合(即具體的情況同時(shí)滿足多個(gè)規(guī)則)?
有了決策表,具體的加工處理就可根據(jù)表中右下角的決策行動(dòng)寫出相關(guān)的加工邏輯。本例的加工邏輯如表8 1所示。
如果在需求分析時(shí),根據(jù)實(shí)際情況,可能會(huì)增加一些新的基本條件,即原來的處理沒有這一功能,現(xiàn)在由于業(yè)務(wù)的發(fā)展需要增加一個(gè)新的功能。假設(shè)在本例中,部門的經(jīng)理可以根據(jù)實(shí)際情況對(duì)客戶的信用狀況進(jìn)行調(diào)整。這增加了一個(gè)基本的條件,其他的基本條件不變,所采取的決策行動(dòng)是在原有的基礎(chǔ)上增加一些新行動(dòng),所制作的決策表如表8 4所示。
表8 4 “核對(duì)訂單”決策表
從表8 4中可以發(fā)現(xiàn),只要增加一個(gè)基本條件,那么相關(guān)的條件組合就會(huì)成倍地增加。因?yàn)楸纠忻總€(gè)條件有兩種可能的值,所以當(dāng)增加一個(gè)新的條件時(shí),規(guī)則數(shù)目就會(huì)翻一倍。這里,一個(gè)條件有兩個(gè)規(guī)則,兩個(gè)條件有4個(gè)規(guī)則,3個(gè)條件有8個(gè)規(guī)則等等。由于增加一個(gè)基本條件,組合條件就會(huì)成倍地增加,組合條件所代表的實(shí)際情況也會(huì)越來越復(fù)雜,因此當(dāng)基本的條件達(dá)到一定數(shù)量以后,決策表就會(huì)變得非常龐大,這時(shí)反而不利于對(duì)各種情況進(jìn)行分析,特別是盡量不能遺漏各種組合條件。所以決策表的應(yīng)用應(yīng)該是適可而止的。
有了如表8 4所示的決策表以后,如果按照該表來考慮相關(guān)的加工處理可能會(huì)比較復(fù)雜。通過仔細(xì)觀察,可以發(fā)現(xiàn)如表8 4所示的決策表可以在不影響其加工邏輯的情況下做一些簡(jiǎn)化。在表8 4所示的決策表中,規(guī)則1和規(guī)則2可以合并,因?yàn)樵凇靶庞脿顟B(tài)”是“OK”的情況下,“經(jīng)理調(diào)整信用”實(shí)際上沒有什么意義,這些值也就沒必要了;同樣,如果庫存中沒“產(chǎn)品”,“信用狀態(tài)”的值是什么也無關(guān)緊要了。所以,原表中規(guī)則3、規(guī)則4、規(guī)則7、規(guī)則8也可以合并。最后,8種可能性的表格簡(jiǎn)化成只有4種邏輯組合,如表8 5所示。
表8 5 簡(jiǎn)化后的“核對(duì)訂單”決策表
根據(jù)表8 5所示的條件,可以得到如下的加工邏輯:
IF信用狀態(tài)=“OK”AND產(chǎn)品清單=“庫存有貨”O(jiān)R;
信用狀態(tài)<>“OK”AND產(chǎn)品清單=“庫存有貨”AND經(jīng)理調(diào)整信用狀況;
THEN接收訂單;
ELSE拒絕訂單。
實(shí)際上邏輯判斷條件還可以進(jìn)一步簡(jiǎn)化成:
IF產(chǎn)品清單=“庫存有貨”AND
(信用狀態(tài)=“OK”O(jiān)R信用狀態(tài)<>“OK”AND經(jīng)理調(diào)整信用狀況);
THEN接收訂單;
ELSE拒絕訂單。
請(qǐng)讀者考慮:在表8 4中,是否還有其他的規(guī)則合并方法?如果有,簡(jiǎn)化后請(qǐng)寫出其加工邏輯,并與上述的加工邏輯進(jìn)行比較。
在進(jìn)行規(guī)則簡(jiǎn)化時(shí),必須仔細(xì)地審查每個(gè)條件和結(jié)果的組合。如果有3個(gè)條件,但是只有一個(gè)或兩個(gè)能產(chǎn)生結(jié)果,剩下的沒起作用,那么可以用“—”符號(hào)來表示無用的規(guī)則,然后加以整理。
從例子中可以看到,決策表通常是描述復(fù)雜條件組合的比較好的方法。它不僅通俗易懂,而且建表也容易方便。
3.決策樹
決策樹是把決策表中的條件、結(jié)果、規(guī)則用圖形化的方式表達(dá)出來。它與自然界中的樹一樣,決策樹也有樹根、樹枝和樹葉。所不同的是,決策樹是一棵水平生長的樹。決策樹用來顯示邏輯結(jié)構(gòu),是向管理層展示信息系統(tǒng)的一個(gè)好方法??梢哉J(rèn)為,決策樹和決策表是等價(jià)的,只是表達(dá)的方式不同而已。
決策樹的生長是從左向右的。最左邊的是樹根,各個(gè)條件處在不同的分枝上,最右邊的是結(jié)果。圖8 12所表示的就是表8 2所示的決策表的加工邏輯。同樣,這個(gè)例子中有兩個(gè)條件,即“信用狀況=OK?”和“產(chǎn)品清單=庫存有貨?”,有4個(gè)結(jié)果,所以在樹的最右邊有4個(gè)表示結(jié)果的樹枝。
圖8 12 決策樹(表
8 2)的加工邏輯
如果考慮經(jīng)理調(diào)整信用狀況的條件,可以加在有無庫存的后面,也可以放在信用的后面。請(qǐng)讀者完成圖8 13所示的剩余部分。
圖8 13 “核對(duì)訂單”的決策樹
以上所學(xué)習(xí)的分析工具既可以用來開發(fā)一個(gè)信息系統(tǒng)的邏輯模型,也可以用來開發(fā)一個(gè)信息系統(tǒng)的物理模型。下一章就要學(xué)習(xí)系統(tǒng)需求是如何被實(shí)現(xiàn)的,即建立起一個(gè)新的信息系統(tǒng)的物理模型。
在系統(tǒng)分析階段,需要盡力理解一個(gè)當(dāng)前系統(tǒng)的模型,而不論該系統(tǒng)是否為人工系統(tǒng),還是計(jì)算機(jī)的信息系統(tǒng),有了當(dāng)前系統(tǒng)的模型,就可以理解目前的任務(wù)是如何實(shí)現(xiàn)的。許多系統(tǒng)分析員在處理新系統(tǒng)的邏輯模型之前,都會(huì)建立一個(gè)目前系統(tǒng)的物理模型。然后,從該物理模型中抽象出目前系統(tǒng)的邏輯模型;再添加新系統(tǒng)的新需求,獲得新系統(tǒng)的邏輯模型;最后,再考慮新系統(tǒng)如何實(shí)現(xiàn),得到新系統(tǒng)的物理模型。整個(gè)過程用DFD表述就如圖8 14所示。
圖8 14 新系統(tǒng)物理模型的實(shí)現(xiàn)過程
在開發(fā)一個(gè)信息系統(tǒng)時(shí)如果遵循這樣的順序,將會(huì)得到4個(gè)模型的集合:目前系統(tǒng)的物理模型、目前系統(tǒng)的邏輯模型、未來系統(tǒng)的邏輯模型和未來系統(tǒng)的物理模型。有這4個(gè)模型的主要好處就是在修改目前或改進(jìn)目前系統(tǒng)之前,開發(fā)人員能夠?qū)δ壳跋到y(tǒng)的功能有一個(gè)更好的理解。因?yàn)樵谙到y(tǒng)開發(fā)中,早期的錯(cuò)誤隨著開發(fā)的不斷深入會(huì)被“放大”,由此導(dǎo)致用戶不滿,并且需要投入額外的費(fèi)用。另一個(gè)好處是未來系統(tǒng)的需求常常是建立在目前系統(tǒng)的基礎(chǔ)之上的,尤其是當(dāng)系統(tǒng)的更新是基于新的計(jì)算機(jī)技術(shù)而不是大量新的需求時(shí),這一點(diǎn)表現(xiàn)得更加明顯。
免責(zé)聲明:以上內(nèi)容源自網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵犯您的原創(chuàng)版權(quán)請(qǐng)告知,我們將盡快刪除相關(guān)內(nèi)容。