2015年計算機(jī)三級《信息管理》考試要點(diǎn)
結(jié)構(gòu)化分析是面向數(shù)據(jù)流進(jìn)行需求分析的方法。20世紀(jì)70年代末,經(jīng)Yourdon E.、Conˉstantine L.、DeMarco T.等人提出和發(fā)展,至今已得到廣泛應(yīng)用。結(jié)構(gòu)化分析方法的一些重要概念也滲透在其他開發(fā)方法中。例如,結(jié)構(gòu)化分析與設(shè)計技術(shù)(Structured Analysis and Design Technique,SADT)、面向?qū)ο蠹夹g(shù)(Object-Oreinted Technique,OOT)、IDEF方法等。
結(jié)構(gòu)化分析方法適合于數(shù)據(jù)處理類型軟件的需求分析。由于利用圖形表達(dá)需求,顯得清晰、簡明,易于學(xué)習(xí)和掌握。具體來說,結(jié)構(gòu)化分析方法就是用抽象模型的概念,按照軟件內(nèi)部數(shù)據(jù)傳遞、變換的關(guān)系,自頂向下逐層分解,直到找到滿足功能要求的所有可實(shí)現(xiàn)的軟件為止。根據(jù)DeMarco的論述,結(jié)構(gòu)化分析方法使用的工具有:數(shù)據(jù)流圖、數(shù)據(jù)詞典、結(jié)構(gòu)化英語、判定表、判定樹。結(jié)構(gòu)化分析方法有兩個明顯特點(diǎn)。
采用簡明易懂、直觀的描述方式
1.數(shù)據(jù)流圖
數(shù)據(jù)流圖也稱為Bubble Chart或data Flow Graph。是描述數(shù)據(jù)處理過程的工具。數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,以圖形的方式刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。
(1)數(shù)據(jù)流圖的主要圖形元素
從數(shù)據(jù)流圖中可知,數(shù)據(jù)流圖的基本圖形元素有4種。
數(shù)據(jù)流是沿箭頭方向傳送數(shù)據(jù)的通道,它們大多是在加工之間傳輸加工數(shù)據(jù)的命名通道,也有連接數(shù)據(jù)存儲文件和加工的沒有命名的數(shù)據(jù)通道。這些數(shù)據(jù)流雖然沒有命名,但因聯(lián)接著有名加工和有名文件,所以其含意也是清楚的。同一數(shù)據(jù)流圖上不能有同名的數(shù)據(jù)流。多個數(shù)據(jù)流可以指向同個加工,也可以從一個加工散發(fā)出許多數(shù)據(jù)流。
加工是以數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)內(nèi)容作為加工對象的。加工的名字通常是一個動詞短語,簡明扼要地表明完成的是什么加工。
文件在數(shù)據(jù)流圖中起保存數(shù)據(jù)的作用,因而稱為數(shù)據(jù)存儲(Data Store)。它可以是數(shù)據(jù)庫文件或任何形式的數(shù)據(jù)組織。指向文件的數(shù)據(jù)流可理解為寫入文件或查詢文件,從文件中引出的數(shù)據(jù)流可理解為從文件讀取數(shù)據(jù)或得到查詢結(jié)果。
數(shù)據(jù)流圖中第4種元素是數(shù)據(jù)源點(diǎn)或匯點(diǎn),它表示圖中要處理數(shù)據(jù)的輸入來源及處理結(jié)果要送往何處。由于它在圖中的出現(xiàn)僅僅是一個符號,并不需要以軟件的形式進(jìn)行設(shè)計和實(shí)現(xiàn),因而,它只是數(shù)據(jù)流圖的外圍環(huán)境中的實(shí)體,故稱外部實(shí)體。在實(shí)際問題中它可能是計算機(jī)外圍設(shè)備或是傳感裝置。
(2)數(shù)據(jù)流與加工之間的關(guān)系
在數(shù)據(jù)流圖中,如果有兩個以上的數(shù)據(jù)流指向一個加工,或是從一個加工中引出兩個以上的數(shù)據(jù)流,這些數(shù)據(jù)流之間往往存在一定的關(guān)系。
(3)分層的數(shù)據(jù)流圖
為了表達(dá)數(shù)據(jù)處理過程的數(shù)據(jù)加工情況,用一個數(shù)據(jù)流圖是不夠的。為表達(dá)稍為復(fù)雜的實(shí)際問題需要按照問題的層次結(jié)構(gòu)進(jìn)行逐步分解,并以分層的數(shù)據(jù)流圖反映這種結(jié)構(gòu)關(guān)系。
先把整個數(shù)據(jù)處理過程暫且看成一個加工,它的輸入數(shù)據(jù)和輸出數(shù)據(jù)實(shí)際上反映了系統(tǒng)與外界環(huán)境的接口。這就是分層數(shù)據(jù)圖的頂層。但只此一圖并未表明數(shù)據(jù)的加工要求,需要進(jìn)一步細(xì)化。如果這個數(shù)據(jù)處理包括3個子系統(tǒng),就可以畫出表示這3個子系統(tǒng)1、2、3的加工及其相關(guān)的數(shù)據(jù)流。這是頂層下面的第一層數(shù)據(jù)流圖,記為DFD/L1。繼續(xù)分解這3個子系統(tǒng),可得到第二層數(shù)據(jù)流圖DFD/L2.1、DFD/L2.2、及DFD/L2.3,它們分別是子系統(tǒng)。1、2和3的細(xì)化。僅以DF/2為例,其中的4個加工的編號均可聯(lián)系到其上層圖中的子系統(tǒng)2。這樣得到的多層數(shù)據(jù)流圖可十分清晰地表達(dá)整個數(shù)據(jù)加工系統(tǒng)的真實(shí)情況。對任何一層數(shù)據(jù)流圖來說,稱它的上層圖為父圖,在它下一層的圖則稱為子圖。
在多層數(shù)據(jù)流圖中,可以把頂層流圖、底層流圖和中間層流圖區(qū)分開。頂層流圖僅包含一個加工,它代表被開發(fā)系統(tǒng)。它的輸入流是該系統(tǒng)的輸入數(shù)據(jù),輸出流是系統(tǒng)的輸出數(shù)據(jù)。頂層流圖的作用在于表明被開發(fā)系統(tǒng)的范圍,以及它和周圍環(huán)境的數(shù)據(jù)交換關(guān)系。底層流圖是指其加工不須再做分解的數(shù)據(jù)流圖,其加工稱為“原子加工”。中間層流圖則表示對其上層父圖的細(xì)化。它的每一加工可以繼續(xù)細(xì)化,形成子圖。中間層次的多少視系統(tǒng)的復(fù)雜程度而定。
(4)數(shù)據(jù)流圖畫法
畫數(shù)據(jù)流圖的基本步驟概括地說,就是自外向內(nèi),自頂向下,逐層細(xì)化,完善求精。具體步驟可按如下來做。
①先找系統(tǒng)的數(shù)據(jù)源點(diǎn)與匯點(diǎn)。它們是外部實(shí)體,由它們確定系統(tǒng)與外界的接口。②找出外部實(shí)體的輸出數(shù)據(jù)流與輸入數(shù)據(jù)流。③在圖的邊上畫出系統(tǒng)的外部實(shí)體。
?、軓耐獠繉?shí)體的輸出數(shù)據(jù)流(即系統(tǒng)的源點(diǎn))出發(fā),按照系統(tǒng)的邏輯需要,逐步畫出一系列邏輯加工,直到找到外部實(shí)體所需的輸入數(shù)據(jù)流(即系統(tǒng)的匯點(diǎn)),形成數(shù)據(jù)流的封閉。⑤按照下面所給的原則進(jìn)行檢查和修改。
?、薨凑丈鲜霾襟E,再從各加工出發(fā),畫出所需的子圖。
(5)進(jìn)行檢查和修改的原則
?、贁?shù)據(jù)流圖上所有圖形符號只限于前述四種基本圖形元素。②數(shù)據(jù)流的主圖必須包括前述4種基本元素,缺一不可。
?、蹟?shù)據(jù)流圖的主圖上的數(shù)據(jù)流必須封閉在外部實(shí)體之間,外部實(shí)體可以不只一個。④每個加工至少有一個輸入數(shù)據(jù)流和一個輸出數(shù)據(jù)流。
?、菰跀?shù)據(jù)流圖中,需按層給加工框編號。編號表明該加工處在哪一層,以及上下層的父圖與子圖的對應(yīng)關(guān)系。
?、奕魏我粋€數(shù)據(jù)流子圖必須與它上一層的一個加工對應(yīng),兩者的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流必須一致。即父圖與子圖的平衡,它表明了在細(xì)化過程中輸入與輸出不能有丟失和添加。⑦圖上每個元素都必須有名字。表明數(shù)據(jù)流和數(shù)據(jù)文件是什么數(shù)據(jù),加工做什么事情。
?、鄶?shù)據(jù)流圖中不可夾帶控制流。因?yàn)閿?shù)據(jù)流圖是實(shí)際業(yè)務(wù)流程的客觀映象,說明系統(tǒng)“做什么”而不是要表明系統(tǒng)“如何做”,因此不是系統(tǒng)的執(zhí)行順序,不是程序流程圖。⑨初畫時可以忽略瑣碎的細(xì)節(jié),以集中精力于主要數(shù)據(jù)流。
在需求分析期間,有時會要求修改系統(tǒng)的某些方面。使用數(shù)據(jù)流圖可以很容易地把需要修改的區(qū)域分離出來。只要清楚地了解穿過要修改區(qū)域邊界的數(shù)據(jù)流,就可以為將來的修改做好充分的準(zhǔn)備,而且在修改時能夠不打亂系統(tǒng)的其他部分.
2.數(shù)據(jù)詞典
數(shù)據(jù)詞典的任務(wù)是對于數(shù)據(jù)流圖中出現(xiàn)的所有被命名的圖形元素在數(shù)據(jù)詞典中作為一個詞條加以定義,使得每一個圖形元素的名字都有一個確切的解釋。
數(shù)據(jù)詞典中所有的定義應(yīng)是嚴(yán)密的、精確的,不可有半點(diǎn)含糊,不可有二義性。
(1)數(shù)據(jù)詞典的定義
對在數(shù)據(jù)流圖中每一個命名的圖形元素均給予定義,其內(nèi)容有圖形元素的名字、別名或編號、分類、描述、定義、位置等。以下是不同詞條應(yīng)給出的內(nèi)容。
?、贁?shù)據(jù)流詞條描述
數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)傳播的路徑。一個數(shù)據(jù)流詞條應(yīng)有以下幾項(xiàng)內(nèi)容:
數(shù)據(jù)流名:
說明:簡要介紹作用即它產(chǎn)生的原因和結(jié)果。
數(shù)據(jù)流來源:來自何方。
數(shù)據(jù)流去向:去向何方。數(shù)據(jù)流組成:數(shù)據(jù)結(jié)構(gòu)。
每個數(shù)據(jù)量:數(shù)據(jù)量、流通量。
?、跀?shù)據(jù)元素詞條描述
圖中的每一個數(shù)據(jù)結(jié)構(gòu)都是由數(shù)據(jù)元素構(gòu)成的,數(shù)據(jù)元素是數(shù)據(jù)處理中最小的,不可再分的單位,它直接反映事物的某一特征。對于這些數(shù)據(jù)元素也必須在數(shù)據(jù)詞典中給出描述。其描述需要以下信息:
數(shù)據(jù)元素名
類型:數(shù)字(離散值,連續(xù)值),文字S(編碼類型)。
長度。
取值范圍。
相關(guān)的數(shù)據(jù)元素及數(shù)據(jù)結(jié)構(gòu)。
數(shù)據(jù)元素的取值可分?jǐn)?shù)字型與文字型。數(shù)字型又有離散值與連續(xù)值之分。離散值或是枚舉的,或是介于上下界的一組數(shù);連續(xù)值一般是有取值范圍的實(shí)數(shù)集。對于文字型,需給予編碼類型,文字值需加以定義。③數(shù)據(jù)文件詞條描述
數(shù)據(jù)文件是數(shù)據(jù)結(jié)構(gòu)保存的地方。一個數(shù)據(jù)文件詞條應(yīng)有以下幾項(xiàng)內(nèi)容。數(shù)據(jù)文件名。
簡述:存放的是什么數(shù)據(jù)。輸入數(shù)據(jù)。輸出數(shù)據(jù)。
數(shù)據(jù)文件組成:數(shù)據(jù)結(jié)構(gòu)。
存儲方式:順序、直接、關(guān)鍵碼。存取頻率。
?、芗庸み壿嬙~條描述
加工比較復(fù)雜,它到后來就是一段程序。加工的表達(dá)方式有判定表、判定樹和結(jié)構(gòu)化英語等等,它們要全部寫在一個詞條中是有困難的。主要描述有:加工名。
加工編號:反映該加工的層次。簡要描述:加工邏輯及功能簡述。輸入數(shù)據(jù)流。輸出數(shù)據(jù)流。
加工邏輯:簡述加工程序、加工順序。⑤源點(diǎn)及匯(終)點(diǎn)詞條描述
對于一個數(shù)據(jù)處理系統(tǒng)來說,源點(diǎn)和匯點(diǎn)應(yīng)當(dāng)比較少。如果過多就缺少獨(dú)立性,人—機(jī)界面太復(fù)雜,這時就要考慮減少,提高系統(tǒng)獨(dú)立性。定義源點(diǎn)和匯點(diǎn)時,應(yīng)包括:名稱:外部實(shí)體名。
簡要描述:什么外部實(shí)體。有關(guān)數(shù)據(jù)流。數(shù)目。
(2)數(shù)據(jù)詞典的使用
在結(jié)構(gòu)化分析的過程中,可以通過名字,方便地查閱數(shù)據(jù)的定義:同時可按各種要求,隨時列出各種表,以滿足分析員的需要。還可以按描述內(nèi)容(或定義)來查詢數(shù)據(jù)的名字,通過檢查各個加工的邏輯功能,可以實(shí)現(xiàn)和檢查在數(shù)據(jù)與程序之間的一致性和完整性,在以后的設(shè)計與實(shí)現(xiàn)階段,以至于到維護(hù)階段。都需要參考數(shù)據(jù)詞典進(jìn)行設(shè)計、修改和查詢。
(3)數(shù)據(jù)結(jié)構(gòu)的描述
在數(shù)據(jù)詞典的編制中,分析員最常用的描述數(shù)據(jù)結(jié)構(gòu)的方式有定義式和Warnier圖。①定義式
在數(shù)據(jù)流圖中,數(shù)據(jù)流和數(shù)據(jù)文件都具有一定的數(shù)據(jù)結(jié)構(gòu)。因此必須以一種清晰、準(zhǔn)確、無二義性方式來描述數(shù)據(jù)結(jié)構(gòu)。
這種定義方法是自頂向下,逐級給出定義式,直到最后給出基本數(shù)據(jù)元素為止。②Warnier圖
Warnier圖是表示數(shù)據(jù)層次結(jié)構(gòu)的一種圖工具。它用樹形結(jié)構(gòu)描繪數(shù)據(jù)結(jié)構(gòu),它還能指出某一類數(shù)據(jù)或某一數(shù)據(jù)元素重復(fù)出現(xiàn)的次數(shù),并能指明某一特定數(shù)據(jù)在某一類數(shù)據(jù)中是否是有條件的出現(xiàn)。在進(jìn)行軟件設(shè)計時,從Warnier圖入手,能夠很容易轉(zhuǎn)換成軟件的設(shè)計描述。
3.加工邏輯說明
在數(shù)據(jù)流圖中,每一個加工框只簡單地寫上了一個加工名,這顯然不能表達(dá)加工的全部內(nèi)容。隨著自頂向下逐層細(xì)化,功能越來越具體,加工邏輯也越來越精細(xì)。到最底一層,加工邏輯詳細(xì)到可以實(shí)現(xiàn)的程序,因此稱為“原子加工”或“基本加工”。如果能夠?qū)懗雒恳粋€基本加工的全部詳細(xì)邏輯功能,再自底向上綜合,就能完成全部邏輯加工。在寫基本加工邏輯的說明時,應(yīng)滿足如下的要求:
·對數(shù)據(jù)流圖的每一個基本加工,必須有一個加工邏輯說明;
·加工邏輯說明必須描述基本加工如何把輸入數(shù)據(jù)流變換為輸出數(shù)據(jù)流的加工規(guī)則;
·加工邏輯說明必須描述實(shí)現(xiàn)加工的策略而不是實(shí)現(xiàn)加工的細(xì)節(jié)。
目前用于寫加工邏輯說明的工具有結(jié)構(gòu)化語言、判定表和判定樹。下面分別介紹。
(1)結(jié)構(gòu)化語言
結(jié)構(gòu)化語言也稱為PDL,是一種介于自然語言和形式化語言之間的半形式化語言。它是在自然語言基礎(chǔ)上加了一些限制而得到的語言,是使用有限的詞匯和有限的語句來描述加工邏輯。結(jié)構(gòu)化語言的詞匯表由英語命令動詞、數(shù)據(jù)詞典中定義的名字、有限的自定義詞和控制結(jié)構(gòu)關(guān)鍵詞IF-THEN-ELSE、WHELE-DO、REPEAT-UNTIL、CASE-OF等組成。其動詞的含義要具體,盡可能少用或不用形容詞和副詞。
語言的正文用基本控制結(jié)構(gòu)進(jìn)行分割,加工中的操作用自然語言短語來表示。其基本控制結(jié)構(gòu)有簡單陳述句結(jié)構(gòu)、判定結(jié)構(gòu)和重復(fù)結(jié)構(gòu)。此外在書寫時,必須按層次橫向向右移行,續(xù)行也同樣向右移行,對齊。
要了解基本加工邏輯的來龍去脈、在數(shù)據(jù)流圖中的位置、加工的使用情況等有更清楚的了解,一般對結(jié)構(gòu)化英語的描述加一些外層說明。
(2)判定表
在某些數(shù)據(jù)處理問題中,某數(shù)據(jù)流圖的加工需要依賴于多個邏輯條件的取值,就是說完成這一加工的一組動作是由于某一組條件取值的組合而引發(fā)的。這時使用判定表來描述比較合適。下面以“檢查發(fā)貨單”為例,說明判定表的構(gòu)成。判定表由4個部分組成,雙線分割開的4部分是:
條件樁(Condition Stub)———左上部分:列出了各種可能的條件。除去某些問題中對各個條件的先后次序有特定的要求以外,通常判定表中對各條件的先后次序不要求。條件項(xiàng)(Condition Entry)———右上部分:給出各個條件的條件取值的組合。
動作樁(Action Stub):———左下部分:列出了可能采取的動作。這些動作的排列順序沒有限制,但為便于閱讀也可令共按適當(dāng)?shù)捻樞蚺帕小?/p>
動作項(xiàng)(Action Entry):———右下部分:是和條件項(xiàng)緊密相關(guān)的,它指出了在條件項(xiàng)的各種取值的組合情況下一步應(yīng)采取什么動作。這里將任一條件取值組合及其相應(yīng)要執(zhí)行動作作稱為規(guī)則,它在判定有中是縱貫條件項(xiàng)和動作項(xiàng)的一列。顯然,判定表中列出了多少個條件取值的組合,也就有多少條規(guī)則,即條件項(xiàng)一動作項(xiàng)有多少列。
在實(shí)際使用判定表時,常常先把它化簡。如果表中有兩條或更多的規(guī)則具有相同的動作,并且其條件項(xiàng)之間存在著某些關(guān)系,就可設(shè)法將它們合并。就是說要執(zhí)行的動作與第三條件的取值無關(guān),這樣,便可將這兩條規(guī)則合并,合并后的第三條件取值用“—”表示,即與取值無關(guān)。類似地,無關(guān)條件項(xiàng)“—”,在邏輯上又可包含其他項(xiàng)值,具有相同動作的規(guī)則還可以進(jìn)一步合并。判定表能夠把在什么條件下,系統(tǒng)應(yīng)完成哪些操作,表達(dá)得十分清楚、準(zhǔn)確、一目了然。這是用語言說明難以準(zhǔn)確、清楚表達(dá)的,但是用判定表描述循環(huán)比較困難。有時,判定表可以和結(jié)構(gòu)化語言結(jié)合起來使用。
(3)判定樹
判定樹也是用來表達(dá)加工邏輯的一種工具。有時候它比判定表更直觀,用它來描述加工,很容易為用戶接受。
沒有一種統(tǒng)一的方法來構(gòu)造判定樹,也不可能有統(tǒng)一的方法。因?yàn)榭陀^存在是用結(jié)構(gòu)化語言,甚至是自然語言寫成的敘述文作為構(gòu)造樹的原始依據(jù)的,但可以從中找些規(guī)律。首先,應(yīng)從文字資料中分清哪些是判定條件,哪些是判定做出的結(jié)論。
在表達(dá)一個基本加工邏輯時,結(jié)構(gòu)化語言、判定表和判定樹常常交*使用,互相補(bǔ)充。因?yàn)檫@3種手段各有優(yōu)缺點(diǎn)。
總之,加工邏輯說明是結(jié)構(gòu)化分析方法的一個組成部分,對每個加工都要加以說明。使用的手段,應(yīng)當(dāng)以結(jié)構(gòu)化語言為主,對存在判斷問題的加工邏輯,可輔之以判定表和判定樹。
4.軟件需求說明
軟件需求規(guī)格說明書包括的主要內(nèi)容如下:
(1)概述
(2)數(shù)據(jù)描述①數(shù)據(jù)流圖②數(shù)據(jù)字典
?、巯到y(tǒng)接口說明④內(nèi)部接口說明
(3)功能描述①功能②處理說明③設(shè)計的限制
(4)性能描述①性能指標(biāo)②測試種類
?、垲A(yù)期的軟件響應(yīng)性能④其它
(5)參考文獻(xiàn)目錄
(6)附錄
其中概述是從系統(tǒng)的角度描述軟件的目標(biāo)和任務(wù)。軟件需求文檔的生成方法有以下兩種。
(1)計算機(jī)輔助生成:由于需求文檔的規(guī)模較大,并且需要經(jīng)常查詢、維護(hù),所以使用計算機(jī)輔助的軟件需求分析工具,來實(shí)現(xiàn)軟件需求文檔的自動生成,是非常有意義的。1977年最先推出了需求陳述語言RSL(RSL中的語句是計算機(jī)可以處理的)。同年美國密執(zhí)安大學(xué)開發(fā)了PSL/PSA(問題陳述語言/問題陳述分析程序)系統(tǒng)。它是信息系統(tǒng)開發(fā)自動化支持環(huán)境1SDOS的一個組成部分。其中PSL是用來描述系統(tǒng)的形式語言,它可以對系統(tǒng)需求的一致性進(jìn)行檢查,并可根據(jù)開發(fā)者的需要,隨時生成需求文檔。
(2)手工與半手工方式:這種方法難以保證文檔質(zhì)量。半手工方式是利用正文編輯程序及其他實(shí)用程序輔助手工方式來生成文檔,這類方法難以保證文檔的正確性、一致性和完整性。