U/C矩陣
1.什么是U/C矩陣
U/C矩陣是用來表達(dá)過程與數(shù)據(jù)兩者之間的關(guān)系。矩陣中的行表示數(shù)據(jù)類,列表示過程,并以字母U(Use)和C(Create)來表示過程對(duì)數(shù)據(jù)類的使用和產(chǎn)生。
U/C矩陣是MIS開發(fā)中用于系統(tǒng)分析階段的一個(gè)重要工具。提出了一種用關(guān)系數(shù)據(jù)庫實(shí)現(xiàn)U/C矩陣的方法,并對(duì)其存儲(chǔ)、正確性檢驗(yàn)、表上作業(yè)等做了分析,同時(shí)利用結(jié)果關(guān)系進(jìn)行了子系統(tǒng)劃分。
U/C矩陣是一張表格。它可以表數(shù)據(jù)/功能系統(tǒng)化分析的結(jié)果。它的左邊第一列列出系統(tǒng)中各功能的名稱,上面第一行列出系統(tǒng)中各數(shù)據(jù)類的名稱。表中在各功能與數(shù)據(jù)類的交叉處,填寫功能與數(shù)據(jù)類的關(guān)系。
2.U/C矩陣的正確性的檢驗(yàn)
U/C矩陣的正確性,可由三方面來檢驗(yàn):
(1) 完備性檢驗(yàn)。這是指每一個(gè)數(shù)據(jù)類必須有一個(gè)產(chǎn)生者(即“C”) 和至少有一個(gè)使用者(即“U”) ;每個(gè)功能必須產(chǎn)生或者使用數(shù)據(jù)類。否則這個(gè)U/C矩陣是不完備的。
(2) 一致性檢驗(yàn)。這是指每一個(gè)數(shù)據(jù)類僅有一個(gè)產(chǎn)生者,即在矩陣中每個(gè)數(shù)據(jù)類只有一個(gè)“C”。如果有多個(gè)產(chǎn)生者的情況出現(xiàn),則會(huì)產(chǎn)生數(shù)據(jù)不一致的現(xiàn)象。
(3) 無冗余性檢驗(yàn)。這是指每一行或每一列必須有“U” 或“C”,即不允許有空行空列。若存在空行空列,則說明該功能或數(shù)據(jù)的劃分是沒有必要的、冗余的。
將U/C矩陣進(jìn)行整理,移動(dòng)某些行或列,把字母“C” 盡量靠近U/C矩陣的對(duì)角線,可得到C符號(hào)的適當(dāng)排列。
3.利用U/C矩陣方法劃分子系統(tǒng)的步驟
利用U/C矩陣方法劃分子系統(tǒng)的步驟如下。
1.用表的行和列分別記錄下企業(yè)住處系統(tǒng)的數(shù)據(jù)類和過程。表中功能與數(shù)據(jù)類交叉點(diǎn)上的符號(hào)C表示這類數(shù)據(jù)由相應(yīng)功能產(chǎn)生,U表示這類功能使用相應(yīng)的數(shù)據(jù)類。如下圖
2.對(duì)表做重新排列,把功能按功能組排列。然后調(diào)換“數(shù)據(jù)類”的橫向位置,使得矩陣中C最靠近對(duì)角線。如下圖
3.將U和C最密集的地方框起來,給框起個(gè)名字,就構(gòu)成了子系統(tǒng)。落在框外的U說明了子系統(tǒng)之間的數(shù)據(jù)流。這樣就完成了劃分系統(tǒng)的工作。如下圖
4.U/C矩陣的主要功能
1.通過對(duì)U/C矩陣的正確性檢驗(yàn),及時(shí)發(fā)現(xiàn)前段分析和調(diào)查工作的疏漏和錯(cuò)誤。
2.通過對(duì)U/C矩陣的正確性檢驗(yàn)來分析數(shù)據(jù)的正確性和完整性。
3.通過對(duì)U/C矩陣的求解過程最終得到子系統(tǒng)的劃分。
4.通過對(duì)子系統(tǒng)之間的聯(lián)系(“U”)可以確定子系統(tǒng)之間的共享數(shù)據(jù)。
5.U/C矩陣的特點(diǎn)[1]
1.改進(jìn)了SA方法,實(shí)現(xiàn)了系統(tǒng)的科學(xué)的結(jié)構(gòu)化劃分
傳統(tǒng)的方法,結(jié)構(gòu)劃分是單純以已有的人工系統(tǒng)為依據(jù),不是非常精確、科學(xué)。而U/C矩陣法是以數(shù)據(jù)使用的密集程度為主要依據(jù),結(jié)合其他一些因素對(duì)系統(tǒng)進(jìn)行劃分。這樣劃分,數(shù)據(jù)的操作相對(duì)集中在某一個(gè)子系統(tǒng)中,子系統(tǒng)之間的數(shù)據(jù)文換比較少。這樣可以實(shí)現(xiàn)子系統(tǒng)之間的高內(nèi)聚,低藕合。
2.改進(jìn)了E-R圖方法,實(shí)現(xiàn)了數(shù)據(jù)不同級(jí)別的保護(hù)
U/C矩陣法,將各層面、各子系統(tǒng)所涉及的數(shù)據(jù)庫進(jìn)行了分析,有利于數(shù)據(jù)不同級(jí)別的保護(hù),體現(xiàn)了各層面、各子系統(tǒng)對(duì)數(shù)據(jù)的專用性。
3.將系統(tǒng)分析階段的結(jié)構(gòu)設(shè)計(jì)與數(shù)據(jù)庫設(shè)計(jì)有機(jī)結(jié)合
U/C矩陣法彌補(bǔ)了結(jié)構(gòu)設(shè)計(jì)在理解、表達(dá)用戶數(shù)據(jù)需求方面的缺陷,也克服了一圖數(shù)據(jù)庫設(shè)計(jì)層次不明確,完全與操作相脫離的弱點(diǎn)。使結(jié)構(gòu)設(shè)計(jì)與數(shù)據(jù)庫設(shè)計(jì)兩件工作合二為一,通過對(duì)U/C矩陣的分析可以一次完成,縮短了軟件開發(fā)周期。
4.U/C矩陣法形象直觀
通過U/C矩陣,形象地描繪出過程操作與數(shù)據(jù)類數(shù)據(jù)之間的關(guān)系。這樣,容易被用戶和程序員所接受,成為兩者溝通的橋梁,而且有利于用戶和程序員的共同合作,一起進(jìn)行系統(tǒng)分析,彌補(bǔ)了原先工作方式的不足。