版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第4章需求分析4.1需求分析概述4.2需求分析的目標和任務4.3需求分析的原則與獲取需求的方法4.4需求分析的過程4.5需求分析的方法4.6軟件需求分析文檔1
軟件需求分析是軟件生存周期中重要的一步,也是最關(guān)鍵的一步,是介于系統(tǒng)分析和軟件設(shè)計階段的重要橋梁,要想開發(fā)出用戶滿意的軟件產(chǎn)品,首先得清楚用戶的需求。項目需求分析是一個項目的開端,也是項目建設(shè)的基石!軟件項目中40%~60%的問題都是在需求分析階段埋下的“禍根”!2在可行性分析階段開發(fā)人員已經(jīng)粗略了解了用戶的需求,其基本目的是用較小的成本在較短的時間內(nèi)確定是否存在可行的解法。由于軟件開發(fā)人員和用戶并不熟悉對方的業(yè)務,因此對同一問題,他們在認識上可能存在差異,不可能全面地、精確地理解和表達用戶需求,這就隱藏了一些目前未能發(fā)現(xiàn)的問題。
需求分析是發(fā)現(xiàn)、求精、建模、規(guī)格說明和復審的過程。需求分析的結(jié)果是形成需求規(guī)格說明書,它是系統(tǒng)設(shè)計的基礎(chǔ),它關(guān)系到工程的成敗和軟件產(chǎn)品的質(zhì)量。3需求的獲取非常困難:用戶需求的動態(tài)性(不穩(wěn)定性)。實踐證明,軟件史上還沒有一次就準確獲取需求的案例。需求的模糊性(不準確性),也即用戶不能清楚地表達出具體需求。需求必須得到用戶的確認,否則毫無意義。這如同跑題的作文,寫得再長也不能得分。4軟件需求是指用戶對軟件的功能和性能的要求,就是用戶希望軟件能做什么事情,完成什么樣的功能,達到什么樣的性能。所謂“需求分析”,是指對要解決的問題進行詳細的分析,弄清楚問題的要求,包括需要輸入什么數(shù)據(jù),要得到什么結(jié)果,最后應輸出什么。需求分析計算機“做什么”4.1.1需求的定義5需求可分解為四個層次業(yè)務需求用戶需求功能需求非功能需求4.1.2需求的層次組織機構(gòu)或客戶對系統(tǒng)、產(chǎn)品高層次的目標要求,由管理人員或市場分析人員確定用戶通過使用本軟件產(chǎn)品必須完成的任務,一般由用戶協(xié)助提供。開發(fā)人員必須實現(xiàn)的軟件功能對功能需求的補充。包括用戶關(guān)心的有效性、效率、靈活性、完整性、互操作性、可靠性、健壯性和可用性等;對開發(fā)者來說很重要的質(zhì)量屬性,例如可維護性、可移植性、可復用性和可測試性等。6第4章需求分析4.1需求分析概述4.2需求分析的目標和任務
4.3需求分析的原則與獲取需求的方法4.4需求分析的過程4.5需求分析的方法4.6軟件需求分析文檔7軟件需求分析的目標是深入描述軟件的功能和性能,確定軟件設(shè)計的約束和軟件同其他系統(tǒng)元素的接口細節(jié),定義軟件的其他有效性需求。8需求分析是軟件定義時期的最后一個階段,它的基本任務是準確地回答“系統(tǒng)必須做什么?”這個問題,而不是“怎樣實現(xiàn)”?!痉治鼋Y(jié)果】:系統(tǒng)分析員應該寫出軟件需求規(guī)格說明書,以書面形式準確地描述軟件需求?!菊莆諆?nèi)容】:對一個軟件系統(tǒng)來說,數(shù)據(jù)是穩(wěn)定的,事務處理可能是變化的。4.2.1需求分析的目標9一般說來,需求分析階段的任務包括下述幾方面:1.確定對系統(tǒng)的綜合需求系統(tǒng)功能需求——系統(tǒng)必須完成的所有功能系統(tǒng)性能需求——響應時間、精確度指標需求、安全性等運行需求——對系統(tǒng)運行時所處環(huán)境的需求將來可能提出的需求——雖然不屬于當前系統(tǒng)開發(fā)范疇,但是根據(jù)分析將來很可能會提出來的需求,有利于系統(tǒng)維護升級。系統(tǒng)分析人員與用戶協(xié)商,澄清模糊需求,刪除無法做到的需求,改正錯誤需求。4.2.2需求分析的任務102.分析系統(tǒng)的數(shù)據(jù)需求這是需求分析的一個重要任務。主要體現(xiàn)在:
如何定義數(shù)據(jù)?數(shù)據(jù)的作用?如何用?如何表達數(shù)據(jù)間的關(guān)系?如何存儲?為減少數(shù)據(jù)冗余,如何簡化數(shù)據(jù),并進行規(guī)范化?分析系統(tǒng)的數(shù)據(jù)需求是由系統(tǒng)的信息流歸納抽象出數(shù)據(jù)元素組成、數(shù)據(jù)的邏輯關(guān)系、數(shù)據(jù)字典格式、數(shù)據(jù)模型,并以輸入/處理/輸出的結(jié)構(gòu)方式表示。113.提出系統(tǒng)的邏輯模型
在理解當前已存在系統(tǒng)結(jié)構(gòu)的基礎(chǔ)上,對當前已存在系統(tǒng)的物理模型進行分析,抽取其做什么的本質(zhì),就可獲得反映系統(tǒng)本質(zhì)的邏輯模型,通常用數(shù)據(jù)流圖、數(shù)據(jù)字典和主要的處理算法描述邏輯模型。具體做法是:首先確定目標系統(tǒng)與當前系統(tǒng)的邏輯差別;然后將變化部分看作是新的處理步驟,對功能圖(一般為數(shù)據(jù)流圖)及對象圖進行調(diào)整;最后由外及里對變化的部分進行分析,推斷其結(jié)構(gòu),獲得目標系統(tǒng)的邏輯模型。124.修正系統(tǒng)開發(fā)計劃
在經(jīng)過需求分析階段的前述工作之后,分析員對目標系統(tǒng)有了更深入更具體的認識,因此可以對系統(tǒng)的成本和進度做出更準確的估計,在此基礎(chǔ)上應該對開發(fā)計劃進行修正。5.開發(fā)原型系統(tǒng)快速原型就是快速建立演示目標系統(tǒng)主要功能的可運行的程序。構(gòu)建原型的要點:它應該實現(xiàn)用戶看得見的功能(例如,屏幕顯示或打印報表),省略目標系統(tǒng)的“隱含”功能(例如,修改文件)。在實際開發(fā)軟件產(chǎn)品時,原型的“修改—試用—反饋”過程可能重復多遍,才能得到符合實際系統(tǒng)的需求,如果修改耗時過多,勢必延誤軟件開發(fā)時間。13需求分析階段所要完成的任務并不是如何去編制程序,做具體的工作,而是確定系統(tǒng)必須完成哪些工作,實現(xiàn)哪些功能,也就是對目標系統(tǒng)提出完整、準確、具體、清晰的要求。需求分析階段以軟件計劃階段的軟件工作范圍為指南,通過分析綜合建立分析模型,編制出軟件需求規(guī)格說明書。因此,在軟件企業(yè)進行需求分析的人員通常是具有較高系統(tǒng)駕馭能力的系統(tǒng)分析員。14第4章需求分析4.1需求分析概述4.2需求分析的目標和任務4.3需求分析的原則與獲取需求的方法4.4需求分析的過程4.5需求分析的方法4.6軟件需求分析文檔154.3.1需求分析的原則(1)必須理解并描述問題的數(shù)據(jù)域,根據(jù)這條準則應該建立數(shù)據(jù)模型。所有軟件定義與開發(fā)工作最終都是為了解決數(shù)據(jù)處理問題,就是將一種形式的數(shù)據(jù)轉(zhuǎn)換成另一種形式的數(shù)據(jù)。其轉(zhuǎn)換過程必定經(jīng)歷輸入數(shù)據(jù)、加工數(shù)據(jù)和產(chǎn)生結(jié)果數(shù)據(jù)等步驟。數(shù)據(jù)流即數(shù)據(jù)通過一個系統(tǒng)時的變化方式。輸入數(shù)據(jù)最終變化為輸出數(shù)據(jù)。對數(shù)據(jù)進行轉(zhuǎn)換是程序中應有的功能或子功能。兩個轉(zhuǎn)換功能之間的數(shù)據(jù)傳遞就確定了功能間的接口。數(shù)據(jù)內(nèi)容即數(shù)據(jù)項。數(shù)據(jù)結(jié)構(gòu)即各種數(shù)據(jù)項的邏輯組織。數(shù)據(jù)流、數(shù)據(jù)內(nèi)容和數(shù)據(jù)結(jié)構(gòu)16(2)必須定義軟件應完成的功能域,這條準則要求建立功能模型。(3)必須描述作為外部事件結(jié)果的軟件行為,這條準則要求建立行為模型。(4)必須對描述信息、功能和行為的模型進行分解,用層次的方式展示細節(jié)。
系統(tǒng)要具備的功能事件的狀態(tài),可用以后的狀態(tài)轉(zhuǎn)換圖建立行為模型17分解示意圖:18(5)要給出系統(tǒng)的邏輯視圖和物理視圖軟件需求的邏輯視圖給出軟件要達到的功能和將要處理數(shù)據(jù)之間的關(guān)系,而不是實現(xiàn)的細節(jié)。
軟件需求的物理視圖給出處理功能和數(shù)據(jù)結(jié)構(gòu)的實際表示形式,這往往是由設(shè)備決定的。194.3.2獲取需求的方法
需求分析是軟件開發(fā)中最重要的環(huán)節(jié),需求分析做得正確與否決定著軟件開發(fā)的成敗。要做好需求分析,最重要的是有正確的獲取需求的渠道和方法。常用的獲取需求的方法有訪談、問卷調(diào)查、情景分析、實地考察、構(gòu)造原型等。
20(1)訪談訪談是最早開始使用的獲取用戶需求的技術(shù),也是迄今為止仍然廣泛使用的需求分析技術(shù)。
訪談有兩種基本形式:正式訪談時:系統(tǒng)分析員將提出一些事先準備好的具體問題。非正式訪談:分析員將提出一些用戶可以自由回答的開放性問題,以鼓勵被訪問人員說出自己的想法。21注意:訪談時不要使用行話,就是計算機術(shù)語。需求分析最重要的是和用戶溝通。另外還要引導用戶如何講出與系統(tǒng)有關(guān)的業(yè)務。不要陷到“客戶總是對的”的陷阱中去22(2)問卷調(diào)查問卷調(diào)查即把需要調(diào)查的內(nèi)容制成表格交給用戶填寫。該方法的優(yōu)點是用戶有較寬裕的考慮時間和回答時間。采用問卷調(diào)查方法的關(guān)鍵是調(diào)查表的設(shè)計。調(diào)查表的設(shè)計應簡潔、易懂、易填寫,同時還要注意用戶的特點和調(diào)查的策略。23(3)情景分析由于很多用戶不了解計算機系統(tǒng),對自己的業(yè)務如何在將來的目標系統(tǒng)中實現(xiàn)無認識,因此很難提出具體的需求。情景分析就是對目標系統(tǒng)解決某個具體問題的方法和結(jié)果給出可能的情景描述,以獲知用戶的具體需求。(4)實地考察分析人員到用戶工作現(xiàn)場,實際觀察用戶的手工操作過程也是一種行之有效的需求獲取方法。24(5)構(gòu)造原型在系統(tǒng)開發(fā)的早期,以對用戶所進行的簡單需求分析為基礎(chǔ),快速建立目標系統(tǒng)的原型。用戶可以通過原型進行評估并提出修改意見,從而使用戶明確需求??焖僭头椒瓤舍槍φ麄€系統(tǒng),也可針對系統(tǒng)的某部分功能。25第4章需求分析4.1需求分析概述4.2需求分析的目標和任務4.3需求分析的原則與獲取需求的方法4.4需求分析的過程4.5需求分析的方法4.6軟件需求分析文檔26需求分析階段的工作可以分成以下四個方面:問題識別、分析與綜合、編制需求分析階段的文檔及需求分析評審。
具體的分析流程如圖4.3所示(P57)。271.問題識別——調(diào)查研究系統(tǒng)分析人員和用戶確定問題的綜合需求,包括功能需求(做什么)、性能需求(要達到什么指標)、環(huán)境需求(如機型、操作系統(tǒng)等)和用戶界面需求,另外還有可靠性、安全性、保密性、可移植性和可維護性等方面的需求。通過調(diào)查研究,要理解當前系統(tǒng)的工作模型和用戶對新系統(tǒng)的設(shè)想與要求。追蹤數(shù)據(jù)流圖:分析人員與程序員共同研究系統(tǒng)數(shù)據(jù)的流程、調(diào)查用戶需求或查閱可行性報告、項目開發(fā)計劃報告,訪問現(xiàn)場,獲得當前系統(tǒng)的具體模型,用數(shù)據(jù)流圖表示。復查系統(tǒng)的邏輯模型:用戶對前一個分析步驟中得出的結(jié)果仔細地進行復查。追蹤數(shù)據(jù)流圖和復查系統(tǒng)的邏輯模型這兩個步構(gòu)成一個循環(huán)。對數(shù)據(jù)流圖的分析產(chǎn)生問題,這些問題也可能又引出新的問題,每經(jīng)過一次循環(huán)都會了解到未來的邏輯系統(tǒng)的更多細節(jié)。282.分析與綜合開發(fā)人員應該對問題進行分析抽象,并在此基礎(chǔ)上從高層建立目標系統(tǒng)的邏輯模型。分析員需從數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu)出發(fā),逐步細化所有的軟件功能,找出系統(tǒng)各元素之間的聯(lián)系、接口特性和設(shè)計上的限制,分析它們是否滿足需求,去除不合理部分,增加需要部分,最終綜合成為系統(tǒng)的解決方案,給出目標系統(tǒng)的詳細邏輯模型。在這個步驟中,分析和綜合工作反復地進行。分析-檢查-修改293.書寫文檔即制定軟件需求規(guī)格說明書。把分析的結(jié)果用正式的文檔記錄下來,作為最終軟件配置的一個組成成分。應該完成下述四份文檔資料:(1)系統(tǒng)規(guī)格說明。描述目標系統(tǒng)的概述、功能要求、性能要求、運行要求和將來可能提出的要求。包括數(shù)據(jù)流圖、IPO圖、其他工具簡要描述的系統(tǒng)算法、用戶需求和系統(tǒng)功能之間的參照關(guān)系以及設(shè)計約束等。(2)數(shù)據(jù)要求。包括數(shù)據(jù)字典、描繪數(shù)據(jù)結(jié)構(gòu)的層次方框圖、對存儲信息(數(shù)據(jù)庫或普通文件)分析的結(jié)果。30(3)用戶系統(tǒng)描述。從用戶使用系統(tǒng)的角度描述系統(tǒng),相當于一份初步的用戶手冊。包括對系統(tǒng)功能和性能的扼要描述,使用系統(tǒng)的主要步驟和方法以及系統(tǒng)用戶的責任等。(4)修正的開發(fā)計劃。經(jīng)過需求分析階段的工作,分析員對目標系統(tǒng)有了更深入更具體的認識,因此可以對系統(tǒng)的成本和進度作出更準確的估計,在此基礎(chǔ)上應該對開發(fā)計劃進行修正。包括修正后的成本計劃、資源使用計劃和進度計劃等。314.需求分析評審作為需求分析階段工作的復查手段,應該對功能的正確性、完整性和清晰性以及其他需求給予評價。32需求分析技巧需求的收集貫穿于整個項目過程中;解釋技術(shù),使甲方積極參與;使用用戶的術(shù)語,用共同的語言進行交流;取得管理層的支持——“一把手工程”;已有的文檔是需求的很好來源——復用已有的資源;記住今天的用戶就是明天的分析者和以后的開發(fā)者。首先,應該努力的去熟悉用戶的行業(yè),學習用戶使用的術(shù)語,標準,以便能夠準確的理解用戶。其次避免用IT行業(yè)的術(shù)語,而采用淺顯易懂的口頭語言來解釋IT行業(yè)中高深莫測的術(shù)語,以便用戶能夠很好的理解。例如:向用戶解釋10M帶寬網(wǎng)絡和100M帶寬網(wǎng)絡有什么區(qū)別:"10M帶寬的網(wǎng)絡就像是雙車道的柏油路,容易堵車,而100M帶寬的網(wǎng)絡卻是二十車道的高速公路,堵車的可能性非常小"。33第4章需求分析4.1需求分析概述4.2需求分析的目標和任務4.3需求分析的原則與獲取需求的方法4.4需求分析的過程4.5需求分析的方法4.6軟件需求分析文檔34需求分析的方法包括:結(jié)構(gòu)化分析方法原型分析方法用例分析方法功能列表等等我們這里主要介紹結(jié)構(gòu)化分析方法。35
結(jié)構(gòu)化分析(StructuredAnalysis,SA)是一種面向數(shù)據(jù)流的需求分析方法,適合于數(shù)據(jù)處理類型軟件的需求分析。由于利用圖形來表達需求,結(jié)構(gòu)化分析方法顯得清晰、簡明,易于學習和掌握。結(jié)構(gòu)化分析方法的基本思想:按照功能分節(jié)的原則,根據(jù)軟件內(nèi)部數(shù)據(jù)傳遞、變換的關(guān)系,自頂向下逐層分解,逐步求精,直到找到滿足功能要求的所有可實現(xiàn)的軟件為止。結(jié)構(gòu)化分析方法使用的工具有數(shù)據(jù)流圖、數(shù)據(jù)詞典、判定表和判定樹。用來描述系統(tǒng)內(nèi)數(shù)據(jù)的運動情況用來定義系統(tǒng)中的數(shù)據(jù)用來描述數(shù)據(jù)處理邏輯36數(shù)據(jù)流圖數(shù)據(jù)流圖(DFD)是描述數(shù)據(jù)處理過程的工具。以圖形的方式描繪信息流和數(shù)據(jù)從輸入移動到輸出的過程中所經(jīng)受的變換。它只反映系統(tǒng)必須完成的邏輯功能,是一種功能模型。所以在設(shè)計數(shù)據(jù)流圖時只需考慮系統(tǒng)必須完成的基本邏輯功能,即數(shù)據(jù)流圖的基本要點是描繪“做什么”,而不考慮“怎樣做”。付款憑證報銷單報銷登記報銷人審查分錄371.數(shù)據(jù)流圖的定義數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,以圖形的方式描述數(shù)據(jù)流從輸入到輸出的傳輸變換過程。它是結(jié)構(gòu)化系統(tǒng)分析的主要工具,表示了系統(tǒng)內(nèi)部信息的流向,并表示了系統(tǒng)的邏輯處理的功能。數(shù)據(jù)流數(shù)據(jù)流數(shù)據(jù)存儲數(shù)據(jù)來源處理數(shù)據(jù)輸出處理需求信息需求382.數(shù)據(jù)流圖的特性(1)抽象性:在數(shù)據(jù)流圖中,具體的組織機構(gòu)、工作場所、物質(zhì)流等都去掉,僅剩下信息和數(shù)據(jù)存儲、流動、使用以及加工的情況。這有助于抽象地總結(jié)出信息處理的內(nèi)部規(guī)律。(2)概括性:數(shù)據(jù)流圖把系統(tǒng)對各種業(yè)務的處理過程聯(lián)系起來考慮,形成一個總體,具有概括性。數(shù)據(jù)流圖描述的主體是抽象出來的數(shù)據(jù)。(3)層次性:數(shù)據(jù)流圖具有層次性,一個系統(tǒng)將用多層次的數(shù)據(jù)流圖描述。39數(shù)據(jù)流圖中的符號數(shù)據(jù)流圖的基本圖形元素有4種:加工也稱為數(shù)據(jù)處理,是以數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)內(nèi)容作為加工對象,它對數(shù)據(jù)流進行某些操作或變換。每個加工以動詞短語命名,簡明地描述完成什么加工。數(shù)據(jù)源點和終點是軟件系統(tǒng)外部環(huán)境中的實體(包括人員、組織或其他軟件系統(tǒng)),統(tǒng)稱外部實體。數(shù)據(jù)流是處于運動中的數(shù)據(jù),是數(shù)據(jù)在系統(tǒng)內(nèi)傳播的路徑,由一組成分固定的數(shù)據(jù)項組成。數(shù)據(jù)流必須有流向,應該用名詞或名詞短語命名。數(shù)據(jù)存儲是處于靜止狀態(tài)的數(shù)據(jù),指暫時保存的數(shù)據(jù),它可以是數(shù)據(jù)庫文件或任何形式的數(shù)據(jù)組織。數(shù)據(jù)存儲和數(shù)據(jù)流都是數(shù)據(jù),僅僅所處的狀態(tài)不同。40數(shù)據(jù)流圖的幾種附加符號
在數(shù)據(jù)流圖中,如果有兩個以上數(shù)據(jù)流指向一個加工,或從一個加工中引出兩個以上的數(shù)據(jù)流,這些數(shù)據(jù)流之間存在一定的關(guān)系。在P59圖4.6中給出描述這些關(guān)系所用符號及其含義。其中:
*:表示相鄰兩個數(shù)據(jù)流之間是“與”的關(guān)系(同時出現(xiàn))
+
:
表示相鄰兩個數(shù)據(jù)流之間是“或”的關(guān)系;:表示相鄰兩個數(shù)據(jù)流只能選取其中一個(互斥關(guān)系)。41數(shù)據(jù)A和數(shù)據(jù)B同時輸入時才能轉(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è)計數(shù)據(jù)流圖的步驟畫數(shù)據(jù)流圖是讓用戶明確系統(tǒng)中數(shù)據(jù)流動和處理的情況,即系統(tǒng)的基本邏輯功能。對于一個大型系統(tǒng)來說,較好的方法是分層次地描述系統(tǒng)。頂層數(shù)據(jù)流圖描述系統(tǒng)總體概貌,表明系統(tǒng)關(guān)鍵功能,然后分別把每個關(guān)鍵功能適當?shù)卦敿毭枋?。這樣分層次描述,便于用戶逐步深入地了解一個復雜的系統(tǒng)。43例:某企業(yè)銷售管理系統(tǒng)的功能為:(1)接受顧客的訂單,檢驗訂單,若庫存有貨,進行供貨處理,即修改庫存,給倉庫開備貨單,并且將訂單留底;若庫存量不足,將缺貨訂單登入缺貨記錄。(2)根據(jù)缺貨記錄進行缺貨統(tǒng)計,將缺貨通知單發(fā)給采購部門,以便采購。(3)根據(jù)采購部門發(fā)來的進貨通知單處理進貨,即修改庫存,并從缺貨記錄中取出缺貨訂單進行供貨處理。(4)根據(jù)留底的訂單進行銷售統(tǒng)計,打印統(tǒng)計表給經(jīng)理。根據(jù)上述的功能描述,畫出數(shù)據(jù)流圖。44畫數(shù)據(jù)流圖的步驟如下:1.確定系統(tǒng)的輸入和輸出——先畫系統(tǒng)頂層數(shù)據(jù)流圖。可以列出系統(tǒng)的全部數(shù)據(jù)源和數(shù)據(jù)終點,將系統(tǒng)加工處理過程作為一個整體,就可得頂層數(shù)據(jù)流圖。
頂層流圖只包含一個加工,用以表示被開發(fā)的系統(tǒng),然后考慮系統(tǒng)有哪些輸入數(shù)據(jù),這些輸入數(shù)據(jù)從哪里來;有哪些輸出數(shù)據(jù),輸出到哪里去。這樣就定義了系統(tǒng)的輸入、輸出數(shù)據(jù)流。頂層圖作用在于表明被開發(fā)系統(tǒng)的范圍及它和周圍環(huán)境的數(shù)據(jù)交換關(guān)系。
頂層圖只有一張。下圖為銷售管理系統(tǒng)的頂層圖。45462.畫系統(tǒng)內(nèi)部——畫下層數(shù)據(jù)流圖對于一個大型的系統(tǒng),需要采用自頂向下、由外向內(nèi)逐層分解的方法進行,即用分層的方法將一個數(shù)據(jù)流圖分解成幾個數(shù)據(jù)流圖來分別表示。一套分層數(shù)據(jù)流圖由頂層、底層和中間層的數(shù)據(jù)流圖組成。一般將層號從0開始編號,畫0層數(shù)據(jù)流圖時,一般根據(jù)當前系統(tǒng)工作分組情況,并按新系統(tǒng)應有的外部功能,分解頂層流圖的系統(tǒng)為若干子系統(tǒng),決定每個子系統(tǒng)間的數(shù)據(jù)接口和活動關(guān)系。如銷售管理系統(tǒng)按功能可分成處理訂單、供貨處理、處理進貨單、缺貨統(tǒng)計、銷售統(tǒng)計5部分,這5部分通過缺貨記錄、庫存記錄、訂單記錄的數(shù)據(jù)存儲聯(lián)系起來,0層數(shù)據(jù)流圖如下圖所示。4748畫更下層數(shù)據(jù)流圖時,則分解上層圖中的加工,一般沿著輸入流的方向,凡數(shù)據(jù)流的組成或值發(fā)生變化的地方則設(shè)置一個加工,一直進行到輸出數(shù)據(jù)流(也可從輸出流到輸入流方向畫)。如加工的內(nèi)部還有數(shù)據(jù)流,則對此加工的下層圖中繼續(xù)分解,直到每個加工足夠簡單,不能分解為止,不再分解的加工稱基本加工。49505152數(shù)據(jù)流圖的用途【用途】:數(shù)據(jù)流圖是交流信息的工具,可做為分析和設(shè)計的工具?!局饕w現(xiàn)】:分析員把他對現(xiàn)有系統(tǒng)的認識或?qū)δ繕讼到y(tǒng)的設(shè)想用數(shù)據(jù)流圖描繪出來,供有關(guān)人員審查確認。【易理解性】:僅使用4種基本符號,不包含任何有關(guān)物理實現(xiàn)的細節(jié),使用戶都可以理解和評價它。53數(shù)據(jù)流圖的作用主要有以下幾條:1.系統(tǒng)分析員用這種工具可以自頂向下分析系統(tǒng)信息流程。2.可在圖上畫出需要計算機處理的部分。3.根據(jù)數(shù)據(jù)存儲,進一步作數(shù)據(jù)分析,向數(shù)據(jù)庫設(shè)計過渡。4.根據(jù)數(shù)據(jù)流向,定出存取方式。5.對應一個處理過程,用相應的語言、判定表等工具表達處理方法。54需要注意的問題:1.命名:數(shù)據(jù)流圖中每個成分的命名是否恰當,直接影響數(shù)據(jù)流圖的可理解性。為每一個數(shù)據(jù)流命名時應避免使用空洞的名字,名字要反映整個數(shù)據(jù)流的含義,而不是其中某一部分。為加工命名時,先命名數(shù)據(jù)流,再命名加工,名字要反映整個處理過程,而不是它的一部分;名字應當是一種“動詞+賓語”的形式。名字中只需用一個動詞,如果必須用兩個以上的動詞,則應該將它分解成幾個加工。552.畫數(shù)據(jù)流不是控制流:數(shù)據(jù)流圖反映系統(tǒng)“做什么”,不反映“如何做”,因此箭頭上的數(shù)據(jù)流名稱只能是名詞或名詞短語,整個圖中不反映加工的執(zhí)行順序。3.一般不畫物質(zhì)流:數(shù)據(jù)流反映的是能用計算機處理的數(shù)據(jù),并不是實物,因此系統(tǒng)的數(shù)據(jù)流圖上一般不要畫物質(zhì)流。4.每個加工至少有一個輸入數(shù)據(jù)流和一個輸出數(shù)據(jù)流,反映出此加工數(shù)據(jù)的來源與加工的結(jié)果。565.編號:對加工的編號,隨著逐層展開,也應反映出它的層次關(guān)系。如果一張數(shù)據(jù)流圖中的某個加工分解成另一張數(shù)據(jù)流圖,則上層圖為父圖,直接下層圖為子圖。子圖應編號,子圖上的所有加工也應編號,子圖的編號是父圖中相應加工的編號,加工的編號由子圖號、小數(shù)點及局部號組成。576.父圖與子圖的平衡
父圖中某個加工的輸入輸出數(shù)據(jù)流應該與相應子圖的輸入輸出數(shù)據(jù)流相同,層次數(shù)據(jù)流圖的這種特點稱為“平衡”。平衡是指子圖的所有輸入數(shù)據(jù)流必須是父圖中相應處理的輸入,子圖的所有輸出數(shù)據(jù)流必須是父圖中相應處理的輸出。父圖與子圖的平衡,是分層數(shù)據(jù)流圖中的重要性質(zhì),保證了數(shù)據(jù)流圖的一致性,便于分析人員的閱讀與理解。58圖中子圖與父圖中加工2.1的輸入、輸出數(shù)據(jù)流的數(shù)目、名稱完成相同,即一個輸入流a,兩個輸出流b和c。59圖中的父圖和子圖是不平衡的,因為子圖中沒有輸入數(shù)據(jù)流與父圖中加工2的輸入流m相對應。另外,子圖的輸出數(shù)據(jù)流s在父圖中也沒有出現(xiàn)。607.局部數(shù)據(jù)存儲
當某層數(shù)據(jù)流圖中的數(shù)據(jù)存儲不是父圖中相應加工的外部接口,而只是本圖中某些加工之間的數(shù)據(jù)接口,稱這些數(shù)據(jù)存儲為局部數(shù)據(jù)存儲。畫出一個局部數(shù)據(jù)存儲可參考如下原則:當數(shù)據(jù)存儲被用做數(shù)據(jù)流圖中某個加工之間的界面時,該數(shù)據(jù)存儲就必須畫出來,一旦數(shù)據(jù)存儲作為數(shù)據(jù)流圖中的一個獨立成分畫出來時,它與其他成分之間的聯(lián)系也應同時表達出來,即應畫出每個加工是讀還是寫該數(shù)據(jù)存儲。61當加工3被分解成3.1、3.2和3.3三個子加工時,“成績表”是加工3.1和3.3的界面,應該畫出來。628.提高數(shù)據(jù)流圖的易理解性:一般是一次“最多不要超過7個”。應做到分解自然,概念合理、清晰,在不影響易理解性的基礎(chǔ)上適當?shù)囟喾纸?,以減少層次數(shù)據(jù)流圖的層數(shù)。上層是一些綜合性描述,分解要快些,而在下層易理解性相對重要則分解慢些。分解時要注意子加工的獨立性,還應注意均勻性,特別是畫上層數(shù)據(jù)流時,要注意將一個問題劃分成幾個大小接近的組成部分,這樣便于理解。不要在一張數(shù)據(jù)流圖中出現(xiàn)某些加工已是基本加工,某些加工還要分解好幾層。639.隨時準備重畫對于復雜的系統(tǒng),很難保證一次就能將數(shù)據(jù)流圖繪制成功。因此應隨時準備改進數(shù)據(jù)流圖而用更好的版本來代替。
數(shù)據(jù)流圖只描述了系統(tǒng)的分解,沒有表達出每個數(shù)據(jù)流、數(shù)據(jù)存儲和加工的具體含義。這些信息需要在數(shù)據(jù)字典表達出來。64數(shù)據(jù)字典數(shù)據(jù)字典(DataDictionary,簡稱DD)就是用來定義數(shù)據(jù)流圖中的各個成分的具體含義的。它以一種準確的、無二義性的說明方式為系統(tǒng)的分析、設(shè)計及維護提供了有關(guān)元素的一致的定義和詳細的描述。是對數(shù)據(jù)流圖中包含的所有元素的定義的集合。對應以后的講解的實體或數(shù)據(jù)結(jié)構(gòu)定義表。數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型,沒有數(shù)據(jù)字典數(shù)據(jù)流圖就不嚴格,然而沒有數(shù)據(jù)流圖數(shù)據(jù)字典也難于發(fā)揮作用。65數(shù)據(jù)字典的內(nèi)容數(shù)據(jù)字典由下列4類元素的定義組成:(1)數(shù)據(jù)流(2)數(shù)據(jù)流分量(即數(shù)據(jù)元素)(3)數(shù)據(jù)存儲(4)處理
但是,對數(shù)據(jù)處理的定義用其他工具(如IPO圖或PDL)描述更方便,因此本書中數(shù)據(jù)字典將主要由對數(shù)據(jù)的定義組成,這樣做可以使數(shù)據(jù)字典的內(nèi)容更單純,形式更統(tǒng)一。66數(shù)據(jù)元素詞條描述:在數(shù)據(jù)字典中記錄數(shù)據(jù)元素的下列信息:數(shù)據(jù)元素名:名字,別名,描述等;數(shù)據(jù)元素特征:數(shù)據(jù)類型,長度,結(jié)構(gòu)等;使用特點:取值范圍及默認值,使用頻率,使用方式——輸入、輸出、本地,條件值等;控制信息:來源,去向,用戶,使用它的程序,改變權(quán),使用權(quán)等;分組信息:父結(jié)構(gòu),從屬結(jié)構(gòu),物理位置——記錄、文件和數(shù)據(jù)庫(即歸哪個數(shù)據(jù)結(jié)構(gòu))等。67數(shù)據(jù)元素的別名就是該元素的其他等價的名字,出現(xiàn)別名主要有下述3個原因:(1)對于同樣的數(shù)據(jù),不同的用戶使用了不同的名字;(2)一個分析員在不同時期對同一個數(shù)據(jù)使用了不同的名字;(3)兩個分析員分別分析同一個數(shù)據(jù)流時,使用了不同的名字。雖然應該盡量減少出現(xiàn)別名,但是不能完全消除別名。68內(nèi)容描述內(nèi)容描述即對數(shù)據(jù)字典中定義,也就是對數(shù)據(jù)自頂向下的分解。在數(shù)據(jù)詞典的編制中,分析員最常用的描述內(nèi)容或數(shù)據(jù)結(jié)構(gòu)的符號如表4.1所示。由數(shù)據(jù)元素組成數(shù)據(jù)的方式只有下述四種基本類型:順序:按確定次序連接兩個或多個分量。選擇:從兩個或多個分量中選擇一個。重復:將指定的分量重復0次或多次??蛇x:即一個分量是可有可無的(重復零次或一次)。69重復可選選擇順序70數(shù)據(jù)字典的用途用途1:作為分析階段的重要工具。用途2:有助于改進分析員和用戶之間的通信。用途3:有助于改進在不同的開發(fā)人員或不同的開發(fā)小組之間的通信。用途4:有助于設(shè)計、實現(xiàn)、維護等規(guī)范統(tǒng)一,能避免許多麻煩的接口問題。用途5:通過數(shù)據(jù)元素的來源、去向、用途等控制信息,使程序員了解業(yè)務的構(gòu)成。用途6:數(shù)據(jù)字典是開發(fā)數(shù)據(jù)庫的第一步,是定義數(shù)據(jù)結(jié)構(gòu)的首要來源。71數(shù)據(jù)字典的實現(xiàn)缺點:在開發(fā)大型軟件系統(tǒng)的過程中,數(shù)據(jù)字典的規(guī)模和復雜程度迅速增加,人工維護數(shù)據(jù)字典幾乎是不可能的,一般用于中小型軟件系統(tǒng)。實現(xiàn)過程:采用數(shù)據(jù)字典卡片形式書寫,每張卡片上保存描述一個數(shù)據(jù)的信息。每張卡片上主要應該包含下述這樣一些信息:名字、別名、描述、定義、位置。注:軟件設(shè)計現(xiàn)實中主要用數(shù)據(jù)結(jié)構(gòu)定義表來實現(xiàn)。72【例】某高校內(nèi)部用的電話號碼有以下幾類:校內(nèi)電話號碼由4位數(shù)字組成,第1位數(shù)字不是0;校外電話又分為市內(nèi)電話和長途電話,撥校外電話需先撥0,如果是市內(nèi)電話再接著撥8位電話號碼(第1位不是0),如果是長途電話則先撥3位區(qū)碼,再撥8位電話號碼(第1位不是0)。請用數(shù)據(jù)字典中介紹的符號,定義上述電話號碼。73解析:電話號碼=[校內(nèi)電話號碼|校外電話號碼]校內(nèi)電話號碼=非零數(shù)字+3位數(shù)字校外電話號碼=[市內(nèi)號碼|長途號碼]市內(nèi)號碼=數(shù)字零+8位數(shù)字長途號碼=數(shù)字零+3位數(shù)字+8位數(shù)字數(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年平頂山工業(yè)職業(yè)技術(shù)學院單招職業(yè)技能考試參考題庫含詳細答案解析
- 2026年湖北水利水電職業(yè)技術(shù)學院單招職業(yè)技能考試模擬試題含詳細答案解析
- 2026年山西青年職業(yè)學院單招職業(yè)技能考試參考題庫含詳細答案解析
- 2026年朔州陶瓷職業(yè)技術(shù)學院單招綜合素質(zhì)考試參考題庫含詳細答案解析
- 2026江蘇蘇州市生物醫(yī)藥產(chǎn)業(yè)集團有限公司招聘1人考試重點題庫及答案解析
- 2026年安徽電氣工程職業(yè)技術(shù)學院單招綜合素質(zhì)筆試模擬試題含詳細答案解析
- 2026年貴州職業(yè)技術(shù)學院單招綜合素質(zhì)筆試模擬試題含詳細答案解析
- 2026年上海戲劇學院高職單招職業(yè)適應性測試備考試題及答案詳細解析
- 2026年銅川陽光中學教師招聘參考考試試題及答案解析
- 2026年山東文化產(chǎn)業(yè)職業(yè)學院單招綜合素質(zhì)考試備考試題含詳細答案解析
- HBM高帶寬存儲器專題研究分析報告
- 骨髓移植患者的緊急護理
- 高一英語完型填空10篇實戰(zhàn)訓練及答案
- 2021年高中物理選修二第一章《安培力與洛倫茲力》經(jīng)典練習題(答案解析)
- 室外消防管道穿過馬路及車輛疏導施工方案
- 浙江省生態(tài)環(huán)境專業(yè)工程師職務任職資格量化評價表
- 成都市計劃生育條例
- 未決清理培訓
- 《課程與教學論》教案
- 2旋挖鉆孔長護筒灌注樁專項施工方案
- WB/T 1066-2017貨架安裝及驗收技術(shù)條件
評論
0/150
提交評論