下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、2.2需求分析需求分析是通過開發(fā)人員的分析概括,抽象為完整的需求定義,再形成一系列文檔的過 程。2.2.1 需求分析的目的與意義需求分析是一個非常重要的過程,它完成的好壞直接影響后續(xù)軟件開發(fā)的質(zhì)量。有效的需求分析通常都具有一定的難度。需求分析不僅僅是屬于軟件開發(fā)生命周期早期的一項工作,而且還應該貫穿于整個生命周期中,它應該隨著項目的深入而不斷地變化。此外,為了方便后續(xù)的評審和測試等工作,需求的描述應該盡量做到:具體、詳細、可以測量和可以實現(xiàn),并 且基于時間。2.2.2 需求分析的步驟遵循科學的需求分析步驟可以使需求分析工作更高效。需求分析的一般步驟如圖2-3所示。圖2-3需求分析的步驟需求涉及
2、的方面:在功能方面,需求包括系統(tǒng)要做什么, 相對于原系統(tǒng)目標系統(tǒng)需要進行哪些修改,目標用戶有哪些,以及不同用戶需要通過系統(tǒng)完成何種操作等。在性能方面,需求包括用戶對于系統(tǒng)執(zhí)行速度、響應時間、吞吐量和并發(fā)度等指標的要求。在運行環(huán)境方面,需求包括目標系統(tǒng)對于網(wǎng)絡設置、硬件設備、溫度和濕度等周圍環(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)的設想與要求。遺漏需求是最難修訂的需求錯誤。獲取需求是需求分析的基礎。為了能有效地獲取需求,開發(fā)人員應該采取科學的需求獲取方 法。在實踐中,獲取需求的方法有很多種,比如,問卷調(diào)查、訪談、實地操作、建立原型和 研究資料等。問卷調(diào)查法是采用調(diào)查問卷的形式來進行需求分析的一種方法。通過對用戶填寫的調(diào)查問卷進行匯總、統(tǒng)計和分析,開發(fā)人員便可以得到一些有用的信息。采用這種方法時,調(diào)查問卷 的設計很重要。一般在設計調(diào)查問卷時,要合理地控制開放式問題和封閉式問題的比例。開放式問題的回答不受限制,自由靈活,能夠激發(fā)用戶的思維, 使他們能盡可能地闡述自己的
4、真實想法。但是,對開放式問題進行匯總和分析的工作會比較復雜。封閉式問題的答案是預先設定的,用戶從若干答案中進行選擇。 封閉式問題便于對問卷信息進行歸納與整理,但是會限制用戶的思維。訪談通過開發(fā)人員與特定的用戶代表進行座談,進而了解到用戶的意見,是最直接的需求獲取方法。為了使訪談有效,在進行訪談之前,開發(fā)人員要首先確定訪談的目的,進而準備一個問題列表,預先準備好希望通過訪談解決的問題。在訪談的過程中,開發(fā)人員要注意態(tài)度誠懇,并保持虛心求教的姿態(tài), 同時還要對重點問題進行深入的討論。由于被訪談的用戶身份可能多種多樣,開發(fā)人員要根據(jù)用戶的身份特點,進行提問,給予啟發(fā)。當然,進行詳細 的記錄也是訪談過
5、程中必不可少的工作。訪談完成后,開發(fā)人員要對訪談的收獲進行總結, 澄清已解決的和有待進一步解決的問題。關注用戶的行為而不是他們的言語。為了深入地了解用戶需求,有時候開發(fā)人員還會以用戶的身份直接參與到現(xiàn)有系統(tǒng)的使用過 程中,在親身實踐的基礎上,更直接地體會現(xiàn)有系統(tǒng)的弊端以及新系統(tǒng)應該解決的問題,這種需求獲取方法就是實地操作。通過實地操作得到的信息會更加準確和真實,但是這種方法會比較費時間。 當用戶本身對需求的了解不太清晰的時候,開發(fā)人員通常采用建立原型系統(tǒng)的方法對用戶需求進行挖掘。原型系統(tǒng)就是目標系統(tǒng)的一個可操作的模型。在初步獲取需求后,開發(fā)人員會快速地開發(fā)一個原型系統(tǒng)。 通過對原型系統(tǒng)進行模擬
6、操作,開發(fā)人員能及時獲得用戶的意見,從而對需求進行明確。利用原型系統(tǒng)獲取需求的方法的示意圖如圖2-4所示。2 .分析需求,建立目標系統(tǒng)的邏輯模型在獲得需求后,開發(fā)人員應該對問題進行分析抽象,并在此基礎上從高層建立目標系統(tǒng)的邏輯模型。模型是對事物高層次的抽象,通常由一組符號和組織這些符號的規(guī)則組成。常用的模型圖有數(shù)據(jù)流圖、E-R圖、用例圖和狀態(tài)轉換圖等,不同的模型從不同的角度或不同的側 重點描述目標系統(tǒng)。繪制模型圖的過程,既是開發(fā)人員進行邏輯思考的過程,也是開發(fā)人員更進一步認識目標系統(tǒng)的過程。3 .將需求文檔化獲得需求后要將其描述出來,即將需求文檔化。對于大型的軟件系統(tǒng),需求階段一般會輸出 三個
7、文檔:系統(tǒng)定義文檔(用戶需求報告);系統(tǒng)需求文檔(系統(tǒng)需求規(guī)格說明書);軟件需求文檔(軟件需求規(guī)格說明書)。對于簡單的軟件系統(tǒng)而言,需求階段只需要輸出軟件需求文檔(即軟件需求規(guī)格說明書)就可以了。軟件需求規(guī)格說明書主要描述軟件的需求,從開發(fā)人員的角度對目標系統(tǒng)的業(yè)務模型、功能模型和數(shù)據(jù)模型等內(nèi)容進行描述。作為后續(xù)的軟件設計和測試的重要依據(jù),需求階段的輸出文檔應該具有清晰性、無二義性和準確性,并且能夠全面和確切地描述用戶需求。4 .需求驗證需求驗證是對需求分析的成果進行評估和驗證的過程。為了確保需求分析的正確性、一致性、完整性和有效性,提高軟件開發(fā)的效率,為后續(xù)的軟件開發(fā)做好準備,需求驗證的工作
8、非常 必要。在需求驗證的過程中,可以對需求階段的輸出文檔進行多種檢查,比如,一致性檢查、 完整性檢查和有效性檢查等。同時,需求評審也是在這個階段進行的。5 .3結構化需求分析的方法結構化需求分析是 20世紀70年代由Yourdon、Constaintine及DeMarco提出的一種面 向數(shù)據(jù)流的需求分析方法。它基于"分解"和"抽象"的基本思想,逐步建立目標系統(tǒng)的邏輯模型,進而描繪出滿足用戶要求的軟件系統(tǒng)。"分解”是指對于一個復雜的系統(tǒng), 為了將復雜性降低到可以掌握的程度,可以把大問題分解為若干個小問題,然后再分別解決。圖2-5演示了對目標系統(tǒng)
9、X進行自頂向下逐層分解的示意圖。(點擊查看大圖)圖 2-5自頂向下逐層分解最頂層描述了整個目標系統(tǒng),中間層將目標系統(tǒng)劃分為若干個模塊,每個模塊完成一定的功能,而最底層是對每個模塊實現(xiàn)方法的細節(jié)性描述。可見,在逐層分解的過程中,起初并不考慮細節(jié)性的問題, 而是先關注問題最本質(zhì)的屬性,隨著分解自頂向下進行,才逐漸考慮越來越具體的細節(jié)。這種用最本質(zhì)的屬性表示一個軟件系統(tǒng)的方法就是"抽象"。抽象是一種人類處理復雜問題的基本方法。分解和抽象是結構化需求分析的基本指導思想。在結構化需求分析的過程中,通常還需要借助數(shù)據(jù)流程圖、數(shù)據(jù)字典、E-R圖、結構化語言、判定表、判定樹等工具。接下來我
10、們介紹數(shù)據(jù)流圖、數(shù)據(jù)字典和 E-R圖的相關知識。6 .4結構化需求分析的工具6.1.1 數(shù)據(jù)流圖數(shù)據(jù)流圖(Data Flow Diagram , DFD )是描述系統(tǒng)中數(shù)據(jù)流的圖形工具,是一種用來表示信 息流和信息變換過程的圖解方法,可以標識一個系統(tǒng)的邏輯輸入和邏輯輸出,以及把邏輯輸入轉換為邏輯輸出所需的加工處理。數(shù)據(jù)流圖把軟件系統(tǒng)看成是由數(shù)據(jù)流聯(lián)系的各種功能的 組合,在需求分析的過程中,可以用來建立目標系統(tǒng)的邏輯模型。結構化需求分析采用的是 "自頂向下,由外到內(nèi),逐層分解”的思想,開發(fā)人員要先畫出系統(tǒng)頂層的數(shù)據(jù)流圖,然后再逐層畫出低層的數(shù)據(jù)流圖。頂層的數(shù)據(jù)流圖要定義系統(tǒng)范圍,并描述
11、系統(tǒng)與外界的數(shù)據(jù)聯(lián)系,它是對系統(tǒng)架構的高度概括和抽象。底層的數(shù)據(jù)流圖是對系統(tǒng)某個部分的精細描述。數(shù)據(jù)流圖的目的是在用戶和系統(tǒng)開發(fā)人員之間提供語義的橋梁。-Kenneth Kozar按照Gane-Sarson法,在繪制數(shù)據(jù)流圖的過程中,主要用到了 4個基本符號,如表2-1所示。表2-1數(shù)據(jù)流圖的基本符號名稱符號一信息源表示數(shù)據(jù)的源點或終點,它是系統(tǒng)之外的實體,可以是人、物或者其他系統(tǒng)|加工小口表示對數(shù)據(jù)進行加工或處理,比如對一數(shù)據(jù)的算法分析和科學it«小|奴據(jù)存儲*/表示輸入或輸出文件這些文件可以/ 是計算機系統(tǒng)中的外部或內(nèi)部文件,/ 也可以是表和賑單等 數(shù)據(jù)流表示數(shù)據(jù)流的流動方向
12、171;數(shù)據(jù)潦可以從加。 工流向加工,從加工流向文件,或者從文件流向加工Q1 SA法概述SA法也是一種建模的活動,主要是根據(jù)軟件內(nèi)部的數(shù)據(jù)傳遞、變換關系,自頂向下逐層分解,描繪出滿足功能要求的軟件模型。1. SA法的基本思想結構化分析(Structured Analysis,簡稱SA法)是面向數(shù)據(jù)流的需求分析方法,是 70年代 由Yourdon,Constaintine及DeMarco等人提出和發(fā)展,并得到廣泛的應用。結構化分析方法的基本思想是“分解”和“抽象” 。分解:是指對于一個復雜的系統(tǒng),為了將復雜性降低到可以掌握的程度,可以把大問題分解成若干小問題,然后分別解決。圖4是自頂向下逐層分解
13、的示意圖。頂層抽象地描述了整個系統(tǒng),底層具體地畫出了系統(tǒng) 的每一個細節(jié),而中間層是從抽象到具體的逐層過渡。圖 4自頂向卜逐層分解抽象:分解可以分層進行,即先考慮問題最本質(zhì)的屬性,暫把細節(jié)略去,以后再逐層添加細節(jié),直至涉及到最詳細的內(nèi)容,這種用最本質(zhì)的屬性表示一個自系統(tǒng)的方法就是“抽象”2. SA法的步驟建立當前系統(tǒng)的“具體模型”;系統(tǒng)的“具體模型”就是現(xiàn)實環(huán)境的忠實寫照,即將當前系統(tǒng)用DFD圖描述出來。這樣的表達與當前系統(tǒng)完全對應,因此用戶容易理解。抽象出當前系統(tǒng)的邏輯模型;分析系統(tǒng)的“具體模型”,抽象出其本質(zhì)的因素,排除次要因素,獲得用 DFD圖描述的當 前系統(tǒng)的“邏輯模型”。建立目標系統(tǒng)的
14、邏輯模型;分析目標系統(tǒng)與當前系統(tǒng)邏輯上的差別,從而進一步明確目標系統(tǒng)“做什么”,建立目標系統(tǒng)的“邏輯模型”(修改后的DFD圖)。為了對目標系統(tǒng)作完整的描述,還需要考慮人機界面和其它一些問題。3. SA法的描述工具分層的數(shù)據(jù)流圖數(shù)據(jù)詞典 描述加工邏輯的結構化語言、判定表或判定樹。2數(shù)據(jù)流圖數(shù)據(jù)流圖(Data Flow Diagram,簡稱DFD )是描述系統(tǒng)中數(shù)據(jù)流程的圖形工具,它標識了 一個系統(tǒng)的邏輯輸入和邏輯輸出,以及把邏輯輸入轉換邏輯輸出所需的加工處理。1.數(shù)據(jù)流圖的圖符數(shù)據(jù)流圖有以下4種基本圖形符號:數(shù)據(jù)源g4:fi 5 DFD 的口實體名箭頭表示數(shù)據(jù)流,圓或橢圓表示加工。 雙杠或者單杠
15、表示數(shù)據(jù)存儲,矩形框表示數(shù)據(jù)的源點或終點,即外部實體。 數(shù)據(jù)流 是數(shù)據(jù)在系統(tǒng)內(nèi)傳播的路徑,由一組成固定的數(shù)據(jù)項組成。 除了與數(shù)據(jù)存儲(文件)之間的數(shù)據(jù)流不用命名外,其余數(shù)據(jù)流都應該用名詞或名詞短語命名。數(shù)據(jù)流可以從加工流向加工,也可以從加工流向文件或從文件流向加工,也可以從源點流向加工或從加工流向終點。 加工 也稱為數(shù)據(jù)處理,它對數(shù)據(jù)流進行某些操作或變換。每個加工也要有名字, 通常是動詞短語,簡明地描述完成什么加工。在分層的數(shù)據(jù)流圖中,加工還應有編號。數(shù)據(jù)存儲指暫時保存的數(shù)據(jù),它可以是數(shù)據(jù)庫文件或任何形式的數(shù)據(jù)組織。流向數(shù)據(jù)存儲的數(shù)據(jù)流可理解為寫入文件, 或查詢文件,從數(shù)據(jù)存儲流出的數(shù)據(jù)可理解
16、為從文件讀數(shù)據(jù) 或得到查詢結果。(4)數(shù)據(jù)源點和終點 是軟件系統(tǒng)外部環(huán)境中的實體(包括人員、組織或其他軟件系統(tǒng)),統(tǒng)稱為外部實體。一般只出現(xiàn)在數(shù)據(jù)流圖的頂層圖中。還有一些輔助的圖例K中二*在示與,+ 衣示或. 表示h斥圖 6 DFDI乳的觸.叱抬”例1:畫出圖書預定系統(tǒng)的 DFD圖?,F(xiàn)有一圖書預定系統(tǒng),接收由顧客發(fā)來的訂單,并對訂單進行驗證,驗證過程是根據(jù)圖書目錄檢查訂單的正確性,同時根據(jù)顧客檔案確定是新顧然后客還是老顧客,是否有信譽。經(jīng)過驗證的正確訂單,暫存放在待處理的訂單文件中。對訂單 進行成批處理,根據(jù)出版社檔案,將訂單按照出版社進行分類匯總,并保存訂單存根, 將匯總訂單發(fā)往各出版社。畫
17、圖步驟是: 首先確定外部實體(顧客、出版社)及輸入、輸出數(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í)行的次序。下圖是培訓中心管理系統(tǒng)的數(shù)據(jù)流圖,由于只有一層,因此分解的加工較多不易理解,而且如果其中某個加工較復雜,例如編號為3的加工“付款”
18、和編號為 7的加工“復審”仍很復雜,一時難以理解,如果不繼續(xù)分解下去,直到每個加工都足夠簡單易于理解為止,則會影響需求分析結果的可讀性。1.畫分層DFD圖的方法國2 3喑謝中心區(qū)在雜喳的DF口聯(lián)如圖2.8所示,如果系統(tǒng)規(guī)模較大,僅用一個DFD圖難以描述,會使得系統(tǒng)變得復雜,且難以理解。為了降低系統(tǒng)的復雜性,采取“逐層分解”的技術,畫分層的DFD圖。畫分層DFD圖的一般原則是:“先全局后局部,先整體后細節(jié),先抽象后具體”。通常將這種 分層的DFD圖,分為頂層、中間層、底層。頂層圖說明了系統(tǒng)的邊界,即系統(tǒng)的輸入和輸出數(shù)據(jù)流,頂層圖只有一張。底層圖由一些不能再分解的加工組成,這些加工都已足夠簡單,
19、稱為基本加工。在頂層和底層之間的是中間層。中間層的數(shù)據(jù)流圖描述了某個加工的分解, 而它的組成部分又要進一步分解。畫各層DFD圖時,應“由外向內(nèi)”。畫分層DFD圖的具體步驟: 先確定系統(tǒng)范圍,畫出頂層的DFD圖。 逐層分解頂層 DFD圖,獲得若干中間層 DFD圖。畫出底層的DFD圖。1 112 118 DFD 閨在畫分層數(shù)據(jù)流圖時,首先遇到的問題就是應該如何分解?不能夠一下子把一個加工分解成 它所有的基本加工,一張圖中畫出過多的加工是使人難以理解的,但是如果每次只是將一個加工分解成兩個或三個加工,又可能需要分解過多的層次,也會影響系統(tǒng)的可理解性。一個加工每次分解成多少個子加工才合適呢?根據(jù)經(jīng)驗“
20、最多不要超過 7個”。統(tǒng)計結果證明,人們能有效地同時處理7個或7個以下的問題,但當問題多于 7個時,處理效果就會下降。當然也不能機械地應用,關鍵是要使 數(shù)據(jù)流圖易于理解。同時還有幾條原則可供參考:分解應自然,概念上要合理、清晰。只要不影響數(shù)據(jù)流圖的“易理解性”,可以適當?shù)囟喾纸獬蓭撞糠?,這樣分層圖的層數(shù)就可少些。一般來說,在上層可以分解得快些,而在中、下層則應分解得慢些,因為上層是一些綜合性的描述,“易理解性”相對地說不太重要。下節(jié)我們以一個實例來說明畫分層DFD圖的方法。2分層DFD圖的改進分層數(shù)據(jù)流圖是一種比較嚴格又易于理解的描述方式,它的頂層描繪了系統(tǒng)的總貌,底層畫出了系統(tǒng)所有的細部,而
21、中間層則給出了從抽象到具體的逐步過渡。1.畫分層DFD圖的基本原則.數(shù)據(jù)守恒與數(shù)據(jù)封閉原則所謂數(shù)據(jù)守恒是指加工的輸入輸出數(shù)據(jù)流是否匹配,即每一個加工既有輸入數(shù)據(jù)流又有輸出數(shù)據(jù)流?;蛘哒f一個加工至少有一個輸入數(shù)據(jù)流,一個輸出數(shù)據(jù)流。加工分解的原則自然性:概念上合理、清晰;均勻性:理想的分解是將一個問題分解成大小均勻的幾個部分;分解度:一般每一個加工每次分解最多不要超過7個子加工,應分解到基本加工為止。子圖與父圖的“平衡”父圖中某個加工的輸入輸出數(shù)據(jù)流應該同相應的子圖的輸入輸出相同(相對應),分層數(shù)據(jù)流圖的這種特點稱為子圖與父圖“平衡”。例1考察下圖中子父圖的平衡顯然,圖2.13中子圖與父圖不平衡
22、。 子圖是父圖中加工 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ù)量(225數(shù)據(jù)詞典),則子、父圖平衡。合理使用文件當文件作為某些加工之間的交界面時,文件必須畫出來,一旦文件作為數(shù)據(jù)流圖中的一個獨立成份畫出來了 為了對數(shù)據(jù)流圖有更直觀的認識,我們以一個考試成績管理系統(tǒng)為例,介紹它的數(shù)據(jù)流圖。某單位進行招聘考試,應
23、聘者報名后,單位的招聘委員會將每位應聘者的基本情況輸入系統(tǒng)。招聘考試結束后,招聘委員會需要將應聘者的成績輸入系統(tǒng),并按照成績對應聘者進行排序,將成績單發(fā)放給每位應聘者,并發(fā)放錄用通知書。該考試成績管理系統(tǒng)頂層和底層的數(shù)據(jù)流 圖分別如圖2-6和圖2-7所示。(點擊查看大圖)圖 2-6考試成績管理系統(tǒng)頂層數(shù)據(jù)流圖在繪制數(shù)據(jù)流圖的過程中,要注意以下幾點。(1)數(shù)據(jù)的處理不一定是一個程序或一個模塊,也可以是一個連貫的處理過程。(2)數(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ù)存儲是指處
24、于 靜止狀態(tài)的數(shù)據(jù)。(4)當目標系統(tǒng)的規(guī)模較大時,為了描述的清晰和易于理解,通常采用逐層分解的方法,畫 出分層的數(shù)據(jù)流圖。在分解時,要考慮到自然性、均勻性和分解度幾個概念。自然性是指概念上要合理和清晰。均勻性是指盡量將一個大問題分解為規(guī)模均勻的若干部分。分解度是指分解的維度, 一般每一個加工每次分解最多不宜超過7個子加工,應分解到基本的加工為止。(5)數(shù)據(jù)流圖分層細化時必須保持信息的連續(xù)性,即細化前后對應功能的輸入和輸出數(shù)據(jù)必 須相同。關于數(shù)據(jù)流圖的詳細繪制方法,本章的實踐部分會詳細介紹。2.4.2數(shù)據(jù)字典用數(shù)據(jù)流圖來表示系統(tǒng)的邏輯模型直觀且形象,但是缺乏細節(jié)描述,也就是說它沒有準確和完整地定
25、義各個圖元。可以用數(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ī)則組織起來便構成了數(shù)據(jù)字典。定義規(guī)則時,常用的符號如表2-2所示。表2-2數(shù)據(jù)字典符號符號含義示例=被定義為+與X=a+b表7K X由a和b組成|或X=a | b表7K X由a或b組成mn或重復X= 2a6或表7K重復26次a重復X=a表示X由0個或多個a組成()可選X=(a)表示a在X中可能出現(xiàn), 也可能不出現(xiàn)基本數(shù)據(jù)兀素X=
26、 “a”表示X是取值為 字符a的數(shù)據(jù)元素.連接符X=1.9表示X可取1至ij 9中 的任個值例如,數(shù)據(jù)流"應聘者名單"由若干應聘者姓名、性別、年齡、專業(yè)和聯(lián)系電話等信息組成,那么"應聘者名單”可以表示為:應聘者名單 =應聘者姓名+性別+年齡+專業(yè)+聯(lián)系電話。數(shù) 據(jù)項考試成績可以表示為:考試成績=0.100。再如,某教務系統(tǒng)的學生成績庫文件的數(shù)據(jù)字典描述可以表示為以下形式。文件名:學生成績庫記錄定義:學生成績 =學號+姓名+課程彳弋碼+成績+必修|選修學號:由6位數(shù)字組成姓名:24個漢字課程代碼:8位字符串成績:13位十進制整數(shù)文件組織:以學號為關鍵字遞增排列2.4
27、.3 E-R 圖E-R圖用于描述應用系統(tǒng)的概念結構數(shù)據(jù)模型,它是進行需求分析,并歸納、整理、表達和 優(yōu)化現(xiàn)實世界中數(shù)據(jù)及其聯(lián)系的重要工具。在建模的過程中,E-R圖以實體、聯(lián)系和屬性三個基本概念概括數(shù)據(jù)的基本結構。實體就是 現(xiàn)實世界中的事物,多用矩形框來表示,框內(nèi)含有相應的實體名稱。比如,在一個教務系統(tǒng) 中,"學生”就是一個實體,如圖 2-8所示。屬性多用橢圓形表示,并用無向邊與相應的實體聯(lián)系起來,表示該屬性歸某實體所有??梢哉f,實體是由若干個屬性組成的,每個屬性都代表了實體的某些特征。學生實體的屬性如圖2-9所示。(點擊查看大圖)圖 2-9學生實體的屬性聯(lián)系用菱形表示,并用無向邊分別
28、與有關實體連接起來,以此描述實體之間的關系。 實體之間存在著三種聯(lián)系類型,分別是一對一、一對多、多對多,它們反映到E-R圖中就為相應的聯(lián)系類型,即1:1、1:n和m:n。(1) 一對一聯(lián)系是指甲實體的任何一個實例只能對應到乙實體的一個實例,并且乙實體的任何一個實例只能對應到甲實體的一個實例。比如,在一個座位分配系統(tǒng)中,"學生"實體和"座位”實體之間的關系就是一對一的,如圖2-10所示。(2) 一對多聯(lián)系是指甲實體的任何一個實例能夠?qū)揭覍嶓w的多個實例,而乙實體的任何 一個實例只能對應到甲實體的一個實例。比如,在一個住宿管理系統(tǒng)中,一個“學生”只能分配到一間“宿舍
29、",而一間"宿舍”可以容納多個“學生",如圖2-11所示。(點擊查看大圖)圖 2-11 一對多聯(lián)系(3)多對多聯(lián)系是指甲實體的任何一個實例能夠?qū)揭覍嶓w的若干個實例,而乙實體的任何一個實例也可以對應到甲實體的若干個實仞比如,在一個選課系統(tǒng)中,一個"學生"可以選修若干門"課程",同時一門"課程"也可以被若干個"學生"選修,如圖2-12所示。需要指出的是,同一個系統(tǒng)的E-R圖不具有唯一性,即不同的軟件開發(fā)人員所設計出來的E-R圖可能不同。2.5 利用Visio繪制網(wǎng)上書店系統(tǒng)的數(shù)據(jù)流圖(
30、1)網(wǎng)上書店是一種新型的書店模式,它不僅是傳統(tǒng)銷售渠道的發(fā)展和補充,也是未來圖書 銷售的發(fā)展方向。目前, 我國運作和銷售較好的大型網(wǎng)上書店有很多,如當當、卓越亞馬遜等,其中當當網(wǎng)上書店在價格和品種方面的優(yōu)勢眾所周知;卓越亞馬遜網(wǎng)上書店創(chuàng)造流行的能力比較強。國外影響較大的網(wǎng)上書店有美國的亞馬遜、德國的貝塔斯曼等, 其中亞馬遜網(wǎng)上書店在1998年擁有450萬名顧客,而到 2002年就有將近32億人網(wǎng)上購書,銷售額達到 了 78億美元。網(wǎng)上售書將成為圖書銷售的主要渠道。下面我們將以一個小型的"網(wǎng)上書店系統(tǒng)”為例,對軟件工程開發(fā)實踐方法和相關工具的使用 進行介紹。該網(wǎng)上書店系統(tǒng)旨在實現(xiàn)圖書銷
31、售的電子商務模式并滿足經(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ù)流*II型圖二創(chuàng)建之后可 以看到Gane-Sarson有4種基本符號,如表 2-1所示。在繪制系統(tǒng)數(shù)據(jù)流圖的過程中,結構化需求分析方法通常強調(diào)"自頂向下,逐層分析"的思想。對于大規(guī)模的軟件系統(tǒng)而言,需要采用多層的數(shù)據(jù)流圖才能將問題描述清楚,而對
32、于中等規(guī)?;蛐⌒偷能浖到y(tǒng)而言,采用三層的數(shù)據(jù)流圖就可以了。在三層的數(shù)據(jù)流圖中,頂層數(shù)據(jù)流圖主要描述目標系統(tǒng)作為一個整體與外部用戶或數(shù)據(jù)之間的交互;中層數(shù)據(jù)流圖是對頂層數(shù)據(jù)流圖的細化,描述系統(tǒng)的主要功能模塊,以及數(shù)據(jù)在功能模塊之間的流動關系;底層數(shù)據(jù)流圖是對中層數(shù)據(jù)流圖的進一步細化,它更關注于功能模塊內(nèi)部的數(shù)據(jù)處理細節(jié)。繪制目標系統(tǒng)的頂層數(shù)據(jù)流圖時,關鍵在于分析系統(tǒng)有哪些外部用戶及與該系統(tǒng)進行交互的數(shù)據(jù)源點或終點。例如,對于這里的網(wǎng)上書店系統(tǒng),其外部用戶主要有游客、 會員和管理員。其中,游客進行注冊后,可以成為系統(tǒng)的會員,會員享有訂購圖書及訂單和書籍等信息查詢的功能,管理員可對系統(tǒng)的各種信息進行管理和維護。根據(jù)上述分析,可以得到網(wǎng)上書店系統(tǒng)的頂層數(shù)據(jù)流圖,如圖2-17所示。中層數(shù)據(jù)流圖是對頂層數(shù)據(jù)流圖的細化,它把目標系統(tǒng)主要的功能模塊細分為不同的加工,并對數(shù)據(jù)在不同加工之間的流動關系進行描述。按照結構化需求分析方法,網(wǎng)上書店系統(tǒng)的主要功能模塊可以分為用戶注冊、訂單信息查詢、書籍信息查詢、訂購圖書及訂單信息管理和圖書信息管理等。在數(shù)據(jù)處理的過程中,系統(tǒng)內(nèi)部的信息存儲至少應該包括會員信息記錄、 圖書信息記錄和訂單信息記錄。根據(jù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)自我評價15篇
- 個人保證書集錦15篇
- 戰(zhàn)友聚會致辭(15篇)
- 學生畢業(yè)晚會策劃書12篇
- 四年級下冊語文說課稿錦集六篇
- 客服辭職報告15篇
- 秋季幼兒園中班工作計劃
- 出納的實習報告范文錦集10篇
- 晶狀體病-教學課件
- 健康檢測設備代理銷售合同(2篇)
- 【講座】2020年福建省高職分類考試招生指導講座
- GB 18450-2001民用黑火藥
- 性格決定命運課件
- 學習會計基礎工作規(guī)范課件
- 民間文學(全套課件)
- 初二期末放假前家長會
- DB41-T 2137-2021公路隧道監(jiān)控量測技術規(guī)程-(高清現(xiàn)行)
- 雙面埋弧焊螺旋鋼管公稱外公壁厚和每米理論重量
- 協(xié)昌電磁脈沖閥介紹
- 爆破作業(yè)盲炮處理方案
- 富士施樂VC2265打印機使用說明SPO
評論
0/150
提交評論