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