官术网_书友最值得收藏!

3.3 系統結構化分析方法與工具

系統結構化分析是一種簡單實用的方法,它采用介于形式語言和自然語言之間的描述方式,建立起以數據流程圖為核心、以數據字典和處理邏輯說明為補充說明工具的新系統的邏輯模型。

3.3.1 自頂而下分析法

“自頂而下,逐層分解”的基本原則,是系統分析階段的最核心內容。一個系統的數據流程圖不是一張紙,而是一組圖。它是從頂層的數據流程圖逐層進行分解,直至分解到不能再分解的一個單位。

分解時分層進行,先考慮問題最本質的屬性,暫時略去具體細節,以后再逐層添加細節,直到最詳細的內容。把大問題分解成小問題,然后分別解決,這就是自頂而下分析法的精髓所在。

3.3.2 業務流程分析

以功能為基點分析問題,系統則會相對于組織的變化而有一定的獨立性,即可獲得較強的生命力。所以在分析組織情況時還應該畫出其功能一覽表。這樣做可以使人們在了解組織結構的同時,對于依附于組織結構的各項業務功能也有一個概貌性的了解,也可以對于各項交叉管理、交叉部分各層次的深度及各種不合理的現象有一個總體了解。

調查管理業務流程應順著原系統信息流動的過程逐步地進行,內容包括各環節的業務處理、信息來源、處理方法、計算方法、信息流經去向、信息提供的時間和形態。業務流程分析可以幫助了解業務的具體處理過程,發現和處理系統調查工作中的錯誤和疏漏,修改和刪除原系統中的不合理部分,在新系統的基礎上優化業務處理流程。描述管理業務流程的圖標工具主要有管理業務流程圖和表格分配圖。雖然目前在有些信息系統開發方法中已不再使用它們,用物理數據流程圖直接替代,或采用UML中的活動圖,但是仍有部分系統分析員看重它們的簡單、易懂和消除歧義等特點,在開發中應用這些工具。

1.業務流程分析的目的與任務

在對現行系統的組織結構和功能進行分析時,需要將詳細調查中有關某項業務流程的資料從業務流程的角度串起來以便做進一步的分析。業務流程分析可以幫助系統分析人員了解該業務的具體處理過程,發現系統調查中的錯誤和疏漏,修改現行系統的不合理部分,優化業務處理流程,為目標系統的開發打下基礎。

業務流程圖(TFD,Transaction Flow Diagram)是業務流程分析所使用的圖形工具,它是用一些規定的符號和連線來表達某個具體業務處理過程。可以認為,業務流程圖是在業務功能的基礎上將其細化,利用系統調查的資料,用一個完整的圖形將業務處理過程中的所有處理步驟串聯起來。繪制業務流程圖是業務流程分析的重要步驟。

2.業務流程圖的基本符號

圖3.2 業務流程圖的常用符號

業務流程圖用來描述企業的業務處理過程,其基本圖形符號尚未統一,常用的符號如圖3.2所示,有關符號的內部解釋用文字填入相應的框內。

3.業務流程圖的繪制

業務流程圖是按照業務的實際處理步驟和過程繪制的。在繪制業務流程圖時,要依據業務調查的語義描述進行分析。

在調查中對現行系統的信息處理過程進行分析、歸納、整理和簡化描述,以利于獲取現行系統的主要信息。在調查中還應注意以下3 點:① 在調查前可先對企業內有關的管理人員、業務人員進行系統開發前的短期培訓,使他們對項目的開發有正確的認識,從而得到他們的積極配合與支持。② 應與被調查的不同層次的業務負責人一起完成業務流程的描述、數據的分類和綜合,對業務流程及信息流程的描述一定要得到他們的認可。③ 對調查結果要分別描述,用文字來說明企業的生產經營情況,用圖表來描述各業務部門的業務流程及信息流程。

例如,某學校的學籍管理業務流程圖,如圖3.3所示。

圖3.3 某學校的學籍管理業務流程圖

3.3.3 數據流程分析

數據是信息的載體,也是信息要處理的對象。因此,必須對現行系統調查中所收集到的數據及處理數據的過程進行分析和整理。數據流程分析是今后建立數據庫系統和設計功能模塊處理過程的基礎。

1.數據流程分析的內容

數據流程分析是把數據在組織內部的流動情況抽象地獨立出來,舍去了具體的組織機構、信息載體、物質和材料等,單從數據流動過程來考查實際業務的數據處理模式。數據流程分析的目的就是要發現和解決數據流通中的問題,這些問題包括數據流通不暢、前后數據不匹配和數據處理過程不合理等。而這些問題,有些是屬于數據處理流程的問題,有些是屬于原系統管理混亂的問題。一個通暢的數據流程是目標系統實現業務處理過程的基礎。

數據流程分析的任務包括以下內容。

(1)收集現行系統的全部輸入單據和報表、輸出單據和報表及數據存儲介質(賬本和清單等)的典型格式。

(2)明確各個處理過程的處理方法和計算方法。

(3)調查、確定上述各種單據、報表、賬本和清單的制作單位、報送單位、存儲單位、發生頻率、發生的高峰時間和高峰度等。

(4)注明各項數據的類型、長度和取值范圍等。

數據流程圖(DFD,Data Flow Diagram)是數據流程分析所使用的主要工具之一。數據流程圖用少量幾種符號綜合地反映出信息在系統中的流動、處理和存儲情況。數據流程圖具有抽象性和概括性的特點。數據流程圖的抽象性是指它完全舍去了具體的物質,只保留了數據的流動、加工、處理和存儲;數據流程圖的概括性是指它可以把信息中的各種不同業務處理過程聯系起來,形成一個整體。無論是手工信息處理或是計算機信息處理,都可以用數據流程圖表達出來。

2.數據流程圖的基本符號

數據流程圖由4個基本符號組成。這4個符號分別代表外部實體、數據處理、數據流和數據存儲。

1)外部實體

外部實體是指系統之外的,與系統有聯系的人或事物。外部實體也可以是另外一個信息系統。外部實體是系統數據的來源和去處,它們和本系統都有著系統傳遞關系。

在數據流程圖中用一個圓圈表示外部實體,如圖3.4(a)所示。在圓形內部可以寫上該外部實體的名稱。在數據流程圖中,為了避免線條的交叉,同一個外部實體可在一張數據流程圖上出現多次。

在繪制某一個子系統的數據流程圖中,凡是屬于該子系統之外的人或事物,也都被列為該子系統的外部實體。

2)數據處理

數據處理是對數據的邏輯處理,也是數據的變換過程。輸入數據在此進行變換產生輸出數據。在數據流程圖中用一個矩形框來表示數據處理,如圖3.4(b)所示。

為了方便處理,在矩形框的上部填寫唯一標示該處理的符號標志,一般用字符串表示;在矩形框的下部填寫該數據處理的簡單描述,一般是用一個動詞加上一個做動詞賓語的名詞表示,如統計生產量等。

3)數據流

數據流表示流動著的數據,是處理功能的輸入和輸出。數據流可以是一項數據,也可以是一組數據。它可以用來表示對數據文件的存儲操作,在數據流程圖中用一個帶箭頭的線段來表示數據流,如圖3.4(c)所示。

在數據流程圖中用一個帶箭頭的線段來表示數據流,對每個數據流加以簡單地描述,通常在數據流符號的上方標明數據流的名稱。一些含義十分明確的數據流也可以不加說明。

圖3.4 數據流程圖的基本符號圖

4)數據存儲

數據存儲是指通過數據文件和文件夾等存儲數據。這里指的是數據存儲的邏輯描述,與保存數據的物理地點和物理介質無關。

在數據流程圖中一般用右端開口的長方條來表示數據存儲,如圖3.4(d)所示。同樣,為了方便區分,在長方條的內部偏左加上一條豎線,豎線的左邊填寫唯一標示該數據存儲的符號標志,用字符串來表示;豎線的右邊寫上數據存儲的名稱。

需要注意的是,在數據流程圖中,指向數據存儲的箭頭,表示送數據到數據存儲,即對數據存儲的改寫和存放等;離開數據存儲的箭頭,表示從數據存儲中讀取數據。

3.數據流程圖的繪制

數據流程分析的根本目的是分析出合理的信息流動、處理和存儲的過程。無論是采用HIPO(Hierarchy Input-Processing-Output)法還是采用SA(System Analyst)法,其基本思想是一樣的。先把系統看成一個大整體,作為一個大的功能,明確系統的輸入和輸出;系統為了實現這個整體功能,內部必然有信息的處理、傳遞和存儲的過程。按照此思想,自上而下,逐層分解,一級一級地剖析,直到所有的處理步驟都具體到可以實現為止。

例如,在學校管理信息系統中,首先,根據學生管理的業務流程圖找出與學生管理系統相關的主要外部實體:黨總支、院辦公室、用人單位、學生和輔導員。學生管理信息系統的頂層數據流程圖如圖3.5所示。

圖3.5學生管理信息系統的頂層數據流程圖

其次,再把學生管理信息系統分為檔案管理、成績管理、獎懲管理和綜合測評管理4個部分,即學校管理信息系統的二層數據流程圖,如圖3.6所示。

圖3.6 學校管理信息系統的二層數據流程圖

最后,進行第三層流程圖的設計。

1)成績管理的數據流程圖

在學生管理信息系統流程圖設計中,首先分解學生管理系統里面的成績管理部分,這部分的處理過程是通過院辦公室的教學和考試,然后通過任課老師提供的各科考試結果統計成績,據此判斷學生的重修情況,將成績單寄給學生,再以學習文檔的形式給輔導員評獎學金備用,同時,通過成績管理系統生成的學習文檔也為獎懲管理和檔案管理提供原始數據,并自動存儲在學籍表中。成績管理的數據流程圖,如圖3.7所示。

圖3.7 成績管理的數據流程圖

2)獎懲管理的數據流程圖(見圖3.8)

圖3.8 獎懲管理的數據流程圖

3)檔案管理的數據流程圖(見圖3.9)

圖3.9 檔案管理的數據流程圖

4)綜合測評管理的數據流程圖(見圖3.10)

圖3.10 綜合測評管理的數據流程圖

4.數據流程圖繪制的注意事項

數據流程圖具有圖形符號少、通俗易懂和直觀等特點,是系統分析員與用戶交流思想的工具。在數據流程圖的繪制中,要隨時與業務人員進行討論和分析,對所繪制的數據流程圖進行補充和糾正,直到得到用戶較為滿意的數據流程圖。

在繪制數據流程圖中還要注意以下事項。

1)劃分層次,逐層分解

為了表達數據處理過程中的數據加工過程,只用一個數據流程圖是不夠的。稍微復雜的實際問題,出現在數據流程圖中的加工常常要十幾個甚至幾十個。把這些加工處理放在一張數據流中看起來很不清楚,雜亂無序。解決的方法是采用分層的數據流程圖。在數據流程圖的繪制中,按照系統的層次結構進行逐層分解,以分層的數據流程圖反映系統的層次結構,這樣就能清楚地表達整個系統,也讓讀者容易理解。

頂層數據流程圖概括地描述出了信息系統最主要的邏輯功能、最主要的外部實體和數據存儲,它反映了系統與外界環境的接口。頂層圖的作用在于表明目標系統的范圍,以及目標系統和周圍環境的數據交換關系,為逐層分解打下基礎。但頂層圖并未表明數據的加工處理情況,需要進一步細化。

逐層擴展數據流程圖是對上一層數據流程圖中某些處理框加以展開。隨著處理框的逐步展開,功能越來越具體,數據存儲、數據流也越來越多。這樣得到的多層數據流程圖可以十分清晰地表達整個信息系統的數據加工處理情況。對某一層數據流程圖來說,它的上一層數據流程圖稱為它的“父圖”,它的下一層數據流程圖稱為它的“子圖”。必須注意,子圖是父圖中某個處理框的展開,因此,凡是在父圖中與這個處理框有關系的外部實體、數據流和數據存儲必須在子圖中反映出來,以保持各層數據流程圖之間的平衡關系。

2)數據流程圖的正確性檢查

數據流程圖是系統分析階段最主要的表達工具之一,其正確與否直接關系到整個信息系統開發的質量。因此,保證數據流程圖的正確性十分必要。

通常從以下4個方面來檢查數據流程圖的正確性。

(1)任何一個處理至少有一個輸入數據流和一個輸出數據流。輸入數據流與輸出數據流必須相互匹配,以保持數據守恒。如果是某個處理過程產生輸出數據,但是沒有輸入數據,則肯定是某些數據流被遺漏了。反之,如果某個處理過程不產生任何輸出數據,那么可以認為這個處理過程是沒有任何意義的。還有一種情況是,某些輸入數據在處理過程中并沒有被使用到,這不一定是錯誤,但也要追溯到這種情況的原因,探討是否可以簡化。

(2)任何一個數據存儲,都必定有流入的數據流和流出的數據流。對數據存儲來說,流入的數據流代表著對數據文件的寫操作,流出的數據流代表著對數據文件的讀操作。任何數據存儲都必定有讀/寫操作。如果在數據流程圖中,某一個數據存儲缺少流入的數據流或者流出的數據流,都意味著某些加工處理被遺漏了。

(3)任何一個數據流至少有一端是處理框。數據流是指處理功能的輸入和輸出。也就是說,數據流不能從外部實體直接到數據存儲,也不能從數據存儲直接到外部實體,也不可能在外部實體之間或者是數據存儲之間流動。

(4)圖中某一處理框的輸入數據流、輸出數據流必須出現在相應的子圖中。在這方面比較容易出現錯誤,特別是在對父圖和子圖進行了某種修改后。子圖可以包括比父圖更詳細、更復雜的數據流、數據存儲和外部實體,但在父圖中出現的數據流、數據存儲和外部實體必須在子圖中全部出現,否則會出現父圖和子圖的數據不平衡。

3.3.4 數據字典

數據流程圖描述了系統的“分解”,即描述了系統由哪幾部分組成,各部分之間有什么聯系,系統數據流向和加工等情況,但是并沒有說明系統中各個成分是什么含義,或者說各個成分的具體含義仍然不清楚或不明確,而只有當數據流程圖中所出現的每個成分都給了明確的定義之后,才能完整、準確地描述一個系統。因此,還需要其他的工具對數據流程圖進行補充說明。

1.數據字典的作用

數據字典(DD,Data Dictionary)是在系統數據流程圖的基礎上,進一步定義和描述所有的數據項、數據結構、數據存儲、處理過程和外部實體的詳細邏輯內容與特征的工具。數據流程圖和數據字典等工具相互配合,就可以從圖形和文字兩個方面對系統的邏輯模型進行完整的描述。

數據字典的任務是對于數據流程圖中出現的所有命名元素都在數據字典中作為一個條目加以定義,使得每個圖形元素的名字都有一個確切的解釋。因此,建立數據字典的工作量很大,相當煩瑣,但這是一項必不可少的工作。數據字典在系統開發中具有十分重要的意義,不僅在系統分析階段要使用它,在系統的整個研制過程中及系統運行中都要使用它提供幫助。

2.數據字典的條目

數據字典共有6個條目,不同類型的條目需要描述的屬性各有不同。

1)數據項

數據項又稱數據元素,是數據的最小單位。分析數據特征應從靜態和動態兩個方面進行,而在數據字典中,僅定義數據的靜態特征。對數據項的描述,應該包括如下屬性。

(1)數據項名稱:名稱要盡量反映該數據項的含義,便于理解和記憶。

(2)數據項編號:對系統中的所有數據項應統一編號,方便查找。

(3)別名:一個數據項的多個名稱。

(4)數據項類型:說明數據項取值是字符型或是數字型。

(5)數據項長度:組成該數據項的數字或字母的位數。

(6)數據項取值范圍和取值的含義:數據項可能取什么值和每個值代表的意義。

圖3.11所示是數據項條目的一個例子。

圖3.11 數據項條目

2)數據結構

數據結構用于描述某些數據項之間的關系。一個數據結構可以是由若干個數據項組成的,也可以是由若干個數據結構組成的,還可以是由若干個數據項和數據結構組成的。數據結構是個遞歸概念。

數據字典中對數據結構的描述應該包括如下屬性。

(1)數據結構的名稱。

(2)數據結構的編號。

(3)數據結構的簡要說明。

(4)數據結構的組成。

數據結構的重點是數據結構的組成。數據結構可以包括若干個數據項和數據結構。這些數據之間的組合關系有3種特殊情況。

(1)任選項:指那些可以出現,也可以省略的項。

(2)必選項:指那些在兩個或者多個數據項中,必須選擇其中一個的項。

(3)復選項:指那些可以多次出現的數據項。

圖3.12所示是數據結構條目的一個例子。

3)數據流

數據流由一個或一組固定的數據項組成。定義數據流時,不僅要說明數據流的名稱、數據流編號和簡要說明,還應包括以下屬性。

(1)數據流的來源。

(2)數據流的去向。

(3)數據流的組成。

(4)數據流的流通量。

圖3.12 數據結構條目

圖3.13所示為以學生成績表為例的數據流條目。

圖3.13 數據流條目

4)數據存儲

數據存儲中只描述數據的邏輯存儲結構,而不涉及它的物理組織。有兩種類型的數據存儲,一種是文件形式,另一種是數據庫形式。對于文件形式,其定義包括定義文件的組成數據項和文件的組織方式兩項內容,其中文件組成數據項的定義方式與數據流的定義方式相同。

以畢業生信息表為例,圖3.14所示是相關數據存儲條目。

圖3.14 數據存儲條目

5)處理邏輯

處理邏輯的定義僅對數據流程圖中底層的處理邏輯加以說明。數據字典中只需列出基本加工的定義即可,因為任何一個加工最后總能分解成一些基本加工,只要有了基本加工的定義,就可以理解其他加工。它是用簡短的自然語言對數據處理過程的高度概括,而并不是具體的邏輯處理。

以填制畢業生登記表為例,圖3.15所示為相應的處理邏輯條目。

圖3.15 處理邏輯條目

6)外部實體

外部實體是信息系統數據的來源和去向。在數據字典中對外部實體的描述應包括:外部實體編號、名稱、簡述說明及有關數據流的輸入和輸出。另外,外部實體的數量對于系統的業務量有參考作用,也應該在條目中加以說明。

如對“學生”這個外部實體的定義,圖3.16所示即外部實體條目。

圖3.16 外部實體條目

3.數據字典的使用和管理

數據字典的建立有兩種方式,既可以由手工方式生成,也可以由計算機自動生成。手工方式是將上面所介紹的格式寫在卡片上或者寫在紙上,并分類建立一覽表。計算機方式是在手工方式的基礎上,整理、存儲在計算機中,由軟件進行管理,查詢和修改都十分方便。而對于規模較小的系統,采用手工方式是比較合適的選擇。

數據字典實際上是“關于系統數據的數據庫”。在整個系統開發階段及系統運行維護階段,數據字典是必不可少的工具。在系統分析的過程中,使用數據字典可以方便地通過名稱去查詢數據的定義,同時也可以按照各種要求隨時列出各種表,以滿足分析員的需求。使用數據字典,也可以反過來,由描述內容去查詢數據的名稱。

數據字典可以確保數據在系統中的完整性和一致性。例如,通過檢查各類條目的規定格式,可以發現以下問題:① 是否存在沒有指明來源和去向的數據流。② 是否存在沒有指明所屬數據存儲或者所屬數據流的數據項。③ 處理邏輯與輸入的數據項是否匹配。④ 是否存在沒有輸入或者輸出的數據存儲。

數據字典必須有專人管理。數據管理員的職責就是維護和管理數據字典,保證數據字典內容的完整性和一致性。任何人包括系統分析員、系統設計員和程序員,若要修改數據字典的內容,都必須通過數據管理員。數據管理員還要負責把數據字典的最新版本及時通知給有關人員。

主站蜘蛛池模板: 志丹县| 澄迈县| 宜宾市| 灵璧县| 望江县| 偃师市| 晋宁县| 易门县| 徐闻县| 三穗县| 平果县| 漯河市| 磐石市| 江城| 玛纳斯县| 延吉市| 铁岭县| 乌苏市| 荆州市| 丹东市| 晴隆县| 张家界市| 胶南市| 祁连县| 武城县| 格尔木市| 兰考县| 南木林县| 吉林省| 浙江省| 广水市| 罗源县| 施秉县| 探索| 磴口县| 临沧市| 赞皇县| 岱山县| 佳木斯市| 余庆县| 镇康县|