軟件工程第5章-_第1頁
軟件工程第5章-_第2頁
軟件工程第5章-_第3頁
軟件工程第5章-_第4頁
軟件工程第5章-_第5頁
已閱讀5頁,還剩136頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

軟件工程第5章結(jié)構(gòu)化分析與設(shè)計(jì)結(jié)構(gòu)化方法一種面向數(shù)據(jù)流的傳統(tǒng)軟件開發(fā)方法以數(shù)據(jù)流為中心構(gòu)建軟件的分析模型和設(shè)計(jì)模型分為:結(jié)構(gòu)化分析(StructuredAnalysis簡(jiǎn)稱SA)結(jié)構(gòu)化設(shè)計(jì)(StructuresdDesign簡(jiǎn)稱SD)結(jié)構(gòu)化程序設(shè)計(jì)(StructuredProgrammin簡(jiǎn)稱SP)內(nèi)容摘要結(jié)構(gòu)化分析方法概述數(shù)據(jù)流圖分層數(shù)據(jù)流圖的審查數(shù)據(jù)字典描述基本加工的小說明結(jié)構(gòu)化設(shè)計(jì)概述數(shù)據(jù)流圖到軟件體系結(jié)構(gòu)的映射初始結(jié)構(gòu)圖的改進(jìn)小結(jié)內(nèi)容摘要結(jié)構(gòu)化分析方法概述數(shù)據(jù)流圖分層數(shù)據(jù)流圖的審查數(shù)據(jù)字典描述基本加工的小說明結(jié)構(gòu)化設(shè)計(jì)概述數(shù)據(jù)流圖到軟件體系結(jié)構(gòu)的映射初始結(jié)構(gòu)圖的改進(jìn)小結(jié)結(jié)構(gòu)化分析方法發(fā)展歷史提出:20世紀(jì)60年代末到70年代初成熟:20世紀(jì)70年代末到80年代中期主要思想:抽象與自頂向下的逐層分解

(控制復(fù)雜性的兩個(gè)基本手段)抽象與分解抽象:忽略一個(gè)問題中與當(dāng)前目標(biāo)無關(guān)的那些方面,以便更充分地關(guān)注與當(dāng)前目標(biāo)有關(guān)的方面分解:將問題不斷分解為較小的問題,直到每個(gè)最底層的問題都足夠簡(jiǎn)單為止隨著分解層次的增加,抽象的級(jí)別越來越低,也越接近問題的解(算法和數(shù)據(jù)結(jié)構(gòu))2.42.32.22.121431.31.21.1X結(jié)構(gòu)化分析過程理解當(dāng)前的現(xiàn)實(shí)環(huán)境,獲得當(dāng)前系統(tǒng)的具體模型從當(dāng)前系統(tǒng)的具體模型抽象出當(dāng)前系統(tǒng)的邏輯模型分析目標(biāo)系統(tǒng)與當(dāng)前系統(tǒng)邏輯上的差別,建立目標(biāo)系統(tǒng)的邏輯模型為目標(biāo)系統(tǒng)的邏輯模型作補(bǔ)充結(jié)構(gòu)化分析模型的描述數(shù)據(jù)字典是模型的核心,它包含了軟件使用和產(chǎn)生的所有數(shù)據(jù)的描述數(shù)據(jù)流圖:用于功能建模,描述系統(tǒng)的輸入數(shù)據(jù)流如何經(jīng)過一系列的加工變換逐步變換成系統(tǒng)的輸出數(shù)據(jù)流,數(shù)據(jù)流圖中的數(shù)據(jù)流、文件、數(shù)據(jù)項(xiàng)、加工在數(shù)據(jù)字典中描述,反映加工邏輯的加工規(guī)約用“小說明”描述實(shí)體-關(guān)系圖數(shù)據(jù)流圖狀態(tài)轉(zhuǎn)換圖控制規(guī)約數(shù)據(jù)字典加工規(guī)約數(shù)據(jù)對(duì)象描述結(jié)構(gòu)化分析模型的描述實(shí)體—關(guān)系圖:用于數(shù)據(jù)建模,描述數(shù)據(jù)字典中數(shù)據(jù)之間的關(guān)系,數(shù)據(jù)對(duì)象的屬性用“數(shù)據(jù)對(duì)象描述”描述狀態(tài)轉(zhuǎn)換圖:用于行為建模,描述系統(tǒng)接收哪些外部事件,以及在外部事件的作用下系統(tǒng)的狀態(tài)遷移,控制規(guī)約用來描述軟件控制方面的附加信息實(shí)體-關(guān)系圖數(shù)據(jù)流圖狀態(tài)轉(zhuǎn)換圖控制規(guī)約數(shù)據(jù)字典加工規(guī)約數(shù)據(jù)對(duì)象描述內(nèi)容摘要結(jié)構(gòu)化分析方法概述數(shù)據(jù)流圖分層數(shù)據(jù)流圖的審查數(shù)據(jù)字典描述基本加工的小說明結(jié)構(gòu)化設(shè)計(jì)概述數(shù)據(jù)流圖到軟件體系結(jié)構(gòu)的映射初始結(jié)構(gòu)圖的改進(jìn)小結(jié)

數(shù)據(jù)流圖定義數(shù)據(jù)流圖的畫法數(shù)據(jù)流圖DataFlowDiagram(簡(jiǎn)稱DFD):描述輸入數(shù)據(jù)流到輸出數(shù)據(jù)流的變換(即加工)過程,用于對(duì)系統(tǒng)的功能建模,基本元素包括:數(shù)據(jù)流(dataflow):由一組固定成分的數(shù)據(jù)組成,代表數(shù)據(jù)的流動(dòng)方向加工(process):描述了輸入數(shù)據(jù)流到輸出數(shù)據(jù)流的變換,即將輸入數(shù)據(jù)流加工成輸出數(shù)據(jù)流文件(file):用于保存某些數(shù)據(jù),供以后使用源或宿(sourceorsink):表示存在于軟件系統(tǒng)之外的人員或組織數(shù)據(jù)流程圖繪制標(biāo)準(zhǔn)

源或宿存在于軟件系統(tǒng)之外的人員或組織,表示軟件系統(tǒng)輸入數(shù)據(jù)的來源和輸出數(shù)據(jù)的去向,因此也稱為源點(diǎn)和終點(diǎn)例如,對(duì)一個(gè)考務(wù)處理系統(tǒng)而言考生向系統(tǒng)提供報(bào)名單(輸入數(shù)據(jù)流),所以考生是考試系統(tǒng)(軟件)的一個(gè)源考務(wù)處理系統(tǒng)要將考試成績(jī)的統(tǒng)計(jì)分析表(輸出數(shù)據(jù)流)傳遞給考試中心,所以考試中心是該系統(tǒng)的一個(gè)宿源或宿用相同的圖形符號(hào)表示當(dāng)數(shù)據(jù)流從該符號(hào)流出時(shí)表示是源當(dāng)數(shù)據(jù)流流向該符號(hào)時(shí)表示是宿當(dāng)兩者皆有時(shí)表示既是源又是宿加工和文件加工:描述輸入數(shù)據(jù)流到輸出數(shù)據(jù)流的變換每個(gè)加工用一個(gè)定義明確的名字標(biāo)識(shí)至少有一個(gè)輸入數(shù)據(jù)流和一個(gè)輸出流可以有多個(gè)輸入數(shù)據(jù)流和多個(gè)輸出數(shù)據(jù)流文件:保存數(shù)據(jù)信息的外部單元每個(gè)文件用一個(gè)定義明確的名字標(biāo)識(shí)由加工進(jìn)行讀寫DFD中稱為文件,但在具體實(shí)現(xiàn)時(shí)可以用文件系統(tǒng)實(shí)現(xiàn),也可以用數(shù)據(jù)庫系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)流每個(gè)數(shù)據(jù)流用由一組固定成分的數(shù)據(jù)組成并擁有一個(gè)定義明確的名字標(biāo)識(shí)如:運(yùn)動(dòng)會(huì)管理系統(tǒng)中,報(bào)名單(數(shù)據(jù)流)由隊(duì)名、姓名、性別、參賽項(xiàng)目等數(shù)據(jù)組成數(shù)據(jù)流的流向從一個(gè)加工流向另一個(gè)加工從加工流向文件(寫文件)從文件流向加工(讀文件)從源流向加工從加工流向宿示例:圖書訂購系統(tǒng)DFD圖書庫存入庫單圖書代理商書庫管理收費(fèi)制作財(cái)務(wù)報(bào)表財(cái)務(wù)報(bào)表經(jīng)理帳務(wù)數(shù)據(jù)庫制作發(fā)書單圖書訂購核準(zhǔn)的訂購單發(fā)書單訂購單顧客顧客收費(fèi)數(shù)據(jù)賬單出庫單購書單教材購銷系統(tǒng)教材購銷系統(tǒng)的頂層DFD學(xué)生領(lǐng)書單、無效購書單缺書單進(jìn)書單書庫保管員應(yīng)用舉例二購書單缺書單銷售教材采購教材12第一層DFD教材購銷系統(tǒng)教材存量表學(xué)生D1缺書登記表D2書庫保管員進(jìn)書單教材入庫信息領(lǐng)書單、無效購書單1.2第二層DFD銷售子系統(tǒng)(1.0)無效書單教材存量表D1開發(fā)票D2缺書登記表學(xué)生各班學(xué)生用書表D3售書登記表D41.1

審查有效性1.3

登記并開領(lǐng)書單學(xué)生1.5補(bǔ)售教材1.4登記缺書購書單發(fā)票領(lǐng)書單

有效購書單教材入庫信息

按書號(hào)匯總?cè)睍?.12.3第二層DFD采購子系統(tǒng)(2.0)待購教材表D5教材一覽表D6書庫保管員進(jìn)書單教材存量表D12.2按出版社統(tǒng)計(jì)缺書修改教材庫存和待購量D2缺書登記表缺書單教材入庫信息數(shù)據(jù)流圖的擴(kuò)充符號(hào)描述一個(gè)加工的多個(gè)數(shù)據(jù)流之間的關(guān)系星號(hào)(*):表示數(shù)據(jù)流之間存在“與”關(guān)系所有輸入數(shù)據(jù)流同時(shí)存在時(shí),才能進(jìn)行加工處理或者加工處理的結(jié)果是同時(shí)產(chǎn)生所有輸出數(shù)據(jù)流加號(hào)(+):表示數(shù)據(jù)流之間存在“或”關(guān)系至少存在一個(gè)輸入數(shù)據(jù)流時(shí),才能進(jìn)行加工處理或者加工處理的結(jié)果至少產(chǎn)生一個(gè)輸出數(shù)據(jù)流異或(⊕):表示數(shù)據(jù)流之間存在“異或”(互斥)關(guān)系必須存在且僅存在一個(gè)輸入數(shù)據(jù)流時(shí),才能進(jìn)行加工處理或者加工處理的結(jié)果產(chǎn)生且僅產(chǎn)生一個(gè)輸出數(shù)據(jù)流對(duì)數(shù)據(jù)流圖進(jìn)行分層GeorgeMiller在著名的論文“神奇的數(shù)字7加減2:我們處理信息的能力的某種限制”中指出:人們?cè)谝欢螘r(shí)間內(nèi)的短期記憶似乎限制在5~9件事情之內(nèi)根據(jù)自頂向下逐層分解的思想將數(shù)據(jù)流圖畫成層次結(jié)構(gòu)每個(gè)層次畫在獨(dú)立的數(shù)據(jù)流圖中,加工個(gè)數(shù)可大致控制在“7加減2”的范圍中數(shù)據(jù)流圖的各個(gè)層次頂層圖只有代表整個(gè)軟件系統(tǒng)的1個(gè)加工,描述了軟件系統(tǒng)與外界(源或宿)之間的數(shù)據(jù)流頂層圖中的加工經(jīng)分解后的圖稱為0層圖(只有1張)中間層圖中至少有一個(gè)加工(也可以有多個(gè))在下層圖中分解成一張子圖處于最底層的圖稱為底層圖,其中所有的加工不再分解成新的子圖圖和加工的編號(hào)頂層圖只有一個(gè)代表整個(gè)軟件系統(tǒng)的加工,該加工不必編號(hào)。0層圖中的加工編號(hào)分別為1,2,3,…子圖號(hào):若父圖中的加工號(hào)x分解成某一子圖,則該子圖號(hào)記為“圖x”子圖中加工的編號(hào):若父圖中的加工號(hào)為x的加工分解成某一子圖,則該子圖中的加工編號(hào)分別為x.1、x.2、x.3…分層數(shù)據(jù)流圖示例——

資格和水平考試的考務(wù)處理系統(tǒng)簡(jiǎn)化的資格和水平考試的考務(wù)處理系統(tǒng)分成多個(gè)級(jí)別,如初級(jí)程序員、程序員、高級(jí)程序員、系統(tǒng)分析員等,凡滿足一定條件的考生都可參加某一級(jí)別的考試考試的合格標(biāo)準(zhǔn)將根據(jù)每年的考試成績(jī)由考試中心確定考試的閱卷由閱卷站進(jìn)行,因此,閱卷工作不包含在軟件系統(tǒng)中資格和水平考試的考務(wù)處理系統(tǒng)

—功能需求1.對(duì)考生送來的報(bào)名單進(jìn)行檢查2.對(duì)合格的報(bào)名單編好準(zhǔn)考證號(hào)后將準(zhǔn)考證送給考生,并將匯總后的考生名單送給閱卷站3.對(duì)閱卷站送來的成績(jī)清單進(jìn)行檢查,并根據(jù)考試中心制訂的合格標(biāo)準(zhǔn)審定合格者4.制作考生通知單送給考生5.進(jìn)行成績(jī)分類統(tǒng)計(jì)(按地區(qū)、年齡、文化程度、職業(yè)、考試級(jí)別等分類)和試題難度分析,產(chǎn)生統(tǒng)計(jì)分析表資格和水平考試的考務(wù)處理系統(tǒng)

—部分?jǐn)?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í)別}考生名冊(cè)=正式報(bào)名單統(tǒng)計(jì)分析表=分類統(tǒng)計(jì)表+難度分析表考生通知單=準(zhǔn)考證號(hào)+姓名+通信地址+考試級(jí)別+考試成績(jī)+合格標(biāo)志畫系統(tǒng)的輸入輸出(頂層圖)確定源或宿:考生、閱卷站和考試中心它們都既是源又是宿頂層圖唯一的加工:軟件系統(tǒng)(考務(wù)處理系統(tǒng))確定數(shù)據(jù)流:系統(tǒng)的輸入/輸出信息輸入數(shù)據(jù)流:報(bào)名單(來自考生)、成績(jī)清單(來自閱卷站)、合格標(biāo)準(zhǔn)(來自考試中心)輸出數(shù)據(jù)流:準(zhǔn)考證(送往考生)、考生名單(送往閱卷站)、考生通知書(送往考生)、統(tǒng)計(jì)分析表(送往考試中心)額外的輸出流(考慮系統(tǒng)的健壯性):不合格報(bào)名單(返回給考生),錯(cuò)誤成績(jī)清單(返回給閱卷站)頂層圖通常沒有文件考務(wù)處理系統(tǒng)頂層圖考務(wù)處理系統(tǒng)考試中心考生不合格報(bào)名單閱卷站錯(cuò)誤成績(jī)清單成績(jī)清單考生名單合格標(biāo)準(zhǔn)報(bào)名單準(zhǔn)考證考生通知單統(tǒng)計(jì)分析表畫系統(tǒng)內(nèi)部(0層圖)-1以下確定加工、數(shù)據(jù)流、文件、源或宿的一般方法適用于0層圖及其各層子圖確定加工:確定父圖中某加工分解而成的子加工根據(jù)功能分解來確定加工:將一個(gè)復(fù)雜的功能分解成若干個(gè)較小的功能,較多應(yīng)用于高層DFD中的分解根據(jù)業(yè)務(wù)處理流程確定加工:分析父圖中待分解加工的業(yè)務(wù)處理流程,業(yè)務(wù)流程中的每一步都可能是一個(gè)子加工特別要注意在業(yè)務(wù)流程中數(shù)據(jù)流發(fā)生變化或數(shù)據(jù)流的值發(fā)生變化的地方,應(yīng)該存在一個(gè)加工,例如:編制

準(zhǔn)考證號(hào)正式報(bào)名單合格報(bào)名單畫系統(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ù)流同一個(gè)源或加工可以有多個(gè)數(shù)據(jù)流流向一個(gè)加工,如果它們不是一起到達(dá)和一起加工的,那么可以將它們分成若干個(gè)數(shù)據(jù)流,例如:讀取銀行卡信息客戶銀行卡數(shù)據(jù)密碼畫系統(tǒng)內(nèi)部(0層圖)-3確定文件如果父圖中該加工存在讀寫文件的數(shù)據(jù)流,則相應(yīng)的文件和數(shù)據(jù)流都應(yīng)畫在子圖中在分解子圖中,如果需要保存某些中間數(shù)據(jù)以備后用,則可以將這些數(shù)據(jù)組成一個(gè)新的文件新文件(首次出現(xiàn)的文件)至少應(yīng)有一個(gè)加工為其寫入記錄,同時(shí)至少存在另一個(gè)加工來讀該文件的記錄注意:從父圖中繼承下來的文件在子圖中可能只對(duì)其進(jìn)行讀,或只進(jìn)行寫畫系統(tǒng)內(nèi)部(0層圖)-4確定源和宿0層圖和其它子圖中通常不必畫出源和宿有時(shí)為了提高可讀性,可以將頂層圖中的源和宿畫在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ī)加工引用考務(wù)處理系統(tǒng)0層圖考生名冊(cè)1考試報(bào)名報(bào)名單考生名單不合格報(bào)名單準(zhǔn)考證2統(tǒng)計(jì)成績(jī)統(tǒng)計(jì)分析表合格標(biāo)準(zhǔn)考生通知單錯(cuò)誤成績(jī)清單成績(jī)清單畫加工內(nèi)部(1…n層圖)復(fù)雜的加工可以繼續(xù)分解成1張DFD子圖分解方法將該加工看作一個(gè)小系統(tǒng),該加工的輸入/輸出數(shù)據(jù)流就是這個(gè)假設(shè)的小系統(tǒng)的輸入/輸出數(shù)據(jù)流然后采用畫0層圖的方法,畫出該加工的子圖以0層圖中加工1(考試報(bào)名)為例根據(jù)業(yè)務(wù)處理流程來確定由加工1的分解與加工1相關(guān)的業(yè)務(wù)流程:首先檢查考生送來的報(bào)名單,然后編準(zhǔn)考證號(hào),并產(chǎn)生準(zhǔn)考證,最后產(chǎn)生考生名單和考生名冊(cè)(文件)考務(wù)處理系統(tǒng)加工1子圖3個(gè)子加工:檢查報(bào)名單、編準(zhǔn)考證號(hào)、登記考生“合格報(bào)名單”和“正式報(bào)名單”是新增加的數(shù)據(jù)流,其它數(shù)據(jù)流都是加工1原有的在加工1的分解中沒有新的文件產(chǎn)生1.3登記考生考生名單1.2編準(zhǔn)考證號(hào)準(zhǔn)考證

正式報(bào)名單1.1檢查報(bào)名單合格報(bào)名單報(bào)名單不合格報(bào)名單考生名冊(cè)考務(wù)處理系統(tǒng)加工2子圖2.5分析試題難度難度分析表2.4分類統(tǒng)計(jì)成績(jī)分類統(tǒng)計(jì)表考生名冊(cè)2.3制作通知單考生通知單2.2審定合格者正式成績(jī)清單合格標(biāo)準(zhǔn)試題得分清單正確成績(jī)清單2.1檢查成績(jī)清單成績(jī)清單錯(cuò)誤成績(jī)清單總結(jié):畫分層數(shù)據(jù)流圖的步驟1.畫系統(tǒng)的輸入和輸出2.畫系統(tǒng)內(nèi)部3.畫加工內(nèi)部4.重復(fù)第3步,直至每個(gè)尚未分解的加工都足夠簡(jiǎn)單(即不必再分解)內(nèi)容摘要結(jié)構(gòu)化分析方法概述數(shù)據(jù)流圖分層數(shù)據(jù)流圖的審查數(shù)據(jù)字典描述基本加工的小說明結(jié)構(gòu)化設(shè)計(jì)概述數(shù)據(jù)流圖到軟件體系結(jié)構(gòu)的映射初始結(jié)構(gòu)圖的改進(jìn)小結(jié)分層數(shù)據(jù)流圖的審查檢查圖中是否存在錯(cuò)誤或不合理(不理想)的部分一致性:分層DFD中不存在矛盾和沖突完整性:分層DFD本身的完整性,即是否有遺漏的數(shù)據(jù)流、加工等元素本節(jié)將從分層DFD的一致性和完整性、構(gòu)造分層DFD時(shí)需注意的問題以及分解程度等幾個(gè)方面來說明如何審查分層DFD的合理性分層數(shù)據(jù)流圖的一致性父圖與子圖平衡任何一張DFD子圖邊界上的輸入/輸出數(shù)據(jù)流必須與其父圖中對(duì)應(yīng)的加工的輸入/輸出數(shù)據(jù)流保持一致數(shù)據(jù)守恒一個(gè)加工所有輸出數(shù)據(jù)流中的數(shù)據(jù),必須能從該加工的輸入數(shù)據(jù)流中直接獲得,或者能通過該加工的處理而產(chǎn)生多余的數(shù)據(jù)流:加工未使用其輸入數(shù)據(jù)流中的某些數(shù)據(jù)項(xiàng)(不一定是錯(cuò)誤,但可能隱含潛在的錯(cuò)誤)局部文件一個(gè)加工的輸出數(shù)據(jù)流不能與該加工的輸入數(shù)據(jù)流同名父圖與子圖不平衡的實(shí)例左圖輸入數(shù)據(jù)流有M和N,輸出數(shù)據(jù)流是T而加工2的子圖(右圖)邊界上的輸入數(shù)據(jù)流是N,輸出數(shù)據(jù)流是S和T父圖與子圖不平衡123ABCMNT2.12.22.3NPSTQ父圖與子圖平衡的實(shí)例注意:如果父圖某加工的一個(gè)數(shù)據(jù)流,對(duì)應(yīng)于子圖中幾個(gè)數(shù)據(jù)流,而子圖中組成這些數(shù)據(jù)流的數(shù)據(jù)項(xiàng)全體正好等于父圖中的這個(gè)數(shù)據(jù)流,那么它們?nèi)运闶瞧胶獾膃2.52.42.32.22.1b2b1acdb21acde(a)父圖(b)子圖a:考生通知單;b:統(tǒng)計(jì)分析表;b1:分類統(tǒng)計(jì)表;b2:難度分析表;c:錯(cuò)誤成績(jī)清單;d:成績(jī)清單;e:合格標(biāo)準(zhǔn)。由于b=b1+b2,所以父圖與子圖是平衡的數(shù)據(jù)不守恒的實(shí)例由于“正式成績(jī)清單”中缺少“考生通知單”中的姓名、通信地址等數(shù)據(jù),這些數(shù)據(jù)也無法由加工2.3自己產(chǎn)生,因此,加工2.3不滿足數(shù)據(jù)守恒的條件錯(cuò)誤成績(jī)清單考生名冊(cè)2.5分析試題難度難度分析表2.4分類統(tǒng)計(jì)成績(jī)分類統(tǒng)計(jì)表2.3制作通知單考生通知單2.2審定合格者正式成績(jī)清單合格標(biāo)準(zhǔn)試題得分清單2.1檢查成績(jī)清單成績(jī)清單正確成績(jī)清單由此可見:

1.數(shù)據(jù)流的組成對(duì)DFD是有影響的2.構(gòu)建DFD與建立數(shù)據(jù)字典應(yīng)交替進(jìn)行,以便于對(duì)分層DFD的校驗(yàn)局部文件考慮分層數(shù)據(jù)流中一個(gè)文件應(yīng)畫在哪些DFD中,而不該畫在哪些DFD中任何一個(gè)文件都應(yīng)同時(shí)包含讀和寫該文件的數(shù)據(jù)流,除非該文件是當(dāng)前系統(tǒng)與另一個(gè)軟件系統(tǒng)所共享(應(yīng)在需求說明中指明)在一張DFD中當(dāng)一個(gè)文件作為若干個(gè)加工之間的交界面(一個(gè)寫另一個(gè)讀)時(shí)該文件應(yīng)畫出在一張DFD中當(dāng)一個(gè)文件僅與一個(gè)加工進(jìn)行讀寫操作,并且在該DFD的父(祖先)圖中未出現(xiàn)過該文件,則該文件是相應(yīng)加工的內(nèi)部文件,在當(dāng)前DFD中不應(yīng)畫出一個(gè)文件一旦在某張DFD中畫出,那么在它的子孫圖中應(yīng)根據(jù)父圖與子圖平衡的原則畫出該文件在子孫圖中,這個(gè)文件可能只有讀文件的數(shù)據(jù)流或者寫文件的數(shù)據(jù)流局部文件示例“試題得分清單”文件是加工2的局部文件,根據(jù)抽象原則不應(yīng)該將這類表示加工細(xì)節(jié)的局部文件畫在其父圖(如圖c)中,正確的畫法是圖a和b(a)父圖1考生名冊(cè)22.52.42.32.22.1試題得分清單考生名冊(cè)(b)子圖(c)含局部文件的父圖試題得分清單1考生名冊(cè)2同一加工的輸入、輸出數(shù)據(jù)流不能同名同一個(gè)加工的輸出數(shù)據(jù)流和輸入數(shù)據(jù)流即使組成成份相同,仍應(yīng)對(duì)它們?nèi)〔煌拿?,以表示它們是不同?shù)據(jù)流例如,“報(bào)名單”和“合格報(bào)名單”允許一個(gè)加工有二個(gè)相同的數(shù)據(jù)流分別流向二個(gè)不同的加工分層數(shù)據(jù)流圖的完整性每個(gè)加工至少有一個(gè)輸入數(shù)據(jù)流和一個(gè)輸出數(shù)據(jù)流在整套分層數(shù)據(jù)流圖中,每個(gè)文件應(yīng)至少有一個(gè)加工讀該文件,有另一個(gè)加工寫該文件分層數(shù)據(jù)流圖中的每個(gè)數(shù)據(jù)流和文件都必須命名(除了流入或流出文件的數(shù)據(jù)流),并保持與數(shù)據(jù)字典的一致分層DFD中的每個(gè)基本加工(即不再分解子圖的加工)都應(yīng)有一個(gè)加工規(guī)約其它需注意的問題-1適當(dāng)命名:每個(gè)數(shù)據(jù)流、加工、文件、源和宿都應(yīng)被適應(yīng)地命名,名字應(yīng)符合被命名對(duì)象的實(shí)際含義名字應(yīng)反映整個(gè)對(duì)象(如數(shù)據(jù)流、加工),而不是僅反映它的某一部分避免使用空洞的、含義不清的名字,如數(shù)據(jù)、信息、處理、統(tǒng)計(jì)等如果發(fā)現(xiàn)某個(gè)數(shù)據(jù)流或加工難以命名時(shí),往往是DFD分解不當(dāng)?shù)恼髡?,此時(shí)應(yīng)考慮重新分解畫數(shù)據(jù)流而不是畫控制流判斷準(zhǔn)則:這條線上是否有數(shù)據(jù)流過其它需注意的問題-2避免一個(gè)加工有過多的數(shù)據(jù)流當(dāng)一個(gè)加工存在許多數(shù)據(jù)流時(shí)往往意味著分解不合理解決辦法:重新分解1)把需要重新分解的某張圖(含有該復(fù)雜加工的圖)的所有子圖連接成一張圖2)把連接后的圖重新劃分成幾個(gè)部分,使各部分之間的聯(lián)系最小3)重新定義父圖,即第2)步中的每個(gè)部分作為父圖中的一個(gè)加工4)重新建立各子圖,即第2)步中的每個(gè)部分都是一張子圖5)為所有的加工重新命名和編號(hào)數(shù)據(jù)流圖重新分解示例(b)原加工2子圖2.22.12.32.42.5HJICKLEMN(d)重新分解后的父圖452′32″1ABHGJICKLDEMFPN(a)原父圖34512HABJICKLDEMFPNG(c)合并4532.42.52.22.12.31FABHJICKLDEMPNG其它需注意的問題-3分解盡可能均勻理想目標(biāo):任何兩個(gè)加工的分解層數(shù)之差不超過1應(yīng)盡可能使分解均勻,對(duì)于分解不均勻的情況應(yīng)重新分解先考慮穩(wěn)定狀態(tài),忽略瑣碎的枝節(jié)先考慮穩(wěn)定狀態(tài)下的各種問題,暫時(shí)不考慮系統(tǒng)如何啟動(dòng)、如何結(jié)束、出錯(cuò)處理以及性能等問題隨時(shí)準(zhǔn)備重畫對(duì)于一個(gè)復(fù)雜的軟件系統(tǒng),往往要經(jīng)過反復(fù)多次的重畫和修改才能構(gòu)造出完整、合理、滿足用戶需求的分層DFD分析階段遺漏下來的一個(gè)錯(cuò)誤,到開發(fā)后期要化費(fèi)幾百倍代價(jià)來糾正這個(gè)錯(cuò)誤分解的程度可參照以下幾條與分解有關(guān)的原則:

7加減2分解應(yīng)自然,概念上合理、清晰只要不影響DFD的易理解性,可適當(dāng)多分解幾個(gè)加工,以減少層數(shù)一般說來,上層分解得快些(即多分解幾個(gè)加工),下層分解得慢些(即少分解幾個(gè)加工)分解要均勻內(nèi)容摘要結(jié)構(gòu)化分析方法概述數(shù)據(jù)流圖分層數(shù)據(jù)流圖的審查數(shù)據(jù)字典描述基本加工的小說明結(jié)構(gòu)化設(shè)計(jì)概述數(shù)據(jù)流圖到軟件體系結(jié)構(gòu)的映射初始結(jié)構(gòu)圖的改進(jìn)小結(jié)數(shù)據(jù)字典數(shù)據(jù)流圖與數(shù)據(jù)字典是密不可分的,兩者結(jié)合起來構(gòu)成軟件的邏輯模型(分析模型)數(shù)據(jù)字典由字典條目組成,每個(gè)條目描述DFD中的一個(gè)元素?cái)?shù)據(jù)字典條目包括:數(shù)據(jù)流、文件、數(shù)據(jù)項(xiàng)(組成數(shù)據(jù)流和文件的數(shù)據(jù))、加工、源或宿加工邏輯的詳細(xì)說明可以用“小說明”來描述數(shù)據(jù)字典的描述符號(hào)符號(hào)名稱舉例=定義為x=…表示x由…組成+與a+b表示a和b[…,…]或[a,b]表示a或b[…│…]或[a│b]表示a或b{…}重復(fù){a}表示a重復(fù)0或多次{…}重復(fù){a}表示a重復(fù)3到8次(…)可選(a)表示a重復(fù)0或1次″…″基本數(shù)據(jù)元素″a″表a是基本數(shù)據(jù)字典條目不同的開發(fā)組織或團(tuán)隊(duì)可以根據(jù)項(xiàng)目的需要定義字典條目的描述內(nèi)容字典條目中的描述內(nèi)容主要包括DFD元素的基本信息(名稱、別名、簡(jiǎn)述、注解)定義(數(shù)據(jù)類型、數(shù)據(jù)組成)使用特點(diǎn)(取值范圍、使用頻率、激發(fā)條件)控制信息(來源、去向、訪問權(quán)限)等數(shù)據(jù)流條目的描述內(nèi)容名稱:數(shù)據(jù)流名(可以是中文名或英文名)別名:名稱的另一個(gè)名字簡(jiǎn)述:對(duì)數(shù)據(jù)流的簡(jiǎn)單說明數(shù)據(jù)流組成:描述數(shù)據(jù)流由哪些數(shù)據(jù)項(xiàng)組成數(shù)據(jù)流來源:描述數(shù)據(jù)流從哪個(gè)加工或源流出數(shù)據(jù)流去向:描述數(shù)據(jù)流流入哪個(gè)加工或宿數(shù)據(jù)量:系統(tǒng)中該數(shù)據(jù)流的總量如考務(wù)處理系統(tǒng)中“報(bào)名單”的總量是100000張或者單位時(shí)間處理的數(shù)據(jù)流數(shù)量,如80000張/天峰值:某時(shí)段處理的最大數(shù)量如每天上午9:00至11:00處理60000張表單注解:對(duì)該數(shù)據(jù)流的其它補(bǔ)充說明數(shù)據(jù)流組成數(shù)據(jù)流組成是數(shù)據(jù)流條目的核心,它列出組成該數(shù)據(jù)流的各數(shù)據(jù)項(xiàng),例如:培訓(xùn)報(bào)名單=姓名+單位+課程運(yùn)動(dòng)員報(bào)名單=隊(duì)名+姓名+性別+{參賽項(xiàng)目}當(dāng)一個(gè)數(shù)據(jù)流的組成比較復(fù)雜時(shí),可以將其分解成幾個(gè)數(shù)據(jù)流,例如:課程=課程名+任課教師+教材+時(shí)間地點(diǎn)時(shí)間地點(diǎn)={星期幾+第幾節(jié)+教室}31數(shù)據(jù)流組成示例(發(fā)票)發(fā)票=單位名稱+{商品名+數(shù)量+單價(jià)+金額}

+總金額+日期+(營(yíng)業(yè)員)

單位名稱商品名數(shù)量單價(jià)金額總金額日期營(yíng)業(yè)員

51文件條目的描述內(nèi)容名稱:文件名別名:同數(shù)據(jù)流條目簡(jiǎn)述:對(duì)文件的簡(jiǎn)單說明文件組成:描述文件的記錄由哪些數(shù)據(jù)項(xiàng)組成(與數(shù)據(jù)流條目中的文件組成描述方法相同)寫文件的加工:描述哪些加工寫文件讀文件的加工:描述哪些加工讀文件文件組織:描述文件的存儲(chǔ)方式(順序、索引),排序的關(guān)鍵字使用權(quán)限:描述各類用戶對(duì)文件讀、寫、修改的使用權(quán)限數(shù)據(jù)量:文件的最大記錄個(gè)數(shù)存取頻率:描述對(duì)該文件的讀寫頻率注解:對(duì)該文件的其它補(bǔ)充說明數(shù)據(jù)項(xiàng)條目的描述內(nèi)容名稱:數(shù)據(jù)項(xiàng)名別名:同數(shù)據(jù)流條目簡(jiǎn)述:對(duì)數(shù)據(jù)項(xiàng)的簡(jiǎn)單描述數(shù)據(jù)類型:描述數(shù)據(jù)項(xiàng)的類型,如整型、實(shí)型、字符串等計(jì)量單位:指明數(shù)據(jù)項(xiàng)值的計(jì)量單位,如公斤、噸等取值范圍:描述數(shù)據(jù)項(xiàng)允許的值域,如1..100編輯方式:描述該數(shù)據(jù)項(xiàng)外部表示的編輯方式,如23,345.67與其它數(shù)據(jù)項(xiàng)的關(guān)系:描述該數(shù)據(jù)項(xiàng)與數(shù)據(jù)字典中其它數(shù)據(jù)項(xiàng)的關(guān)系注解:對(duì)數(shù)據(jù)項(xiàng)的其它補(bǔ)充說明加工條目的描述內(nèi)容名稱:加工名別名:同數(shù)據(jù)流條目加工號(hào):加工在DFD中的編號(hào)簡(jiǎn)述:對(duì)加工的功能的簡(jiǎn)要說明輸入數(shù)據(jù)流:描述加工的輸入數(shù)據(jù)流,包括讀哪些文件輸出數(shù)據(jù)流:描述加工的輸出數(shù)據(jù)流,包括寫哪些文件加工邏輯:簡(jiǎn)要描述加工邏輯,或者對(duì)加工規(guī)約的索引基本加工的加工邏輯用小說明描述,在加工條目中可填寫對(duì)加工規(guī)約的索引非基本加工分解而成的DFD子圖已反映了它的加工邏輯,不必書寫小說明異常處理:描述加工處理過程中可能出現(xiàn)的異常情況,及其處理方式加工激發(fā)條件:描述執(zhí)行加工的條件,如,“身份認(rèn)證正確”,“收到報(bào)名單”執(zhí)行頻率:描述加工的執(zhí)行頻率,如,每月執(zhí)行一次,每天0點(diǎn)執(zhí)行注解:對(duì)加工的其它補(bǔ)充說明源或宿條目的描述內(nèi)容名稱:源或宿的名稱(外部實(shí)體名)別名:同數(shù)據(jù)流條目簡(jiǎn)要描述:對(duì)源或宿的簡(jiǎn)要描述(包括指明該外部實(shí)體在DFD中是用作“源”,還是“宿”,還是“既是源又是宿”)輸入數(shù)據(jù)流:描述源向系統(tǒng)提供哪些輸入數(shù)據(jù)流輸出數(shù)據(jù)流:描述系統(tǒng)向宿提供哪些輸出數(shù)據(jù)流注解:對(duì)源或宿的其它補(bǔ)充說明別名條目的描述內(nèi)容只有那些有必要補(bǔ)充說明的別名才給出相應(yīng)的別名條目別名:別名的名字類型:指出別名屬于那個(gè)種類(數(shù)據(jù)流、文件、數(shù)據(jù)、加工、源或宿)基本名:別名的正式名稱(原名)簡(jiǎn)述:同正式名稱的簡(jiǎn)述說明:對(duì)別名的補(bǔ)充說明示例原始的數(shù)據(jù)項(xiàng)條目如下:數(shù)據(jù)項(xiàng)名稱:開戶日期別名:開設(shè)日期簡(jiǎn)述:客戶建立帳戶的日期類型:日期注解:年≥1949

其別名條目如下:別名:開設(shè)日期類型:數(shù)據(jù)項(xiàng)基本名:開戶日期簡(jiǎn)述:客戶建立帳戶的日期說明:1986年以后不再使用此別名數(shù)據(jù)字典的實(shí)現(xiàn)提倡采用專用的軟件工具或者常用的實(shí)用程序(如,正文編輯程序、電子表格)來建立數(shù)據(jù)字典的電子文檔,其好處是便于字典條目的檢索,字典的管理和維護(hù)如果數(shù)據(jù)字典由輔助繪制DFD的工具自動(dòng)產(chǎn)生的話,那么可以利用數(shù)據(jù)字典來檢查DFD的一致性和完整性,并保持?jǐn)?shù)據(jù)字典與DFD的一致如果數(shù)據(jù)字典是由人工制作的,我們可以為每個(gè)字典條目制作一張卡片,所有卡片按字典條目的種類(數(shù)據(jù)流、文件、加工等)分類成冊(cè),每類卡片按某種約定排序內(nèi)容摘要結(jié)構(gòu)化分析方法概述數(shù)據(jù)流圖分層數(shù)據(jù)流圖的審查數(shù)據(jù)字典描述基本加工的小說明結(jié)構(gòu)化設(shè)計(jì)概述數(shù)據(jù)流圖到軟件體系結(jié)構(gòu)的映射初始結(jié)構(gòu)圖的改進(jìn)小結(jié)描述基本加工的小說明小說明是基本加工的規(guī)約說明,應(yīng)精確地描述用戶要求一個(gè)加工“做什么”包括加工的激發(fā)條件、加工邏輯、優(yōu)先級(jí)、執(zhí)行頻率、出錯(cuò)處理等最基本的部分是加工邏輯,即該加工的輸出數(shù)據(jù)流與輸入數(shù)據(jù)流之間的邏輯關(guān)系加工邏輯不是對(duì)加工的設(shè)計(jì),不涉及數(shù)據(jù)結(jié)構(gòu)、算法實(shí)現(xiàn)、編程語言等與設(shè)計(jì)和實(shí)現(xiàn)有關(guān)的細(xì)節(jié)加工邏輯的描述方法結(jié)構(gòu)化語言:介于自然語言和形式語言之間的一種半形式語言判定表:適用于加工邏輯包含多個(gè)條件,而不同的條件組合需做不同的動(dòng)作判定樹:判定表的變種,它本質(zhì)上與判定表是相同的,只是表示形式不同結(jié)構(gòu)化語言沒有嚴(yán)格的語法加工規(guī)約分為若干個(gè)段落,每個(gè)段落可分為內(nèi)外兩層:外層有嚴(yán)格的語法來描述它的控制結(jié)構(gòu)如結(jié)構(gòu)化英語中可使用if_then_else、while_do、repeat_until、for_do、case等結(jié)構(gòu)內(nèi)層可以用自然語言來描述允許使用嵌套結(jié)構(gòu)“計(jì)算信用度”的結(jié)構(gòu)化英語描述Selectthecasewhichapplies:Case1(NoEBounced-ChecksinCustomerRecord):

Writexemplary-Customer―CitationtoAnnual―Summary.Case2(OneBounced-check):

IfYearly―Average―Balanceexceeds$1000.RemoveBounced―CheckfromCustomer―Record.Otherwise. RecuceCredit―Limitby10%.Case3(MultipleBounced-Checks):

ForeachBounced―Check.RecuceCredit―Limitby15%.SetCredit―RatingtoDeadbeat.WriteScathing―CommenttoAnnual―Summary.WriteCustomer―Name―and―AddresstoIRS―Enemies―List.結(jié)構(gòu)化語言書寫加工規(guī)約注意事項(xiàng)語句力求精煉語句必須易讀、易理解、無歧義主要使用祈使句,祈使句中的動(dòng)詞要明確表達(dá)要執(zhí)行的動(dòng)作所有名字必須是數(shù)據(jù)字典中有定義的名字不使用形容詞、副詞等修飾語不使用含義相同的動(dòng)詞,如“修改”、“修正”等可以使用常用的算術(shù)和關(guān)系運(yùn)算符總之要盡可能精確、無歧義、簡(jiǎn)明扼要、易理解用例說明2、自然語言存在的問題(1)界限不明確例:成績(jī)(分?jǐn)?shù))成績(jī)等級(jí)90~100優(yōu)80~90良70~80中60~70及60以下不用例說明2、自然語言存在的問題(2)邏輯條件的次序不明確例:學(xué)校有一項(xiàng)獎(jiǎng)勵(lì)條件“凡各科成績(jī)平均在92分以上,或單科最低分在85分以上,且英語成績(jī)平均在90分以上者,可申請(qǐng)?zhí)氐泉?jiǎng)學(xué)金。”解釋一:有兩類學(xué)生可以申請(qǐng)獎(jiǎng)學(xué)金,一類是各科成績(jī)平均在92分以上且英語成績(jī)平均在90分以上者;另一類是單科成績(jī)最低在85分以上且英語成績(jī)平均在90分以上者解釋二:有兩類學(xué)生可以申請(qǐng)獎(jiǎng)學(xué)金,一類是各科成績(jī)均在92分以上者;另一類是單科成績(jī)最低分在85分以上且英語成績(jī)平均在90分以上者。用例說明2、自然語言存在的問題(3)意義模糊的形容詞或副詞例:學(xué)校評(píng)定三好學(xué)生的標(biāo)準(zhǔn)是學(xué)習(xí)成績(jī)好、思想道德修養(yǎng)好、身體健康。這個(gè)“好”的標(biāo)準(zhǔn)是什么?如果學(xué)習(xí)成績(jī)都在90分(含90)以上者是學(xué)習(xí)成績(jī)好,那么只有一門課程的成績(jī)是89分,其余均為90分的學(xué)生算不算成績(jī)好?……用例說明3、結(jié)構(gòu)式語言結(jié)構(gòu)式語言使用的詞匯主要有以下三類:①祈使句中的動(dòng)詞;②在數(shù)據(jù)字典中定義的名詞;③某些邏輯表達(dá)式中的保留字結(jié)構(gòu)式語言使用的語句只允許有以下四類:①簡(jiǎn)單的祈使句②判斷句③循環(huán)語句④上述三種的復(fù)合語句用例說明例:用結(jié)構(gòu)式語言描述“計(jì)算水電費(fèi)”獲得當(dāng)月水表數(shù)獲得上月底水表數(shù)當(dāng)月水表數(shù)減去上月底的水表數(shù),得到本月實(shí)際用水噸數(shù)1.20元乘以實(shí)際用水噸數(shù)得到水費(fèi)將水費(fèi)加到應(yīng)繳水電費(fèi)中獲得當(dāng)月電表數(shù)獲得上月底電表數(shù)當(dāng)月電表數(shù)減去上月底的電表數(shù),得到本月實(shí)際用電度數(shù)0.80元乘以實(shí)際用電度數(shù)得到電費(fèi)將電費(fèi)加到應(yīng)繳水電費(fèi)中用例說明判斷句的一般形式:如果 條件1(成立) 則 動(dòng)作A否則(條件1不成立) 就 動(dòng)作B用例說明循環(huán)句:例:對(duì)每一住戶,循環(huán)計(jì)算 房租水電費(fèi)用例說明使用結(jié)構(gòu)式語言來表達(dá)系統(tǒng)邏輯結(jié)構(gòu)中底層的處理功能時(shí)要注意以下幾個(gè)問題:第一,描述處理功能之前必須首先指出該功能的輸入和輸出數(shù)據(jù)(數(shù)據(jù)庫或數(shù)據(jù)流)。第二,描述功能中避免使用界限不明確的詞匯、含義模糊的形容詞或邏輯次序不明確的現(xiàn)象存在。第三,所有的語句必須具有較高的可讀性,使人容易理解。即做到詞匯言簡(jiǎn)意駭,清晰準(zhǔn)確,不要使用修飾或漫談的形式。第四,書寫時(shí)格式要正確,且有統(tǒng)一的標(biāo)準(zhǔn)。用例說明4、判斷樹例:假設(shè)學(xué)校的獎(jiǎng)學(xué)金有兩種,且記為獎(jiǎng)學(xué)金A和獎(jiǎng)學(xué)金B(yǎng)。對(duì)于獎(jiǎng)學(xué)金A,凡各科成績(jī)平均在88分以上、單科成績(jī)不低于75分、英語平均在80分以上者可申請(qǐng)一等獎(jiǎng)學(xué)金(金額400元);凡各科成績(jī)平均在85分以上、單科成績(jī)不低于70分、英語平均在80分以上者可申請(qǐng)二等獎(jiǎng)學(xué)金(金額300元)。對(duì)于獎(jiǎng)學(xué)金B(yǎng),凡各科成績(jī)平均在92分以上、單科成績(jī)不低于85分、英語平均在90分以上者可申請(qǐng)?zhí)氐泉?jiǎng)學(xué)金(金額1500元);凡各科成績(jī)平均在90分以上、單科成績(jī)不低于80分、英語平均在85分以上者可申請(qǐng)一等獎(jiǎng)學(xué)金(金額800元);凡各科成績(jī)平均在88分以上、單科成績(jī)不低于75分、英語平均在80分以上者可申請(qǐng)二等獎(jiǎng)學(xué)金(金額400元);凡各科成績(jī)平均在85分以上、單科成績(jī)不低于70分、英語平均在80分以上者可申請(qǐng)三等獎(jiǎng)學(xué)金(金額300元)。用例說明有兩個(gè)條件:獎(jiǎng)學(xué)金種類,成績(jī)。第一個(gè)條件有兩個(gè)狀態(tài):獎(jiǎng)學(xué)金A和獎(jiǎng)學(xué)金B(yǎng)。第二個(gè)條件有六個(gè)狀態(tài),這六個(gè)狀態(tài)依據(jù)平均成績(jī)、單科最低成績(jī)和英語平均成績(jī)來最終確定。有六個(gè)處理動(dòng)作,即最后發(fā)放的獎(jiǎng)學(xué)金金額。用例說明5、判斷表例:某工廠人事部門對(duì)一部分職工重新分配工作,其分配原則如下:“如果年齡不滿18歲,文化程度是小學(xué),則脫產(chǎn)學(xué)習(xí),文化程度是中學(xué),則當(dāng)電工。如果年齡滿18歲但不滿40歲,如果文化程度是小學(xué)或中學(xué),若是男性,則當(dāng)鉗工,若是女性,則當(dāng)車工,文化程度是大學(xué),則當(dāng)技術(shù)員。如果年滿40歲及以上者,文化程度是小學(xué)或中學(xué),則當(dāng)材料員,文化程度是大學(xué),則當(dāng)技術(shù)員?!庇美f明條件名稱取值含義性別0男性1女性年齡0未滿18歲1滿18歲但不滿40歲2滿40歲以上文化程度0小學(xué)1中學(xué)2大學(xué)用例說明123456789101112131415161718性別000000000111111111年齡000111222000111222文化程度012012012012012012脫產(chǎn)學(xué)習(xí)※※當(dāng)電工※※當(dāng)鉗工※※當(dāng)車工※※當(dāng)技術(shù)員☆※※☆※※當(dāng)材料員※※※※初始判斷表用例說明123456789性別0011年齡00112211文化程度012010101脫產(chǎn)學(xué)習(xí)※當(dāng)電工※當(dāng)鉗工※※當(dāng)車工※※當(dāng)技術(shù)員※當(dāng)材料員※※簡(jiǎn)化的判斷表判定表判定表的組成元素條件樁(ConditionStub):列出各種條件的對(duì)象,如發(fā)貨單金額,賒欠天數(shù)等,每行寫一個(gè)條件對(duì)象條件條目(Conditienentry):列出各條件對(duì)象的取值,條件條目的每一列表示了一個(gè)可能的條件組合動(dòng)作樁(actionstub):列出所有可能采取的動(dòng)作,如發(fā)出發(fā)貨單等,每行寫一個(gè)動(dòng)作動(dòng)作條目(actioneutry):列出各種條件組合下應(yīng)采取的動(dòng)作“審批發(fā)貨單”加工的判定表發(fā)貨單金額>500>500≤500≤500賒欠天數(shù)>60≤60>60≤60發(fā)不批準(zhǔn)通知√發(fā)出批準(zhǔn)書√√√發(fā)出發(fā)貨單√√√發(fā)出賒欠報(bào)告√判定表的其它形式發(fā)貨單金額>500≤500-賒欠天數(shù)>60>60≤60發(fā)不批準(zhǔn)通知√發(fā)出批準(zhǔn)書√√發(fā)出發(fā)貨單√√發(fā)出賒欠報(bào)告√發(fā)貨單金額≤5000011發(fā)貨單金額>5001100賒欠天數(shù)≤600101賒欠天數(shù)>601010發(fā)不批準(zhǔn)通知√發(fā)出批準(zhǔn)單√√√發(fā)出發(fā)貨單√√√發(fā)出賒欠報(bào)告√“審批發(fā)貨單”加工的簡(jiǎn)化判定表“審批發(fā)貨單”加工的另一種判定表判定樹本質(zhì)上與判定表是相同的,只是表示形式不同例如“審批發(fā)貨單”加工邏輯的判定樹描述入下:

內(nèi)容摘要結(jié)構(gòu)化分析方法概述數(shù)據(jù)流圖分層數(shù)據(jù)流圖的審查數(shù)據(jù)字典描述基本加工的小說明結(jié)構(gòu)化設(shè)計(jì)概述數(shù)據(jù)流圖到軟件體系結(jié)構(gòu)的映射初始結(jié)構(gòu)圖的改進(jìn)小結(jié)結(jié)構(gòu)化設(shè)計(jì)結(jié)構(gòu)化設(shè)計(jì)(StructuredDesign,簡(jiǎn)稱SD)是一種將結(jié)構(gòu)化分析得到的數(shù)據(jù)流圖映射成軟件體系結(jié)構(gòu)的設(shè)計(jì)方法強(qiáng)調(diào)模塊化、自頂向下逐步求精、信息隱蔽、高內(nèi)聚低耦合等設(shè)計(jì)準(zhǔn)則分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩大步驟概要設(shè)計(jì)是對(duì)軟件系統(tǒng)的總體設(shè)計(jì),采用結(jié)構(gòu)化設(shè)計(jì)方法,其任務(wù)是:將系統(tǒng)分解成模塊,確定每個(gè)模塊的功能、接口(模塊間傳遞的數(shù)據(jù))及其調(diào)用關(guān)系,并用模塊及其對(duì)模塊的調(diào)用來構(gòu)建軟件的體系結(jié)構(gòu)詳細(xì)設(shè)計(jì)是對(duì)模塊實(shí)現(xiàn)細(xì)節(jié)的設(shè)計(jì),采用結(jié)構(gòu)化程序設(shè)計(jì)(StructuredProgramming,簡(jiǎn)稱SP)方法SA、SD和SP構(gòu)成完整的結(jié)構(gòu)化方法體系結(jié)構(gòu)圖用結(jié)構(gòu)圖(StructureChert)來描述軟件系統(tǒng)的體系結(jié)構(gòu)描述一個(gè)軟件系統(tǒng)由哪些模塊組成,以及模塊之間的調(diào)用關(guān)系結(jié)構(gòu)圖的基本成分有:模塊、調(diào)用和數(shù)據(jù)模塊模塊(module):指具有一定功能的可以用模塊名調(diào)用的一組程序語句,如函數(shù)、子程序等它們是組成程序的基本單元一個(gè)模塊具有其外部特征和內(nèi)部特征外部特征包括:模塊的接口(模塊名、輸入/輸出參數(shù)、返回值等)和模塊的功能內(nèi)部特征包括:模塊的內(nèi)部數(shù)據(jù)和完成其功能的程序代碼在SD中,我們只關(guān)注模塊的外部特征,而忽略其內(nèi)部特征調(diào)用和數(shù)據(jù)調(diào)用(call):用從一個(gè)模塊指向另一個(gè)模塊的箭頭來表示,其含義是前者調(diào)用了后者為了方便,有時(shí)常用直線替代箭頭,此時(shí),表示位于上方的模塊調(diào)用位于下方的模塊數(shù)據(jù)(data):模塊調(diào)用時(shí)需傳遞的參數(shù)可通過在調(diào)用箭頭旁附加一個(gè)小箭頭和數(shù)據(jù)名來表示結(jié)構(gòu)圖中的輔助符號(hào)DBCA模塊A有條件地調(diào)用模塊B或CDBCA模塊A循環(huán)調(diào)用模塊B和C遞歸調(diào)用結(jié)構(gòu)圖的幾個(gè)概念深度:程序結(jié)構(gòu)圖中控制的層數(shù),例如圖中所示的結(jié)構(gòu)圖的深度是5寬度:程序結(jié)構(gòu)圖中同一層次上模塊總數(shù)的最大值,例如圖中所示的結(jié)構(gòu)圖的寬度為7扇出(fanout):該模塊直接調(diào)用的模塊數(shù)目。例如,例如圖中模塊M的扇出是4,模塊A的是2,模塊B的扇出是1扇入(fanin):能直接調(diào)用該模塊的模塊數(shù)目。例如圖中模塊G的扇入是1,模塊I的扇入是2,模塊R的扇入是4WBKAEHJDGFILCMNOPQR深度寬度扇入扇出相關(guān)指標(biāo)的含義深度和寬度在一定程序上反映了程序的規(guī)模和復(fù)雜程度相對(duì)而言,如果程序結(jié)構(gòu)圖的深度和寬度較大,則說明程序的規(guī)模和復(fù)雜程度都較大。模塊的扇入扇出會(huì)影響結(jié)構(gòu)圖的深度和寬度,例如減少模塊的扇出,可能導(dǎo)致寬度變小而深度增加一個(gè)模塊的扇出過大通常意味著該模塊比較復(fù)雜,然而扇出太少,可能導(dǎo)致深度的增加一般情況,一個(gè)模塊的扇出以3~9為宜一個(gè)模塊的扇入表示有多少模塊可直接調(diào)用它,它反映了該模塊的復(fù)用(reuse)程度,因此模塊的扇入越大越好啟發(fā)式設(shè)計(jì)策略-1按照模塊化設(shè)計(jì)原則,相應(yīng)的啟發(fā)式設(shè)計(jì)策略如下:改造程序結(jié)構(gòu)圖,降低耦合度,提高內(nèi)聚度避免高扇出,并隨著深度的增加,力求高扇入避免如圖a那樣的“平鋪”形態(tài),較好的結(jié)構(gòu)圖形態(tài)是如圖b那樣的“橢圓”型(a)平鋪形態(tài)(b)橢圓形態(tài)啟發(fā)式設(shè)計(jì)策略-2模塊的影響范圍應(yīng)限制在該模塊的控制范圍內(nèi),例如下圖中圖a中,模塊B2的影響范圍(模塊A)不在其控制范圍(模塊B2)內(nèi)圖b中,決策控制是在頂層模塊,其影響范圍(A、B2)在控制范圍內(nèi),但是從決策控制模塊到被控模塊之間相差多個(gè)層次圖c和d較合適,圖d為最好(c)TopXBB1AYB2TopXYABB2B1(d)XBB1YTopXBB1YAB2(a)(b)ATopB2啟發(fā)式設(shè)計(jì)策略-3降低模塊接口的復(fù)雜程度和冗余程度,提高一致性模塊接口上應(yīng)盡可能傳遞簡(jiǎn)單數(shù)據(jù),而且傳遞的數(shù)據(jù)應(yīng)保持與模塊的功能相一致,即不傳遞與模塊功能無關(guān)的數(shù)據(jù)模塊的功能應(yīng)是可預(yù)測(cè)的,避免對(duì)模塊施加過多的限制模塊功能可預(yù)測(cè)是指該模塊對(duì)相同的輸入能產(chǎn)生相同的輸出限制一個(gè)模塊只處理單一的功能,那么,這個(gè)模塊體現(xiàn)出高內(nèi)聚盡可能設(shè)計(jì)單入口和單出口的模塊單入口和單出口的模塊能有效地避免內(nèi)容耦合結(jié)構(gòu)化設(shè)計(jì)的步驟建立初始結(jié)構(gòu)圖將整個(gè)軟件看作一個(gè)大的功能模塊,通過功能分解不斷將其分解成若干個(gè)較小的功能模塊,直至得到一組不必再分解的模塊(結(jié)構(gòu)圖中的底層模塊)對(duì)結(jié)構(gòu)圖進(jìn)行改進(jìn)可根據(jù)設(shè)計(jì)準(zhǔn)則和啟發(fā)式設(shè)計(jì)策略對(duì)初始結(jié)構(gòu)圖進(jìn)行改進(jìn)書寫設(shè)計(jì)文檔書寫設(shè)計(jì)規(guī)格說明,特別要為每個(gè)模塊書寫模塊的功能、接口、約束和限制等設(shè)計(jì)評(píng)審內(nèi)容摘要結(jié)構(gòu)化分析方法概述數(shù)據(jù)流圖分層數(shù)據(jù)流圖的審查數(shù)據(jù)字典描述基本加工的小說明結(jié)構(gòu)化設(shè)計(jì)概述數(shù)據(jù)流圖到軟件體系結(jié)構(gòu)的映射初始結(jié)構(gòu)圖的改進(jìn)小結(jié)數(shù)據(jù)流圖到軟件體系結(jié)構(gòu)的映射結(jié)構(gòu)化設(shè)計(jì)是將結(jié)構(gòu)化分析的結(jié)果(數(shù)據(jù)流圖)映射成軟件的體系結(jié)構(gòu)(結(jié)構(gòu)圖)根據(jù)信息流的特點(diǎn),可將數(shù)據(jù)流圖分為變換型數(shù)據(jù)流圖和事務(wù)型數(shù)據(jù)流圖,其對(duì)應(yīng)的映射分別稱為變換分析和事務(wù)分析信息流可分為兩類:變換流(transform)事務(wù)流(transaction)變換流變換流型的DFD圖可明顯地分成輸入、變換、輸出三部分信息沿著輸入通路進(jìn)入系統(tǒng),并將外部形式轉(zhuǎn)換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心的處理,再沿著輸出通路轉(zhuǎn)換成外部形式后離開系統(tǒng),具有這種特征的信息流稱為變換流事務(wù)流數(shù)據(jù)流沿著輸入通路到達(dá)一個(gè)事務(wù)中心,事務(wù)中心根據(jù)輸入數(shù)據(jù)的類型在若干條動(dòng)作通路(actionpath)中選出一條來執(zhí)行,具有這種特征的信息流稱為事務(wù)流事務(wù)中心的任務(wù)是:接收事務(wù)(輸入數(shù)據(jù))分析每個(gè)事務(wù)以確定它的類型根據(jù)事務(wù)類型選取一條動(dòng)作通路數(shù)據(jù)流圖映射到結(jié)構(gòu)圖的步驟1.復(fù)審和精化數(shù)據(jù)流圖復(fù)審DFD的頂層圖,確保系統(tǒng)的輸入、輸出數(shù)據(jù)流符合系統(tǒng)規(guī)格說明的要求復(fù)審分層DFD,以確保它符合軟件的功能需求必要時(shí)對(duì)DFD進(jìn)行精化。2.確定數(shù)據(jù)流圖的類型根據(jù)DFD的信息流特征,確定DFD是變換型的還是事務(wù)型的3.將DFD映射成初始結(jié)構(gòu)圖采用變換分析或事務(wù)分析技術(shù),將DFD映射成初始結(jié)構(gòu)圖4.改進(jìn)初始結(jié)構(gòu)圖根據(jù)軟件設(shè)計(jì)準(zhǔn)則,采用啟發(fā)式設(shè)計(jì)策略,對(duì)初始結(jié)構(gòu)圖進(jìn)行改進(jìn),以改善軟件質(zhì)量變換分析1.劃定輸入流和輸出流的邊界,確定變換中心概念物理輸入:系統(tǒng)輸入端的數(shù)據(jù)流物理輸出:系統(tǒng)輸出端的數(shù)據(jù)流邏輯輸入:變換中心的輸入數(shù)據(jù)流邏輯輸出:變換中心的輸出數(shù)據(jù)流物理輸入要經(jīng)過編輯、格式轉(zhuǎn)換、合法性檢查等輔助性加工后變成純粹的邏輯輸入再傳給變換中心;變換中心產(chǎn)生的邏輯輸出要經(jīng)過格式轉(zhuǎn)換、組成物理塊、緩沖處理等輔助性加工后變成物理輸出,再送到系統(tǒng)外確定邏輯輸入:從物理輸入端開始,一步步向系統(tǒng)的中間移動(dòng),可找到離物理輸入端最遠(yuǎn)的,但仍可被看作系統(tǒng)輸入的那個(gè)數(shù)據(jù)流,就是邏輯輸入確定邏輯輸出:從物理輸出端開始,一步步向系統(tǒng)的中間移動(dòng),可找到離物理輸出端最遠(yuǎn)的,但仍可被看作系統(tǒng)輸出的那個(gè)數(shù)據(jù)流,就是邏輯輸出確定變換中心:確定了所有的邏輯輸入/輸出后,位于邏輯輸入和邏輯輸出之間的部分就是變換中心這種劃分可能因人而異,并不唯一,但差別不會(huì)很大,對(duì)最后的程序結(jié)構(gòu)影響也不大例如,下圖是考務(wù)處理系統(tǒng)中“統(tǒng)計(jì)成績(jī)”子圖經(jīng)精化后的DFD,其中的虛線指出了輸入流和輸出流的邊界。其中,“合格標(biāo)準(zhǔn)”既是物理輸入,又是邏輯輸入2.進(jìn)行第一級(jí)分解第一級(jí)分解是將DFD映射成變換型的程序結(jié)構(gòu)主控模塊:完成整個(gè)系統(tǒng)的功能輸入流控制模塊:接收所有輸入數(shù)據(jù)變換流控制模塊:對(duì)內(nèi)部形式的數(shù)據(jù)進(jìn)行加工處理,實(shí)現(xiàn)輸入到輸出的變換輸出流控制模塊:產(chǎn)生所有輸出數(shù)據(jù)考務(wù)處理系統(tǒng)中“統(tǒng)計(jì)成績(jī)”DFD子圖分解后的結(jié)構(gòu)圖對(duì)大型系統(tǒng)可以將上述的一個(gè)模塊畫成多個(gè)模塊(如每個(gè)輸入/輸出通路畫一個(gè)模塊)分解的原則是在完成控制功能,并保持低耦合高內(nèi)聚的前提下,盡量減少模塊數(shù)3.進(jìn)行第二級(jí)分解輸入流控制模塊的分解:從變換中心的邊界開始,沿著輸入通路向外移動(dòng),把輸入通路上的每個(gè)加工映射成程序結(jié)構(gòu)中輸入流控制模塊的一個(gè)低層??燧敵隽骺刂颇K的分解:從變換中心的邊界開始,沿著輸出通路向外移動(dòng),把輸出通路上的每個(gè)加工映射成程序結(jié)構(gòu)中輸出流控制模塊的一個(gè)低層??熳儞Q流控制模塊的分解:把變換中心的每個(gè)加工映射成受變換控制模塊控制的一個(gè)低層模塊考務(wù)處理系統(tǒng)中“統(tǒng)計(jì)成績(jī)”DFD子圖第二級(jí)分解后所得到的初始結(jié)構(gòu)圖說明每個(gè)模塊,內(nèi)容包括:模塊的接口描述模塊的局部信息(局部數(shù)據(jù)結(jié)構(gòu))處理過程陳述約束和限制條件4.標(biāo)注輸入輸出信息第二級(jí)分解后得到軟件的初始結(jié)構(gòu)圖。然后,根據(jù)DFD,在初始結(jié)構(gòu)圖上標(biāo)注模塊之間傳遞的輸入信息和輸出信息事務(wù)分析1.確定事務(wù)中心事務(wù)中心位于數(shù)條動(dòng)作路徑的起點(diǎn),這些動(dòng)作路徑呈幅射狀從該點(diǎn)流出2.將DFD圖映射成事務(wù)型的程序結(jié)構(gòu)事務(wù)型的結(jié)構(gòu)圖如下圖,其中:1)主控模塊:完成整個(gè)系統(tǒng)的功能2)接收模塊:接收輸入數(shù)據(jù)(事務(wù))3)發(fā)送模塊:根據(jù)輸入事務(wù)的類型,選擇一個(gè)動(dòng)作路徑控制模塊4)動(dòng)作路徑控制模塊:完成相應(yīng)的動(dòng)作路徑所執(zhí)行的子功能DFD圖映射成事務(wù)型的程序結(jié)構(gòu)3.分解每條動(dòng)作路徑所對(duì)應(yīng)的結(jié)構(gòu)圖

1)接收模塊的分解 從事務(wù)中心開始,沿著輸入路徑向外移動(dòng),把輸入路徑上的每個(gè)加工映射成結(jié)構(gòu)圖中受接收模塊控制的一個(gè)低層模塊

2)動(dòng)作路徑控制模塊的分解 首先確定每條動(dòng)作路徑的流類型(變換流或事務(wù)流),然后,運(yùn)用變換分析或事務(wù)分析,將每條動(dòng)作路徑映射成與其流特性相對(duì)應(yīng)的以動(dòng)作路徑控制模塊為根模塊的結(jié)構(gòu)圖分層DFD的映射對(duì)于分層數(shù)據(jù)流圖,0層圖常常反映了系統(tǒng)由哪些子系統(tǒng)組成,此時(shí)可先將0層圖映射成下圖形式的結(jié)構(gòu)圖0層圖每個(gè)加工的DFD子圖可映射成以相應(yīng)模塊為根模塊的結(jié)構(gòu)子圖如果DFD子圖中的加工還可分解成一張子圖,則再將其映射成以相應(yīng)模塊為根模塊

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論