第4章需求分析_第1頁
第4章需求分析_第2頁
第4章需求分析_第3頁
第4章需求分析_第4頁
第4章需求分析_第5頁
已閱讀5頁,還剩79頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第4章需求分析4.1需求分析概述4.2需求分析的目標和任務4.3需求分析的原則與獲取需求的方法4.4需求分析的過程4.5需求分析的方法4.6軟件需求分析文檔1

軟件需求分析是軟件生存周期中重要的一步,也是最關鍵的一步,是介于系統分析和軟件設計階段的重要橋梁,要想開發出用戶滿意的軟件產品,首先得清楚用戶的需求。項目需求分析是一個項目的開端,也是項目建設的基石!軟件項目中40%~60%的問題都是在需求分析階段埋下的“禍根”!2在可行性分析階段開發人員已經粗略了解了用戶的需求,其基本目的是用較小的成本在較短的時間內確定是否存在可行的解法。由于軟件開發人員和用戶并不熟悉對方的業務,因此對同一問題,他們在認識上可能存在差異,不可能全面地、精確地理解和表達用戶需求,這就隱藏了一些目前未能發現的問題。

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

4.3需求分析的原則與獲取需求的方法4.4需求分析的過程4.5需求分析的方法4.6軟件需求分析文檔7軟件需求分析的目標是深入描述軟件的功能和性能,確定軟件設計的約束和軟件同其他系統元素的接口細節,定義軟件的其他有效性需求。8需求分析是軟件定義時期的最后一個階段,它的基本任務是準確地回答“系統必須做什么?”這個問題,而不是“怎樣實現”。【分析結果】:系統分析員應該寫出軟件需求規格說明書,以書面形式準確地描述軟件需求。【掌握內容】:對一個軟件系統來說,數據是穩定的,事務處理可能是變化的。4.2.1需求分析的目標9一般說來,需求分析階段的任務包括下述幾方面:1.確定對系統的綜合需求系統功能需求——系統必須完成的所有功能系統性能需求——響應時間、精確度指標需求、安全性等運行需求——對系統運行時所處環境的需求將來可能提出的需求——雖然不屬于當前系統開發范疇,但是根據分析將來很可能會提出來的需求,有利于系統維護升級。系統分析人員與用戶協商,澄清模糊需求,刪除無法做到的需求,改正錯誤需求。4.2.2需求分析的任務102.分析系統的數據需求這是需求分析的一個重要任務。主要體現在:

如何定義數據?數據的作用?如何用?如何表達數據間的關系?如何存儲?為減少數據冗余,如何簡化數據,并進行規范化?分析系統的數據需求是由系統的信息流歸納抽象出數據元素組成、數據的邏輯關系、數據字典格式、數據模型,并以輸入/處理/輸出的結構方式表示。113.提出系統的邏輯模型

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

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

系統要具備的功能事件的狀態,可用以后的狀態轉換圖建立行為模型17分解示意圖:18(5)要給出系統的邏輯視圖和物理視圖軟件需求的邏輯視圖給出軟件要達到的功能和將要處理數據之間的關系,而不是實現的細節。

軟件需求的物理視圖給出處理功能和數據結構的實際表示形式,這往往是由設備決定的。194.3.2獲取需求的方法

需求分析是軟件開發中最重要的環節,需求分析做得正確與否決定著軟件開發的成敗。要做好需求分析,最重要的是有正確的獲取需求的渠道和方法。常用的獲取需求的方法有訪談、問卷調查、情景分析、實地考察、構造原型等。

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

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

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

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

在數據流圖中,如果有兩個以上數據流指向一個加工,或從一個加工中引出兩個以上的數據流,這些數據流之間存在一定的關系。在P59圖4.6中給出描述這些關系所用符號及其含義。其中:

*:表示相鄰兩個數據流之間是“與”的關系(同時出現)

+

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

頂層流圖只包含一個加工,用以表示被開發的系統,然后考慮系統有哪些輸入數據,這些輸入數據從哪里來;有哪些輸出數據,輸出到哪里去。這樣就定義了系統的輸入、輸出數據流。頂層圖作用在于表明被開發系統的范圍及它和周圍環境的數據交換關系。

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

父圖中某個加工的輸入輸出數據流應該與相應子圖的輸入輸出數據流相同,層次數據流圖的這種特點稱為“平衡”。平衡是指子圖的所有輸入數據流必須是父圖中相應處理的輸入,子圖的所有輸出數據流必須是父圖中相應處理的輸出。父圖與子圖的平衡,是分層數據流圖中的重要性質,保證了數據流圖的一致性,便于分析人員的閱讀與理解。58圖中子圖與父圖中加工2.1的輸入、輸出數據流的數目、名稱完成相同,即一個輸入流a,兩個輸出流b和c。59圖中的父圖和子圖是不平衡的,因為子圖中沒有輸入數據流與父圖中加工2的輸入流m相對應。另外,子圖的輸出數據流s在父圖中也沒有出現。607.局部數據存儲

當某層數據流圖中的數據存儲不是父圖中相應加工的外部接口,而只是本圖中某些加工之間的數據接口,稱這些數據存儲為局部數據存儲。畫出一個局部數據存儲可參考如下原則:當數據存儲被用做數據流圖中某個加工之間的界面時,該數據存儲就必須畫出來,一旦數據存儲作為數據流圖中的一個獨立成分畫出來時,它與其他成分之間的聯系也應同時表達出來,即應畫出每個加工是讀還是寫該數據存儲。61當加工3被分解成3.1、3.2和3.3三個子加工時,“成績表”是加工3.1和3.3的界面,應該畫出來。628.提高數據流圖的易理解性:一般是一次“最多不要超過7個”。應做到分解自然,概念合理、清晰,在不影響易理解性的基礎上適當地多分解,以減少層次數據流圖的層數。上層是一些綜合性描述,分解要快些,而在下層易理解性相對重要則分解慢些。分解時要注意子加工的獨立性,還應注意均勻性,特別是畫上層數據流時,要注意將一個問題劃分成幾個大小接近的組成部分,這樣便于理解。不要在一張數據流圖中出現某些加工已是基本加工,某些加工還要分解好幾層。639.隨時準備重畫對于復雜的系統,很難保證一次就能將數據流圖繪制成功。因此應隨時準備改進數據流圖而用更好的版本來代替。

數據流圖只描述了系統的分解,沒有表達出每個數據流、數據存儲和加工的具體含義。這些信息需要在數據字典表達出來。64數據字典數據字典(DataDictionary,簡稱DD)就是用來定義數據流圖中的各個成分的具體含義的。它以一種準確的、無二義性的說明方式為系統的分析、設計及維護提供了有關元素的一致的定義和詳細的描述。是對數據流圖中包含的所有元素的定義的集合。對應以后的講解的實體或數據結構定義表。數據流圖和數據字典共同構成系統的邏輯模型,沒有數據字典數據流圖就不嚴格,然而沒有數據流圖數據字典也難于發揮作用。65數據字典的內容數據字典由下列4類元素的定義組成:(1)數據流(2)數據流分量(即數據元素)(3)數據存儲(4)處理

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

溫馨提示

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

評論

0/150

提交評論