需求分析傳統(tǒng)結(jié)構(gòu)化方法_第1頁
需求分析傳統(tǒng)結(jié)構(gòu)化方法_第2頁
需求分析傳統(tǒng)結(jié)構(gòu)化方法_第3頁
需求分析傳統(tǒng)結(jié)構(gòu)化方法_第4頁
需求分析傳統(tǒng)結(jié)構(gòu)化方法_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、2.2需求分析 需求分析是通過開發(fā)人員的分析概括,抽象為完整的需求定義,再形成一系列文檔的過程。2.2.1需求分析的目的與意義需求分析是一個非常重要的過程,它完成的好壞直接影響后續(xù)軟件開發(fā)的質(zhì)量。有效的需求分析通常都具有一定的難度。需求分析不僅僅是屬于軟件開發(fā)生命周期早期的一項工作,而且還應(yīng)該貫穿于整個生命周期中,它應(yīng)該隨著項目的深入而不斷地變化。此外,為了方便后續(xù)的評審和測試等工作,需求的描述應(yīng)該盡量做到:具體、詳細、可以測量和可以實現(xiàn),并且基于時間。2.2.2需求分析的步驟遵循科學(xué)的需求分析步驟可以使需求分析工作更高效。需求分析的一般步驟如圖2-3所示。 圖2-3需求分析的步驟需

2、求涉及的方面:在功能方面,需求包括系統(tǒng)要做什么,相對于原系統(tǒng)目標系統(tǒng)需要進行哪些修改,目標用戶有哪些,以及不同用戶需要通過系統(tǒng)完成何種操作等。在性能方面,需求包括用戶對于系統(tǒng)執(zhí)行速度、響應(yīng)時間、吞吐量和并發(fā)度等指標的要求。在運行環(huán)境方面,需求包括目標系統(tǒng)對于網(wǎng)絡(luò)設(shè)置、硬件設(shè)備、溫度和濕度等周圍環(huán)境的要求,以及對操作系統(tǒng)、數(shù)據(jù)庫和瀏覽器等軟件配置的要求。在界面方面,需求涉及數(shù)據(jù)的輸入/輸出格式的限制及方式、數(shù)據(jù)的存儲介質(zhì)和顯示器的分辨率要求等問題。1. 獲取需求,識別問題開發(fā)人員從功能、性能、界面和運行環(huán)境等多個方面識別目標系統(tǒng)要解決哪些問題,要滿足哪些限制條件,這個過程就是對需求的獲取。開發(fā)人

3、員通過調(diào)查研究,要理解當前系統(tǒng)的工作模型和用戶對新系統(tǒng)的設(shè)想與要求。遺漏需求是最難修訂的需求錯誤。獲取需求是需求分析的基礎(chǔ)。為了能有效地獲取需求,開發(fā)人員應(yīng)該采取科學(xué)的需求獲取方法。在實踐中,獲取需求的方法有很多種,比如,問卷調(diào)查、訪談、實地操作、建立原型和研究資料等。問卷調(diào)查法是采用調(diào)查問卷的形式來進行需求分析的一種方法。通過對用戶填寫的調(diào)查問卷進行匯總、統(tǒng)計和分析,開發(fā)人員便可以得到一些有用的信息。采用這種方法時,調(diào)查問卷的設(shè)計很重要。一般在設(shè)計調(diào)查問卷時,要合理地控制開放式問題和封閉式問題的比例。開放式問題的回答不受限制,自由靈活,能夠激發(fā)用戶的思維,使他們能盡可能地闡述自己的真實想法。

4、但是,對開放式問題進行匯總和分析的工作會比較復(fù)雜。封閉式問題的答案是預(yù)先設(shè)定的,用戶從若干答案中進行選擇。封閉式問題便于對問卷信息進行歸納與整理,但是會限制用戶的思維。訪談通過開發(fā)人員與特定的用戶代表進行座談,進而了解到用戶的意見,是最直接的需求獲取方法。為了使訪談有效,在進行訪談之前,開發(fā)人員要首先確定訪談的目的,進而準備一個問題列表,預(yù)先準備好希望通過訪談解決的問題。在訪談的過程中,開發(fā)人員要注意態(tài)度誠懇,并保持虛心求教的姿態(tài),同時還要對重點問題進行深入的討論。由于被訪談的用戶身份可能多種多樣,開發(fā)人員要根據(jù)用戶的身份特點,進行提問,給予啟發(fā)。當然,進行詳細的記錄也是訪談過程中必不可少的工

5、作。訪談完成后,開發(fā)人員要對訪談的收獲進行總結(jié),澄清已解決的和有待進一步解決的問題。關(guān)注用戶的行為而不是他們的言語。為了深入地了解用戶需求,有時候開發(fā)人員還會以用戶的身份直接參與到現(xiàn)有系統(tǒng)的使用過程中,在親身實踐的基礎(chǔ)上,更直接地體會現(xiàn)有系統(tǒng)的弊端以及新系統(tǒng)應(yīng)該解決的問題,這種需求獲取方法就是實地操作。通過實地操作得到的信息會更加準確和真實,但是這種方法會比較費時間。當用戶本身對需求的了解不太清晰的時候,開發(fā)人員通常采用建立原型系統(tǒng)的方法對用戶需求進行挖掘。原型系統(tǒng)就是目標系統(tǒng)的一個可操作的模型。在初步獲取需求后,開發(fā)人員會快速地開發(fā)一個原型系統(tǒng)。通過對原型系統(tǒng)進行模擬操作,開發(fā)人員能及時獲得

6、用戶的意見,從而對需求進行明確。利用原型系統(tǒng)獲取需求的方法的示意圖如圖2-4所示。 (點擊查看大圖)圖2-4利用原型系統(tǒng)獲取需求2. 分析需求,建立目標系統(tǒng)的邏輯模型在獲得需求后,開發(fā)人員應(yīng)該對問題進行分析抽象,并在此基礎(chǔ)上從高層建立目標系統(tǒng)的邏輯模型。模型是對事物高層次的抽象,通常由一組符號和組織這些符號的規(guī)則組成。常用的模型圖有數(shù)據(jù)流圖、E-R圖、用例圖和狀態(tài)轉(zhuǎn)換圖等,不同的模型從不同的角度或不同的側(cè)重點描述目標系統(tǒng)。繪制模型圖的過程,既是開發(fā)人員進行邏輯思考的過程,也是開發(fā)人員更進一步認識目標系統(tǒng)的過程。3. 將需求文檔化獲得需求后要將其描述出來,即將需求文檔化。對于大型的軟件

7、系統(tǒng),需求階段一般會輸出三個文檔:系統(tǒng)定義文檔(用戶需求報告);系統(tǒng)需求文檔(系統(tǒng)需求規(guī)格說明書);軟件需求文檔(軟件需求規(guī)格說明書)。對于簡單的軟件系統(tǒng)而言,需求階段只需要輸出軟件需求文檔(即軟件需求規(guī)格說明書)就可以了。軟件需求規(guī)格說明書主要描述軟件的需求,從開發(fā)人員的角度對目標系統(tǒng)的業(yè)務(wù)模型、功能模型和數(shù)據(jù)模型等內(nèi)容進行描述。作為后續(xù)的軟件設(shè)計和測試的重要依據(jù),需求階段的輸出文檔應(yīng)該具有清晰性、無二義性和準確性,并且能夠全面和確切地描述用戶需求。4. 需求驗證需求驗證是對需求分析的成果進行評估和驗證的過程。為了確保需求分析的正確性、一致性、完整性和有效性,提高軟件開發(fā)的效率,為后續(xù)的軟件

8、開發(fā)做好準備,需求驗證的工作非常必要。在需求驗證的過程中,可以對需求階段的輸出文檔進行多種檢查,比如,一致性檢查、完整性檢查和有效性檢查等。同時,需求評審也是在這個階段進行的。2.3 結(jié)構(gòu)化需求分析的方法 結(jié)構(gòu)化需求分析是20世紀70年代由Yourdon、Constaintine及DeMarco提出的一種面向數(shù)據(jù)流的需求分析方法。它基于"分解"和"抽象"的基本思想,逐步建立目標系統(tǒng)的邏輯模型,進而描繪出滿足用戶要求的軟件系統(tǒng)。"分解"是指對于一個復(fù)雜的系統(tǒng),為了將復(fù)雜性降低到可以掌握的程度,可以把大問題分解為若干個小問題,然后再分別解

9、決。圖2-5演示了對目標系統(tǒng)X進行自頂向下逐層分解的示意圖。 (點擊查看大圖)圖2-5自頂向下逐層分解最頂層描述了整個目標系統(tǒng),中間層將目標系統(tǒng)劃分為若干個模塊,每個模塊完成一定的功能,而最底層是對每個模塊實現(xiàn)方法的細節(jié)性描述。可見,在逐層分解的過程中,起初并不考慮細節(jié)性的問題,而是先關(guān)注問題最本質(zhì)的屬性,隨著分解自頂向下進行,才逐漸考慮越來越具體的細節(jié)。這種用最本質(zhì)的屬性表示一個軟件系統(tǒng)的方法就是"抽象"。抽象是一種人類處理復(fù)雜問題的基本方法。分解和抽象是結(jié)構(gòu)化需求分析的基本指導(dǎo)思想。在結(jié)構(gòu)化需求分析的過程中,通常還需要借助數(shù)據(jù)流程圖、數(shù)據(jù)字典、E-R圖、結(jié)構(gòu)化

10、語言、判定表、判定樹等工具。接下來我們介紹數(shù)據(jù)流圖、數(shù)據(jù)字典和E-R圖的相關(guān)知識。2.4結(jié)構(gòu)化需求分析的工具2.4.1數(shù)據(jù)流圖數(shù)據(jù)流圖(Data Flow Diagram,DFD)是描述系統(tǒng)中數(shù)據(jù)流的圖形工具,是一種用來表示信息流和信息變換過程的圖解方法,可以標識一個系統(tǒng)的邏輯輸入和邏輯輸出,以及把邏輯輸入轉(zhuǎn)換為邏輯輸出所需的加工處理。數(shù)據(jù)流圖把軟件系統(tǒng)看成是由數(shù)據(jù)流聯(lián)系的各種功能的組合,在需求分析的過程中,可以用來建立目標系統(tǒng)的邏輯模型。結(jié)構(gòu)化需求分析采用的是"自頂向下,由外到內(nèi),逐層分解"的思想,開發(fā)人員要先畫出系統(tǒng)頂層的數(shù)據(jù)流圖,然后再逐層畫出低層的數(shù)據(jù)流圖。頂層的數(shù)

11、據(jù)流圖要定義系統(tǒng)范圍,并描述系統(tǒng)與外界的數(shù)據(jù)聯(lián)系,它是對系統(tǒng)架構(gòu)的高度概括和抽象。底層的數(shù)據(jù)流圖是對系統(tǒng)某個部分的精細描述。數(shù)據(jù)流圖的目的是在用戶和系統(tǒng)開發(fā)人員之間提供語義的橋梁。-Kenneth Kozar按照Gane-Sarson法,在繪制數(shù)據(jù)流圖的過程中,主要用到了4個基本符號,如表2-1所示。表2-1數(shù)據(jù)流圖的基本符號 1 SA 法概述SA 法也是一種建模的活動,主要是根據(jù)軟件內(nèi)部的數(shù)據(jù)傳遞、變換關(guān)系,自頂向下逐層分解,描繪出滿足功能要求的軟件模型。1SA 法的基本思想結(jié)構(gòu)化分析(Structured Analysis,簡稱SA 法)是面向數(shù)據(jù)流的需求分析方法,是70年代由Y

12、ourdon,Constaintine 及DeMarco 等人提出和發(fā)展,并得到廣泛的應(yīng)用。結(jié)構(gòu)化分析方法的基本思想是“分解”和“抽象”。分解:是指對于一個復(fù)雜的系統(tǒng),為了將復(fù)雜性降低到可以掌握的程度,可以把大問題分解成若干小問題,然后分別解決。圖4 是自頂向下逐層分解的示意圖。頂層抽象地描述了整個系統(tǒng),底層具體地畫出了系統(tǒng)的每一個細節(jié),而中間層是從抽象到具體的逐層過渡。抽象:分解可以分層進行,即先考慮問題最本質(zhì)的屬性,暫把細節(jié)略去,以后再逐層添加細節(jié),直至涉及到最詳細的內(nèi)容,這種用最本質(zhì)的屬性表示一個自系統(tǒng)的方法就是“抽象”。2SA 法的步驟建立當前系統(tǒng)的“具體模型”;系統(tǒng)的“具體模型”就是

13、現(xiàn)實環(huán)境的忠實寫照,即將當前系統(tǒng)用DFD 圖描述出來。這樣的表達與當前系統(tǒng)完全對應(yīng),因此用戶容易理解。抽象出當前系統(tǒng)的邏輯模型;分析系統(tǒng)的“具體模型”,抽象出其本質(zhì)的因素,排除次要因素,獲得用DFD 圖描述的當前系統(tǒng)的“邏輯模型”。建立目標系統(tǒng)的邏輯模型;分析目標系統(tǒng)與當前系統(tǒng)邏輯上的差別,從而進一步明確目標系統(tǒng)“做什么”,建立目標系統(tǒng)的“邏輯模型”(修改后的DFD 圖)。為了對目標系統(tǒng)作完整的描述,還需要考慮人機界面和其它一些問題。3SA 法的描述工具 分層的數(shù)據(jù)流圖 數(shù)據(jù)詞典 描述加工邏輯的結(jié)構(gòu)化語言、判定表或判定樹。2 數(shù)據(jù)流圖 數(shù)據(jù)流圖(Data Flow Diagram,簡稱DFD)

14、是描述系統(tǒng)中數(shù)據(jù)流程的圖形工具,它標識了一個系統(tǒng)的邏輯輸入和邏輯輸出,以及把邏輯輸入轉(zhuǎn)換邏輯輸出所需的加工處理。1數(shù)據(jù)流圖的圖符數(shù)據(jù)流圖有以下4 種基本圖形符號:箭頭表示數(shù)據(jù)流,圓或橢圓表示加工。雙杠或者單杠表示數(shù)據(jù)存儲,矩形框表示數(shù)據(jù)的源點或終點,即外部實體。 數(shù)據(jù)流 是數(shù)據(jù)在系統(tǒng)內(nèi)傳播的路徑,由一組成固定的數(shù)據(jù)項組成。除了與數(shù)據(jù)存儲(文件)之間的數(shù)據(jù)流不用命名外,其余數(shù)據(jù)流都應(yīng)該用名詞或名詞短語命名。數(shù)據(jù)流可以從加工流向加工,也可以從加工流向文件或從文件流向加工,也可以從源點流向加工或從加工流向終點。 加工 也稱為數(shù)據(jù)處理,它對數(shù)據(jù)流進行某些操作或變換。每個加工也要有名字,通常是動詞短語,

15、簡明地描述完成什么加工。在分層的數(shù)據(jù)流圖中,加工還應(yīng)有編號。 數(shù)據(jù)存儲 指暫時保存的數(shù)據(jù),它可以是數(shù)據(jù)庫文件或任何形式的數(shù)據(jù)組織。流向數(shù)據(jù)存儲的數(shù)據(jù)流可理解為寫入文件,或查詢文件,從數(shù)據(jù)存儲流出的數(shù)據(jù)可理解為從文件讀數(shù)據(jù)或得到查詢結(jié)果。 數(shù)據(jù)源點和終點 是軟件系統(tǒng)外部環(huán)境中的實體(包括人員、組織或其他軟件系統(tǒng)),統(tǒng)稱為外部實體。一般只出現(xiàn)在數(shù)據(jù)流圖的頂層圖中。還有一些輔助的圖例:例1:畫出圖書預(yù)定系統(tǒng)的DFD 圖?,F(xiàn)有一圖書預(yù)定系統(tǒng),接收由顧客發(fā)來的訂單,并對訂單進行驗證,驗證過程是根據(jù)圖書目錄檢查訂單的正確性,同時根據(jù)顧客檔案確定是新顧客還是老顧客,是否有信譽。經(jīng)過驗證的正確訂單,暫存放在待

16、處理的訂單文件中。對訂單進行成批處理,根據(jù)出版社檔案,將訂單按照出版社進行分類匯總,并保存訂單存根,然后將匯總訂單發(fā)往各出版社。畫圖步驟是: 首先確定外部實體(顧客、出版社)及輸入、輸出數(shù)據(jù)流(訂單、出版社訂單)。 再分解頂層的加工(驗證訂單、匯總訂單)。 確定所使用的文件(圖書目錄文件、顧客檔案等5 個文件)。 用數(shù)據(jù)流將各部分連接起來,形成數(shù)據(jù)封閉。特別要注意的是:數(shù)據(jù)流圖不是傳統(tǒng)的流程圖或框圖,數(shù)據(jù)流也不是控制流。數(shù)據(jù)流圖是從數(shù)據(jù)的角度來描述一個系統(tǒng),而框圖則是從對數(shù)據(jù)進行加工的工作人員的角度來描述系統(tǒng)。數(shù)據(jù)流圖中的箭頭是數(shù)據(jù)流,而框圖中的箭頭則是控制流,控制流表達的是程序執(zhí)行的次序。下

17、圖是培訓(xùn)中心管理系統(tǒng)的數(shù)據(jù)流圖,由于只有一層,因此分解的加工較多不易理解,而且如果其中某個加工較復(fù)雜,例如編號為3 的加工“付款”和編號為7 的加工“復(fù)審”仍很復(fù)雜,一時難以理解,如果不繼續(xù)分解下去,直到每個加工都足夠簡單易于理解為止,則會影響需求分析結(jié)果的可讀性。1畫分層DFD 圖的方法如圖2.8 所示,如果系統(tǒng)規(guī)模較大,僅用一個DFD 圖難以描述,會使得系統(tǒng)變得復(fù)雜,且難以理解。為了降低系統(tǒng)的復(fù)雜性,采取“逐層分解”的技術(shù),畫分層的DFD 圖。畫分層DFD 圖的一般原則是:“先全局后局部,先整體后細節(jié),先抽象后具體”。通常將這種分層的DFD 圖,分為頂層、中間層、底層。頂層圖說明了系統(tǒng)的邊

18、界,即系統(tǒng)的輸入和輸出數(shù)據(jù)流,頂層圖只有一張。底層圖由一些不能再分解的加工組成,這些加工都已足夠簡單,稱為基本加工。在頂層和底層之間的是中間層。中間層的數(shù)據(jù)流圖描述了某個加工的分解,而它的組成部分又要進一步分解。 畫各層DFD 圖時,應(yīng)“由外向內(nèi)”。畫分層DFD 圖的具體步驟: 先確定系統(tǒng)范圍,畫出頂層的DFD 圖。 逐層分解頂層DFD 圖,獲得若干中間層DFD 圖。 畫出底層的DFD 圖。在畫分層數(shù)據(jù)流圖時,首先遇到的問題就是應(yīng)該如何分解?不能夠一下子把一個加工分解成它所有的基本加工,一張圖中畫出過多的加工是使人難以理解的,但是如果每次只是將一個加工分解成兩個或三個加工,又可能需要分解過多的

19、層次,也會影響系統(tǒng)的可理解性。一個加工每次分解成多少個子加工才合適呢?根據(jù)經(jīng)驗“最多不要超過7 個”。統(tǒng)計結(jié)果證明,人們能有效地同時處理7 個或7 個以下的問題,但當問題多于7 個時,處理效果就會下降。當然也不能機械地應(yīng)用,關(guān)鍵是要使數(shù)據(jù)流圖易于理解。同時還有幾條原則可供參考:分解應(yīng)自然,概念上要合理、清晰。 只要不影響數(shù)據(jù)流圖的“易理解性”,可以適當?shù)囟喾纸獬蓭撞糠?,這樣分層圖的層數(shù)就可少些。 一般來說,在上層可以分解得快些,而在中、下層則應(yīng)分解得慢些,因為上層是一些綜合性的描述,“易理解性”相對地說不太重要。下節(jié)我們以一個實例來說明畫分層DFD 圖的方法。2 分層DFD 圖的改進分層數(shù)據(jù)流

20、圖是一種比較嚴格又易于理解的描述方式,它的頂層描繪了系統(tǒng)的總貌,底層畫出了系統(tǒng)所有的細部,而中間層則給出了從抽象到具體的逐步過渡。1畫分層DFD 圖的基本原則數(shù)據(jù)守恒與數(shù)據(jù)封閉原則所謂數(shù)據(jù)守恒是指加工的輸入輸出數(shù)據(jù)流是否匹配,即每一個加工既有輸入數(shù)據(jù)流又有輸出數(shù)據(jù)流。或者說一個加工至少有一個輸入數(shù)據(jù)流,一個輸出數(shù)據(jù)流。加工分解的原則自然性:概念上合理、清晰;均勻性:理想的分解是將一個問題分解成大小均勻的幾個部分;分解度:一般每一個加工每次分解最多不要超過個子加工,應(yīng)分解到基本加工為止。子圖與父圖的“平衡”父圖中某個加工的輸入輸出數(shù)據(jù)流應(yīng)該同相應(yīng)的子圖的輸入輸出相同(相對應(yīng)),分層數(shù)據(jù)流圖的這種

21、特點稱為子圖與父圖“平衡”。例1 考察下圖中子父圖的平衡顯然,圖2.13 中子圖與父圖不平衡。子圖是父圖中加工2 的分解,加工2 有輸入數(shù)據(jù)流R 和M,輸出數(shù)據(jù)流T,而子圖則只有一個輸入數(shù)據(jù)流N,卻有兩個輸出數(shù)據(jù)流T 與S。圖2.14 中,子圖是父圖中加工4 的分解,雖然表面上加工4 只有一個輸入數(shù)據(jù)流“訂貨單”,而子圖卻有三個輸入數(shù)據(jù)流,但是如果“訂貨單”是由“客戶”、“帳號”和“數(shù)量”三部分組成,即有如下數(shù)據(jù)條目:訂貨單 =客戶+帳號+數(shù)量(2.2.5 數(shù)據(jù)詞典),則子、父圖平衡。合理使用文件當文件作為某些加工之間的交界面時,文件必須畫出來,一旦文件作為數(shù)據(jù)流圖中的一個獨立成份畫出來了為了

22、對數(shù)據(jù)流圖有更直觀的認識,我們以一個考試成績管理系統(tǒng)為例,介紹它的數(shù)據(jù)流圖。某單位進行招聘考試,應(yīng)聘者報名后,單位的招聘委員會將每位應(yīng)聘者的基本情況輸入系統(tǒng)。招聘考試結(jié)束后,招聘委員會需要將應(yīng)聘者的成績輸入系統(tǒng),并按照成績對應(yīng)聘者進行排序,將成績單發(fā)放給每位應(yīng)聘者,并發(fā)放錄用通知書。該考試成績管理系統(tǒng)頂層和底層的數(shù)據(jù)流圖分別如圖2-6和圖2-7所示。  (點擊查看大圖)圖2-6考試成績管理系統(tǒng)頂層數(shù)據(jù)流圖 (點擊查看大圖)圖2-7考試成績管理系統(tǒng)底層數(shù)據(jù)流圖在繪制數(shù)據(jù)流圖的過程中,要注意以下幾點。(1) 數(shù)據(jù)的處理不一定是一個程序或一個模塊,也可以是一個連貫的處理過程。(2

23、) 數(shù)據(jù)存儲是指輸入或輸出文件,但它不僅僅可以是文件,還可以是數(shù)據(jù)項或用來組織數(shù)據(jù)的中間數(shù)據(jù)。(3) 數(shù)據(jù)流和數(shù)據(jù)存儲是不同狀態(tài)的數(shù)據(jù)。數(shù)據(jù)流是流動狀態(tài)的數(shù)據(jù),而數(shù)據(jù)存儲是指處于靜止狀態(tài)的數(shù)據(jù)。(4) 當目標系統(tǒng)的規(guī)模較大時,為了描述的清晰和易于理解,通常采用逐層分解的方法,畫出分層的數(shù)據(jù)流圖。在分解時,要考慮到自然性、均勻性和分解度幾個概念。自然性是指概念上要合理和清晰。均勻性是指盡量將一個大問題分解為規(guī)模均勻的若干部分。分解度是指分解的維度,一般每一個加工每次分解最多不宜超過7個子加工,應(yīng)分解到基本的加工為止。(5) 數(shù)據(jù)流圖分層細化時必須保持信息的連續(xù)性,即細化前后對應(yīng)功能的輸入和輸出數(shù)

24、據(jù)必須相同。關(guān)于數(shù)據(jù)流圖的詳細繪制方法,本章的實踐部分會詳細介紹。2.4.2數(shù)據(jù)字典用數(shù)據(jù)流圖來表示系統(tǒng)的邏輯模型直觀且形象,但是缺乏細節(jié)描述,也就是說它沒有準確和完整地定義各個圖元??梢杂脭?shù)據(jù)字典(data dictionary,DD)來對數(shù)據(jù)流圖做出補充和完善。數(shù)據(jù)字典用于定義數(shù)據(jù)流圖中各個圖元的具體內(nèi)容,為數(shù)據(jù)流圖中出現(xiàn)的圖形元素做出確切的解釋。數(shù)據(jù)字典包含4類條目:數(shù)據(jù)流、數(shù)據(jù)存儲、數(shù)據(jù)項和數(shù)據(jù)加工。這些條目按照一定的規(guī)則組織起來便構(gòu)成了數(shù)據(jù)字典。定義規(guī)則時,常用的符號如表2-2所示。表2-2數(shù)據(jù)字典符號符號含義示例=被定義為+與X=a+b表示X由a和b組成|或X=a | b表示X由a

25、或b組成mn或重復(fù)X= 2a6或表示重復(fù)26次a重復(fù)X=a表示X由0個或多個a組成()可選X=(a)表示a在X中可能出現(xiàn),也可能不出現(xiàn)“”基本數(shù)據(jù)元素X=“a”表示X是取值為字符a的數(shù)據(jù)元素.連接符X=1.9表示X可取1到9中的任意一個值例如,數(shù)據(jù)流"應(yīng)聘者名單"由若干應(yīng)聘者姓名、性別、年齡、專業(yè)和聯(lián)系電話等信息組成,那么"應(yīng)聘者名單"可以表示為:應(yīng)聘者名單=應(yīng)聘者姓名+性別+年齡+專業(yè)+聯(lián)系電話。數(shù)據(jù)項考試成績可以表示為:考試成績 =0.100。再如,某教務(wù)系統(tǒng)的學(xué)生成績庫文件的數(shù)據(jù)字典描述可以表示為以下形式。文件名:學(xué)生成績庫記錄定義:學(xué)生成績 =

26、學(xué)號+姓名+課程代碼+成績+必修|選修學(xué)號:由6位數(shù)字組成姓名:24個漢字課程代碼:8位字符串成績:13位十進制整數(shù)文件組織:以學(xué)號為關(guān)鍵字遞增排列2.4.3E-R圖E-R圖用于描述應(yīng)用系統(tǒng)的概念結(jié)構(gòu)數(shù)據(jù)模型,它是進行需求分析,并歸納、整理、表達和優(yōu)化現(xiàn)實世界中數(shù)據(jù)及其聯(lián)系的重要工具。在建模的過程中,E-R圖以實體、聯(lián)系和屬性三個基本概念概括數(shù)據(jù)的基本結(jié)構(gòu)。實體就是現(xiàn)實世界中的事物,多用矩形框來表示,框內(nèi)含有相應(yīng)的實體名稱。比如,在一個教務(wù)系統(tǒng)中,"學(xué)生"就是一個實體,如圖2-8所示。 圖2-8學(xué)生實體屬性多用橢圓形表示,并用無向邊與相應(yīng)的實體聯(lián)系起來,表示該屬性

27、歸某實體所有??梢哉f,實體是由若干個屬性組成的,每個屬性都代表了實體的某些特征。學(xué)生實體的屬性如圖2-9所示。 (點擊查看大圖)圖2-9學(xué)生實體的屬性聯(lián)系用菱形表示,并用無向邊分別與有關(guān)實體連接起來,以此描述實體之間的關(guān)系。實體之間存在著三種聯(lián)系類型,分別是一對一、一對多、多對多,它們反映到E-R圖中就為相應(yīng)的聯(lián)系類型,即1:1、1:n和m:n。(1) 一對一聯(lián)系是指甲實體的任何一個實例只能對應(yīng)到乙實體的一個實例,并且乙實體的任何一個實例只能對應(yīng)到甲實體的一個實例。比如,在一個座位分配系統(tǒng)中,"學(xué)生"實體和"座位"實體之間的關(guān)系就是一對一的,如

28、圖2-10所示。(2) 一對多聯(lián)系是指甲實體的任何一個實例能夠?qū)?yīng)到乙實體的多個實例,而乙實體的任何一個實例只能對應(yīng)到甲實體的一個實例。比如,在一個住宿管理系統(tǒng)中,一個"學(xué)生"只能分配到一間"宿舍",而一間"宿舍"可以容納多個"學(xué)生",如圖2-11所示。 (點擊查看大圖)圖2-10一對一聯(lián)系 (點擊查看大圖)圖2-11一對多聯(lián)系(3) 多對多聯(lián)系是指甲實體的任何一個實例能夠?qū)?yīng)到乙實體的若干個實例,而乙實體的任何一個實例也可以對應(yīng)到甲實體的若干個實例。比如,在一個選課系統(tǒng)中,一個"學(xué)生

29、"可以選修若干門"課程",同時一門"課程"也可以被若干個"學(xué)生"選修,如圖2-12所示。 (點擊查看大圖)圖2-12多對多聯(lián)系需要指出的是,同一個系統(tǒng)的E-R圖不具有唯一性,即不同的軟件開發(fā)人員所設(shè)計出來的E-R圖可能不同。2.5 利用Visio繪制網(wǎng)上書店系統(tǒng)的數(shù)據(jù)流圖(1) 網(wǎng)上書店是一種新型的書店模式,它不僅是傳統(tǒng)銷售渠道的發(fā)展和補充,也是未來圖書銷售的發(fā)展方向。目前,我國運作和銷售較好的大型網(wǎng)上書店有很多,如當當、卓越亞馬遜等,其中當當網(wǎng)上書店在價格和品種方面的優(yōu)勢眾所周知;卓越亞馬遜網(wǎng)上書店創(chuàng)造流行的能力

30、比較強。國外影響較大的網(wǎng)上書店有美國的亞馬遜、德國的貝塔斯曼等,其中亞馬遜網(wǎng)上書店在1998年擁有450萬名顧客,而到2002年就有將近32億人網(wǎng)上購書,銷售額達到了78億美元。網(wǎng)上售書將成為圖書銷售的主要渠道。下面我們將以一個小型的"網(wǎng)上書店系統(tǒng)"為例,對軟件工程開發(fā)實踐方法和相關(guān)工具的使用進行介紹。該網(wǎng)上書店系統(tǒng)旨在實現(xiàn)圖書銷售的電子商務(wù)模式并滿足經(jīng)銷商和用戶進行電子交易的需求,從而充分發(fā)揮網(wǎng)上交易的優(yōu)勢。它的目標是保證經(jīng)銷商和用戶之間快速的信息交流。本節(jié)主要是實踐利用Visio 2007來繪制網(wǎng)上書店系統(tǒng)的數(shù)據(jù)流圖。利用Visio 2007創(chuàng)建Gane- Sarson數(shù)據(jù)流圖,可以選擇"軟件和數(shù)據(jù)庫"模板,然后再選擇"數(shù)據(jù)流模型圖",創(chuàng)建之后可以看到Gane-Sarson有4種基本符號,如表2-1所示。在繪制系統(tǒng)數(shù)據(jù)流圖的過程中,結(jié)構(gòu)化需求分析方法通常強調(diào)"自頂向下,逐層分析"的思想。對于大規(guī)模的軟件系統(tǒng)而言,需要采用多層的數(shù)據(jù)流圖才能將問題描述清楚,而對于中等規(guī)?;蛐⌒偷能浖到y(tǒng)而言,采用三層的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論