第4章需求分析_第1頁(yè)
第4章需求分析_第2頁(yè)
第4章需求分析_第3頁(yè)
第4章需求分析_第4頁(yè)
第4章需求分析_第5頁(yè)
已閱讀5頁(yè),還剩79頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第4章需求分析4.1需求分析概述4.2需求分析的目標(biāo)和任務(wù)4.3需求分析的原則與獲取需求的方法4.4需求分析的過(guò)程4.5需求分析的方法4.6軟件需求分析文檔1

軟件需求分析是軟件生存周期中重要的一步,也是最關(guān)鍵的一步,是介于系統(tǒng)分析和軟件設(shè)計(jì)階段的重要橋梁,要想開發(fā)出用戶滿意的軟件產(chǎn)品,首先得清楚用戶的需求。項(xiàng)目需求分析是一個(gè)項(xiàng)目的開端,也是項(xiàng)目建設(shè)的基石!軟件項(xiàng)目中40%~60%的問題都是在需求分析階段埋下的“禍根”!2在可行性分析階段開發(fā)人員已經(jīng)粗略了解了用戶的需求,其基本目的是用較小的成本在較短的時(shí)間內(nèi)確定是否存在可行的解法。由于軟件開發(fā)人員和用戶并不熟悉對(duì)方的業(yè)務(wù),因此對(duì)同一問題,他們?cè)谡J(rèn)識(shí)上可能存在差異,不可能全面地、精確地理解和表達(dá)用戶需求,這就隱藏了一些目前未能發(fā)現(xiàn)的問題。

需求分析是發(fā)現(xiàn)、求精、建模、規(guī)格說(shuō)明和復(fù)審的過(guò)程。需求分析的結(jié)果是形成需求規(guī)格說(shuō)明書,它是系統(tǒng)設(shè)計(jì)的基礎(chǔ),它關(guān)系到工程的成敗和軟件產(chǎn)品的質(zhì)量。3需求的獲取非常困難:用戶需求的動(dòng)態(tài)性(不穩(wěn)定性)。實(shí)踐證明,軟件史上還沒有一次就準(zhǔn)確獲取需求的案例。需求的模糊性(不準(zhǔn)確性),也即用戶不能清楚地表達(dá)出具體需求。需求必須得到用戶的確認(rèn),否則毫無(wú)意義。這如同跑題的作文,寫得再長(zhǎng)也不能得分。4軟件需求是指用戶對(duì)軟件的功能和性能的要求,就是用戶希望軟件能做什么事情,完成什么樣的功能,達(dá)到什么樣的性能。所謂“需求分析”,是指對(duì)要解決的問題進(jìn)行詳細(xì)的分析,弄清楚問題的要求,包括需要輸入什么數(shù)據(jù),要得到什么結(jié)果,最后應(yīng)輸出什么。需求分析計(jì)算機(jī)“做什么”4.1.1需求的定義5需求可分解為四個(gè)層次業(yè)務(wù)需求用戶需求功能需求非功能需求4.1.2需求的層次組織機(jī)構(gòu)或客戶對(duì)系統(tǒng)、產(chǎn)品高層次的目標(biāo)要求,由管理人員或市場(chǎng)分析人員確定用戶通過(guò)使用本軟件產(chǎn)品必須完成的任務(wù),一般由用戶協(xié)助提供。開發(fā)人員必須實(shí)現(xiàn)的軟件功能對(duì)功能需求的補(bǔ)充。包括用戶關(guān)心的有效性、效率、靈活性、完整性、互操作性、可靠性、健壯性和可用性等;對(duì)開發(fā)者來(lái)說(shuō)很重要的質(zhì)量屬性,例如可維護(hù)性、可移植性、可復(fù)用性和可測(cè)試性等。6第4章需求分析4.1需求分析概述4.2需求分析的目標(biāo)和任務(wù)

4.3需求分析的原則與獲取需求的方法4.4需求分析的過(guò)程4.5需求分析的方法4.6軟件需求分析文檔7軟件需求分析的目標(biāo)是深入描述軟件的功能和性能,確定軟件設(shè)計(jì)的約束和軟件同其他系統(tǒng)元素的接口細(xì)節(jié),定義軟件的其他有效性需求。8需求分析是軟件定義時(shí)期的最后一個(gè)階段,它的基本任務(wù)是準(zhǔn)確地回答“系統(tǒng)必須做什么?”這個(gè)問題,而不是“怎樣實(shí)現(xiàn)”?!痉治鼋Y(jié)果】:系統(tǒng)分析員應(yīng)該寫出軟件需求規(guī)格說(shuō)明書,以書面形式準(zhǔn)確地描述軟件需求?!菊莆諆?nèi)容】:對(duì)一個(gè)軟件系統(tǒng)來(lái)說(shuō),數(shù)據(jù)是穩(wěn)定的,事務(wù)處理可能是變化的。4.2.1需求分析的目標(biāo)9一般說(shuō)來(lái),需求分析階段的任務(wù)包括下述幾方面:1.確定對(duì)系統(tǒng)的綜合需求系統(tǒng)功能需求——系統(tǒng)必須完成的所有功能系統(tǒng)性能需求——響應(yīng)時(shí)間、精確度指標(biāo)需求、安全性等運(yùn)行需求——對(duì)系統(tǒng)運(yùn)行時(shí)所處環(huán)境的需求將來(lái)可能提出的需求——雖然不屬于當(dāng)前系統(tǒng)開發(fā)范疇,但是根據(jù)分析將來(lái)很可能會(huì)提出來(lái)的需求,有利于系統(tǒng)維護(hù)升級(jí)。系統(tǒng)分析人員與用戶協(xié)商,澄清模糊需求,刪除無(wú)法做到的需求,改正錯(cuò)誤需求。4.2.2需求分析的任務(wù)102.分析系統(tǒng)的數(shù)據(jù)需求這是需求分析的一個(gè)重要任務(wù)。主要體現(xiàn)在:

如何定義數(shù)據(jù)?數(shù)據(jù)的作用?如何用?如何表達(dá)數(shù)據(jù)間的關(guān)系?如何存儲(chǔ)?為減少數(shù)據(jù)冗余,如何簡(jiǎn)化數(shù)據(jù),并進(jìn)行規(guī)范化?分析系統(tǒng)的數(shù)據(jù)需求是由系統(tǒng)的信息流歸納抽象出數(shù)據(jù)元素組成、數(shù)據(jù)的邏輯關(guān)系、數(shù)據(jù)字典格式、數(shù)據(jù)模型,并以輸入/處理/輸出的結(jié)構(gòu)方式表示。113.提出系統(tǒng)的邏輯模型

在理解當(dāng)前已存在系統(tǒng)結(jié)構(gòu)的基礎(chǔ)上,對(duì)當(dāng)前已存在系統(tǒng)的物理模型進(jìn)行分析,抽取其做什么的本質(zhì),就可獲得反映系統(tǒng)本質(zhì)的邏輯模型,通常用數(shù)據(jù)流圖、數(shù)據(jù)字典和主要的處理算法描述邏輯模型。具體做法是:首先確定目標(biāo)系統(tǒng)與當(dāng)前系統(tǒng)的邏輯差別;然后將變化部分看作是新的處理步驟,對(duì)功能圖(一般為數(shù)據(jù)流圖)及對(duì)象圖進(jìn)行調(diào)整;最后由外及里對(duì)變化的部分進(jìn)行分析,推斷其結(jié)構(gòu),獲得目標(biāo)系統(tǒng)的邏輯模型。124.修正系統(tǒng)開發(fā)計(jì)劃

在經(jīng)過(guò)需求分析階段的前述工作之后,分析員對(duì)目標(biāo)系統(tǒng)有了更深入更具體的認(rèn)識(shí),因此可以對(duì)系統(tǒng)的成本和進(jìn)度做出更準(zhǔn)確的估計(jì),在此基礎(chǔ)上應(yīng)該對(duì)開發(fā)計(jì)劃進(jìn)行修正。5.開發(fā)原型系統(tǒng)快速原型就是快速建立演示目標(biāo)系統(tǒng)主要功能的可運(yùn)行的程序。構(gòu)建原型的要點(diǎn):它應(yīng)該實(shí)現(xiàn)用戶看得見的功能(例如,屏幕顯示或打印報(bào)表),省略目標(biāo)系統(tǒng)的“隱含”功能(例如,修改文件)。在實(shí)際開發(fā)軟件產(chǎn)品時(shí),原型的“修改—試用—反饋”過(guò)程可能重復(fù)多遍,才能得到符合實(shí)際系統(tǒng)的需求,如果修改耗時(shí)過(guò)多,勢(shì)必延誤軟件開發(fā)時(shí)間。13需求分析階段所要完成的任務(wù)并不是如何去編制程序,做具體的工作,而是確定系統(tǒng)必須完成哪些工作,實(shí)現(xiàn)哪些功能,也就是對(duì)目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、具體、清晰的要求。需求分析階段以軟件計(jì)劃階段的軟件工作范圍為指南,通過(guò)分析綜合建立分析模型,編制出軟件需求規(guī)格說(shuō)明書。因此,在軟件企業(yè)進(jìn)行需求分析的人員通常是具有較高系統(tǒng)駕馭能力的系統(tǒng)分析員。14第4章需求分析4.1需求分析概述4.2需求分析的目標(biāo)和任務(wù)4.3需求分析的原則與獲取需求的方法4.4需求分析的過(guò)程4.5需求分析的方法4.6軟件需求分析文檔154.3.1需求分析的原則(1)必須理解并描述問題的數(shù)據(jù)域,根據(jù)這條準(zhǔn)則應(yīng)該建立數(shù)據(jù)模型。所有軟件定義與開發(fā)工作最終都是為了解決數(shù)據(jù)處理問題,就是將一種形式的數(shù)據(jù)轉(zhuǎn)換成另一種形式的數(shù)據(jù)。其轉(zhuǎn)換過(guò)程必定經(jīng)歷輸入數(shù)據(jù)、加工數(shù)據(jù)和產(chǎn)生結(jié)果數(shù)據(jù)等步驟。數(shù)據(jù)流即數(shù)據(jù)通過(guò)一個(gè)系統(tǒng)時(shí)的變化方式。輸入數(shù)據(jù)最終變化為輸出數(shù)據(jù)。對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換是程序中應(yīng)有的功能或子功能。兩個(gè)轉(zhuǎn)換功能之間的數(shù)據(jù)傳遞就確定了功能間的接口。數(shù)據(jù)內(nèi)容即數(shù)據(jù)項(xiàng)。數(shù)據(jù)結(jié)構(gòu)即各種數(shù)據(jù)項(xiàng)的邏輯組織。數(shù)據(jù)流、數(shù)據(jù)內(nèi)容和數(shù)據(jù)結(jié)構(gòu)16(2)必須定義軟件應(yīng)完成的功能域,這條準(zhǔn)則要求建立功能模型。(3)必須描述作為外部事件結(jié)果的軟件行為,這條準(zhǔn)則要求建立行為模型。(4)必須對(duì)描述信息、功能和行為的模型進(jìn)行分解,用層次的方式展示細(xì)節(jié)。

系統(tǒng)要具備的功能事件的狀態(tài),可用以后的狀態(tài)轉(zhuǎn)換圖建立行為模型17分解示意圖:18(5)要給出系統(tǒng)的邏輯視圖和物理視圖軟件需求的邏輯視圖給出軟件要達(dá)到的功能和將要處理數(shù)據(jù)之間的關(guān)系,而不是實(shí)現(xiàn)的細(xì)節(jié)。

軟件需求的物理視圖給出處理功能和數(shù)據(jù)結(jié)構(gòu)的實(shí)際表示形式,這往往是由設(shè)備決定的。194.3.2獲取需求的方法

需求分析是軟件開發(fā)中最重要的環(huán)節(jié),需求分析做得正確與否決定著軟件開發(fā)的成敗。要做好需求分析,最重要的是有正確的獲取需求的渠道和方法。常用的獲取需求的方法有訪談、問卷調(diào)查、情景分析、實(shí)地考察、構(gòu)造原型等。

20(1)訪談訪談是最早開始使用的獲取用戶需求的技術(shù),也是迄今為止仍然廣泛使用的需求分析技術(shù)。

訪談?dòng)袃煞N基本形式:正式訪談時(shí):系統(tǒng)分析員將提出一些事先準(zhǔn)備好的具體問題。非正式訪談:分析員將提出一些用戶可以自由回答的開放性問題,以鼓勵(lì)被訪問人員說(shuō)出自己的想法。21注意:訪談時(shí)不要使用行話,就是計(jì)算機(jī)術(shù)語(yǔ)。需求分析最重要的是和用戶溝通。另外還要引導(dǎo)用戶如何講出與系統(tǒng)有關(guān)的業(yè)務(wù)。不要陷到“客戶總是對(duì)的”的陷阱中去22(2)問卷調(diào)查問卷調(diào)查即把需要調(diào)查的內(nèi)容制成表格交給用戶填寫。該方法的優(yōu)點(diǎn)是用戶有較寬裕的考慮時(shí)間和回答時(shí)間。采用問卷調(diào)查方法的關(guān)鍵是調(diào)查表的設(shè)計(jì)。調(diào)查表的設(shè)計(jì)應(yīng)簡(jiǎn)潔、易懂、易填寫,同時(shí)還要注意用戶的特點(diǎn)和調(diào)查的策略。23(3)情景分析由于很多用戶不了解計(jì)算機(jī)系統(tǒng),對(duì)自己的業(yè)務(wù)如何在將來(lái)的目標(biāo)系統(tǒng)中實(shí)現(xiàn)無(wú)認(rèn)識(shí),因此很難提出具體的需求。情景分析就是對(duì)目標(biāo)系統(tǒng)解決某個(gè)具體問題的方法和結(jié)果給出可能的情景描述,以獲知用戶的具體需求。(4)實(shí)地考察分析人員到用戶工作現(xiàn)場(chǎng),實(shí)際觀察用戶的手工操作過(guò)程也是一種行之有效的需求獲取方法。24(5)構(gòu)造原型在系統(tǒng)開發(fā)的早期,以對(duì)用戶所進(jìn)行的簡(jiǎn)單需求分析為基礎(chǔ),快速建立目標(biāo)系統(tǒng)的原型。用戶可以通過(guò)原型進(jìn)行評(píng)估并提出修改意見,從而使用戶明確需求??焖僭头椒瓤舍槍?duì)整個(gè)系統(tǒng),也可針對(duì)系統(tǒng)的某部分功能。25第4章需求分析4.1需求分析概述4.2需求分析的目標(biāo)和任務(wù)4.3需求分析的原則與獲取需求的方法4.4需求分析的過(guò)程4.5需求分析的方法4.6軟件需求分析文檔26需求分析階段的工作可以分成以下四個(gè)方面:?jiǎn)栴}識(shí)別、分析與綜合、編制需求分析階段的文檔及需求分析評(píng)審。

具體的分析流程如圖4.3所示(P57)。271.問題識(shí)別——調(diào)查研究系統(tǒng)分析人員和用戶確定問題的綜合需求,包括功能需求(做什么)、性能需求(要達(dá)到什么指標(biāo))、環(huán)境需求(如機(jī)型、操作系統(tǒng)等)和用戶界面需求,另外還有可靠性、安全性、保密性、可移植性和可維護(hù)性等方面的需求。通過(guò)調(diào)查研究,要理解當(dāng)前系統(tǒng)的工作模型和用戶對(duì)新系統(tǒng)的設(shè)想與要求。追蹤數(shù)據(jù)流圖:分析人員與程序員共同研究系統(tǒng)數(shù)據(jù)的流程、調(diào)查用戶需求或查閱可行性報(bào)告、項(xiàng)目開發(fā)計(jì)劃報(bào)告,訪問現(xiàn)場(chǎng),獲得當(dāng)前系統(tǒng)的具體模型,用數(shù)據(jù)流圖表示。復(fù)查系統(tǒng)的邏輯模型:用戶對(duì)前一個(gè)分析步驟中得出的結(jié)果仔細(xì)地進(jìn)行復(fù)查。追蹤數(shù)據(jù)流圖和復(fù)查系統(tǒng)的邏輯模型這兩個(gè)步構(gòu)成一個(gè)循環(huán)。對(duì)數(shù)據(jù)流圖的分析產(chǎn)生問題,這些問題也可能又引出新的問題,每經(jīng)過(guò)一次循環(huán)都會(huì)了解到未來(lái)的邏輯系統(tǒng)的更多細(xì)節(jié)。282.分析與綜合開發(fā)人員應(yīng)該對(duì)問題進(jìn)行分析抽象,并在此基礎(chǔ)上從高層建立目標(biāo)系統(tǒng)的邏輯模型。分析員需從數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu)出發(fā),逐步細(xì)化所有的軟件功能,找出系統(tǒng)各元素之間的聯(lián)系、接口特性和設(shè)計(jì)上的限制,分析它們是否滿足需求,去除不合理部分,增加需要部分,最終綜合成為系統(tǒng)的解決方案,給出目標(biāo)系統(tǒng)的詳細(xì)邏輯模型。在這個(gè)步驟中,分析和綜合工作反復(fù)地進(jìn)行。分析-檢查-修改293.書寫文檔即制定軟件需求規(guī)格說(shuō)明書。把分析的結(jié)果用正式的文檔記錄下來(lái),作為最終軟件配置的一個(gè)組成成分。應(yīng)該完成下述四份文檔資料:(1)系統(tǒng)規(guī)格說(shuō)明。描述目標(biāo)系統(tǒng)的概述、功能要求、性能要求、運(yùn)行要求和將來(lái)可能提出的要求。包括數(shù)據(jù)流圖、IPO圖、其他工具簡(jiǎn)要描述的系統(tǒng)算法、用戶需求和系統(tǒng)功能之間的參照關(guān)系以及設(shè)計(jì)約束等。(2)數(shù)據(jù)要求。包括數(shù)據(jù)字典、描繪數(shù)據(jù)結(jié)構(gòu)的層次方框圖、對(duì)存儲(chǔ)信息(數(shù)據(jù)庫(kù)或普通文件)分析的結(jié)果。30(3)用戶系統(tǒng)描述。從用戶使用系統(tǒng)的角度描述系統(tǒng),相當(dāng)于一份初步的用戶手冊(cè)。包括對(duì)系統(tǒng)功能和性能的扼要描述,使用系統(tǒng)的主要步驟和方法以及系統(tǒng)用戶的責(zé)任等。(4)修正的開發(fā)計(jì)劃。經(jīng)過(guò)需求分析階段的工作,分析員對(duì)目標(biāo)系統(tǒng)有了更深入更具體的認(rèn)識(shí),因此可以對(duì)系統(tǒng)的成本和進(jìn)度作出更準(zhǔn)確的估計(jì),在此基礎(chǔ)上應(yīng)該對(duì)開發(fā)計(jì)劃進(jìn)行修正。包括修正后的成本計(jì)劃、資源使用計(jì)劃和進(jìn)度計(jì)劃等。314.需求分析評(píng)審作為需求分析階段工作的復(fù)查手段,應(yīng)該對(duì)功能的正確性、完整性和清晰性以及其他需求給予評(píng)價(jià)。32需求分析技巧需求的收集貫穿于整個(gè)項(xiàng)目過(guò)程中;解釋技術(shù),使甲方積極參與;使用用戶的術(shù)語(yǔ),用共同的語(yǔ)言進(jìn)行交流;取得管理層的支持——“一把手工程”;已有的文檔是需求的很好來(lái)源——復(fù)用已有的資源;記住今天的用戶就是明天的分析者和以后的開發(fā)者。首先,應(yīng)該努力的去熟悉用戶的行業(yè),學(xué)習(xí)用戶使用的術(shù)語(yǔ),標(biāo)準(zhǔn),以便能夠準(zhǔn)確的理解用戶。其次避免用IT行業(yè)的術(shù)語(yǔ),而采用淺顯易懂的口頭語(yǔ)言來(lái)解釋IT行業(yè)中高深莫測(cè)的術(shù)語(yǔ),以便用戶能夠很好的理解。例如:向用戶解釋10M帶寬網(wǎng)絡(luò)和100M帶寬網(wǎng)絡(luò)有什么區(qū)別:"10M帶寬的網(wǎng)絡(luò)就像是雙車道的柏油路,容易堵車,而100M帶寬的網(wǎng)絡(luò)卻是二十車道的高速公路,堵車的可能性非常小"。33第4章需求分析4.1需求分析概述4.2需求分析的目標(biāo)和任務(wù)4.3需求分析的原則與獲取需求的方法4.4需求分析的過(guò)程4.5需求分析的方法4.6軟件需求分析文檔34需求分析的方法包括:結(jié)構(gòu)化分析方法原型分析方法用例分析方法功能列表等等我們這里主要介紹結(jié)構(gòu)化分析方法。35

結(jié)構(gòu)化分析(StructuredAnalysis,SA)是一種面向數(shù)據(jù)流的需求分析方法,適合于數(shù)據(jù)處理類型軟件的需求分析。由于利用圖形來(lái)表達(dá)需求,結(jié)構(gòu)化分析方法顯得清晰、簡(jiǎn)明,易于學(xué)習(xí)和掌握。結(jié)構(gòu)化分析方法的基本思想:按照功能分節(jié)的原則,根據(jù)軟件內(nèi)部數(shù)據(jù)傳遞、變換的關(guān)系,自頂向下逐層分解,逐步求精,直到找到滿足功能要求的所有可實(shí)現(xiàn)的軟件為止。結(jié)構(gòu)化分析方法使用的工具有數(shù)據(jù)流圖、數(shù)據(jù)詞典、判定表和判定樹。用來(lái)描述系統(tǒng)內(nèi)數(shù)據(jù)的運(yùn)動(dòng)情況用來(lái)定義系統(tǒng)中的數(shù)據(jù)用來(lái)描述數(shù)據(jù)處理邏輯36數(shù)據(jù)流圖數(shù)據(jù)流圖(DFD)是描述數(shù)據(jù)處理過(guò)程的工具。以圖形的方式描繪信息流和數(shù)據(jù)從輸入移動(dòng)到輸出的過(guò)程中所經(jīng)受的變換。它只反映系統(tǒng)必須完成的邏輯功能,是一種功能模型。所以在設(shè)計(jì)數(shù)據(jù)流圖時(shí)只需考慮系統(tǒng)必須完成的基本邏輯功能,即數(shù)據(jù)流圖的基本要點(diǎn)是描繪“做什么”,而不考慮“怎樣做”。付款憑證報(bào)銷單報(bào)銷登記報(bào)銷人審查分錄371.數(shù)據(jù)流圖的定義數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,以圖形的方式描述數(shù)據(jù)流從輸入到輸出的傳輸變換過(guò)程。它是結(jié)構(gòu)化系統(tǒng)分析的主要工具,表示了系統(tǒng)內(nèi)部信息的流向,并表示了系統(tǒng)的邏輯處理的功能。數(shù)據(jù)流數(shù)據(jù)流數(shù)據(jù)存儲(chǔ)數(shù)據(jù)來(lái)源處理數(shù)據(jù)輸出處理需求信息需求382.數(shù)據(jù)流圖的特性(1)抽象性:在數(shù)據(jù)流圖中,具體的組織機(jī)構(gòu)、工作場(chǎng)所、物質(zhì)流等都去掉,僅剩下信息和數(shù)據(jù)存儲(chǔ)、流動(dòng)、使用以及加工的情況。這有助于抽象地總結(jié)出信息處理的內(nèi)部規(guī)律。(2)概括性:數(shù)據(jù)流圖把系統(tǒng)對(duì)各種業(yè)務(wù)的處理過(guò)程聯(lián)系起來(lái)考慮,形成一個(gè)總體,具有概括性。數(shù)據(jù)流圖描述的主體是抽象出來(lái)的數(shù)據(jù)。(3)層次性:數(shù)據(jù)流圖具有層次性,一個(gè)系統(tǒng)將用多層次的數(shù)據(jù)流圖描述。39數(shù)據(jù)流圖中的符號(hào)數(shù)據(jù)流圖的基本圖形元素有4種:加工也稱為數(shù)據(jù)處理,是以數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)內(nèi)容作為加工對(duì)象,它對(duì)數(shù)據(jù)流進(jìn)行某些操作或變換。每個(gè)加工以動(dòng)詞短語(yǔ)命名,簡(jiǎn)明地描述完成什么加工。數(shù)據(jù)源點(diǎn)和終點(diǎn)是軟件系統(tǒng)外部環(huán)境中的實(shí)體(包括人員、組織或其他軟件系統(tǒng)),統(tǒng)稱外部實(shí)體。數(shù)據(jù)流是處于運(yùn)動(dòng)中的數(shù)據(jù),是數(shù)據(jù)在系統(tǒng)內(nèi)傳播的路徑,由一組成分固定的數(shù)據(jù)項(xiàng)組成。數(shù)據(jù)流必須有流向,應(yīng)該用名詞或名詞短語(yǔ)命名。數(shù)據(jù)存儲(chǔ)是處于靜止?fàn)顟B(tài)的數(shù)據(jù),指暫時(shí)保存的數(shù)據(jù),它可以是數(shù)據(jù)庫(kù)文件或任何形式的數(shù)據(jù)組織。數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)流都是數(shù)據(jù),僅僅所處的狀態(tài)不同。40數(shù)據(jù)流圖的幾種附加符號(hào)

在數(shù)據(jù)流圖中,如果有兩個(gè)以上數(shù)據(jù)流指向一個(gè)加工,或從一個(gè)加工中引出兩個(gè)以上的數(shù)據(jù)流,這些數(shù)據(jù)流之間存在一定的關(guān)系。在P59圖4.6中給出描述這些關(guān)系所用符號(hào)及其含義。其中:

*:表示相鄰兩個(gè)數(shù)據(jù)流之間是“與”的關(guān)系(同時(shí)出現(xiàn))

+

表示相鄰兩個(gè)數(shù)據(jù)流之間是“或”的關(guān)系;:表示相鄰兩個(gè)數(shù)據(jù)流只能選取其中一個(gè)(互斥關(guān)系)。41數(shù)據(jù)A和數(shù)據(jù)B同時(shí)輸入時(shí)才能轉(zhuǎn)換成數(shù)據(jù)C數(shù)據(jù)A轉(zhuǎn)換成數(shù)據(jù)B和數(shù)據(jù)C數(shù)據(jù)A或數(shù)據(jù)B,也可以是數(shù)據(jù)A和數(shù)據(jù)B兩者轉(zhuǎn)換成數(shù)據(jù)C數(shù)據(jù)A轉(zhuǎn)換成數(shù)據(jù)B或數(shù)據(jù)C,也可是數(shù)據(jù)B和數(shù)據(jù)C兩者只有數(shù)據(jù)A或只有數(shù)據(jù)B轉(zhuǎn)換成數(shù)據(jù)C數(shù)據(jù)A轉(zhuǎn)換成數(shù)據(jù)B或數(shù)據(jù)C兩者之一42設(shè)計(jì)數(shù)據(jù)流圖的步驟畫數(shù)據(jù)流圖是讓用戶明確系統(tǒng)中數(shù)據(jù)流動(dòng)和處理的情況,即系統(tǒng)的基本邏輯功能。對(duì)于一個(gè)大型系統(tǒng)來(lái)說(shuō),較好的方法是分層次地描述系統(tǒng)。頂層數(shù)據(jù)流圖描述系統(tǒng)總體概貌,表明系統(tǒng)關(guān)鍵功能,然后分別把每個(gè)關(guān)鍵功能適當(dāng)?shù)卦敿?xì)描述。這樣分層次描述,便于用戶逐步深入地了解一個(gè)復(fù)雜的系統(tǒng)。43例:某企業(yè)銷售管理系統(tǒng)的功能為:(1)接受顧客的訂單,檢驗(yàn)訂單,若庫(kù)存有貨,進(jìn)行供貨處理,即修改庫(kù)存,給倉(cāng)庫(kù)開備貨單,并且將訂單留底;若庫(kù)存量不足,將缺貨訂單登入缺貨記錄。(2)根據(jù)缺貨記錄進(jìn)行缺貨統(tǒng)計(jì),將缺貨通知單發(fā)給采購(gòu)部門,以便采購(gòu)。(3)根據(jù)采購(gòu)部門發(fā)來(lái)的進(jìn)貨通知單處理進(jìn)貨,即修改庫(kù)存,并從缺貨記錄中取出缺貨訂單進(jìn)行供貨處理。(4)根據(jù)留底的訂單進(jìn)行銷售統(tǒng)計(jì),打印統(tǒng)計(jì)表給經(jīng)理。根據(jù)上述的功能描述,畫出數(shù)據(jù)流圖。44畫數(shù)據(jù)流圖的步驟如下:1.確定系統(tǒng)的輸入和輸出——先畫系統(tǒng)頂層數(shù)據(jù)流圖。可以列出系統(tǒng)的全部數(shù)據(jù)源和數(shù)據(jù)終點(diǎn),將系統(tǒng)加工處理過(guò)程作為一個(gè)整體,就可得頂層數(shù)據(jù)流圖。

頂層流圖只包含一個(gè)加工,用以表示被開發(fā)的系統(tǒng),然后考慮系統(tǒng)有哪些輸入數(shù)據(jù),這些輸入數(shù)據(jù)從哪里來(lái);有哪些輸出數(shù)據(jù),輸出到哪里去。這樣就定義了系統(tǒng)的輸入、輸出數(shù)據(jù)流。頂層圖作用在于表明被開發(fā)系統(tǒng)的范圍及它和周圍環(huán)境的數(shù)據(jù)交換關(guān)系。

頂層圖只有一張。下圖為銷售管理系統(tǒng)的頂層圖。45462.畫系統(tǒng)內(nèi)部——畫下層數(shù)據(jù)流圖對(duì)于一個(gè)大型的系統(tǒng),需要采用自頂向下、由外向內(nèi)逐層分解的方法進(jìn)行,即用分層的方法將一個(gè)數(shù)據(jù)流圖分解成幾個(gè)數(shù)據(jù)流圖來(lái)分別表示。一套分層數(shù)據(jù)流圖由頂層、底層和中間層的數(shù)據(jù)流圖組成。一般將層號(hào)從0開始編號(hào),畫0層數(shù)據(jù)流圖時(shí),一般根據(jù)當(dāng)前系統(tǒng)工作分組情況,并按新系統(tǒng)應(yīng)有的外部功能,分解頂層流圖的系統(tǒng)為若干子系統(tǒng),決定每個(gè)子系統(tǒng)間的數(shù)據(jù)接口和活動(dòng)關(guān)系。如銷售管理系統(tǒng)按功能可分成處理訂單、供貨處理、處理進(jìn)貨單、缺貨統(tǒng)計(jì)、銷售統(tǒng)計(jì)5部分,這5部分通過(guò)缺貨記錄、庫(kù)存記錄、訂單記錄的數(shù)據(jù)存儲(chǔ)聯(lián)系起來(lái),0層數(shù)據(jù)流圖如下圖所示。4748畫更下層數(shù)據(jù)流圖時(shí),則分解上層圖中的加工,一般沿著輸入流的方向,凡數(shù)據(jù)流的組成或值發(fā)生變化的地方則設(shè)置一個(gè)加工,一直進(jìn)行到輸出數(shù)據(jù)流(也可從輸出流到輸入流方向畫)。如加工的內(nèi)部還有數(shù)據(jù)流,則對(duì)此加工的下層圖中繼續(xù)分解,直到每個(gè)加工足夠簡(jiǎn)單,不能分解為止,不再分解的加工稱基本加工。49505152數(shù)據(jù)流圖的用途【用途】:數(shù)據(jù)流圖是交流信息的工具,可做為分析和設(shè)計(jì)的工具?!局饕w現(xiàn)】:分析員把他對(duì)現(xiàn)有系統(tǒng)的認(rèn)識(shí)或?qū)δ繕?biāo)系統(tǒng)的設(shè)想用數(shù)據(jù)流圖描繪出來(lái),供有關(guān)人員審查確認(rèn)?!疽桌斫庑浴浚簝H使用4種基本符號(hào),不包含任何有關(guān)物理實(shí)現(xiàn)的細(xì)節(jié),使用戶都可以理解和評(píng)價(jià)它。53數(shù)據(jù)流圖的作用主要有以下幾條:1.系統(tǒng)分析員用這種工具可以自頂向下分析系統(tǒng)信息流程。2.可在圖上畫出需要計(jì)算機(jī)處理的部分。3.根據(jù)數(shù)據(jù)存儲(chǔ),進(jìn)一步作數(shù)據(jù)分析,向數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)渡。4.根據(jù)數(shù)據(jù)流向,定出存取方式。5.對(duì)應(yīng)一個(gè)處理過(guò)程,用相應(yīng)的語(yǔ)言、判定表等工具表達(dá)處理方法。54需要注意的問題:1.命名:數(shù)據(jù)流圖中每個(gè)成分的命名是否恰當(dāng),直接影響數(shù)據(jù)流圖的可理解性。為每一個(gè)數(shù)據(jù)流命名時(shí)應(yīng)避免使用空洞的名字,名字要反映整個(gè)數(shù)據(jù)流的含義,而不是其中某一部分。為加工命名時(shí),先命名數(shù)據(jù)流,再命名加工,名字要反映整個(gè)處理過(guò)程,而不是它的一部分;名字應(yīng)當(dāng)是一種“動(dòng)詞+賓語(yǔ)”的形式。名字中只需用一個(gè)動(dòng)詞,如果必須用兩個(gè)以上的動(dòng)詞,則應(yīng)該將它分解成幾個(gè)加工。552.畫數(shù)據(jù)流不是控制流:數(shù)據(jù)流圖反映系統(tǒng)“做什么”,不反映“如何做”,因此箭頭上的數(shù)據(jù)流名稱只能是名詞或名詞短語(yǔ),整個(gè)圖中不反映加工的執(zhí)行順序。3.一般不畫物質(zhì)流:數(shù)據(jù)流反映的是能用計(jì)算機(jī)處理的數(shù)據(jù),并不是實(shí)物,因此系統(tǒng)的數(shù)據(jù)流圖上一般不要畫物質(zhì)流。4.每個(gè)加工至少有一個(gè)輸入數(shù)據(jù)流和一個(gè)輸出數(shù)據(jù)流,反映出此加工數(shù)據(jù)的來(lái)源與加工的結(jié)果。565.編號(hào):對(duì)加工的編號(hào),隨著逐層展開,也應(yīng)反映出它的層次關(guān)系。如果一張數(shù)據(jù)流圖中的某個(gè)加工分解成另一張數(shù)據(jù)流圖,則上層圖為父圖,直接下層圖為子圖。子圖應(yīng)編號(hào),子圖上的所有加工也應(yīng)編號(hào),子圖的編號(hào)是父圖中相應(yīng)加工的編號(hào),加工的編號(hào)由子圖號(hào)、小數(shù)點(diǎn)及局部號(hào)組成。576.父圖與子圖的平衡

父圖中某個(gè)加工的輸入輸出數(shù)據(jù)流應(yīng)該與相應(yīng)子圖的輸入輸出數(shù)據(jù)流相同,層次數(shù)據(jù)流圖的這種特點(diǎn)稱為“平衡”。平衡是指子圖的所有輸入數(shù)據(jù)流必須是父圖中相應(yīng)處理的輸入,子圖的所有輸出數(shù)據(jù)流必須是父圖中相應(yīng)處理的輸出。父圖與子圖的平衡,是分層數(shù)據(jù)流圖中的重要性質(zhì),保證了數(shù)據(jù)流圖的一致性,便于分析人員的閱讀與理解。58圖中子圖與父圖中加工2.1的輸入、輸出數(shù)據(jù)流的數(shù)目、名稱完成相同,即一個(gè)輸入流a,兩個(gè)輸出流b和c。59圖中的父圖和子圖是不平衡的,因?yàn)樽訄D中沒有輸入數(shù)據(jù)流與父圖中加工2的輸入流m相對(duì)應(yīng)。另外,子圖的輸出數(shù)據(jù)流s在父圖中也沒有出現(xiàn)。607.局部數(shù)據(jù)存儲(chǔ)

當(dāng)某層數(shù)據(jù)流圖中的數(shù)據(jù)存儲(chǔ)不是父圖中相應(yīng)加工的外部接口,而只是本圖中某些加工之間的數(shù)據(jù)接口,稱這些數(shù)據(jù)存儲(chǔ)為局部數(shù)據(jù)存儲(chǔ)。畫出一個(gè)局部數(shù)據(jù)存儲(chǔ)可參考如下原則:當(dāng)數(shù)據(jù)存儲(chǔ)被用做數(shù)據(jù)流圖中某個(gè)加工之間的界面時(shí),該數(shù)據(jù)存儲(chǔ)就必須畫出來(lái),一旦數(shù)據(jù)存儲(chǔ)作為數(shù)據(jù)流圖中的一個(gè)獨(dú)立成分畫出來(lái)時(shí),它與其他成分之間的聯(lián)系也應(yīng)同時(shí)表達(dá)出來(lái),即應(yīng)畫出每個(gè)加工是讀還是寫該數(shù)據(jù)存儲(chǔ)。61當(dāng)加工3被分解成3.1、3.2和3.3三個(gè)子加工時(shí),“成績(jī)表”是加工3.1和3.3的界面,應(yīng)該畫出來(lái)。628.提高數(shù)據(jù)流圖的易理解性:一般是一次“最多不要超過(guò)7個(gè)”。應(yīng)做到分解自然,概念合理、清晰,在不影響易理解性的基礎(chǔ)上適當(dāng)?shù)囟喾纸猓詼p少層次數(shù)據(jù)流圖的層數(shù)。上層是一些綜合性描述,分解要快些,而在下層易理解性相對(duì)重要?jiǎng)t分解慢些。分解時(shí)要注意子加工的獨(dú)立性,還應(yīng)注意均勻性,特別是畫上層數(shù)據(jù)流時(shí),要注意將一個(gè)問題劃分成幾個(gè)大小接近的組成部分,這樣便于理解。不要在一張數(shù)據(jù)流圖中出現(xiàn)某些加工已是基本加工,某些加工還要分解好幾層。639.隨時(shí)準(zhǔn)備重畫對(duì)于復(fù)雜的系統(tǒng),很難保證一次就能將數(shù)據(jù)流圖繪制成功。因此應(yīng)隨時(shí)準(zhǔn)備改進(jìn)數(shù)據(jù)流圖而用更好的版本來(lái)代替。

數(shù)據(jù)流圖只描述了系統(tǒng)的分解,沒有表達(dá)出每個(gè)數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)和加工的具體含義。這些信息需要在數(shù)據(jù)字典表達(dá)出來(lái)。64數(shù)據(jù)字典數(shù)據(jù)字典(DataDictionary,簡(jiǎn)稱DD)就是用來(lái)定義數(shù)據(jù)流圖中的各個(gè)成分的具體含義的。它以一種準(zhǔn)確的、無(wú)二義性的說(shuō)明方式為系統(tǒng)的分析、設(shè)計(jì)及維護(hù)提供了有關(guān)元素的一致的定義和詳細(xì)的描述。是對(duì)數(shù)據(jù)流圖中包含的所有元素的定義的集合。對(duì)應(yīng)以后的講解的實(shí)體或數(shù)據(jù)結(jié)構(gòu)定義表。數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型,沒有數(shù)據(jù)字典數(shù)據(jù)流圖就不嚴(yán)格,然而沒有數(shù)據(jù)流圖數(shù)據(jù)字典也難于發(fā)揮作用。65數(shù)據(jù)字典的內(nèi)容數(shù)據(jù)字典由下列4類元素的定義組成:(1)數(shù)據(jù)流(2)數(shù)據(jù)流分量(即數(shù)據(jù)元素)(3)數(shù)據(jù)存儲(chǔ)(4)處理

但是,對(duì)數(shù)據(jù)處理的定義用其他工具(如IPO圖或PDL)描述更方便,因此本書中數(shù)據(jù)字典將主要由對(duì)數(shù)據(jù)的定義組成,這樣做可以使數(shù)據(jù)字典的內(nèi)容更單純,形式更統(tǒng)一。66數(shù)據(jù)元素詞條描述:在數(shù)據(jù)字典中記錄數(shù)據(jù)元素的下列信息:數(shù)據(jù)元素名:名字,別名,描述等;數(shù)據(jù)元素特征:數(shù)據(jù)類型,長(zhǎng)度,結(jié)構(gòu)等;使用特點(diǎn):取值范圍及默認(rèn)值,使用頻率,使用方式——輸入、輸出、本地,條件值等;控制信息:來(lái)源,去向,用戶,使用它的程序,改變權(quán),使用權(quán)等;分組信息:父結(jié)構(gòu),從屬結(jié)構(gòu),物理位置——記錄、文件和數(shù)據(jù)庫(kù)(即歸哪個(gè)數(shù)據(jù)結(jié)構(gòu))等。67數(shù)據(jù)元素的別名就是該元素的其他等價(jià)的名字,出現(xiàn)別名主要有下述3個(gè)原因:(1)對(duì)于同樣的數(shù)據(jù),不同的用戶使用了不同的名字;(2)一個(gè)分析員在不同時(shí)期對(duì)同一個(gè)數(shù)據(jù)使用了不同的名字;(3)兩個(gè)分析員分別分析同一個(gè)數(shù)據(jù)流時(shí),使用了不同的名字。雖然應(yīng)該盡量減少出現(xiàn)別名,但是不能完全消除別名。68內(nèi)容描述內(nèi)容描述即對(duì)數(shù)據(jù)字典中定義,也就是對(duì)數(shù)據(jù)自頂向下的分解。在數(shù)據(jù)詞典的編制中,分析員最常用的描述內(nèi)容或數(shù)據(jù)結(jié)構(gòu)的符號(hào)如表4.1所示。由數(shù)據(jù)元素組成數(shù)據(jù)的方式只有下述四種基本類型:順序:按確定次序連接兩個(gè)或多個(gè)分量。選擇:從兩個(gè)或多個(gè)分量中選擇一個(gè)。重復(fù):將指定的分量重復(fù)0次或多次??蛇x:即一個(gè)分量是可有可無(wú)的(重復(fù)零次或一次)。69重復(fù)可選選擇順序70數(shù)據(jù)字典的用途用途1:作為分析階段的重要工具。用途2:有助于改進(jìn)分析員和用戶之間的通信。用途3:有助于改進(jìn)在不同的開發(fā)人員或不同的開發(fā)小組之間的通信。用途4:有助于設(shè)計(jì)、實(shí)現(xiàn)、維護(hù)等規(guī)范統(tǒng)一,能避免許多麻煩的接口問題。用途5:通過(guò)數(shù)據(jù)元素的來(lái)源、去向、用途等控制信息,使程序員了解業(yè)務(wù)的構(gòu)成。用途6:數(shù)據(jù)字典是開發(fā)數(shù)據(jù)庫(kù)的第一步,是定義數(shù)據(jù)結(jié)構(gòu)的首要來(lái)源。71數(shù)據(jù)字典的實(shí)現(xiàn)缺點(diǎn):在開發(fā)大型軟件系統(tǒng)的過(guò)程中,數(shù)據(jù)字典的規(guī)模和復(fù)雜程度迅速增加,人工維護(hù)數(shù)據(jù)字典幾乎是不可能的,一般用于中小型軟件系統(tǒng)。實(shí)現(xiàn)過(guò)程:采用數(shù)據(jù)字典卡片形式書寫,每張卡片上保存描述一個(gè)數(shù)據(jù)的信息。每張卡片上主要應(yīng)該包含下述這樣一些信息:名字、別名、描述、定義、位置。注:軟件設(shè)計(jì)現(xiàn)實(shí)中主要用數(shù)據(jù)結(jié)構(gòu)定義表來(lái)實(shí)現(xiàn)。72【例】某高校內(nèi)部用的電話號(hào)碼有以下幾類:校內(nèi)電話號(hào)碼由4位數(shù)字組成,第1位數(shù)字不是0;校外電話又分為市內(nèi)電話和長(zhǎng)途電話,撥校外電話需先撥0,如果是市內(nèi)電話再接著撥8位電話號(hào)碼(第1位不是0),如果是長(zhǎng)途電話則先撥3位區(qū)碼,再撥8位電話號(hào)碼(第1位不是0)。請(qǐng)用數(shù)據(jù)字典中介紹的符號(hào),定義上述電話號(hào)碼。73解析:電話號(hào)碼=[校內(nèi)電話號(hào)碼|校外電話號(hào)碼]校內(nèi)電話號(hào)碼=非零數(shù)字+3位數(shù)字校外電話號(hào)碼=[市內(nèi)號(hào)碼|長(zhǎng)途號(hào)碼]市內(nèi)號(hào)碼=數(shù)字零+8位數(shù)字長(zhǎng)途號(hào)碼=數(shù)字零+3位數(shù)字+8位數(shù)字?jǐn)?shù)字零=0非零數(shù)字=[1|2|3|4|5|6|7|8|9]3位數(shù)字=3{數(shù)字}38位數(shù)字=非零數(shù)字+7位數(shù)字7位數(shù)字=7{數(shù)字}7數(shù)字

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論