




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1軟件工程
SoftwareEngineering2011新春版1軟件工程Softwar第四章需求分析Outlines需求分析概述
軟件需求重要性軟件定義軟件需求任務需求工程過程結構化方法第四章需求分析Outlines軟件需求問題(1)軟件開發現狀:復雜的軟件系統開發,總令人不滿意美國2500億美元/年,175,000個軟件項目其中,16%按時、按預算、滿足要求地交付30%左右在完成前被取消52.7%項目成本是預算成本的189%項目失敗原因缺乏用戶參與:13%不完整的需求規格說明:12%不斷改變的需求和規格說明:21%軟件需求問題(1)軟件開發現狀:復雜的軟件系統開發,總令人不軟件需求問題(2)各階段缺陷對交付軟件產品的影響
需求缺陷約占全部提交缺陷的1/3軟件需求問題(2)各階段缺陷對交付軟件產品的影響需求錯誤的代價5需求錯誤的代價5什么是軟件需求需求的定義(IEEE,1997)
(1)用戶解決問題或達到目標所需的條件或能力。
(2)系統或系統部件要滿足合同、標準、規范或其它正式規定文檔所需具有的條件或能力。
(3)一種反映上面(1)或(2)所描述的條件或能力的文檔說明。
需求就是以一種清晰、簡潔、一致且無二義性的方式,對一個待開發系統中各個有意義方面的陳述的一個集合。什么是軟件需求需求的定義(IEEE,1997)軟件需求的層次業務需求(businessrequirement)反映了組織機構或客戶對系統或產品高層次的目標要求,它們在項目視圖與范圍文檔中予以說明。用戶需求(userrequirement)描述了用戶使用產品必須要完成的任務,可以在用例模型或方案腳本中予以說明。功能需求(functionalrequirement)定義了開發人員必須實現的軟件功能,使得用戶能完成他們的任務,從而滿足了業務需求。非功能需求(non-functionalrequirement)是從各個角度對系統的約束和限制,反映了應用對軟件系統質量和特性的額外要求。軟件需求的層次業務需求(businessrequireme軟件需求的層次(續)例:銀行ATM系統業務需求系統為用戶提供自助存取款服務用戶需求
用戶可以隨時安全、快捷地進行存款和取款功能需求
允許用戶從銀行帳戶中取款允許用戶向銀行帳戶中存款允許用戶查詢從銀行帳戶中的余額使用8位數字密碼檢驗用戶存取的合法性軟件需求的層次(續)例:銀行ATM系統軟件需求的層次(續)例:銀行ATM系統(2)非功能需求系統在20秒內響應所有請求除了每天30分鐘維護外,系統每周7天、每天24小時都可以用需求來源
客戶或用戶(如銀行職員、管理人員、用戶)行業標準、政策法規當前手工處理系統的文檔咨詢銀行領域專家軟件需求的層次(續)例:銀行ATM系統(2)需求分析的任務就是借助于當前系統的邏輯模型導出目標系統的邏輯模型,解決目標系統的“做什么”的問題。需求分析的任務…………抽象實現改進老系統模型新模型新系統需求分析的任務就是借助于當前系統的邏輯模型導出目標系統的邏輯需求分析的過程(1)
需求分析的過程是開發人員與用戶共同協商,明確系統的全部功能、性能以及運行規格,并且使用軟件開發人員和用戶都能理解的語言準確地表達出來,即完成需求規格說明的過程。說白了,就是要明確“做什么?”整個過程分為以下四個階段:
問題識別(需求獲取)、需求分析(分析與綜合)、編寫規格說明文檔、需求評審。工作產品活動需求分析的過程(1)需求分析的過程是開發人員與用戶1.問題識別/需求獲取:雙方確定問題的綜合需求,識別系統相關者的需求,使其達到共識。?功能需求:系統必須做什么? ?性能需求:做得怎樣?例:responsetime,memory,back-upmemory,……?環境需求:運行環境、軟硬件配置等。?用戶界面需求?可靠性、安全性、保密性、可移植性和可維護性等方面的需求。?將來可能提出的要求需求分析的過程(2)1.問題識別/需求獲取:雙方確定問題的綜合需求,識別系統相關2.分析與綜合:
分析和整理所收集的需求,形成完整的分析模型。需求分析的過程(3)3.編寫文檔:以一致的、完備和無二義性的形式表達需求。?編寫需求說明書 ?編寫初步用戶使用手冊?編寫確認測試計劃?修改完善項目開發計劃2.分析與綜合:需求分析的過程(3)3.編寫文檔:以一致的、需求分析的過程(4)驗證需求的一致性驗證需求的完整性驗證需求的現實性驗證需求的有效性方法:
人工審查開發原型系統-探索型使用軟件工具—完整性、一致性4.需求評審:確保需求說明準確、完整地表達必要的質量特點。5.需求管理:在整個軟件開發過程中進行需求跟蹤、變更控制、版本控制等。需求分析的過程(4)驗證需求的一致性方法:4.需求評審:確保常用的分析、設計方法面向數據流的(結構化)法(SA)面向數據結構的Jackson方法(JSD)結構化數據系統開發方法(DSSD)面向對象的方法(OOA)等常用的分析、設計方法面向數據流的(結構化)法(SA)需求分析的方法結構化分析方法:由數據流和數據字典構成,適于數據處理領域問題。該方法的一個難點是確定數據流之間的變換,而且數據字典的規模也是一個問題,對數據結構的強調很少。面向對象的分析:采用了實體、關系和屬性等信息模型分析中的概念,同時采用了封閉、類結構和繼承性等面向對象程序設計語言中的概念。需求分析的方法結構化分析方法:由數據流和數據字典構成,適于數注意事項在需求分析時要注意用戶對軟件開發的了解程度,避免造成兩種極端認識。需求的變動或新增是一個極為普遍的問題,既然普遍,所以軟件開發人員不僅應該在心理上接受這種變動,還應該在需求分析時積極的發掘需求。需求人員與用戶廣泛交流,從深度和廣度挖掘可能的需求,并應形成規范的需求文檔,經用戶確認。如果為寫文檔而寫文檔,不進行及時更新,甚至準備在軟件開發完成后再補文檔,這是絕對錯誤的觀點。注意事項在需求分析時要注意用戶對軟件開發的了解程度,避免造成可能的錯誤沒有足夠用戶參與(類型、數量)開發方與用戶溝通可能處于劣勢不要錦上添花,畫蛇添足不要寫的過于簡練,過于模糊計劃做需求的時間少了,導致需求不完整需求在簽約前要與決策者溝通好到競爭對手那兒找不足不要被過細的不成熟的細節影響記下不明確的需求,約定期限明確,否則易遺漏可能的錯誤沒有足夠用戶參與(類型、數量)需求獲取(1)真正理解項目中描述的客戶需求19需求獲取(1)真正理解項目中描述的客戶需求19需求獲取(2)聆聽用戶的需求-與各種層次的客戶進行充分的交流和溝通,包括決策領導、使用部門的領導、具體使用人員、系統維護人員等分析和整理所獲取的信息-借助一些工具和方法,從用戶一般性的陳述里面提取用戶的真正需求,并由此確定軟件的功能、性能、接口關系、約束條件等形成文檔化的描述
20需求獲取(2)聆聽用戶的需求20需求獲取(3)需求的獲取技術-向系統相關者進行問卷調查-主持與用戶的面談和討論-需求專題討論會-復查現有的報表、表格和過程描述-觀察商業過程和工作流-應用用例-建立原型21需求規格說明:參見相應的模板需求獲取(3)需求的獲取技術21需求規格說明:參見相應的模板需求文檔需求文檔第四章需求分析Outlines需求分析概述結構化方法模型及其作用結構化分析
功能模型(數據流圖數據與數據字典)數據模型(實體關系圖)行為模型(狀態轉換圖)
第四章需求分析Outlines
模型(Model)軟件開發建模的重要性軟件系統建模的作用:(1)便于開發人員展現系統,在建模過程中了解信息;(2)通過抽象降低復雜度,“分而治之”的方法;(3)有助于回憶所有細節、有助于與其他開發小組交流、有助于和用戶交流;(4)為維護和升級提供文檔;…建模的實質:對現實的簡化。模型(Model)軟件開發建模的重要性
軟件模型系統:復雜;多個模型涵蓋細節信息;模型種類:
數學模型:描述系統技術方面的一系列公式。
描述模型:對系統某一方面的描述性備忘錄、報表或列表;
圖形模型:圖表或系統某些方面的示意性表示。軟件模型系統:復雜;多個模型涵蓋細節信息;
信息系統模型分析模型(邏輯模型)-詳細定義了系統需求而沒有局限于具體技術。(數據流圖、實體關系圖、數據字典、用例圖、時序圖、協作圖、狀態轉換圖…)設計模型(物理模型)-顯示如何使用具體技術來實現系統的某些方面。(系統結構圖、界面布局、程序流程圖、網絡圖、分布圖、數據庫模式、…)信息系統模型分析模型(邏輯模型)結構化方法面向數據流/結構化進行需求分析的方法(60-70年代初,美國Yourdon公司提出)結構化分析方法適合于數據處理類型軟件的需求分析結構化分析幫助開發人員定義系統需要什么,系統需要存儲和使用哪些數據,系統需要什么樣的輸入和輸出以及如何把這些功能結合在一起完成任務結構化分析方法按照軟件內部數據傳遞、變換的關系,使用自頂向下逐層分解的系統分析方法來定義需求。在結構化基礎上,完成系統規格說明,建立一個系統自頂向下的邏輯模型。結構化方法面向數據流/結構化進行需求分析的方法(60-70結構化方法(續1)結構化分析方法的核心是數據流圖。數據流圖:一種表示信息流程和信息變換過程的圖解方法。數據詞典:定義數據流圖中的數據和加工。描述加工邏輯的工具:結構化語言、判定表、判定樹等工具(詳細描述數據流圖中不能被再分解的每一個基本加工的處理邏輯)。結構化分析方法的實質是采用一組分層數據流圖及相應的數據字典作為系統的邏輯模型,是一種依賴于數據流圖的自頂向下的建模方法。結構化方法(續1)結構化分析方法的核心是數據流圖。結構化方法(續2)結構化分析方法基本步驟:(1)自頂向下逐層功能分解分層DFD(2)由后向前,定義數據和加工數據字典,基本加工描述說明(3)根據需要,分析復雜數據和動態模型:E-R圖,控制流圖(CFD),控制說明(CSPEC),狀態圖(STD)(4)編寫軟件需求規格說明書(SRS)結構化方法(續2)結構化分析方法基本步驟:復習軟件需求就是以一種清晰、簡潔、一致且無二義性的方式,對一個待開發的軟件系統中各個有意義方面所的陳述的一個集合。需求的層次:業務需求、用戶需求、功能需求、非功能需求。需求分析的過程:需求獲取、需求分析加工、編寫文檔、需求評審、需求管理。常用需求分析方法:結構化分析、面向對象分析。結構化分析:數據流圖+數據字典復習軟件需求就是以一種清晰、簡潔、一致且無二義性的方式,第四章需求分析Outlines需求分析概述結構化方法模型及其作用結構化分析
功能模型(數據流圖數據與數據字典)數據模型(實體關系圖)行為模型(狀態轉換圖)
第四章需求分析Outlines數據流圖(DFD,DataFlowDiagram)概念:一種描述信息系統邏輯模型的圖形化工具,表示信息系統的主要需求,能綜合反映出信息在系統中流動、處理和存儲的情況。大型軟件系統:分層數據流圖(Why)分層數據流圖可實現信息抽象
高層數據流圖是低層數據流圖的抽象表示,低層數據流圖表現了高層數據流圖中有關數據的處理細節。實現信息隱藏
高層次數據流圖不體現低層次數據流圖的細節,掩蓋了低層數據處理的功能關系數據流圖(DFD,DataFlowDiagram)概念分層數據流圖頂層DFD僅包含一個加工,它代表被開發系統。它的輸入流是該系統的輸入數據,輸出流是系統所輸出數據中間層DFD則表示對其上層父圖的細化。它的每一加工可以繼續細化,形成子圖。底層DFD是指其加工不需再做分解的數據流圖系統輸入1輸入n輸出1輸出nSF1F2F1F2基本系統模型頂層數據流圖一層數據流圖二層數據流圖P1.1P1.2P2.1P2.2P2.1P3.1P3.2P3.3P3.3F2F1F1F2系統S的總圖P1P2P3F1F2F1F2P1.1P1.2F1P2.1P2.2P2.1F2P3.1P3.2P3.3P3.3F1F2分層數據流圖頂層DFD僅包含一個加工,它代表被開發系統。它的數據流圖基本元素(1)外部實體(ExternalEntity)/數據源點、終點-代表系統之外的人、物或組織-它發出或接收系統的數據,其作用是提供系統和外界環境之間關系的注釋性說明數據流(DataFlow)-表示DFD中過程、數據存儲和外部實體之間的數據移動。-數據流不代表控制流,數據流反映處理的對象,控制流則是一種選擇或用來影響過程的性質過程/加工/處理(Process)-對數據執行某種操作或變化,是把輸入數據交換成輸出數據的一種變換。或編號加工名外部實體外部實體或數據流圖基本元素(1)外部實體(ExternalEntit數據流圖基本元素(2)數據存儲(DataStorage)-數據存儲不一定等同于一個文件,可以表示文件、文件的一部分、數據庫元素或記錄的一部分等。-數據可以存儲在磁盤、存儲器和其他任何介質上。-指向數據存儲的箭頭可是是單向,也可以是雙向的。修改庫存商品庫存檢索商品信息商品目錄數據名稱或編號數據名稱或數據流圖基本元素(2)數據存儲(DataStorage)修數據流圖繪制步驟確定系統的外部項畫出頂層圖自頂向下逐層分解直到基本加工檢查征求用戶意見定稿復審例:學生注冊課程系統
某大學準備開發一個學生課程注冊系統,學生可以使用該系統查詢新學期將開設的課程(講課教師)情況,選擇自己要學習的課程進行登記注冊,并可以查詢成績單;教師可以使用該系統查詢新學期將開設的課程(選課學生)情況,并可以登記成績單;注冊管理員使用該系統進行注冊管理,包括維護教師信息、學生信息和課程信息等。數據流圖繪制步驟確定系統的外部項例:學生注冊課程系統
某數據流圖繪制實例:學生注冊課程系統(1)繪制頂層DFD
將整個系統看作一個過程/加工,提供和接收數據的外部實體在系統之外,其他任何事情屬于系統范圍。由于數據存儲屬于系統內部,因此不出現在頂層DFD中。37數據流圖繪制實例:學生注冊課程系統(1)繪制頂層DFD37數據流圖繪制實例:學生注冊課程系統(2)DFD細化:用一個過程符號表示系統響應一個事件.一層DFD:38數據流圖繪制實例:學生注冊課程系統(2)DFD細化:用一個過數據流圖繪制實例:學生注冊課程系統(3)加工5的二層DFD39數據流圖繪制實例:學生注冊課程系統(3)加工5的二層DFD3數據流圖繪制-檢查(1)高質量的DFD是可讀的、內部一致、準確表示系統需求的。數據流圖不應反映處理的順序。數據流圖中所有元素的命名應當對客戶有意義,且與用戶業務相關。為便于查閱,進行層次分解是要對圖進行編號。數據應通過加工進行流動,避免從一個數據存儲直接流向另一個數據存儲。40數據2儲戶處理1帳戶數據1儲戶檢查合理性取款單合理取款單帳戶數據流圖繪制-檢查(1)高質量的DFD是可讀的、內部一致、準數據終點沒有輸出!數據源加工沒有輸入!加工數據流圖繪制-檢查(2)
每個加工至少有一個輸入數據流和一個輸出數據流數據流必須要么從某個加工流出、要么流入某個加工,而不能直接從外部項流向數據存儲等等。圖示的幾種流動都是不合理的外部實體外部實體外部實體數據存儲數據終點數據存儲數據存儲數據存儲數據終點沒有輸出!數據源加工沒有輸入!加工數據流圖繪制-檢查數據流圖繪制-檢查(3)復雜最小化:7±2規則(Miller數)-單個DFD中不應有超過7±2個加工。-單個DFD不應超過7±2個數據流進出一個加工、數據存儲和數據元素。接口最小化-接口是指一個問題或描述中的一部分與其他部分的連接。-與7±2個規則相關,接口應保證最小化。-當單個過程有大量接口以致于復雜到不可以理解時,可以把這種過程分解為兩個或多個過程。42數據流圖繪制-檢查(3)復雜最小化:7±2規則(Miller數據流圖繪制-檢查(4)數據流不一致問題-一個加工和它的加工分解在數據流內容中有差別。有數據流出但沒有相應的數據流入有數據流入但沒有相應的數據流出。平衡-進出加工的數據流與進出加工分解DFD的數據流在內容上一致。-子圖代表了父圖中某個過程的細節(詳細描述),父圖代表了子圖間的接口(抽象描述),二者代表了同一個東西。-子圖輸入、輸出數據流必須和父圖中相應過程的輸入、輸出數據流相一致(達到“平衡”)。43數據流圖繪制-檢查(4)數據流不一致問題43作業:分房管理問題:住戶把分房單交給房產管理員,管理員要先根據住房標準文件核準住戶的住房條件,如果夠標準再根據房產文件察看有無空房可以分配,如果有則分配住房并且計算房租,記錄入房租文件,并將房子租金通知住戶。如果不夠標準或者無房可分,則不予分房,并對住戶下發通知。繪制頂層及第1,2層的DFD圖
作業:分房管理問題:住戶把分房單交給房產管理員,管理員要先根數據字典(DataDictionary,簡稱DD)數據字典是用來定義DFD中各個成分的具體含義的,它以一種準確的、無二義性的說明方式為系統的分析、設計及維護提供了有關元素的一致的定義和詳細的描述。它和數據流圖共同構成了系統的邏輯模型。數據字典的條目內容數據流、數據存儲、數據項、基本加工。數據字典(DataDictionary,簡稱DD)數據字數據字典的符號46數據字典的符號46數據流條目
在一個數據流圖上,數據按數據流為單位傳輸。主要內容有:數據流名稱、別名及簡述。數據流的來源:可能是一個外部實體、處理邏輯、數據存貯。數據流的去處。(同上)數據流的組成:一個數據流可能包括若干個數據結構,若只有一個數據結構,就不需要專門定義。數據流的流通量:單位時間內的傳輸次數。數據流條目在一個數據流圖上,數據按數據流為單數據流條目舉例數據流的名稱:銷售科發貨單別名:無簡述:工廠對顧客辦理的發貨單數據流來源:“銷售科”外部實體數據流去向:“核對發貨單”處理邏輯數據流組成:發貨單標識+顧客+配件流通量:50份/天數據流條目舉例數據流的名稱:銷售科發貨單數據存儲條目
數據存儲是數據結構停留或保存的場所。主要內容:數據存儲的名稱、別名及其簡述。流入、流出的數據流:流入的數據流指出其來源,流出的數據流指出其去向。數據存儲的組成:指它所包含的數據項或數據結構。組織方式、查詢要求等。數據存儲條目數據存儲是數據結構停留或保存的場數據存儲條目舉例數據存儲名稱:銷售歷史別名:無簡述:公司從月初到目前為止所有配件的銷售量。流入的數據流:“顧客的發貨單”,來源是“產生發貨單”處理邏輯。流出的數據流:“銷售量”,去向是“產生銷售報表”處理邏輯。數據存貯的組成:配件編號+日期+銷售量。組織方式:以配件編號為關鍵字建立索引。查詢要求:能立即查詢。數據存儲條目舉例數據存儲名稱:銷售歷史數據項條目
數據項也稱數據元素,是“不可再分”的數據單位,是數據的最小組成單位。主要內容有:數據項名稱、別名及簡述:給數據項取名時,按“顧名思義”的原則,反映該數據項的含義,易于他人理解、記憶。數據項的類型數據項的長度:指數據項所包含的字符或數字的位數。取值的范圍和取值的含義數據項條目數據項也稱數據元素,是“不可再分”數據項條目舉例數據項名稱:貨物編號別名:G_No,Goods_No簡述:本公司的所有貨物的編號。類型:字符串長度:10取值/含義:第一位:進口/國產2~4位:類別5~7位:規格8~10:品名編號數據項條目舉例數據項名稱:貨物編號加工條目用來說明DFD中基本加工的處理邏輯的。加工名;編號;簡述:對處理邏輯的簡明描述,其目的是使人了解這個處理邏輯是做什么用的。激發條件;優先級;輸入、輸出;加工邏輯:描述該加工“做什么”,即實現加工的策略,而不是實現加工的細節,描述如何把輸入數據流變換為輸出數據流的加工規則。常用的描述方法:結構化語言、判定表及判定樹。加工條目用來說明DFD中基本加工的處理邏輯的。加工條目舉例加工名:確定能否供貨編號:1.2簡述:激發條件:接受到合格訂單時優先級:普通輸入:合格訂單輸出:可供貨訂單、缺貨訂單加工邏輯:根據庫存記錄IF訂單項目的數量<該項目庫存量的臨界值THEN可供貨處理ELSE此訂單缺貨,登記,待進貨后再處理ENDIF加工條目舉例加工名:確定能否供貨DFD過程/基本加工描述在過程分解中,一個高層的加工可進一步分解。當加工分解到足夠簡單可以實現時,分解便停止。加工邏輯說明方法:-----結構化語言-----判定樹(決策樹)-----判定表(決策表)DFD過程/基本加工描述在過程分解中,一個高層的加工可進一步結構化語言(1)結構化語言/偽代碼/過程設計語言PDL介于自然語言與計算機語言之間語句類型:順序語句、條件語句、循環語句結構化語言的詞匯表由命令動詞數據詞典中定義的名字有限的自定義詞邏輯關系詞IF_THEN_ELSE、CASE_OF、WHILE_DO、REPEAT_UNTIL等組成。結構化語言(1)結構化語言/偽代碼/過程設計語言PDL語言的正文用基本控制結構進行分割,加工中的操作用自然語言短語來表示其基本控制結構有三種:簡單陳述句結構:避免復合語句;重復結構:WHILE_DO或REPEAT_UNTIL結構。判定結構:IF_THEN_ELSE或
CASE_OF結構;結構化語言(2)語言的正文用基本控制結構進行分割,加工中的操作用自然語言短語商店業務處理系統中“檢查發貨單”IF發貨單金額超過$500THEN
IF欠款超過了60天THEN在償還欠款前不予批準ELSE(欠款未超期)發批準書,發貨單ENDIFELSE(發貨單金額未超過$500)IF欠款超過60天THEN發批準書,發貨單及賒欠報告ELSE(欠款未超期)發批準書,發貨單ENDIFENDIF商店業務處理系統中“檢查發貨單”IF發貨單金額超過$500判定樹一種圖形工具,適合描述加工中有多個策略,而且每個策略和若干條件有關的邏輯功能。判定樹一種圖形工具,適合描述加工中有多個策略,而且每個策略和(3)判定表(決策表)
如果判斷的條件多,各條件又相互組合,使用判定表來描述比較合適60田字形結構:條件、狀態、決策方案、決策規則。決策表讀法:順時針方向。(3)判定表(決策表)如果判斷的條件多,各條件又相互組判定表(決策表)繪制步驟分析決策問題涉及幾個條件分析每個條件有幾個取值區間畫出條件取值分析表,分析條件的各種可能組合分析決策問題涉及幾個決策方案畫出有條件組合的決策表決定各種條件組合的決策方案(填寫決策規則)合并化簡(相同決策方案所對應的各個條件組合是否存在無需判斷的條件)。判定表(決策表)繪制步驟分析決策問題涉及幾個條件(3)判定表例子畫出下列職工調配決策表:若年齡不滿18歲,文化程度是小學則脫產學習,文化程度是中學當電工;若年齡滿18歲但不滿40歲,文化程度是小學或中學,若是男性,則當鉗工,若是女性,則當車工;若年齡滿40歲及以上者,文化程度是小學或中學,則當材料員;凡大學畢業生,都當技術員。62(3)判定表例子畫出下列職工調配決策表:62(3)判定表例子條件取值表:63(3)判定表例子條件取值表:6364判定表:若年齡不滿18歲,文化程度是小學則脫產學習,文化程度是中學當電工;若年齡滿18歲但不滿40歲,文化程度是小學或中學,若是男性,則當鉗工,若是女性,則當車工;若年齡滿40歲及以上者,文化程度是小學或中學,則當材料員;凡大學畢業生都當技術員(3)判定表例子64判定表:若年齡不滿18歲,文化程度是小學則脫產學習,文化判定表(決策表)繪制練習問題說明:某公司為本科以上學歷的人重新分配工作,分配原則如下:1.如果年齡不滿30歲,學歷是本科,男性要求報考研究生,女性則擔任行政工作;2.如果年齡滿30歲不滿50歲,學歷本科,不分男女,任中層領導職務,學歷是碩士不分男女,任課題組組長;3.如果年齡滿50歲,學歷本科,男性任科研人員,女性則擔任資料員,學歷是碩士不分男女,任課題組組長。請繪制本問題決策表。判定表(決策表)繪制練習問題說明:第4章_需求分析XXXX0308無建筑效果版課件第4章_需求分析XXXX0308無建筑效果版課件示例:圖書訂購系統DFD示例:圖書訂購系統DFD實例考務處理系統的功能選自鄭人杰實用軟件工程(1)
對考生送來的報名單進行檢查;(2)
對合格的報名單編好準考證號后將準考證送給考生,并將匯總后的考生名單送給閱卷站;(3)
對閱卷站送來的成績單進行檢查,并根據考試中心制定的合格標準審定合格者;(4)
制作考生通知單(含成績及合格/不合格標志)送給考生;(5)
按地區進行成績分類統計和試題難度分析,產生統計分析表。實例考務處理系統的功能選自鄭人杰實用軟件工程(1)對考生送根據考務處理業務,畫出頂層數據流圖,以反映最主要業務處理流程及系統與外界的關系。經過分析,考務業務處理的主要功能應當有登記報名單、統計成績兩個主要數據流。輸入的源點和輸出終點是考生、考試中心和閱卷站。然后從輸入端開始,根據考務業務工作流,畫出數據流流經的各加工框,逐步畫到輸出端,得到第0層數據流圖。根據考務處理業務,畫出頂層數據流圖,以反映最主要業務處理流程頂層數據流圖考生考務處理系統考試中心閱卷站不合格報名表報名表準考證考生通知單成績單合格標準錯誤成績單考生名單統計分析表頂層數據流圖考考務考閱卷站不合格報名表報名表準考證考生通知單報名表準考證1登記報名表2統計成績不合格報名表考生通知單成績單統計分析表第0層數據流圖考生名冊合格標準考生名單錯誤成績單報名表準考證12不合格考生通知單成績單統計分析表第0層數據流第一層數據流圖(a)1.1
檢查報名表報名表準考證1.2編準考證號碼不合格報名表考生名冊考生名單合格報名表1.3登記考生合格報名表第一層數據流圖(a)1.1報名表準考證1.2不合格考生名第一層數據流圖(b)2.1檢查成績單2.2審定合格者考生名冊正確成績單2.3制作通知單2.4分析統計成績2.5分析試題難度試題得分表考生通知單難度分析表合格標準分類統計表成績單錯誤成績單經審定的成績單第一層數據流圖(b)2.12.2考生名冊正確2.32.42某銀行的計算機儲蓄系統:將儲戶填寫的取款單或存款單輸入系統,如果是存款,系統記錄存款人姓名﹑住址﹑存款類型﹑存款日期﹑利率等信息,并打印出存款單給儲戶;如果是取款,系統計算有無余款,按取款額打印付款結算單給儲戶。某銀行的計算機儲蓄系統:將儲戶填寫的取款單或存款單DFD分層數據流程圖舉例教學管理數據流程頂圖DFD分層數據流程圖舉例教學管理數據流程圖教學管理數據流程圖分層數據流程圖舉例學籍管理數據流程分層數據流程圖舉例第四章需求分析Outlines需求分析概述結構化方法模型及其作用結構化分析
功能模型(數據流圖數據與數據字典)
數據模型(實體關系圖)
行為模型(狀態轉換圖)第四章需求分析OutlinesER模型(Entity-RelationshipApproach)實體:客觀世界中存在且可相互區分的事物。用矩形框代表。關系:事物間是有聯系的。(1:1、1:N、M:N)用連接相關實體的菱形框表示。屬性:實體或關系所具有的性質。用橢圓形或圓角矩形表示。教師學生課程教學學號職稱成績學分1NNMER模型(Entity-RelationshipAppro實體關系圖(ERD)實體是客觀世界中存在的且可相互區分的事務。81⑴實體
例:,
,StudentInstructorClass實體關系圖(ERD)81⑴實體實體關系圖(ERD)(續)客觀世界中的事物彼此間往往是有聯系的
*一對一(1:1):對象A的一個實例只能關聯到對象B的一個實例,對象B的一個實例也只能關聯到對象A的一個實例,如一個丈夫只能有一個妻子,一個妻子也只能有一個丈夫。
*一對多(1:N):對象A的一個實例可以關聯到對象B的一個或多哥實例,而對象B的一個實例只能關聯到對象A的一個實例,如一個母親可以有多個孩子,而一個孩子只能有一個母親。*多對多(M:N):對象A的一個實例可以關聯到對象B的一個或多個實例,同時對象B的一個實例也可以關聯到對象A的一個或多個實例,如一個叔叔可以有多個侄子,一個侄子也可以有多個叔叔。82⑵關系注冊教實體關系圖(ERD)(續)客觀世界中的事物彼此間往往是有聯系實體關系圖(ERD)(續)
(3)屬性屬性是實體或聯系所具有的性質。通常一個實體由若干個屬性來刻畫。例如,“學生”實體有學號、姓名、性別、系、年級83111NMN例:姓名學號實體關系圖(ERD)(續)(3)屬性83111NMN例:實體關系圖(ERD)(續)實體關系圖(Entity-RelationshipDiagram,ERD)-用來定義數據存儲需求的模型。84教師學生課程教學學號職稱成績學分1NNM數據實體數據實體:系統需要存儲的有關信息系統的信息.
傳統方法中,數據實體與過程是分離的-數據存儲需求包括數據實體、數據實體的屬性以及它們之間的聯系。實體關系圖(ERD)(續)實體關系圖(Entity-Rel關聯實體-表示兩個數據實體之間多對多關系的數據實體,例如學生和課程之間存在的選課信息。E-R圖中表示實體聯系的符號如下:85在E-R圖中,每個方框表示實體型或屬性,方框之間的連線表示實體之間,或實體與屬性之間的聯系。實體關系圖(ERD)(續)關聯實體85在E-R圖中,每個方框表示實體型或屬性,方框之間例:“注冊管理員”呢?遺漏了嗎?通常多對多關系需要加入關聯實體“成績”關聯實體實體關系圖(ERD)(續)例:“注冊管理員”呢?遺漏了嗎?通常多對多關系需要加入關聯狀態遷移圖狀態遷移圖是描述系統的狀態如何相應外部的信號進行推移的一種圖形表示。圓圈“○”表示可得到的系統狀態箭頭“→”表示從一種狀態向另一種狀態的遷移。動態分析工具:狀態遷移圖時序圖Petri網狀態遷移圖狀態遷移圖是描述系統的狀態如何相應外部的信號進行推例如,當有多個申請占用CPU運行的進程時,有關CPU分配的進程的狀態遷移。例如,當有多個申請占用CPU運行的進程時,有關CPU分可得到的狀態=就緒,運行,等待生成的事件=t1,t2,t3,t4
t1─
中斷事件
t2─
中斷已處理
t3─
分配CPU
t4─
用完CPU時間可得到的狀態=就緒,運行,等待狀態遷移圖的優點狀態之間的關系能夠直觀地捕捉到由于狀態遷移圖的單純性,能夠機械地分析許多情況,可很容易地建立分析工具狀態遷移圖的優點狀態之間的關系能夠直觀地捕捉到演講完畢,謝謝觀看!演講完畢,謝謝觀看!92軟件工程
SoftwareEngineering2011新春版1軟件工程Softwar第四章需求分析Outlines需求分析概述
軟件需求重要性軟件定義軟件需求任務需求工程過程結構化方法第四章需求分析Outlines軟件需求問題(1)軟件開發現狀:復雜的軟件系統開發,總令人不滿意美國2500億美元/年,175,000個軟件項目其中,16%按時、按預算、滿足要求地交付30%左右在完成前被取消52.7%項目成本是預算成本的189%項目失敗原因缺乏用戶參與:13%不完整的需求規格說明:12%不斷改變的需求和規格說明:21%軟件需求問題(1)軟件開發現狀:復雜的軟件系統開發,總令人不軟件需求問題(2)各階段缺陷對交付軟件產品的影響
需求缺陷約占全部提交缺陷的1/3軟件需求問題(2)各階段缺陷對交付軟件產品的影響需求錯誤的代價96需求錯誤的代價5什么是軟件需求需求的定義(IEEE,1997)
(1)用戶解決問題或達到目標所需的條件或能力。
(2)系統或系統部件要滿足合同、標準、規范或其它正式規定文檔所需具有的條件或能力。
(3)一種反映上面(1)或(2)所描述的條件或能力的文檔說明。
需求就是以一種清晰、簡潔、一致且無二義性的方式,對一個待開發系統中各個有意義方面的陳述的一個集合。什么是軟件需求需求的定義(IEEE,1997)軟件需求的層次業務需求(businessrequirement)反映了組織機構或客戶對系統或產品高層次的目標要求,它們在項目視圖與范圍文檔中予以說明。用戶需求(userrequirement)描述了用戶使用產品必須要完成的任務,可以在用例模型或方案腳本中予以說明。功能需求(functionalrequirement)定義了開發人員必須實現的軟件功能,使得用戶能完成他們的任務,從而滿足了業務需求。非功能需求(non-functionalrequirement)是從各個角度對系統的約束和限制,反映了應用對軟件系統質量和特性的額外要求。軟件需求的層次業務需求(businessrequireme軟件需求的層次(續)例:銀行ATM系統業務需求系統為用戶提供自助存取款服務用戶需求
用戶可以隨時安全、快捷地進行存款和取款功能需求
允許用戶從銀行帳戶中取款允許用戶向銀行帳戶中存款允許用戶查詢從銀行帳戶中的余額使用8位數字密碼檢驗用戶存取的合法性軟件需求的層次(續)例:銀行ATM系統軟件需求的層次(續)例:銀行ATM系統(2)非功能需求系統在20秒內響應所有請求除了每天30分鐘維護外,系統每周7天、每天24小時都可以用需求來源
客戶或用戶(如銀行職員、管理人員、用戶)行業標準、政策法規當前手工處理系統的文檔咨詢銀行領域專家軟件需求的層次(續)例:銀行ATM系統(2)需求分析的任務就是借助于當前系統的邏輯模型導出目標系統的邏輯模型,解決目標系統的“做什么”的問題。需求分析的任務…………抽象實現改進老系統模型新模型新系統需求分析的任務就是借助于當前系統的邏輯模型導出目標系統的邏輯需求分析的過程(1)
需求分析的過程是開發人員與用戶共同協商,明確系統的全部功能、性能以及運行規格,并且使用軟件開發人員和用戶都能理解的語言準確地表達出來,即完成需求規格說明的過程。說白了,就是要明確“做什么?”整個過程分為以下四個階段:
問題識別(需求獲取)、需求分析(分析與綜合)、編寫規格說明文檔、需求評審。工作產品活動需求分析的過程(1)需求分析的過程是開發人員與用戶1.問題識別/需求獲取:雙方確定問題的綜合需求,識別系統相關者的需求,使其達到共識。?功能需求:系統必須做什么? ?性能需求:做得怎樣?例:responsetime,memory,back-upmemory,……?環境需求:運行環境、軟硬件配置等。?用戶界面需求?可靠性、安全性、保密性、可移植性和可維護性等方面的需求。?將來可能提出的要求需求分析的過程(2)1.問題識別/需求獲取:雙方確定問題的綜合需求,識別系統相關2.分析與綜合:
分析和整理所收集的需求,形成完整的分析模型。需求分析的過程(3)3.編寫文檔:以一致的、完備和無二義性的形式表達需求。?編寫需求說明書 ?編寫初步用戶使用手冊?編寫確認測試計劃?修改完善項目開發計劃2.分析與綜合:需求分析的過程(3)3.編寫文檔:以一致的、需求分析的過程(4)驗證需求的一致性驗證需求的完整性驗證需求的現實性驗證需求的有效性方法:
人工審查開發原型系統-探索型使用軟件工具—完整性、一致性4.需求評審:確保需求說明準確、完整地表達必要的質量特點。5.需求管理:在整個軟件開發過程中進行需求跟蹤、變更控制、版本控制等。需求分析的過程(4)驗證需求的一致性方法:4.需求評審:確保常用的分析、設計方法面向數據流的(結構化)法(SA)面向數據結構的Jackson方法(JSD)結構化數據系統開發方法(DSSD)面向對象的方法(OOA)等常用的分析、設計方法面向數據流的(結構化)法(SA)需求分析的方法結構化分析方法:由數據流和數據字典構成,適于數據處理領域問題。該方法的一個難點是確定數據流之間的變換,而且數據字典的規模也是一個問題,對數據結構的強調很少。面向對象的分析:采用了實體、關系和屬性等信息模型分析中的概念,同時采用了封閉、類結構和繼承性等面向對象程序設計語言中的概念。需求分析的方法結構化分析方法:由數據流和數據字典構成,適于數注意事項在需求分析時要注意用戶對軟件開發的了解程度,避免造成兩種極端認識。需求的變動或新增是一個極為普遍的問題,既然普遍,所以軟件開發人員不僅應該在心理上接受這種變動,還應該在需求分析時積極的發掘需求。需求人員與用戶廣泛交流,從深度和廣度挖掘可能的需求,并應形成規范的需求文檔,經用戶確認。如果為寫文檔而寫文檔,不進行及時更新,甚至準備在軟件開發完成后再補文檔,這是絕對錯誤的觀點。注意事項在需求分析時要注意用戶對軟件開發的了解程度,避免造成可能的錯誤沒有足夠用戶參與(類型、數量)開發方與用戶溝通可能處于劣勢不要錦上添花,畫蛇添足不要寫的過于簡練,過于模糊計劃做需求的時間少了,導致需求不完整需求在簽約前要與決策者溝通好到競爭對手那兒找不足不要被過細的不成熟的細節影響記下不明確的需求,約定期限明確,否則易遺漏可能的錯誤沒有足夠用戶參與(類型、數量)需求獲取(1)真正理解項目中描述的客戶需求110需求獲取(1)真正理解項目中描述的客戶需求19需求獲取(2)聆聽用戶的需求-與各種層次的客戶進行充分的交流和溝通,包括決策領導、使用部門的領導、具體使用人員、系統維護人員等分析和整理所獲取的信息-借助一些工具和方法,從用戶一般性的陳述里面提取用戶的真正需求,并由此確定軟件的功能、性能、接口關系、約束條件等形成文檔化的描述
111需求獲取(2)聆聽用戶的需求20需求獲取(3)需求的獲取技術-向系統相關者進行問卷調查-主持與用戶的面談和討論-需求專題討論會-復查現有的報表、表格和過程描述-觀察商業過程和工作流-應用用例-建立原型112需求規格說明:參見相應的模板需求獲取(3)需求的獲取技術21需求規格說明:參見相應的模板需求文檔需求文檔第四章需求分析Outlines需求分析概述結構化方法模型及其作用結構化分析
功能模型(數據流圖數據與數據字典)數據模型(實體關系圖)行為模型(狀態轉換圖)
第四章需求分析Outlines
模型(Model)軟件開發建模的重要性軟件系統建模的作用:(1)便于開發人員展現系統,在建模過程中了解信息;(2)通過抽象降低復雜度,“分而治之”的方法;(3)有助于回憶所有細節、有助于與其他開發小組交流、有助于和用戶交流;(4)為維護和升級提供文檔;…建模的實質:對現實的簡化。模型(Model)軟件開發建模的重要性
軟件模型系統:復雜;多個模型涵蓋細節信息;模型種類:
數學模型:描述系統技術方面的一系列公式。
描述模型:對系統某一方面的描述性備忘錄、報表或列表;
圖形模型:圖表或系統某些方面的示意性表示。軟件模型系統:復雜;多個模型涵蓋細節信息;
信息系統模型分析模型(邏輯模型)-詳細定義了系統需求而沒有局限于具體技術。(數據流圖、實體關系圖、數據字典、用例圖、時序圖、協作圖、狀態轉換圖…)設計模型(物理模型)-顯示如何使用具體技術來實現系統的某些方面。(系統結構圖、界面布局、程序流程圖、網絡圖、分布圖、數據庫模式、…)信息系統模型分析模型(邏輯模型)結構化方法面向數據流/結構化進行需求分析的方法(60-70年代初,美國Yourdon公司提出)結構化分析方法適合于數據處理類型軟件的需求分析結構化分析幫助開發人員定義系統需要什么,系統需要存儲和使用哪些數據,系統需要什么樣的輸入和輸出以及如何把這些功能結合在一起完成任務結構化分析方法按照軟件內部數據傳遞、變換的關系,使用自頂向下逐層分解的系統分析方法來定義需求。在結構化基礎上,完成系統規格說明,建立一個系統自頂向下的邏輯模型。結構化方法面向數據流/結構化進行需求分析的方法(60-70結構化方法(續1)結構化分析方法的核心是數據流圖。數據流圖:一種表示信息流程和信息變換過程的圖解方法。數據詞典:定義數據流圖中的數據和加工。描述加工邏輯的工具:結構化語言、判定表、判定樹等工具(詳細描述數據流圖中不能被再分解的每一個基本加工的處理邏輯)。結構化分析方法的實質是采用一組分層數據流圖及相應的數據字典作為系統的邏輯模型,是一種依賴于數據流圖的自頂向下的建模方法。結構化方法(續1)結構化分析方法的核心是數據流圖。結構化方法(續2)結構化分析方法基本步驟:(1)自頂向下逐層功能分解分層DFD(2)由后向前,定義數據和加工數據字典,基本加工描述說明(3)根據需要,分析復雜數據和動態模型:E-R圖,控制流圖(CFD),控制說明(CSPEC),狀態圖(STD)(4)編寫軟件需求規格說明書(SRS)結構化方法(續2)結構化分析方法基本步驟:復習軟件需求就是以一種清晰、簡潔、一致且無二義性的方式,對一個待開發的軟件系統中各個有意義方面所的陳述的一個集合。需求的層次:業務需求、用戶需求、功能需求、非功能需求。需求分析的過程:需求獲取、需求分析加工、編寫文檔、需求評審、需求管理。常用需求分析方法:結構化分析、面向對象分析。結構化分析:數據流圖+數據字典復習軟件需求就是以一種清晰、簡潔、一致且無二義性的方式,第四章需求分析Outlines需求分析概述結構化方法模型及其作用結構化分析
功能模型(數據流圖數據與數據字典)數據模型(實體關系圖)行為模型(狀態轉換圖)
第四章需求分析Outlines數據流圖(DFD,DataFlowDiagram)概念:一種描述信息系統邏輯模型的圖形化工具,表示信息系統的主要需求,能綜合反映出信息在系統中流動、處理和存儲的情況。大型軟件系統:分層數據流圖(Why)分層數據流圖可實現信息抽象
高層數據流圖是低層數據流圖的抽象表示,低層數據流圖表現了高層數據流圖中有關數據的處理細節。實現信息隱藏
高層次數據流圖不體現低層次數據流圖的細節,掩蓋了低層數據處理的功能關系數據流圖(DFD,DataFlowDiagram)概念分層數據流圖頂層DFD僅包含一個加工,它代表被開發系統。它的輸入流是該系統的輸入數據,輸出流是系統所輸出數據中間層DFD則表示對其上層父圖的細化。它的每一加工可以繼續細化,形成子圖。底層DFD是指其加工不需再做分解的數據流圖系統輸入1輸入n輸出1輸出nSF1F2F1F2基本系統模型頂層數據流圖一層數據流圖二層數據流圖P1.1P1.2P2.1P2.2P2.1P3.1P3.2P3.3P3.3F2F1F1F2系統S的總圖P1P2P3F1F2F1F2P1.1P1.2F1P2.1P2.2P2.1F2P3.1P3.2P3.3P3.3F1F2分層數據流圖頂層DFD僅包含一個加工,它代表被開發系統。它的數據流圖基本元素(1)外部實體(ExternalEntity)/數據源點、終點-代表系統之外的人、物或組織-它發出或接收系統的數據,其作用是提供系統和外界環境之間關系的注釋性說明數據流(DataFlow)-表示DFD中過程、數據存儲和外部實體之間的數據移動。-數據流不代表控制流,數據流反映處理的對象,控制流則是一種選擇或用來影響過程的性質過程/加工/處理(Process)-對數據執行某種操作或變化,是把輸入數據交換成輸出數據的一種變換。或編號加工名外部實體外部實體或數據流圖基本元素(1)外部實體(ExternalEntit數據流圖基本元素(2)數據存儲(DataStorage)-數據存儲不一定等同于一個文件,可以表示文件、文件的一部分、數據庫元素或記錄的一部分等。-數據可以存儲在磁盤、存儲器和其他任何介質上。-指向數據存儲的箭頭可是是單向,也可以是雙向的。修改庫存商品庫存檢索商品信息商品目錄數據名稱或編號數據名稱或數據流圖基本元素(2)數據存儲(DataStorage)修數據流圖繪制步驟確定系統的外部項畫出頂層圖自頂向下逐層分解直到基本加工檢查征求用戶意見定稿復審例:學生注冊課程系統
某大學準備開發一個學生課程注冊系統,學生可以使用該系統查詢新學期將開設的課程(講課教師)情況,選擇自己要學習的課程進行登記注冊,并可以查詢成績單;教師可以使用該系統查詢新學期將開設的課程(選課學生)情況,并可以登記成績單;注冊管理員使用該系統進行注冊管理,包括維護教師信息、學生信息和課程信息等。數據流圖繪制步驟確定系統的外部項例:學生注冊課程系統
某數據流圖繪制實例:學生注冊課程系統(1)繪制頂層DFD
將整個系統看作一個過程/加工,提供和接收數據的外部實體在系統之外,其他任何事情屬于系統范圍。由于數據存儲屬于系統內部,因此不出現在頂層DFD中。128數據流圖繪制實例:學生注冊課程系統(1)繪制頂層DFD37數據流圖繪制實例:學生注冊課程系統(2)DFD細化:用一個過程符號表示系統響應一個事件.一層DFD:129數據流圖繪制實例:學生注冊課程系統(2)DFD細化:用一個過數據流圖繪制實例:學生注冊課程系統(3)加工5的二層DFD130數據流圖繪制實例:學生注冊課程系統(3)加工5的二層DFD3數據流圖繪制-檢查(1)高質量的DFD是可讀的、內部一致、準確表示系統需求的。數據流圖不應反映處理的順序。數據流圖中所有元素的命名應當對客戶有意義,且與用戶業務相關。為便于查閱,進行層次分解是要對圖進行編號。數據應通過加工進行流動,避免從一個數據存儲直接流向另一個數據存儲。131數據2儲戶處理1帳戶數據1儲戶檢查合理性取款單合理取款單帳戶數據流圖繪制-檢查(1)高質量的DFD是可讀的、內部一致、準數據終點沒有輸出!數據源加工沒有輸入!加工數據流圖繪制-檢查(2)
每個加工至少有一個輸入數據流和一個輸出數據流數據流必須要么從某個加工流出、要么流入某個加工,而不能直接從外部項流向數據存儲等等。圖示的幾種流動都是不合理的外部實體外部實體外部實體數據存儲數據終點數據存儲數據存儲數據存儲數據終點沒有輸出!數據源加工沒有輸入!加工數據流圖繪制-檢查數據流圖繪制-檢查(3)復雜最小化:7±2規則(Miller數)-單個DFD中不應有超過7±2個加工。-單個DFD不應超過7±2個數據流進出一個加工、數據存儲和數據元素。接口最小化-接口是指一個問題或描述中的一部分與其他部分的連接。-與7±2個規則相關,接口應保證最小化。-當單個過程有大量接口以致于復雜到不可以理解時,可以把這種過程分解為兩個或多個過程。133數據流圖繪制-檢查(3)復雜最小化:7±2規則(Miller數據流圖繪制-檢查(4)數據流不一致問題-一個加工和它的加工分解在數據流內容中有差別。有數據流出但沒有相應的數據流入有數據流入但沒有相應的數據流出。平衡-進出加工的數據流與進出加工分解DFD的數據流在內容上一致。-子圖代表了父圖中某個過程的細節(詳細描述),父圖代表了子圖間的接口(抽象描述),二者代表了同一個東西。-子圖輸入、輸出數據流必須和父圖中相應過程的輸入、輸出數據流相一致(達到“平衡”)。134數據流圖繪制-檢查(4)數據流不一致問題43作業:分房管理問題:住戶把分房單交給房產管理員,管理員要先根據住房標準文件核準住戶的住房條件,如果夠標準再根據房產文件察看有無空房可以分配,如果有則分配住房并且計算房租,記錄入房租文件,并將房子租金通知住戶。如果不夠標準或者無房可分,則不予分房,并對住戶下發通知。繪制頂層及第1,2層的DFD圖
作業:分房管理問題:住戶把分房單交給房產管理員,管理員要先根數據字典(DataDictionary,簡稱DD)數據字典是用來定義DFD中各個成分的具體含義的,它以一種準確的、無二義性的說明方式為系統的分析、設計及維護提供了有關元素的一致的定義和詳細的描述。它和數據流圖共同構成了系統的邏輯模型。數據字典的條目內容數據流、數據存儲、數據項、基本加工。數據字典(DataDictionary,簡稱DD)數據字數據字典的符號137數據字典的符號46數據流條目
在一個數據流圖上,數據按數據流為單位傳輸。主要內容有:數據流名稱、別名及簡述。數據流的來源:可能是一個外部實體、處理邏輯、數據存貯。數據流的去處。(同上)數據流的組成:一個數據流可能包括若干個數據結構,若只有一個數據結構,就不需要專門定義。數據流的流通量:單位時間內的傳輸次數。數據流條目在一個數據流圖上,數據按數據流為單數據流條目舉例數據流的名稱:銷售科發貨單別名:無簡述:工廠對顧客辦理的發貨單數據流來源:“銷售科”外部實體數據流去向:“核對發貨單”處理邏輯數據流組成:發貨單標識+顧客+配件流通量:50份/天數據流條目舉例數據流的名稱:銷售科發貨單數據存儲條目
數據存儲是數據結構停留或保存的場所。主要內容:數據存儲的名稱、別名及其簡述。流入、流出的數據流:流入的數據流指出其來源,流出的數據流指出其去向。數據存儲的組成:指它所包含的數據項或數據結構。組織方式、查詢要求等。數據存儲條目數據存儲是數據結構停留或保存的場數據存儲條目舉例數據存儲名稱:銷售歷史別名:無簡述:公司從月初到目前為止所有配件的銷售量。流入的數據流:“顧客的發貨單”,來源是“產生發貨單”處理邏輯。流出的數據流:“銷售量”,去向是“產生銷售報表”處理邏輯。數據存貯的組成:配件編號+日期+銷售量。組織方式:以配件編號為關鍵字建立索引。查詢要求:能立即查詢。數據存儲條目舉例數據存儲名稱:銷售歷史數據項條目
數據項也稱數據元素,是“不可再分”的數據單位,是數據的最小組成單位。主要內容有:數據項名稱、別名及簡述:給數據項取名時,按“顧名思義”的原則,反映該數據項的含義,易于他人理解、記憶。數據項的類型數據項的長度:指數據項所包含的字符或數字的位數。取值的范圍和取值的含義數據項條目數據項也稱數據元素,是“不可再分”數據項條目舉例數據項名稱:貨物編號別名:G_No,Goods_No簡述:本公司的所有貨物的編號。類型:字符串長度:10取值/含義:第一位:進口/國產2~4位:類別5~7位:規格8~10:品名編號數據項條目舉例數據項名稱:貨物編號加工條目用來說明DFD中基本加工的處理邏輯的。加工名;編號;簡述:對處理邏輯的簡明描述,其目的是使人了解這個處理邏輯是做什么用的。激發條件;優先級;輸入、輸出;加工邏輯:描述該加工“做什么”,即實現加工的策略,而不是實現加工的細節,描述如何把輸入數據流變換為輸出數據流的加工規則。常用的描述方法:結構化語言、判定表及判定樹。加工條目用來說明DFD中基本加工的處理邏輯的。加工條目舉例加工名:確定能否供貨編號:1.2簡述:激發條件:接受到合格訂單時優先級:普通輸入:合格訂單輸出:可供貨訂單、缺貨訂單加工邏輯:根據庫存記錄IF訂單項目的數量<該項目庫存量的臨界值THEN可供貨處理ELSE此訂單缺貨,登記,待進貨后再處理ENDIF加工條目舉例加工名:確定能否供貨DFD過程/基本加工描述在過程分解中,一個高層的加工可進一步分解。當加工分解到足夠簡單可以實現時,分解便停止。加工邏輯說明方法:-----結構化語言-----判定樹(決策樹)-----判定表(決策表)DFD過程/基本加工描述在過程分解中,一個高層的加工可進一步結構化語言(1)結構化語言/偽代碼/過程設計語言PDL介于自然語言與計算機語言之間語句類型:順序語句、條件語句、循環語句結構化語言的詞匯表由命令動詞數據詞典中定義的名字有限的自定義詞邏輯關系詞IF_THEN_ELSE、CASE_OF、WHILE_DO、REPEAT_UNTIL等組成。結構化語言(1)結構化語言/偽代碼/過程設計語言PDL語言的正文用基本控制結構進行分割,加工中的操作用自然語言短語來表示其基本控制結構有三種:簡單陳述句結構:避免復合語句;重復結構:WHILE_DO或REPEAT_UNTIL結構。判定結構:IF_THEN_ELSE或
CASE_OF結構;結構化語言(2)語言的正文用基本控制結構進行分割,加工中的操作用自然語言短語商店業務處理系統中“檢查發貨單”IF發貨單金額超過$500THEN
IF欠款超過了60天THEN在償還欠款前不予批準ELSE(欠款未超期)發批準書,發貨單ENDIFELSE(發貨單金額未超過$500)IF欠款超過60天THEN發批準書,發貨單及賒欠報告ELSE(欠款未超期)發批準書,發貨單ENDIFENDIF商店業務處理系統中“檢查發貨單”IF發貨單金額超過$500判定樹一種圖形工具,適合描述加工中有多個策略,而且每個策略和若干條件有關的邏輯功能。判定樹一種圖形工具,適合描述加工中有多個策略,而且每個策略和(3)判定表(決策表)
如果判斷的條件多,各條件又相互組合,使用判定表來描述比較合適151田字形結構:條件、狀態、決策方案、決策規則。決策表讀法:順時針方向。(3)判定表(決策表)如果判斷的條件多,各條件又相互組判定表(決策表)繪制步驟分析決策問題涉及幾個條件分析每個條件有幾個取值區間畫出條件取值分析表,分析條件的各種可能組合分析決策問題涉及幾個決策方案畫出有條件組合的決策表決定各種條件組合的決策方案(填寫決策規則)合并化簡(相同決策方案所對應的各個條件組合是否存在無需判斷的條件)。判定表(決策表)繪制步驟分析決策問題涉及幾個條件(3)判定表例子畫出下列職工調配決策表:若年齡不滿18歲,文化程度是小學則脫產學習,文化程度是中學當電工;若年齡滿18歲但不滿40歲,文化程度是小學或中學,若是男性,則當鉗工,若是女性,則當車工;若年齡滿40歲及以上者,文化程度是小學或中學,則當材料員;凡大學畢業生,都當技術員。153(3)判定表例子畫出下列職工調配決策表:62(3)判定表例子條件取值表:154(3)判定表例子條件取值表:63155判定表:若年齡不滿18歲,文化程度是小學則脫產學習,文化程度是中學當電工;若年齡滿18歲但不滿40歲,文化程度是小學或中學,若是男性,則當鉗工,若是女性,則當車工;若年齡滿40歲及以上者,文化程度是小學或中學,則當材料員;凡大學畢業生都當技術員(3)判定表例子64判定表:若年齡不滿18歲,文化程度是小學則脫產學習,文化判定表(決策表)繪制練習問題說明:某公司為本科以上學歷的人重新分配工作,分配原則如下:1.如果年齡不滿30歲,學歷是本科,男性要求報考研究生,女性則擔任行政工作;2.如果年齡滿30歲不滿50歲,學歷本科,不分男女,任中層領導職務,學歷是碩士不分男女,任課題組組長;3.如果年齡滿50歲,學歷本科,男性任科研人員,女性則擔任資料員,學歷是碩士不分男女,任課題組組長。請繪制本問題決策表。判定表(決策表)繪制練習問題說明:第4章_需求分析XXXX0308無建筑效果版課件第4章_需求分析XXXX0308無建筑效果版課件示例:圖書訂購系統DFD示例:圖書訂購系統DFD實例考務處理系統的功能選自鄭人杰實用軟件工程(1)
對考生送來的報名單進行檢查;(2)
對合格的報名單編好準考證號后將準考證送給考生,并將匯總后的考生名單送給閱卷站;(3)
對閱卷站送來的成績單進行檢查,并根據考試中心制定的合格標準審定合格者;(4)
制作考生通知單(含成績及合格/不合格標志)送給考生;(5)
按地區進行成績分類統計和試題難度分析,產生統計分析表。實例考務處理系統的功能選自鄭人杰實用軟件工程(1)對考生送根據考務處理業務,畫出頂層數據流圖,以反映最主要業務處理流程及系統與外界的關系。經過分析,考務業務處理的主要功能應當有登記報名單、統計成績兩個主要
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 備份文件備份周期統計表
- 食品加工工藝與安全規范考試卷
- 進銷存軟件開發服務合作協議
- 2025年信息安全與風險管理考試試題及答案
- 小兒高熱驚厥的急救
- 2025年社會變遷與家庭教育考試試題及答案
- 2025年母嬰護理師考試試題及答案
- 2025年應用統計學基礎能力考試試卷及答案
- 2025年公共衛生管理課程考試試卷及答案
- 2025年兒童發展與家庭教育考試試卷及答案
- 美國INS靜脈輸液治療實踐標準解讀
- ATP熒光檢測儀參考標準值
- 醫院電梯安全培訓(同名873)課件
- 無人機飛行計劃申請表
- 主動脈夾層腔內隔絕術操作規范
- 初三自主招生簡歷范文自薦信
- 電梯維修報價表格
- 礦區專項邊坡治理方案設計
- 國產上海7120手表機芯
- 4配電柜安全風險點告知牌
- 《賣炭翁》中考閱讀經典賞析試題(共27題)
評論
0/150
提交評論