




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
編寫程序的誤區(qū)編寫的過程中事情會變得清晰只有在檢驗了最初版本后,才能更好的理解要求理解需求的細節(jié)是在浪費時間最終要開發(fā)一個可運行的程序,其他都是次要的。1失敗的軟件項目編寫程序的誤區(qū)編寫的過程中事情會變得清晰1失敗的軟件項目第5章SA方法與建模2需求分析的過程就是從需求獲取的結(jié)果經(jīng)過去偽除冗防漏的過程,最后得到系統(tǒng)的邏輯模型.得到邏輯模型的方法有很多:1、結(jié)構(gòu)化分析方法(SA)2、面向?qū)ο蠓治龇椒ǎ∣MT)3、面向軟件行為和視點的分析方法第5章SA方法與建模2需求分析的過程就是從需求獲取的結(jié)果結(jié)構(gòu)化分析方法遵守的準則3理解并描述問題的信息域建立數(shù)據(jù)模型定義軟件應(yīng)該完成的功能建立功能模型描述作為外部事件結(jié)果的軟件行為建立行為模型層次的方式展開細節(jié)結(jié)構(gòu)化分析方法遵守的準則3理解并描述問題的信息域建立數(shù)據(jù)模型
導出系統(tǒng)的邏輯模型
(從需求獲取到需求分析最終導出系統(tǒng)的邏輯模型)邏輯模型數(shù)據(jù)流圖實體關(guān)系圖狀態(tài)轉(zhuǎn)換圖數(shù)據(jù)字典主要的處理算法4返回3.1導出系統(tǒng)的邏輯模型
(從需求獲取到需求分析最終導出系統(tǒng)的邏
需求建模主要是根據(jù)待開發(fā)軟件系統(tǒng)的需求利用某種建模方法建立該系統(tǒng)的邏輯模型(也稱需求模型或分析模型),以幫助軟件開發(fā)人員檢測軟件需求的一致性、完全性、二義性和錯誤等。 軟件建模應(yīng)具備的特點:(1)提供描述手段;(2)提供基本步驟。5 需求建模主要是根據(jù)待開發(fā)軟件系統(tǒng)的需求利用某種建模方法建結(jié)構(gòu)化的需求建模方法SA方法的特點表達問題時盡可能使用圖形符號的方式,這樣即使非計算機專業(yè)人員也易于理解;設(shè)計數(shù)據(jù)流圖時只考慮系統(tǒng)必須完成的基本功能,完全不需要考慮如何具體地實現(xiàn)這些功能。
6結(jié)構(gòu)化的需求建模方法SA方法的特點6SA方法的基本思想基本思想 按照由抽象到具體、逐層分解的方法,確定軟件系統(tǒng)內(nèi)部的數(shù)據(jù)流、變換(或加工)的關(guān)系,并用數(shù)據(jù)流圖給予表示。復雜系統(tǒng)分解示例X1323.13.33.2中間層底層7SA方法的基本思想基本思想X1323.13.33.2中間層SA方法的描述手段組成一套分層的數(shù)據(jù)流圖一本詞典其它補充材料數(shù)據(jù)流圖(DFD:DataFlowDiagram) 描述系統(tǒng)內(nèi)部處理流程、用于表達軟件系統(tǒng)需求模型的一種圖形工具,亦即是描述系統(tǒng)中數(shù)據(jù)流程的圖形工具。8SA方法的描述手段組成8SA方法的描述手段DFD的簡例源點數(shù)據(jù)流數(shù)據(jù)加工文件終點9SA方法的描述手段DFD的簡例源點數(shù)據(jù)流數(shù)據(jù)加工文件終點SA方法的描述手段數(shù)據(jù)流數(shù)據(jù)流是由一組數(shù)據(jù)項組成的數(shù)據(jù),通常用帶用帶標識的有向孤給予表示。數(shù)據(jù)流可以從加工流向加工,或從源點流向加工,或從加工流向終點,或從加工流向文件,或從文件流向從加工。在數(shù)據(jù)流的命名中,不能使用缺乏具體含義的詞如“數(shù)據(jù)”、“信息”等當作為數(shù)據(jù)流名。不能把控制流作為數(shù)據(jù)流。10SA方法的描述手段數(shù)據(jù)流105.1.2SA方法的描述手段加工(變換) 對數(shù)據(jù)進行的操作或變換就稱為加工。加工的命名方法最高層的加工可以是軟件系統(tǒng)的名字;加工的名字最好由一個謂語動詞加上一個賓語組成;不能使用空洞或含糊的動詞作為加工名;當遇到不能合適命名的加工時,可以考慮將加工分解。115.1.2SA方法的描述手段加工(變換)11SA方法的描述手段文件 文件是存放數(shù)據(jù)的邏輯單位,且通常用圖形符號“”,“”和“”分別表示加工要寫文件,讀文件和讀寫文件。另外,在這個圖形符號中還要給出文件名。源點和終點 源點和終點用于表示數(shù)據(jù)的來源和最終去向,且通常用圖形方框給予表示。12SA方法的描述手段文件12分析建模與規(guī)格說明模型建立
模型將作為軟件設(shè)計的基礎(chǔ)和編寫軟件規(guī)格說明的依據(jù)。需求分析過程應(yīng)該建立3種模型:數(shù)據(jù)模型:實體-聯(lián)系圖,描繪數(shù)據(jù)及數(shù)據(jù)對象之間的關(guān)系。功能模型:數(shù)據(jù)流圖,描繪當數(shù)據(jù)在軟件系統(tǒng)中移動時被變換的邏輯過程。行為模型:狀態(tài)轉(zhuǎn)換圖,描繪系統(tǒng)各種行為模式和在不同狀態(tài)間的轉(zhuǎn)換。13分析建模與規(guī)格說明模型建立13建模的目的更好的了解系統(tǒng)信息、功能和行為,使分析更系統(tǒng)化。模型是評審的焦點,是確定系統(tǒng)完整性,一致性和規(guī)格說明準確性的關(guān)鍵。模型是設(shè)計的基礎(chǔ),能給設(shè)計人員一種軟件基本表達式。它可映射成為實現(xiàn)的正文。模型有助于更好的理解要建立的實體。它主要說明系統(tǒng)必須做什么好。通常用圖形符號表示的方法來描述信息處理系統(tǒng)行為,而其他特性則使用各種公認的符號表示。模型的另一些部分還可以是純數(shù)學形式。14建模的目的更好的了解系統(tǒng)信息、功能和行為,使分析更系統(tǒng)化。15.1面向數(shù)據(jù)流的分析過程通常從數(shù)據(jù)流圖的輸出端著手分析,輸出數(shù)據(jù)確定了系統(tǒng)必須具有的最基本的組成元素。5.1.1沿數(shù)據(jù)流圖回溯5.1.2用戶復查5.1.3細化數(shù)據(jù)流圖(重點)5.1.4簡易的應(yīng)用規(guī)格說明技術(shù)15返回主目錄5.1面向數(shù)據(jù)流的分析過程15返回主目錄
面向數(shù)據(jù)流自頂向下求精數(shù)據(jù)決定了需要的處理和算法,需求分析要定義這些數(shù)據(jù)元素。通過已經(jīng)得出的高層數(shù)據(jù)流圖,需求分析的目標之一就是把數(shù)據(jù)流和數(shù)據(jù)存儲定義到元素級。從數(shù)據(jù)流圖的輸出端著手分析。系統(tǒng)的基本功能是產(chǎn)生輸出,輸出數(shù)據(jù)決定了系統(tǒng)必須具有的最基本的組成元素。16面向數(shù)據(jù)流自頂向下求精數(shù)據(jù)決定了需要的處理和算法,需求分析面向數(shù)據(jù)流自頂向下求精圖3.1面向數(shù)據(jù)流自頂向下求精過程17面向數(shù)據(jù)流自頂向下求精圖3.1面向數(shù)據(jù)流自頂向下求精過程15.1.1沿數(shù)據(jù)流圖回溯輸出數(shù)據(jù)是由哪些元素組成的呢?每個輸出數(shù)據(jù)元素又是從哪里來的呢?沿數(shù)據(jù)流圖從輸出端往輸入端回溯確定每個數(shù)據(jù)元素的來源初步定義有關(guān)的算法。185.1.1沿數(shù)據(jù)流圖回溯輸出數(shù)據(jù)是由哪些元素組成的呢?185.1.1沿數(shù)據(jù)流圖回溯數(shù)據(jù)元素數(shù)據(jù)字典算法簡明描述IPO圖(輸入/處理/輸出圖)。補充的數(shù)據(jù)流、數(shù)據(jù)存儲和處理數(shù)據(jù)流圖19返回3.35.1.1沿數(shù)據(jù)流圖回溯數(shù)據(jù)元素數(shù)據(jù)字典195.1.2用戶復查用戶及其他和系統(tǒng)有關(guān)的人員的參與是必不可少的分析過程中產(chǎn)生的問題依靠他們來回答分析員對系統(tǒng)的更深入的認識必須經(jīng)過他們的檢驗和確認20返回3.3分析員數(shù)據(jù)流圖數(shù)據(jù)字典簡明的算法描述輸入數(shù)據(jù)輸出數(shù)據(jù)用戶補充和修正5.1.2用戶復查用戶及其他和系統(tǒng)有關(guān)的人員的參與是必不可5.1.3細化數(shù)據(jù)流圖-1功能分解完成細化。215.1.3細化數(shù)據(jù)流圖-1功能分解完成細化。215.1.3細化數(shù)據(jù)流圖-2分層細化的兩條原則第一,在分層細化時必須保持信息連續(xù)性,也就是說細化前后對應(yīng)功能的輸入/輸出數(shù)據(jù)必須相同;第二,當進一步細化將涉及如何具體地實現(xiàn)一個功能時,就不應(yīng)該再分解了。225.1.3細化數(shù)據(jù)流圖-2分層細化的兩條原則第一,在分層細1.分層數(shù)據(jù)流圖(DataFlowDiagram,DFD)的畫法-1畫系統(tǒng)的輸入和輸出把整個軟件系統(tǒng)看作一個大的處理然后根據(jù)系統(tǒng)從外界的哪些源點接受哪些數(shù)據(jù)流,以及系統(tǒng)的哪些數(shù)據(jù)流送到外界的哪些終點,就可畫出系統(tǒng)的輸入和輸出圖。這張圖稱為頂層圖。231.分層數(shù)據(jù)流圖(DataFlowDiagram,DFD1.分層數(shù)據(jù)流圖(DataFlowDiagram,DFD)的畫法-2畫系統(tǒng)的內(nèi)部將頂層圖中的處理分解成若干個處理,并用數(shù)據(jù)流將這些處理連接起來,使得頂層圖中的輸入數(shù)據(jù)流經(jīng)一連串的處理處理后變換成頂層圖的輸出數(shù)據(jù)流。這張圖稱為0層圖。從一個處理畫出一張數(shù)據(jù)流圖的過程實際上就是對這個處理的分解過程。24按功能按步驟1.分層數(shù)據(jù)流圖(DataFlowDiagram,DFD1.分層數(shù)據(jù)流圖(DataFlowDiagram,DFD)的畫法-3可用下述的方法來確定處理:在數(shù)據(jù)流的組成或值發(fā)生變化的地方應(yīng)畫一個處理,這個處理的功能就是實現(xiàn)這一變化;也可根據(jù)系統(tǒng)的功能確定處理。251.分層數(shù)據(jù)流圖(DataFlowDiagram,DFD1.分層數(shù)據(jù)流圖(DataFlowDiagram,DFD)的畫法-4確定數(shù)據(jù)流的方法可以是:當用戶把若干個數(shù)據(jù)看作一個單位來處理(這些數(shù)據(jù)一起到達,一起處理)時,把這些數(shù)據(jù)看成一個數(shù)據(jù)流。通??梢园褜嶋H工作中的單據(jù)(如報名單)作為一個數(shù)據(jù)流。對于一些以后某個時間要使用的數(shù)據(jù)可組織成一個數(shù)據(jù)(文件)存儲。261.分層數(shù)據(jù)流圖(DataFlowDiagram,DFD1.分層數(shù)據(jù)流圖(DataFlowDiagram,DFD)的畫法-5畫處理的內(nèi)部我們把每個處理看作一個小系統(tǒng),該處理的輸入輸出數(shù)據(jù)流看成小系統(tǒng)的輸入輸出數(shù)據(jù)流。于是,我們可以用畫0層圖同樣的方法畫出每個處理的DFD子圖。271.分層數(shù)據(jù)流圖(DataFlowDiagram,DFD1.分層數(shù)據(jù)流圖(DataFlowDiagram,DFD)的畫法-6對第③步分解出來的DFD子圖中的每個處理重復第③步的分解直至圖中尚未分解的處理都足夠簡單(也就是說這種處理不必再分解)為止。到此得到了一套分層數(shù)據(jù)流圖。281.分層數(shù)據(jù)流圖(DataFlowDiagram,DFD2.對圖和處理進行編號-1對于一個軟件系統(tǒng),其數(shù)據(jù)流圖可能有許多層,每一層又有許多張圖.為了區(qū)分不同的處理和不同的DFD子圖,我們應(yīng)該對每張圖和每個處理進行編號,以利于管理。292.對圖和處理進行編號-1對于一個軟件系統(tǒng),其數(shù)據(jù)流圖可能有2.對圖和處理進行編號-2父圖與子圖假定分層數(shù)據(jù)流圖里的某張圖(記為圖A)中的某個處理可用另一張圖(記為圖B)來分解,我們稱圖A是圖B的父圖,圖B是圖A的子圖。在一張圖中,有些處理需要進一步分解,有些處理則不必分解。因此,如果父圖中有n個處理,那么它可以有0~n張子圖(這些子圖位于同一層)。但每張子圖都只對應(yīng)于一張父圖。302.對圖和處理進行編號-2父圖與子圖302.對圖和處理進行編號-3編號頂層圖只有一張,圖中的處理也只有一個,所以不必編號。
0層圖只有一張,圖中的處理號可分別是01,02,…或者是1,2,…子圖號就是父圖中被分解的處理號。子圖中的處理號由于圖號、圓點、序號組成。例如,某圖中的某處理號為2.4.3312.對圖和處理進行編號-3編號313.實例-1某考務(wù)處理系統(tǒng)有如下功能:①對考生送來的報名單進行檢查;②對合格的報名單編好準考證號后將準考證送給考生,并將匯總后的考生名單送給閱卷站;③對閱卷站送來的成績清單進行檢查,并根據(jù)考試中心制定的合格標準審定合格者;④制作考生通知單(內(nèi)含成績及合格/不合格標志)送給考生;⑤按地區(qū)、年齡、文化程度、職業(yè)、考試級別等進行成績分類統(tǒng)計和試題難度分析,產(chǎn)生統(tǒng)計分析表。323.實例-1某考務(wù)處理系統(tǒng)有如下功能:32數(shù)據(jù)定義報名單=地區(qū)+序號+姓名+文化程度+職業(yè)+考試級別+通信地址正式報名單=準考證號+報名單準考證=地區(qū)+序號+姓名+準考證號+考試級別+考場考生名單={準考證號+考試級別}
其中{w}表示w重復多次考生名冊={正式報名單}統(tǒng)計分析表=分類統(tǒng)計表+難度分析表考生通知單=準考證號+姓名+通信地址+考試級別+考試成績+合格標志試題得分清單={準考證號+{試題得分}}33數(shù)據(jù)定義報名單=地區(qū)+序號+姓名+文化程度+職業(yè)+考試級別+系統(tǒng)的輸入輸出(頂層圖)確定源或宿:考生、閱卷站和考試中心它們都既是源又是宿頂層圖唯一的處理:軟件系統(tǒng)(考務(wù)處理系統(tǒng))確定數(shù)據(jù)流:系統(tǒng)的輸入/輸出信息輸入數(shù)據(jù)流:報名單(來自考生)、成績清單(來自閱卷站)、合格標準(來自考試中心)輸出數(shù)據(jù)流:準考證(送往考生)、考生名單(送往閱卷站)、考生通知書(送往考生)、統(tǒng)計分析表(送往考試中心)額外的輸出流(考慮系統(tǒng)的健壯性):不合格報名單(返回給考生),錯誤成績清單(返回給閱卷站)頂層圖通常沒有文件34系統(tǒng)的輸入輸出(頂層圖)確定源或宿:考生、閱卷站和考試中心3考務(wù)處理系統(tǒng)頂層圖考務(wù)處理系統(tǒng)頂層圖系統(tǒng)內(nèi)部(0層圖)-1以下確定處理、數(shù)據(jù)流、文件、源或宿的一般方法適用于0層圖及其各層子圖確定處理:將父圖中某處理分解成子處理根據(jù)功能分解來確定處理:將一個復雜的功能分解成若干個較小的功能,較多應(yīng)用于高層DFD中的分解根據(jù)業(yè)務(wù)處理流程確定處理:分析父圖中待分解處理的業(yè)務(wù)處理流程,業(yè)務(wù)流程中的每一步都可能是一個子處理特別要注意在數(shù)據(jù)流發(fā)生變化或數(shù)據(jù)流的值發(fā)生變化的地方,應(yīng)該存在一個處理,例如:36系統(tǒng)內(nèi)部(0層圖)-1以下確定處理、數(shù)據(jù)流、文件、源或宿的一系統(tǒng)內(nèi)部(0層圖)-2確定數(shù)據(jù)流父圖中相應(yīng)處理的輸入/輸出數(shù)據(jù)流都是且僅是子圖邊界上的輸入/輸出數(shù)據(jù)流分解后的子處理之間應(yīng)增添相應(yīng)的新數(shù)據(jù)流表示處理過程中的中間數(shù)據(jù)如果某些中間數(shù)據(jù)需要保存以備后用,那么可以成為流向文件的數(shù)據(jù)流同一個源或處理可以有多個數(shù)據(jù)流流向一個處理,如果它們不是一起到達和一起處理的,那么可以將它們分成若干個數(shù)據(jù)流,例如:37系統(tǒng)內(nèi)部(0層圖)-2確定數(shù)據(jù)流37系統(tǒng)內(nèi)部(0層圖)-3確定文件如果父圖中該處理存在讀寫文件的數(shù)據(jù)流,則相應(yīng)的文件和數(shù)據(jù)流都應(yīng)畫在子圖中在分解子圖中,如果需要保存某些中間數(shù)據(jù)以備后用,則可以將這些數(shù)據(jù)組成一個新的文件新文件(首次出現(xiàn)的文件)至少應(yīng)有一個處理為其寫入記錄,同時至少存在另一個處理來讀該文件的記錄注意:從父圖中繼承下來的文件在子圖中可能只對其進行讀,或只進行寫38系統(tǒng)內(nèi)部(0層圖)-3確定文件38系統(tǒng)內(nèi)部(0層圖)-4確定源和宿0層圖和其它子圖中通常不必畫出源和宿有時為了提高可讀性,可以將頂層圖中的源和宿畫在0層圖中最終得到考務(wù)處理系統(tǒng)0層圖根據(jù)功能分解方法識別出兩個處理:考試報名、統(tǒng)計成績數(shù)據(jù)流繼承頂層圖中的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流定義二個處理之間的數(shù)據(jù)流:由于這二個處理分別在考試前后進行,因此登記報名單所產(chǎn)生的結(jié)果“考生名冊”應(yīng)作為文件保存以便考試后由統(tǒng)計成績處理引用39系統(tǒng)內(nèi)部(0層圖)-4確定源和宿39考務(wù)處理系統(tǒng)0層圖40考務(wù)處理系統(tǒng)0層圖40處理內(nèi)部(1…n層圖)復雜的處理可以繼續(xù)分解成1張DFD子圖分解方法將該處理看作一個小系統(tǒng),該處理的輸入/輸出數(shù)據(jù)流就是這個假設(shè)的小系統(tǒng)的輸入/輸出數(shù)據(jù)流然后采用畫0層圖的方法,畫出該處理的子圖以0層圖中處理1(考試報名)為例根據(jù)業(yè)務(wù)處理流程來確定由處理1的分解與處理1相關(guān)的業(yè)務(wù)流程:首先檢查考生送來的報名單,然后編準考證號,并產(chǎn)生準考證,最后產(chǎn)生考生名單和考生名冊(文件)41處理內(nèi)部(1…n層圖)復雜的處理可以繼續(xù)分解成1張DFD子圖考務(wù)處理系統(tǒng)處理1子圖3個子處理:檢查報名單、編準考證號、登記考生“合格報名單”和“正式報名單”是新增加的數(shù)據(jù)流,其它數(shù)據(jù)流都是處理1原有的在處理1的分解中沒有新的文件產(chǎn)生考務(wù)處理系統(tǒng)處理1子圖3個子處理:檢查報名單、編準考證號、登考務(wù)處理系統(tǒng)處理2子圖43考務(wù)處理系統(tǒng)處理2子圖43總結(jié):畫分層數(shù)據(jù)流圖的步驟1.畫系統(tǒng)的輸入和輸出2.畫系統(tǒng)內(nèi)部3.畫處理內(nèi)部4.重復第3步,直至每個尚未分解的處理都足夠簡單(即不必再分解)44總結(jié):畫分層數(shù)據(jù)流圖的步驟1.畫系統(tǒng)的輸入和輸出44應(yīng)注意的問題-1①適當?shù)貫閿?shù)據(jù)流、處理、文件、源/宿命名,名字應(yīng)反映該成分的實際含義,避免空洞的名字。例如:報名單、計算工資等名字比較好。②畫數(shù)據(jù)流而不要畫控制流。③一個處理的輸出數(shù)據(jù)流不應(yīng)與輸入數(shù)據(jù)流同名,即使它們的組成成分相同。例如:處理1.l的輸入數(shù)據(jù)流“報名單”與輸出數(shù)據(jù)流“合格報名單”。④允許一個處理有多條數(shù)據(jù)流流向另一個處理,也允許一個處理有兩個相同的輸出數(shù)據(jù)流流向兩個不同的處理。45應(yīng)注意的問題-1①適當?shù)貫閿?shù)據(jù)流、處理、文件、源/宿命名,應(yīng)注意的問題-2⑤保持父圖與子圖的平衡。父圖中某處理的輸入輸出數(shù)據(jù)流必須與它的子圖的輸入輸出數(shù)據(jù)流在數(shù)量和名字上相同。注意,如果父圖的一個輸入(或輸出)數(shù)據(jù)流對應(yīng)于子圖中幾個輸入(或輸出)數(shù)據(jù)流,而子圖中組成這些數(shù)據(jù)流的數(shù)據(jù)項全體正好是父圖中的這一個數(shù)據(jù)流,那么它們?nèi)运闶瞧胶獾摹?6應(yīng)注意的問題-2⑤保持父圖與子圖的平衡。46應(yīng)注意的問題-3⑥在自頂向下的分解過程中,若一個文件首次出現(xiàn)時只與一個處理有關(guān),那么這個文件應(yīng)作為這個處理的內(nèi)部文件而不必畫出。例如文件“試題得分清單”就是處理2的內(nèi)部文件,因此不必出現(xiàn)在圖(b)中。47應(yīng)注意的問題-3⑥在自頂向下的分解過程中,若一個文件首次出應(yīng)注意的問題-4⑦保持數(shù)據(jù)守恒。也就是說,一個處理所有輸出數(shù)據(jù)流中的數(shù)據(jù)必須能從該處理的輸入數(shù)據(jù)流中直接獲得,或者是通過該處理能產(chǎn)生的數(shù)據(jù)。⑧每個處理必須既有輸入數(shù)據(jù)流,又有輸出數(shù)據(jù)流。48應(yīng)注意的問題-4⑦保持數(shù)據(jù)守恒。也就是說,一個處理所有輸出應(yīng)注意的問題-5⑨在整套數(shù)據(jù)流圖中,每個文件必須既有讀文件的數(shù)據(jù)流,又有寫文件的數(shù)據(jù)流。但在某一張子圖中可能只有讀沒有寫,或者只有寫沒有讀。49返回3.3應(yīng)注意的問題-5⑨在整套數(shù)據(jù)流圖中,每個文件必須既有讀文件5.2實體聯(lián)系圖用戶的數(shù)據(jù)要求需要有哪些數(shù)據(jù)、數(shù)據(jù)之間有什么聯(lián)系、數(shù)據(jù)本身有什么性質(zhì)、數(shù)據(jù)的結(jié)構(gòu)等等用戶的處理要求對數(shù)據(jù)進行哪些處理、每個處理的邏輯功能等。505.2實體聯(lián)系圖用戶的數(shù)據(jù)要求需要有哪些數(shù)據(jù)、數(shù)據(jù)之間有什3.2.1ER模型概念性數(shù)據(jù)模型面向問題的數(shù)據(jù)模型按照用戶的觀點來對數(shù)據(jù)和信息建模與在軟件系統(tǒng)中的實現(xiàn)方法無關(guān)。最常用的概念性數(shù)據(jù)模型是實體—聯(lián)系方法。51用戶的數(shù)據(jù)要求系統(tǒng)分析員的概念性數(shù)據(jù)模型3.2.1ER模型概念性數(shù)據(jù)模型面向問題的數(shù)據(jù)模型按照用實體實體是客觀世界中存在且可相互區(qū)分的事物。例如,一個職工,一個學生,一個部門,一門課,學生的一次選課,部門的一次定貨。在ER圖中用矩形框代表實體。52實體實體是客觀世界中存在且可相互區(qū)分的事物。52聯(lián)系客觀世界中的事物彼此間往往是有聯(lián)系的。例如,教師與課程間存在“教”這種聯(lián)系,而學生與課程間則存在“學”這種聯(lián)系。在ER圖中,用連接相關(guān)實體的菱形框表示聯(lián)系。53聯(lián)系客觀世界中的事物彼此間往往是有聯(lián)系的。53聯(lián)系的分類一對一聯(lián)系(1:1)一對多聯(lián)系(1:N)多對多聯(lián)系(M:N)54聯(lián)系的分類一對一聯(lián)系(1:1)54屬性屬性是實體或聯(lián)系所具有的性質(zhì)。在ER圖中用橢圓形或圓角矩形表示實體(或聯(lián)系)的屬性。用無向邊把實體(或聯(lián)系)與其屬性連接起來。55屬性屬性是實體或聯(lián)系所具有的性質(zhì)。55ER圖舉例56圖3.2某校教學管理ER圖ER圖舉例56圖3.2某校教學管理ER圖5.3狀態(tài)轉(zhuǎn)換圖狀態(tài)轉(zhuǎn)換圖通過描述系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來表示系統(tǒng)的行為。狀態(tài)圖還指明了作為特定事件的結(jié)果系統(tǒng)將做那些動作,它提供了行為模型的機制。575.3狀態(tài)轉(zhuǎn)換圖狀態(tài)轉(zhuǎn)換圖通過描述系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)5.3.1狀態(tài)狀態(tài)是任何可以被觀察到的系統(tǒng)行為模式,一個狀態(tài)代表系統(tǒng)的一種行為模式。狀態(tài)規(guī)定了系統(tǒng)對事件的響應(yīng)方式。系統(tǒng)對事件的響應(yīng)既可以是做一個動作,也可以是改變系統(tǒng)本身的狀態(tài),還可以是既改變狀態(tài)又做動作。585.3.1狀態(tài)狀態(tài)是任何可以被觀察到的系統(tǒng)行為模式,一個狀狀態(tài)狀態(tài)主要有:初態(tài)、終態(tài)和中間態(tài),一張狀態(tài)圖中只能有一個初態(tài),而可以有多個終態(tài)。狀態(tài)圖既可以表示系統(tǒng)循環(huán)運行過程,也可以表示系統(tǒng)單程生命周期。59狀態(tài)狀態(tài)主要有:595.3.2事件事件是在某個特定時刻發(fā)生的事情,它是對引起系統(tǒng)做動作或從一個狀態(tài)轉(zhuǎn)換到另一個狀態(tài)的外界事件的抽象。簡而言之,事件就是引起系統(tǒng)做動作或轉(zhuǎn)換狀態(tài)的控制信息。605.3.2事件事件是在某個特定時刻發(fā)生的事情,它是對引起系5.3.3符號在狀態(tài)圖中,初態(tài)用實心圓表示,終態(tài)用一對同心圓(內(nèi)圓為實心圓)表示。中間狀態(tài)用圓角矩形表示,可以用兩條水平橫線把它分成上、中、下三部分。上面部分為狀態(tài)的名稱;中間部分為狀態(tài)變量的名字和值;下面部分是活動表,其中后兩部分是可選的。狀態(tài)圖中兩個狀態(tài)之間帶箭頭的連線稱為狀態(tài)轉(zhuǎn)換,箭頭指明了轉(zhuǎn)換方向。狀態(tài)變遷通常是由事件觸發(fā)的。615.3.3符號在狀態(tài)圖中,初態(tài)用實心圓表示,終態(tài)用一對同心圖形描述62圖3.3狀態(tài)圖中使用的主要符號圖形描述62圖3.3狀態(tài)圖中使用的主要符號63圖3.4電話系統(tǒng)的狀態(tài)圖返回主目錄63圖3.4電話系統(tǒng)的狀態(tài)圖返回主目錄5.3.1層次方框圖-1層次方框圖用樹形結(jié)構(gòu)的一系列多層次的矩形框描述數(shù)據(jù)的層次結(jié)構(gòu)。樹形結(jié)構(gòu)的頂層是一個單獨的矩形框,它代表完整的數(shù)據(jù)結(jié)構(gòu),下面的各層矩形框代表這個數(shù)據(jù)的子集,最底層的各個框代表組成這個數(shù)據(jù)的實際數(shù)據(jù)元素(不能再分割的元素)。64完整的數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)的子集1實際數(shù)據(jù)元素1實際數(shù)據(jù)元素2實際數(shù)據(jù)元素3數(shù)據(jù)的子集2實際數(shù)據(jù)元素1實際數(shù)據(jù)元素2實際數(shù)據(jù)元素3數(shù)據(jù)的子集3實際數(shù)據(jù)元素1實際數(shù)據(jù)元素25.3.1層次方框圖-1層次方框圖用樹形結(jié)構(gòu)的一系列多層5.3.1層次方框圖-2隨著結(jié)構(gòu)的精細化,層次方框圖對數(shù)據(jù)結(jié)構(gòu)的描繪也越來越詳細,這種模式非常適合于需求分析階段的需要。系統(tǒng)分析員從對頂層信息的分類開始,沿圖中每條路徑反復細化,直到確定了數(shù)據(jù)結(jié)構(gòu)的全部細節(jié)為止。655.3.1層次方框圖-2隨著結(jié)構(gòu)的精細化,層次方框圖對數(shù)5.3.1層次方框圖-366圖3.5層次方框圖的一個例子5.3.1層次方框圖-366圖3.5層次方框圖的一個例子5.3.2Warnier圖-1法國計算機科學家Warnier提出了表示信息層次結(jié)構(gòu)的另一種圖形工具。用Warnier圖可以表明信息的邏輯組織,也就是說,它可以指出一類信息或一個信息量是重復出現(xiàn)的,也可以表示特定信息在某一類信息中是有條件地出現(xiàn)的。675.3.2Warnier圖-1法國計算機科學家Warnie5.3.2Warnier圖-2花括號:區(qū)分數(shù)據(jù)結(jié)構(gòu)的層次,在一個花括號內(nèi)的所有名字都屬于同一類信息。異或符號:表明一類信息或一個數(shù)據(jù)元素在一定條件下才出現(xiàn),而且在這個符號上、下方的兩個名字所代表的數(shù)據(jù)只能出現(xiàn)一個。圓括號:中間的數(shù)字指明了這個名字代表的信息類(或元素)在這個數(shù)據(jù)結(jié)構(gòu)中重復出現(xiàn)的次數(shù)。685.3.2Warnier圖-2花括號:區(qū)分數(shù)據(jù)結(jié)構(gòu)的層次,3.6.2Warnier圖-369圖3.6Warnier圖的一個例子(1,1)(1,1)(1,3)(1,2)(1,3)3.6.2Warnier圖-369圖3.6Warnier5.3.3IPO圖-1IPO圖是輸入/處理/輸出圖的簡稱,它是美國IBM公司發(fā)展完善起來的一種圖形工具,能夠方便地描繪輸入數(shù)據(jù)、數(shù)據(jù)處理和輸出數(shù)據(jù)之間的關(guān)系。左框:列出輸入數(shù)據(jù)。中框:列出主要的處理(次序暗示了執(zhí)行的順序)。右框:列出輸出數(shù)據(jù)粗大箭頭:指出數(shù)據(jù)通信的情況。705.3.3IPO圖-1IPO圖是輸入/處理/輸出圖的簡稱5.3.3IPO圖-271圖3.7IPO圖的一個例子5.3.3IPO圖-271圖3.7IPO圖的一個例子5.3.3IPO圖-372圖3.8改進的IPO圖的形式IPO例子5.3.3IPO圖-372圖3.8改進的IPO圖的形式5.3.3IPO圖-4在需求分析階段可以使用IPO圖簡略地描述系統(tǒng)的主要算法(即數(shù)據(jù)流圖中各個處理的基本算法)。當然,在需求分析階段,IPO圖中的許多附加信息暫時還不具備,但是在軟件設(shè)計階段可以進一步補充修正這些圖,作為設(shè)計階段的文檔。73返回主目錄5.3.3IPO圖-4在需求分析階段可以使用IPO圖簡略3.4小結(jié)需求分析是軟件生命周期的一個重要階段,它最根本的任務(wù)是確定為了滿足用戶的需要系統(tǒng)必須做什么
通過分析應(yīng)該得出用數(shù)據(jù)流圖、ER圖、數(shù)據(jù)字典和和IPO圖(或PDL等其他描述算法的工具)描繪的精確的系統(tǒng)邏輯模型。還可以用層次方框圖或Warnier圖等圖形工具輔助描繪系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu)。為了減少冗余、簡化修改步驟,往往需要規(guī)范數(shù)據(jù)的存儲結(jié)構(gòu)。743.4小結(jié)需求分析是軟件生命周期的一個重要階段,它最根本的
通常需求分析工作從可行性研究得出的數(shù)據(jù)流圖出發(fā), 首先確定構(gòu)成輸出數(shù)據(jù)的各個數(shù)據(jù)元素,沿數(shù)據(jù)流圖回溯尋求每個數(shù)據(jù)元素的源,在此過程中確定必要的處理算法并補充必要的數(shù)據(jù)元素,同時也會產(chǎn)生一些新的問題。
在尋求這些問題的答案時,將澄清一些算法并劃分出更多的數(shù)據(jù)元素,可能也會再遇到一些問題。對這些問題的解答又將導致對系統(tǒng)的更深入更具體的認識。在對系統(tǒng)的主要處理算法有充分了解之后,應(yīng)該把數(shù)據(jù)流圖進一步分層細化。75通常需求分析工作從可行性研究得出的數(shù)據(jù)流圖出發(fā),75
需求分析的結(jié)果是軟件開發(fā)的基礎(chǔ),必須仔細驗證它的正確性
開發(fā)人員必須和用戶取得完全一致的意見,需求分析的文檔應(yīng)該被用戶所確認。76需求分析的結(jié)果是軟件開發(fā)的基礎(chǔ),必須仔細驗證它的正確性7習題銀行計算機儲蓄系統(tǒng)的工作過程大致如下:儲戶填寫的存款單或取款單由業(yè)務(wù)員鍵入系統(tǒng),如果是存款則系統(tǒng)記錄存款人姓名、住址(或電話號碼)、身份證號碼、存款類型、存款日期、到期日期、利率及密碼(可選)等信息,并印出存單給儲戶;如果是取款而且存款時留有密碼,則系統(tǒng)首先核對儲戶密碼,若密碼正確或存款時未留密碼,則系統(tǒng)計算利息并印出利息清單給儲戶。請用數(shù)據(jù)流圖描繪本系統(tǒng)的功能,并用實體-聯(lián)系圖描繪系統(tǒng)中的數(shù)據(jù)對象。77習題銀行計算機儲蓄系統(tǒng)的工作過程大致如下:儲戶填寫的存款單或78計算機儲蓄系統(tǒng)數(shù)據(jù)流圖78計算機儲蓄系統(tǒng)數(shù)據(jù)流圖本問題中共有兩類實體,分別是“儲戶”和“儲蓄所”,它們之間存在“存取款”關(guān)系。因為一位儲戶可以在多家儲蓄所存取款,一家儲蓄所擁有多位儲戶,所以“存取款”是多對多(M:N)關(guān)系儲戶的屬性主要有:姓名、住址(或電話號碼)、身份證號碼儲蓄所的屬性主要是:名稱、地址和電話數(shù)額,類型、到期日期、利率及密碼是聯(lián)系類型存取款的屬性。79本問題中共有兩類實體,分別是“儲戶”和“儲蓄所”,它們之間存80計算機儲蓄系統(tǒng)的實體聯(lián)系圖80計算機儲蓄系統(tǒng)的實體聯(lián)系圖3-5分析習題患者監(jiān)護系統(tǒng)。請用實體-聯(lián)系圖描繪本系統(tǒng)中的數(shù)據(jù)對象,畫出本系統(tǒng)的頂層IPO圖。81患者監(jiān)護系統(tǒng)實體-聯(lián)系圖3-5分析習題患者監(jiān)護系統(tǒng)。請用實體-聯(lián)系圖描繪本系統(tǒng)中的82患者監(jiān)護系統(tǒng)頂層IPO圖輸入處理輸出82患者監(jiān)護系統(tǒng)頂層IPO圖輸入編寫程序的誤區(qū)編寫的過程中事情會變得清晰只有在檢驗了最初版本后,才能更好的理解要求理解需求的細節(jié)是在浪費時間最終要開發(fā)一個可運行的程序,其他都是次要的。83失敗的軟件項目編寫程序的誤區(qū)編寫的過程中事情會變得清晰1失敗的軟件項目第5章SA方法與建模84需求分析的過程就是從需求獲取的結(jié)果經(jīng)過去偽除冗防漏的過程,最后得到系統(tǒng)的邏輯模型.得到邏輯模型的方法有很多:1、結(jié)構(gòu)化分析方法(SA)2、面向?qū)ο蠓治龇椒ǎ∣MT)3、面向軟件行為和視點的分析方法第5章SA方法與建模2需求分析的過程就是從需求獲取的結(jié)果結(jié)構(gòu)化分析方法遵守的準則85理解并描述問題的信息域建立數(shù)據(jù)模型定義軟件應(yīng)該完成的功能建立功能模型描述作為外部事件結(jié)果的軟件行為建立行為模型層次的方式展開細節(jié)結(jié)構(gòu)化分析方法遵守的準則3理解并描述問題的信息域建立數(shù)據(jù)模型
導出系統(tǒng)的邏輯模型
(從需求獲取到需求分析最終導出系統(tǒng)的邏輯模型)邏輯模型數(shù)據(jù)流圖實體關(guān)系圖狀態(tài)轉(zhuǎn)換圖數(shù)據(jù)字典主要的處理算法86返回3.1導出系統(tǒng)的邏輯模型
(從需求獲取到需求分析最終導出系統(tǒng)的邏
需求建模主要是根據(jù)待開發(fā)軟件系統(tǒng)的需求利用某種建模方法建立該系統(tǒng)的邏輯模型(也稱需求模型或分析模型),以幫助軟件開發(fā)人員檢測軟件需求的一致性、完全性、二義性和錯誤等。 軟件建模應(yīng)具備的特點:(1)提供描述手段;(2)提供基本步驟。87 需求建模主要是根據(jù)待開發(fā)軟件系統(tǒng)的需求利用某種建模方法建結(jié)構(gòu)化的需求建模方法SA方法的特點表達問題時盡可能使用圖形符號的方式,這樣即使非計算機專業(yè)人員也易于理解;設(shè)計數(shù)據(jù)流圖時只考慮系統(tǒng)必須完成的基本功能,完全不需要考慮如何具體地實現(xiàn)這些功能。
88結(jié)構(gòu)化的需求建模方法SA方法的特點6SA方法的基本思想基本思想 按照由抽象到具體、逐層分解的方法,確定軟件系統(tǒng)內(nèi)部的數(shù)據(jù)流、變換(或加工)的關(guān)系,并用數(shù)據(jù)流圖給予表示。復雜系統(tǒng)分解示例X1323.13.33.2中間層底層89SA方法的基本思想基本思想X1323.13.33.2中間層SA方法的描述手段組成一套分層的數(shù)據(jù)流圖一本詞典其它補充材料數(shù)據(jù)流圖(DFD:DataFlowDiagram) 描述系統(tǒng)內(nèi)部處理流程、用于表達軟件系統(tǒng)需求模型的一種圖形工具,亦即是描述系統(tǒng)中數(shù)據(jù)流程的圖形工具。90SA方法的描述手段組成8SA方法的描述手段DFD的簡例源點數(shù)據(jù)流數(shù)據(jù)加工文件終點91SA方法的描述手段DFD的簡例源點數(shù)據(jù)流數(shù)據(jù)加工文件終點SA方法的描述手段數(shù)據(jù)流數(shù)據(jù)流是由一組數(shù)據(jù)項組成的數(shù)據(jù),通常用帶用帶標識的有向孤給予表示。數(shù)據(jù)流可以從加工流向加工,或從源點流向加工,或從加工流向終點,或從加工流向文件,或從文件流向從加工。在數(shù)據(jù)流的命名中,不能使用缺乏具體含義的詞如“數(shù)據(jù)”、“信息”等當作為數(shù)據(jù)流名。不能把控制流作為數(shù)據(jù)流。92SA方法的描述手段數(shù)據(jù)流105.1.2SA方法的描述手段加工(變換) 對數(shù)據(jù)進行的操作或變換就稱為加工。加工的命名方法最高層的加工可以是軟件系統(tǒng)的名字;加工的名字最好由一個謂語動詞加上一個賓語組成;不能使用空洞或含糊的動詞作為加工名;當遇到不能合適命名的加工時,可以考慮將加工分解。935.1.2SA方法的描述手段加工(變換)11SA方法的描述手段文件 文件是存放數(shù)據(jù)的邏輯單位,且通常用圖形符號“”,“”和“”分別表示加工要寫文件,讀文件和讀寫文件。另外,在這個圖形符號中還要給出文件名。源點和終點 源點和終點用于表示數(shù)據(jù)的來源和最終去向,且通常用圖形方框給予表示。94SA方法的描述手段文件12分析建模與規(guī)格說明模型建立
模型將作為軟件設(shè)計的基礎(chǔ)和編寫軟件規(guī)格說明的依據(jù)。需求分析過程應(yīng)該建立3種模型:數(shù)據(jù)模型:實體-聯(lián)系圖,描繪數(shù)據(jù)及數(shù)據(jù)對象之間的關(guān)系。功能模型:數(shù)據(jù)流圖,描繪當數(shù)據(jù)在軟件系統(tǒng)中移動時被變換的邏輯過程。行為模型:狀態(tài)轉(zhuǎn)換圖,描繪系統(tǒng)各種行為模式和在不同狀態(tài)間的轉(zhuǎn)換。95分析建模與規(guī)格說明模型建立13建模的目的更好的了解系統(tǒng)信息、功能和行為,使分析更系統(tǒng)化。模型是評審的焦點,是確定系統(tǒng)完整性,一致性和規(guī)格說明準確性的關(guān)鍵。模型是設(shè)計的基礎(chǔ),能給設(shè)計人員一種軟件基本表達式。它可映射成為實現(xiàn)的正文。模型有助于更好的理解要建立的實體。它主要說明系統(tǒng)必須做什么好。通常用圖形符號表示的方法來描述信息處理系統(tǒng)行為,而其他特性則使用各種公認的符號表示。模型的另一些部分還可以是純數(shù)學形式。96建模的目的更好的了解系統(tǒng)信息、功能和行為,使分析更系統(tǒng)化。15.1面向數(shù)據(jù)流的分析過程通常從數(shù)據(jù)流圖的輸出端著手分析,輸出數(shù)據(jù)確定了系統(tǒng)必須具有的最基本的組成元素。5.1.1沿數(shù)據(jù)流圖回溯5.1.2用戶復查5.1.3細化數(shù)據(jù)流圖(重點)5.1.4簡易的應(yīng)用規(guī)格說明技術(shù)97返回主目錄5.1面向數(shù)據(jù)流的分析過程15返回主目錄
面向數(shù)據(jù)流自頂向下求精數(shù)據(jù)決定了需要的處理和算法,需求分析要定義這些數(shù)據(jù)元素。通過已經(jīng)得出的高層數(shù)據(jù)流圖,需求分析的目標之一就是把數(shù)據(jù)流和數(shù)據(jù)存儲定義到元素級。從數(shù)據(jù)流圖的輸出端著手分析。系統(tǒng)的基本功能是產(chǎn)生輸出,輸出數(shù)據(jù)決定了系統(tǒng)必須具有的最基本的組成元素。98面向數(shù)據(jù)流自頂向下求精數(shù)據(jù)決定了需要的處理和算法,需求分析面向數(shù)據(jù)流自頂向下求精圖3.1面向數(shù)據(jù)流自頂向下求精過程99面向數(shù)據(jù)流自頂向下求精圖3.1面向數(shù)據(jù)流自頂向下求精過程15.1.1沿數(shù)據(jù)流圖回溯輸出數(shù)據(jù)是由哪些元素組成的呢?每個輸出數(shù)據(jù)元素又是從哪里來的呢?沿數(shù)據(jù)流圖從輸出端往輸入端回溯確定每個數(shù)據(jù)元素的來源初步定義有關(guān)的算法。1005.1.1沿數(shù)據(jù)流圖回溯輸出數(shù)據(jù)是由哪些元素組成的呢?185.1.1沿數(shù)據(jù)流圖回溯數(shù)據(jù)元素數(shù)據(jù)字典算法簡明描述IPO圖(輸入/處理/輸出圖)。補充的數(shù)據(jù)流、數(shù)據(jù)存儲和處理數(shù)據(jù)流圖101返回3.35.1.1沿數(shù)據(jù)流圖回溯數(shù)據(jù)元素數(shù)據(jù)字典195.1.2用戶復查用戶及其他和系統(tǒng)有關(guān)的人員的參與是必不可少的分析過程中產(chǎn)生的問題依靠他們來回答分析員對系統(tǒng)的更深入的認識必須經(jīng)過他們的檢驗和確認102返回3.3分析員數(shù)據(jù)流圖數(shù)據(jù)字典簡明的算法描述輸入數(shù)據(jù)輸出數(shù)據(jù)用戶補充和修正5.1.2用戶復查用戶及其他和系統(tǒng)有關(guān)的人員的參與是必不可5.1.3細化數(shù)據(jù)流圖-1功能分解完成細化。1035.1.3細化數(shù)據(jù)流圖-1功能分解完成細化。215.1.3細化數(shù)據(jù)流圖-2分層細化的兩條原則第一,在分層細化時必須保持信息連續(xù)性,也就是說細化前后對應(yīng)功能的輸入/輸出數(shù)據(jù)必須相同;第二,當進一步細化將涉及如何具體地實現(xiàn)一個功能時,就不應(yīng)該再分解了。1045.1.3細化數(shù)據(jù)流圖-2分層細化的兩條原則第一,在分層細1.分層數(shù)據(jù)流圖(DataFlowDiagram,DFD)的畫法-1畫系統(tǒng)的輸入和輸出把整個軟件系統(tǒng)看作一個大的處理然后根據(jù)系統(tǒng)從外界的哪些源點接受哪些數(shù)據(jù)流,以及系統(tǒng)的哪些數(shù)據(jù)流送到外界的哪些終點,就可畫出系統(tǒng)的輸入和輸出圖。這張圖稱為頂層圖。1051.分層數(shù)據(jù)流圖(DataFlowDiagram,DFD1.分層數(shù)據(jù)流圖(DataFlowDiagram,DFD)的畫法-2畫系統(tǒng)的內(nèi)部將頂層圖中的處理分解成若干個處理,并用數(shù)據(jù)流將這些處理連接起來,使得頂層圖中的輸入數(shù)據(jù)流經(jīng)一連串的處理處理后變換成頂層圖的輸出數(shù)據(jù)流。這張圖稱為0層圖。從一個處理畫出一張數(shù)據(jù)流圖的過程實際上就是對這個處理的分解過程。106按功能按步驟1.分層數(shù)據(jù)流圖(DataFlowDiagram,DFD1.分層數(shù)據(jù)流圖(DataFlowDiagram,DFD)的畫法-3可用下述的方法來確定處理:在數(shù)據(jù)流的組成或值發(fā)生變化的地方應(yīng)畫一個處理,這個處理的功能就是實現(xiàn)這一變化;也可根據(jù)系統(tǒng)的功能確定處理。1071.分層數(shù)據(jù)流圖(DataFlowDiagram,DFD1.分層數(shù)據(jù)流圖(DataFlowDiagram,DFD)的畫法-4確定數(shù)據(jù)流的方法可以是:當用戶把若干個數(shù)據(jù)看作一個單位來處理(這些數(shù)據(jù)一起到達,一起處理)時,把這些數(shù)據(jù)看成一個數(shù)據(jù)流。通??梢园褜嶋H工作中的單據(jù)(如報名單)作為一個數(shù)據(jù)流。對于一些以后某個時間要使用的數(shù)據(jù)可組織成一個數(shù)據(jù)(文件)存儲。1081.分層數(shù)據(jù)流圖(DataFlowDiagram,DFD1.分層數(shù)據(jù)流圖(DataFlowDiagram,DFD)的畫法-5畫處理的內(nèi)部我們把每個處理看作一個小系統(tǒng),該處理的輸入輸出數(shù)據(jù)流看成小系統(tǒng)的輸入輸出數(shù)據(jù)流。于是,我們可以用畫0層圖同樣的方法畫出每個處理的DFD子圖。1091.分層數(shù)據(jù)流圖(DataFlowDiagram,DFD1.分層數(shù)據(jù)流圖(DataFlowDiagram,DFD)的畫法-6對第③步分解出來的DFD子圖中的每個處理重復第③步的分解直至圖中尚未分解的處理都足夠簡單(也就是說這種處理不必再分解)為止。到此得到了一套分層數(shù)據(jù)流圖。1101.分層數(shù)據(jù)流圖(DataFlowDiagram,DFD2.對圖和處理進行編號-1對于一個軟件系統(tǒng),其數(shù)據(jù)流圖可能有許多層,每一層又有許多張圖.為了區(qū)分不同的處理和不同的DFD子圖,我們應(yīng)該對每張圖和每個處理進行編號,以利于管理。1112.對圖和處理進行編號-1對于一個軟件系統(tǒng),其數(shù)據(jù)流圖可能有2.對圖和處理進行編號-2父圖與子圖假定分層數(shù)據(jù)流圖里的某張圖(記為圖A)中的某個處理可用另一張圖(記為圖B)來分解,我們稱圖A是圖B的父圖,圖B是圖A的子圖。在一張圖中,有些處理需要進一步分解,有些處理則不必分解。因此,如果父圖中有n個處理,那么它可以有0~n張子圖(這些子圖位于同一層)。但每張子圖都只對應(yīng)于一張父圖。1122.對圖和處理進行編號-2父圖與子圖302.對圖和處理進行編號-3編號頂層圖只有一張,圖中的處理也只有一個,所以不必編號。
0層圖只有一張,圖中的處理號可分別是01,02,…或者是1,2,…子圖號就是父圖中被分解的處理號。子圖中的處理號由于圖號、圓點、序號組成。例如,某圖中的某處理號為2.4.31132.對圖和處理進行編號-3編號313.實例-1某考務(wù)處理系統(tǒng)有如下功能:①對考生送來的報名單進行檢查;②對合格的報名單編好準考證號后將準考證送給考生,并將匯總后的考生名單送給閱卷站;③對閱卷站送來的成績清單進行檢查,并根據(jù)考試中心制定的合格標準審定合格者;④制作考生通知單(內(nèi)含成績及合格/不合格標志)送給考生;⑤按地區(qū)、年齡、文化程度、職業(yè)、考試級別等進行成績分類統(tǒng)計和試題難度分析,產(chǎn)生統(tǒng)計分析表。1143.實例-1某考務(wù)處理系統(tǒng)有如下功能:32數(shù)據(jù)定義報名單=地區(qū)+序號+姓名+文化程度+職業(yè)+考試級別+通信地址正式報名單=準考證號+報名單準考證=地區(qū)+序號+姓名+準考證號+考試級別+考場考生名單={準考證號+考試級別}
其中{w}表示w重復多次考生名冊={正式報名單}統(tǒng)計分析表=分類統(tǒng)計表+難度分析表考生通知單=準考證號+姓名+通信地址+考試級別+考試成績+合格標志試題得分清單={準考證號+{試題得分}}115數(shù)據(jù)定義報名單=地區(qū)+序號+姓名+文化程度+職業(yè)+考試級別+系統(tǒng)的輸入輸出(頂層圖)確定源或宿:考生、閱卷站和考試中心它們都既是源又是宿頂層圖唯一的處理:軟件系統(tǒng)(考務(wù)處理系統(tǒng))確定數(shù)據(jù)流:系統(tǒng)的輸入/輸出信息輸入數(shù)據(jù)流:報名單(來自考生)、成績清單(來自閱卷站)、合格標準(來自考試中心)輸出數(shù)據(jù)流:準考證(送往考生)、考生名單(送往閱卷站)、考生通知書(送往考生)、統(tǒng)計分析表(送往考試中心)額外的輸出流(考慮系統(tǒng)的健壯性):不合格報名單(返回給考生),錯誤成績清單(返回給閱卷站)頂層圖通常沒有文件116系統(tǒng)的輸入輸出(頂層圖)確定源或宿:考生、閱卷站和考試中心3考務(wù)處理系統(tǒng)頂層圖考務(wù)處理系統(tǒng)頂層圖系統(tǒng)內(nèi)部(0層圖)-1以下確定處理、數(shù)據(jù)流、文件、源或宿的一般方法適用于0層圖及其各層子圖確定處理:將父圖中某處理分解成子處理根據(jù)功能分解來確定處理:將一個復雜的功能分解成若干個較小的功能,較多應(yīng)用于高層DFD中的分解根據(jù)業(yè)務(wù)處理流程確定處理:分析父圖中待分解處理的業(yè)務(wù)處理流程,業(yè)務(wù)流程中的每一步都可能是一個子處理特別要注意在數(shù)據(jù)流發(fā)生變化或數(shù)據(jù)流的值發(fā)生變化的地方,應(yīng)該存在一個處理,例如:118系統(tǒng)內(nèi)部(0層圖)-1以下確定處理、數(shù)據(jù)流、文件、源或宿的一系統(tǒng)內(nèi)部(0層圖)-2確定數(shù)據(jù)流父圖中相應(yīng)處理的輸入/輸出數(shù)據(jù)流都是且僅是子圖邊界上的輸入/輸出數(shù)據(jù)流分解后的子處理之間應(yīng)增添相應(yīng)的新數(shù)據(jù)流表示處理過程中的中間數(shù)據(jù)如果某些中間數(shù)據(jù)需要保存以備后用,那么可以成為流向文件的數(shù)據(jù)流同一個源或處理可以有多個數(shù)據(jù)流流向一個處理,如果它們不是一起到達和一起處理的,那么可以將它們分成若干個數(shù)據(jù)流,例如:119系統(tǒng)內(nèi)部(0層圖)-2確定數(shù)據(jù)流37系統(tǒng)內(nèi)部(0層圖)-3確定文件如果父圖中該處理存在讀寫文件的數(shù)據(jù)流,則相應(yīng)的文件和數(shù)據(jù)流都應(yīng)畫在子圖中在分解子圖中,如果需要保存某些中間數(shù)據(jù)以備后用,則可以將這些數(shù)據(jù)組成一個新的文件新文件(首次出現(xiàn)的文件)至少應(yīng)有一個處理為其寫入記錄,同時至少存在另一個處理來讀該文件的記錄注意:從父圖中繼承下來的文件在子圖中可能只對其進行讀,或只進行寫120系統(tǒng)內(nèi)部(0層圖)-3確定文件38系統(tǒng)內(nèi)部(0層圖)-4確定源和宿0層圖和其它子圖中通常不必畫出源和宿有時為了提高可讀性,可以將頂層圖中的源和宿畫在0層圖中最終得到考務(wù)處理系統(tǒng)0層圖根據(jù)功能分解方法識別出兩個處理:考試報名、統(tǒng)計成績數(shù)據(jù)流繼承頂層圖中的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流定義二個處理之間的數(shù)據(jù)流:由于這二個處理分別在考試前后進行,因此登記報名單所產(chǎn)生的結(jié)果“考生名冊”應(yīng)作為文件保存以便考試后由統(tǒng)計成績處理引用121系統(tǒng)內(nèi)部(0層圖)-4確定源和宿39考務(wù)處理系統(tǒng)0層圖122考務(wù)處理系統(tǒng)0層圖40處理內(nèi)部(1…n層圖)復雜的處理可以繼續(xù)分解成1張DFD子圖分解方法將該處理看作一個小系統(tǒng),該處理的輸入/輸出數(shù)據(jù)流就是這個假設(shè)的小系統(tǒng)的輸入/輸出數(shù)據(jù)流然后采用畫0層圖的方法,畫出該處理的子圖以0層圖中處理1(考試報名)為例根據(jù)業(yè)務(wù)處理流程來確定由處理1的分解與處理1相關(guān)的業(yè)務(wù)流程:首先檢查考生送來的報名單,然后編準考證號,并產(chǎn)生準考證,最后產(chǎn)生考生名單和考生名冊(文件)123處理內(nèi)部(1…n層圖)復雜的處理可以繼續(xù)分解成1張DFD子圖考務(wù)處理系統(tǒng)處理1子圖3個子處理:檢查報名單、編準考證號、登記考生“合格報名單”和“正式報名單”是新增加的數(shù)據(jù)流,其它數(shù)據(jù)流都是處理1原有的在處理1的分解中沒有新的文件產(chǎn)生考務(wù)處理系統(tǒng)處理1子圖3個子處理:檢查報名單、編準考證號、登考務(wù)處理系統(tǒng)處理2子圖125考務(wù)處理系統(tǒng)處理2子圖43總結(jié):畫分層數(shù)據(jù)流圖的步驟1.畫系統(tǒng)的輸入和輸出2.畫系統(tǒng)內(nèi)部3.畫處理內(nèi)部4.重復第3步,直至每個尚未分解的處理都足夠簡單(即不必再分解)126總結(jié):畫分層數(shù)據(jù)流圖的步驟1.畫系統(tǒng)的輸入和輸出44應(yīng)注意的問題-1①適當?shù)貫閿?shù)據(jù)流、處理、文件、源/宿命名,名字應(yīng)反映該成分的實際含義,避免空洞的名字。例如:報名單、計算工資等名字比較好。②畫數(shù)據(jù)流而不要畫控制流。③一個處理的輸出數(shù)據(jù)流不應(yīng)與輸入數(shù)據(jù)流同名,即使它們的組成成分相同。例如:處理1.l的輸入數(shù)據(jù)流“報名單”與輸出數(shù)據(jù)流“合格報名單”。④允許一個處理有多條數(shù)據(jù)流流向另一個處理,也允許一個處理有兩個相同的輸出數(shù)據(jù)流流向兩個不同的處理。127應(yīng)注意的問題-1①適當?shù)貫閿?shù)據(jù)流、處理、文件、源/宿命名,應(yīng)注意的問題-2⑤保持父圖與子圖的平衡。父圖中某處理的輸入輸出數(shù)據(jù)流必須與它的子圖的輸入輸出數(shù)據(jù)流在數(shù)量和名字上相同。注意,如果父圖的一個輸入(或輸出)數(shù)據(jù)流對應(yīng)于子圖中幾個輸入(或輸出)數(shù)據(jù)流,而子圖中組成這些數(shù)據(jù)流的數(shù)據(jù)項全體正好是父圖中的這一個數(shù)據(jù)流,那么它們?nèi)运闶瞧胶獾摹?28應(yīng)注意的問題-2⑤保持父圖與子圖的平衡。46應(yīng)注意的問題-3⑥在自頂向下的分解過程中,若一個文件首次出現(xiàn)時只與一個處理有關(guān),那么這個文件應(yīng)作為這個處理的內(nèi)部文件而不必畫出。例如文件“試題得分清單”就是處理2的內(nèi)部文件,因此不必出現(xiàn)在圖(b)中。129應(yīng)注意的問題-3⑥在自頂向下的分解過程中,若一個文件首次出應(yīng)注意的問題-4⑦保持數(shù)據(jù)守恒。也就是說,一個處理所有輸出數(shù)據(jù)流中的數(shù)據(jù)必須能從該處理的輸入數(shù)據(jù)流中直接獲得,或者是通過該處理能產(chǎn)生的數(shù)據(jù)。⑧每個處理必須既有輸入數(shù)據(jù)流,又有輸出數(shù)據(jù)流。130應(yīng)注意的問題-4⑦保持數(shù)據(jù)守恒。也就是說,一個處理所有輸出應(yīng)注意的問題-5⑨在整套數(shù)據(jù)流圖中,每個文件必須既有讀文件的數(shù)據(jù)流,又有寫文件的數(shù)據(jù)流。但在某一張子圖中可能只有讀沒有寫,或者只有寫沒有讀。131返回3.3應(yīng)注意的問題-5⑨在整套數(shù)據(jù)流圖中,每個文件必須既有讀文件5.2實體聯(lián)系圖用戶的數(shù)據(jù)要求需要有哪些數(shù)據(jù)、數(shù)據(jù)之間有什么聯(lián)系、數(shù)據(jù)本身有什么性質(zhì)、數(shù)據(jù)的結(jié)構(gòu)等等用戶的處理要求對數(shù)據(jù)進行哪些處理、每個處理的邏輯功能等。1325.2實體聯(lián)系圖用戶的數(shù)據(jù)要求需要有哪些數(shù)據(jù)、數(shù)據(jù)之間有什3.2.1ER模型概念性數(shù)據(jù)模型面向問題的數(shù)據(jù)模型按照用戶的觀點來對數(shù)據(jù)和信息建模與在軟件系統(tǒng)中的實現(xiàn)方法無關(guān)。最常用的概念性數(shù)據(jù)模型是實體—聯(lián)系方法。133用戶的數(shù)據(jù)要求系統(tǒng)分析員的概念性數(shù)據(jù)模型3.2.1ER模型概念性數(shù)據(jù)模型面向問題的數(shù)據(jù)模型按照用實體實體是客觀世界中存在且可相互區(qū)分的事物。例如,一個職工,一個學生,一個部門,一門課,學生的一次選課,部門的一次定貨。在ER圖中用矩形框代表實體。134實體實體是客觀世界中存在且可相互區(qū)分的事物。52聯(lián)系客觀世界中的事物彼此間往往是有聯(lián)系的。例如,教師與課程間存在“教”這種聯(lián)系,而學生與課程間則存在“學”這種聯(lián)系。在ER圖中,用連接相關(guān)實體的菱形框表示聯(lián)系。135聯(lián)系客觀世界中的事物彼此間往往是有聯(lián)系的。53聯(lián)系的分類一對一聯(lián)系(1:1)一對多聯(lián)系(1:N)多對多聯(lián)系(M:N)136聯(lián)系的分類一對一聯(lián)系(1:1)54屬性屬性是實體或聯(lián)系所具有的性質(zhì)。在ER圖中用橢圓形或圓角矩形表示實體(或聯(lián)系)的屬性。用無向邊把實體(或聯(lián)系)與其屬性連接起來。137屬性屬性是實體或聯(lián)系所具有的性質(zhì)。55ER圖舉例138圖3.2某校教學管理ER圖ER圖舉例56圖3.2某校教學管理ER圖5.3狀態(tài)轉(zhuǎn)換圖狀態(tài)轉(zhuǎn)換圖通過描述系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來表示系統(tǒng)的行為。狀態(tài)圖還指明了作為特定事件的結(jié)果系統(tǒng)將做那些動作,它提供了行為模型的機制。1395.3狀態(tài)轉(zhuǎn)換圖狀態(tài)轉(zhuǎn)換圖通過描述系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)5.3.1狀態(tài)狀態(tài)是任何可以被觀察到的系統(tǒng)行為模式,一個狀態(tài)代表系統(tǒng)的一種行為模式。狀態(tài)規(guī)定了系統(tǒng)對事件的響應(yīng)方式。系統(tǒng)對事件的響應(yīng)既可以是做一個動作,也可以是改變系統(tǒng)本身的狀態(tài),還可以是既改變狀態(tài)又做動作。1405.3.1狀態(tài)狀態(tài)是任何可以被觀察到的系統(tǒng)行為模式,一個狀狀態(tài)狀態(tài)主要有:初態(tài)、終態(tài)和中間態(tài),一張狀態(tài)圖中只能有一個初態(tài),而可以有多個終態(tài)。狀態(tài)圖既可以表示系統(tǒng)循環(huán)運行過程,也可以表示系統(tǒng)單程生命周期。141狀態(tài)狀態(tài)主要有:595.3.2事件事件是在某個特定時刻發(fā)生的事情,它是對引起系統(tǒng)做動作或從一個狀態(tài)轉(zhuǎn)換到另一個狀態(tài)的外界事件的抽象。簡而言之,事件就是引起系統(tǒng)做動作或轉(zhuǎn)換狀態(tài)的控制信息。1425.3.2事件事件是在某個特定時刻發(fā)生的事情,它是對引起系5.3.3符號在狀態(tài)圖中,初態(tài)用實心圓表示,終態(tài)用一對同心圓(內(nèi)圓為實心圓)表示。中間狀態(tài)用圓角矩形表示,可以用兩條水平橫線把它分成上、中、下三部分。上面部分為狀態(tài)的名稱;中間部分為狀態(tài)變量的名字和值;下面部分是活動表,其中后兩部分是可選的。狀態(tài)圖中兩個狀態(tài)之間帶箭頭的連線稱為狀態(tài)轉(zhuǎn)換,箭頭指明了轉(zhuǎn)換方向。狀態(tài)變遷通常是由事件觸發(fā)的。1435.3.3符號在狀態(tài)圖中,初態(tài)用實心圓表示,終態(tài)用一對同心圖形描述144圖3.3狀態(tài)圖中使用的主要符號圖形描述62圖3.3狀態(tài)圖中使用的主要符號145圖3.4電話系統(tǒng)的狀態(tài)圖返回主目錄63圖3.4電話系統(tǒng)的狀態(tài)圖返回主目錄5.3.1層次方框圖-1層次方框圖用樹形結(jié)構(gòu)的一系列多層次的矩形框描述數(shù)據(jù)的層次結(jié)構(gòu)。樹形結(jié)構(gòu)的頂層是一個單獨的矩形框,它代表完整的數(shù)據(jù)結(jié)構(gòu),下面的各層矩形框代表這個數(shù)據(jù)的子集,最底層的各個框代表組成這個數(shù)據(jù)的實際數(shù)據(jù)元素(不能再分割的元素)。146完整的數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)的子集1實際數(shù)據(jù)元素1實際數(shù)據(jù)元素2實際數(shù)據(jù)元素3數(shù)據(jù)的子集2實際數(shù)據(jù)元素1實際數(shù)據(jù)元素2實際數(shù)據(jù)元素3數(shù)據(jù)的子集3實際數(shù)據(jù)元素1實際數(shù)據(jù)元素25.3.1層次方框圖-1層次方框圖用樹形結(jié)構(gòu)的一系列多層5.3.1層次方框圖-2隨著結(jié)構(gòu)的精細化,層次方框圖對數(shù)據(jù)結(jié)構(gòu)的描繪也越來越詳細,這種模式非常適合于需求分析階段的需要。系統(tǒng)分析員從對頂層信息的分類開始,沿圖中每條路徑反復細化,直到確定了數(shù)據(jù)結(jié)構(gòu)的全部細節(jié)為止。1475.3.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《黑豆營養(yǎng)在兒童生長發(fā)育中的獨特價值》論文
- 2025年注冊會計師考試《會計》全真模擬實戰(zhàn)試題詳解版
- 2025二手房屋買賣合同買方版完整
- 2025全新版鋁材購銷合同
- 國內(nèi)草席行業(yè)發(fā)展現(xiàn)狀
- 2025二手購房合同協(xié)議書(正式版)
- 2025-2030網(wǎng)絡(luò)購物平臺行業(yè)市場深度調(diào)研及趨勢前景與投融資研究報告
- 2025建筑工程施工合同(合同范本)
- 2025-2030紙加工機械行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030粘土市場行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 醫(yī)學資料 醫(yī)院感染管理基本知識培訓 學習課件
- 2025年山東高速集團總部部分業(yè)務(wù)技術(shù)崗位內(nèi)部選聘9人自考難、易點模擬試卷(共500題附帶答案詳解)
- 世界史話題聚焦-智慧講壇新視野+導學案-2025屆統(tǒng)編版高三歷史二輪復習
- 模具單位年終工作總結(jié)
- 2025年考研護理面試試題及答案
- 福建省龍巖市2025屆高三下學期3月一模試題 化學 含答案
- 2024全國職業(yè)院校技能大賽中職組“藝術(shù)設(shè)計”賽項備考試題庫(含答案)
- 江西九江茅山頭企業(yè)管理有限公司2024年紀檢專干招聘筆試參考題庫附帶答案詳解
- 醫(yī)護職業(yè)危害與防護知識
- deepseek的使用技巧與實際應(yīng)用培訓課件
- 十八項核心制度培訓課件
評論
0/150
提交評論