




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