版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
精選優(yōu)質(zhì)文檔-----傾情為你奉上精選優(yōu)質(zhì)文檔-----傾情為你奉上專(zhuān)心---專(zhuān)注---專(zhuān)業(yè)專(zhuān)心---專(zhuān)注---專(zhuān)業(yè)精選優(yōu)質(zhì)文檔-----傾情為你奉上專(zhuān)心---專(zhuān)注---專(zhuān)業(yè)山東輕工業(yè)學(xué)院教師授課教案課程名稱(chēng):軟件工程課程代碼:學(xué)分:3課程類(lèi)別:選修課開(kāi)課單位:信息科學(xué)與技術(shù)學(xué)院授課班級(jí):計(jì)科07-12授課教師:趙培英山東輕工業(yè)學(xué)院教務(wù)處制
授課時(shí)間2009年10月16日星期2009年10月21日星期2009年10月23授課內(nèi)容概要第五章結(jié)構(gòu)化分析與設(shè)計(jì)第一節(jié)結(jié)構(gòu)化分析第二節(jié)結(jié)構(gòu)化設(shè)計(jì)本章小結(jié)、部分習(xí)題選講目的要求了解結(jié)構(gòu)化分析模型;了解DFD的審查;掌握DFD畫(huà)法;掌握DD內(nèi)容;掌握DFD到結(jié)構(gòu)圖的變換。重點(diǎn)分層DFD畫(huà)法;DFD到結(jié)構(gòu)圖的變換。難點(diǎn)分層DFD畫(huà)法;DFD到結(jié)構(gòu)圖的變換。作業(yè)布置1.請(qǐng)說(shuō)明結(jié)構(gòu)化分析模型的結(jié)構(gòu)?2.簡(jiǎn)述畫(huà)分層數(shù)據(jù)流圖的步驟?3.簡(jiǎn)述如何進(jìn)行分層數(shù)據(jù)流圖的審查。4.簡(jiǎn)述如何將DFD映射到結(jié)構(gòu)圖?參考書(shū)1.《軟件工程》錢(qián)樂(lè)秋等清華大學(xué)出版社2.軟件工程導(dǎo)論(第四版),張海藩主編,清華大學(xué)出版社,2003年。3.面向?qū)ο笈c經(jīng)典軟件工程(第5版)(英文影印版),(美)StephenR.Schach主編,機(jī)械工業(yè)出版社,2002年。課型理論課學(xué)時(shí)分配復(fù)習(xí)5分鐘主要教具多媒體講授35分鐘教學(xué)方法多媒體課件指導(dǎo)2分鐘教學(xué)手段講授結(jié)合實(shí)例總結(jié)3分鐘備注授課:雙周周三34,每周周五34,輕化B507答疑:每周四78節(jié),機(jī)電C415學(xué)時(shí)分配:指本章節(jié)每節(jié)課(45分鐘)的平均分配情況
第五章結(jié)構(gòu)化分析與設(shè)計(jì)一、結(jié)構(gòu)化分析概述主要思想:抽象:從作為整體的軟件系統(tǒng)開(kāi)始,每一抽象層次上只關(guān)注于系統(tǒng)的輸入輸出分解:自頂向下逐層分解,不斷分解為子系統(tǒng),模塊……隨著分解層次的增加,抽象的級(jí)別越來(lái)越低,也越接近問(wèn)題的解(算法和數(shù)據(jù)結(jié)構(gòu))結(jié)構(gòu)化分析過(guò)程獲得當(dāng)前系統(tǒng)的具體模型(物理模型)抽象出當(dāng)前系統(tǒng)的邏輯模型分析建立目標(biāo)系統(tǒng)的邏輯模型為目標(biāo)系統(tǒng)的邏輯模型作補(bǔ)充結(jié)構(gòu)化分析模型DD:核心,包含所有數(shù)據(jù)的描述DFD:用于功能建模,描述系統(tǒng)的輸入數(shù)據(jù)流如何經(jīng)過(guò)一系列的加工變換逐步變換成系統(tǒng)的輸出數(shù)據(jù)流ERD:用于數(shù)據(jù)建模,描述DD中數(shù)據(jù)之間的關(guān)系狀態(tài)轉(zhuǎn)換圖:用于行為建模,描述系統(tǒng)接收哪些外部事件,以及在外部事件的作用下的狀態(tài)遷移情況二、數(shù)據(jù)流圖DataFlowDiagram(簡(jiǎn)稱(chēng)DFD):描述輸入數(shù)據(jù)流到輸出數(shù)據(jù)流的變換(即加工)過(guò)程,用于對(duì)系統(tǒng)的功能建模?;驹匕ǎ簆88圖示例:圖書(shū)訂購(gòu)系統(tǒng)DFD數(shù)據(jù)流圖的擴(kuò)充符號(hào):描述一個(gè)加工的多個(gè)數(shù)據(jù)流之間的關(guān)系星號(hào)(*):表示數(shù)據(jù)流之間存在“與”關(guān)系加號(hào)(+):表示數(shù)據(jù)流之間存在“或”關(guān)系異或(⊕):表示數(shù)據(jù)流之間存在“異或”(互斥)關(guān)系對(duì)數(shù)據(jù)流圖進(jìn)行分層GeorgeMiller在著名的論文“神奇的數(shù)字7加減2:我們處理信息的能力的某種限制”中指出:人們?cè)谝欢螘r(shí)間內(nèi)的短期記憶似乎限制在5~9件事情之內(nèi)根據(jù)自頂向下逐層分解的思想將數(shù)據(jù)流圖畫(huà)成層次結(jié)構(gòu)每個(gè)層次畫(huà)在獨(dú)立的數(shù)據(jù)流圖中,加工個(gè)數(shù)可大致控制在“7加減2”的范圍中數(shù)據(jù)流圖的各個(gè)層次頂層圖只有代表整個(gè)軟件系統(tǒng)的1個(gè)加工,描述了軟件系統(tǒng)與外界(源或宿)之間的數(shù)據(jù)流頂層圖中的加工經(jīng)分解后的圖稱(chēng)為0層圖(只有1張)中間層圖中至少有一個(gè)加工(也可以有多個(gè))在下層圖中分解成一張子圖處于最底層的圖稱(chēng)為底層圖,其中所有的加工不再分解成新的子圖圖和加工的編號(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ù)流圖畫(huà)法示例——資格和水平考試的考務(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)
—功能需求對(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)審定合格者制作考生通知單送給考生進(jìn)行成績(jī)分類(lèi)統(tǒng)計(jì)(按地區(qū)、年齡、文化程度、職業(yè)、考試級(jí)別等分類(lèi))和試題難度分析,產(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í)別},其中{w}表示w重復(fù)多次考生名冊(cè)=正式報(bào)名單統(tǒng)計(jì)分析表=分類(lèi)統(tǒng)計(jì)表+難度分析表考生通知單=準(zhǔn)考證號(hào)+姓名+通信地址+考試級(jí)別+考試成績(jī)+合格標(biāo)志(1).畫(huà)系統(tǒng)頂層圖確定源或宿確定加工確定數(shù)據(jù)流頂層圖通常沒(méi)有文件(2).畫(huà)系統(tǒng)0層圖以下確定加工、數(shù)據(jù)流、文件、源或宿的一般方法適用于0層圖及其各層子圖確定加工:指父圖中某加工分解的子加工根據(jù)功能分解來(lái)確定加工:將一個(gè)復(fù)雜的功能分解成若干個(gè)較小的功能,較多應(yīng)用于高層DFD中的分解根據(jù)業(yè)務(wù)處理流程確定加工:父圖中待分解加工的業(yè)務(wù)處理流程中的每一步都可能是一個(gè)子加工,較多應(yīng)用于低層DFD中的分解特別要注意在業(yè)務(wù)流程中數(shù)據(jù)流發(fā)生變化或數(shù)據(jù)流的值發(fā)生變化的地方,應(yīng)該存在一個(gè)加工,例如:圖5.6確定數(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ù)流,例如:圖5.7確定文件如果父圖中該加工存在讀寫(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ě)確定源和宿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ī)加工引用(3).加工細(xì)化(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è)(文件)加工1(考試報(bào)名)子圖3個(gè)子加工:檢查報(bào)名單、編準(zhǔn)考證號(hào)、登記考生“合格報(bào)名單”和“正式報(bào)名單”是新增加的數(shù)據(jù)流,其它數(shù)據(jù)流都是加工1原有的在加工1的分解中沒(méi)有新的文件產(chǎn)生加工2(統(tǒng)計(jì)成績(jī))子圖總結(jié):畫(huà)分層數(shù)據(jù)流圖的步驟1.畫(huà)系統(tǒng)的輸入和輸出,得頂層圖2.畫(huà)系統(tǒng)內(nèi)部,得0層圖3.畫(huà)加工內(nèi)部,得到各級(jí)子圖4.重復(fù)第3步,直至每個(gè)尚未分解的加工都足夠簡(jiǎn)單(即不必再分解)三、分層數(shù)據(jù)流圖的審查分層數(shù)據(jù)流圖的一致性和完整性一致性:分層DFD中不存在矛盾和沖突完整性:分層DFD本身的完整性,即是否有遺漏的數(shù)據(jù)流、加工等元素需注意的問(wèn)題分解的程度1.分層數(shù)據(jù)流圖的一致性父圖與子圖平衡:任何一張DFD子圖邊界上的輸入/輸出數(shù)據(jù)流必須與其父圖中對(duì)應(yīng)的加工的輸入/輸出數(shù)據(jù)流保持一致數(shù)據(jù)守恒一個(gè)加工所有輸出數(shù)據(jù)流中的數(shù)據(jù),必須能從該加工的輸入數(shù)據(jù)流中直接獲得,或者能通過(guò)該加工的處理而產(chǎn)生多余的數(shù)據(jù)流:加工未使用其輸入數(shù)據(jù)流中的某些數(shù)據(jù)項(xiàng)局部文件:考慮分層數(shù)據(jù)流中一個(gè)文件應(yīng)畫(huà)在哪些DFD中,而不該畫(huà)在哪些DFD中任何一個(gè)文件都應(yīng)同時(shí)包含讀和寫(xiě)該文件的數(shù)據(jù)流,除非該文件是當(dāng)前系統(tǒng)與另一個(gè)軟件系統(tǒng)所共享(應(yīng)在需求說(shuō)明中指明)在一張DFD中當(dāng)一個(gè)文件作為若干個(gè)加工之間的交界面(一個(gè)寫(xiě)另一個(gè)讀)時(shí)該文件應(yīng)畫(huà)出在一張DFD中當(dāng)一個(gè)文件僅與一個(gè)加工進(jìn)行讀寫(xiě)操作,并且在該DFD的父(祖先)圖中未出現(xiàn)過(guò)該文件則該文件是相應(yīng)加工的內(nèi)部文件,在當(dāng)前DFD中不應(yīng)畫(huà)出一個(gè)文件一旦在某張DFD中畫(huà)出,那么在它的子孫圖中應(yīng)根據(jù)父圖與子圖平衡的原則畫(huà)出該文件在子孫圖中,這個(gè)文件可能只有讀或?qū)懳募械囊环N數(shù)據(jù)流一個(gè)加工的輸出數(shù)據(jù)流不能與該加工的輸入數(shù)據(jù)流同名案例分析:父圖與子圖不平衡的實(shí)例:加工2的輸入數(shù)據(jù)流有M和N,輸出數(shù)據(jù)流是T;而子圖(右圖)邊界上的輸入數(shù)據(jù)流是N,輸出數(shù)據(jù)流是S和T父圖與子圖平衡的實(shí)例:如果父圖某加工的一個(gè)數(shù)據(jù)流,對(duì)應(yīng)于子圖中幾個(gè)數(shù)據(jù)流,而子圖中組成這些數(shù)據(jù)流的數(shù)據(jù)項(xiàng)全體正好等于父圖中的這個(gè)數(shù)據(jù)流,那么它們?nèi)运闶瞧胶獾臄?shù)據(jù)不守恒的實(shí)例:由于“正式成績(jī)清單”中缺少“考生通知單”中的姓名、通信地址等數(shù)據(jù),這些數(shù)據(jù)也無(wú)法由加工2.3自己產(chǎn)生,因此,加工2.3不滿足數(shù)據(jù)守恒的條件局部文件示例:“試題得分清單”文件是加工2的局部文件,根據(jù)抽象原則不應(yīng)該將這類(lèi)表示加工細(xì)節(jié)的局部文件畫(huà)在其父圖(如圖c)中,正確的畫(huà)法是圖a和b2.分層數(shù)據(jù)流圖的完整性每個(gè)加工至少有一個(gè)輸入數(shù)據(jù)流和一個(gè)輸出數(shù)據(jù)流在整套分層數(shù)據(jù)流中,每個(gè)文件應(yīng)至少有一個(gè)加工讀該文件,有另一個(gè)加工寫(xiě)該文件分層數(shù)據(jù)流圖中的每個(gè)數(shù)據(jù)流和文件都必須命名(除了流入或流出文件的數(shù)據(jù)流),并保持與數(shù)據(jù)字典的一致分層DFD中的每個(gè)基本加工(即不再分解子圖的加工)都應(yīng)有一個(gè)加工規(guī)約3.構(gòu)造分層DFD需注意的問(wèn)題適當(dāng)命名畫(huà)數(shù)據(jù)流而不是畫(huà)控制流:判斷準(zhǔn)則:這條線上是否有數(shù)據(jù)流過(guò)避免一個(gè)加工有過(guò)多的數(shù)據(jù)流:當(dāng)一個(gè)加工存在許多數(shù)據(jù)流時(shí)往往意味著分解不合理解決辦法:重新分解1)把需重新分解的某張圖(含有該復(fù)雜加工的圖)的所有子圖連接成一張圖2)把連接后的圖重新劃分成幾個(gè)部分,使各部分之間的聯(lián)系最小3)重新定義父圖,即第2)步中的每個(gè)部分作為父圖中的一個(gè)加工4)重新建立各子圖,即第2)步中的每個(gè)部分都是一張子圖5)為所有的加工重新命名和編號(hào)分解盡可能均勻理想目標(biāo):任何兩個(gè)加工的分解層數(shù)之差不超過(guò)1應(yīng)盡可能使分解均勻,對(duì)于分解不均勻的情況應(yīng)重新分解先考慮穩(wěn)定狀態(tài),忽略瑣碎的枝節(jié):先考慮穩(wěn)定狀態(tài)下的各種問(wèn)題,暫時(shí)不考慮系統(tǒng)如何啟動(dòng)、如何結(jié)束、出錯(cuò)處理以及性能等問(wèn)題隨時(shí)準(zhǔn)備重畫(huà):對(duì)于一個(gè)復(fù)雜的軟件系統(tǒng),往往要經(jīng)過(guò)反復(fù)多次的重畫(huà)和修改才能構(gòu)造出完整、合理、滿足用戶需求的分層DFD4.分解的程度可參照以下幾條與分解有關(guān)的原則:7加減2分解應(yīng)自然,概念上合理、清晰只要不影響DFD的易理解性,可適當(dāng)多分解幾個(gè)加工,以減少層數(shù)一般,上層分解得快些(即多分解幾個(gè)加工),下層分解得慢些(即少分解幾個(gè)加工)分解要均勻四、數(shù)據(jù)字典數(shù)據(jù)流圖與數(shù)據(jù)字典是密不可分的,兩者結(jié)合起來(lái)構(gòu)成軟件的邏輯模型(分析模型)數(shù)據(jù)字典由字典條目組成,每個(gè)條目描述DFD中的一個(gè)元素?cái)?shù)據(jù)字典條目包括:數(shù)據(jù)流、文件、數(shù)據(jù)項(xiàng)(組成數(shù)據(jù)流和文件的數(shù)據(jù))、加工、源或宿加工邏輯的詳細(xì)說(shuō)明可以用“小說(shuō)明”來(lái)描述(5.5節(jié))數(shù)據(jù)字典的描述符號(hào)p105各類(lèi)字典條目不同的開(kāi)發(fā)組織或團(tuán)隊(duì)可以根據(jù)項(xiàng)目的需要定義字典條目的描述內(nèi)容字典條目中的描述內(nèi)容主要包括DFD元素的基本信息(名稱(chēng)、別名、簡(jiǎn)述、注解)定義(數(shù)據(jù)類(lèi)型、數(shù)據(jù)組成)使用特點(diǎn)(取值范圍、使用頻率、激發(fā)條件)控制信息(來(lái)源、去向、訪問(wèn)權(quán)限)等五、描述基本加工的小說(shuō)明小說(shuō)明是基本加工的規(guī)約說(shuō)明,應(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)、編程語(yǔ)言等與設(shè)計(jì)和實(shí)現(xiàn)有關(guān)的細(xì)節(jié)加工邏輯的描述方法結(jié)構(gòu)化語(yǔ)言:介于自然語(yǔ)言和形式語(yǔ)言之間的一種半形式語(yǔ)言判定表:適用于加工邏輯包含多個(gè)條件,而不同的條件組合需做不同的動(dòng)作判定樹(shù):判定表的變種,它本質(zhì)上與判定表是相同的,只是表示形式不同七、結(jié)構(gòu)化設(shè)計(jì)概述結(jié)構(gòu)化設(shè)計(jì)(StructuredDesign,簡(jiǎn)稱(chēng)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ì)兩大步驟結(jié)構(gòu)圖1)基本知識(shí)用結(jié)構(gòu)圖(StructureChart)來(lái)描述軟件系統(tǒng)的體系結(jié)構(gòu)描述一個(gè)軟件系統(tǒng)由哪些模塊組成,以及模塊之間的調(diào)用關(guān)系結(jié)構(gòu)圖的基本成分有:模塊、調(diào)用和數(shù)據(jù)2)結(jié)構(gòu)圖中的輔助符號(hào)3)結(jié)構(gòu)圖的幾個(gè)概念深度:程序結(jié)構(gòu)圖中控制的層數(shù)寬度:程序結(jié)構(gòu)圖中同一層次上模塊總數(shù)的最大值扇出(fanout):該模塊直接調(diào)用的模塊數(shù)目。扇入(fanin):能直接調(diào)用該模塊的模塊數(shù)目。相關(guān)指標(biāo)的含義深度和寬度在一定程序上反映了程序的規(guī)模和復(fù)雜程度深度和寬度較大,說(shuō)明程序的規(guī)模和復(fù)雜程度都較大。模塊的扇入扇出會(huì)影響結(jié)構(gòu)圖的深度和寬度一個(gè)模塊扇出過(guò)大通常意味著該模塊比較復(fù)雜,然而扇出太少,可能導(dǎo)致深度的增加一般情況,一個(gè)模塊的扇出以3~9為宜一個(gè)模塊的扇入表示有多少模塊可直接調(diào)用它,它反映了該模塊的復(fù)用(reuse)程度,因此模塊的扇入越大越好2.啟發(fā)式設(shè)計(jì)策略按照模塊化設(shè)計(jì)原則,相應(yīng)的啟發(fā)式設(shè)計(jì)策略如下:改造程序結(jié)構(gòu)圖,降低耦合度,提高內(nèi)聚度避免高扇出,并隨著深度的增加,力求高扇入模塊的影響范圍應(yīng)限制在該模塊的控制范圍內(nèi)(p118)降低模塊接口的復(fù)雜程度和冗余程度,提高一致性:模塊接口上應(yīng)盡可能傳遞簡(jiǎn)單數(shù)據(jù),而且傳遞的數(shù)據(jù)應(yīng)保持與模塊的功能相一致,即不傳遞與模塊功能無(wú)關(guān)的數(shù)據(jù)模塊的功能應(yīng)是可預(yù)測(cè)的,避免對(duì)模塊施加過(guò)多的限制模塊功能可預(yù)測(cè)是指該模塊對(duì)相同的輸入能產(chǎn)生相同的輸出限制一個(gè)模塊只處理單一的功能,那么,這個(gè)模塊體現(xiàn)出高內(nèi)聚盡可能設(shè)計(jì)單入口和單出口的模塊:?jiǎn)稳肟诤蛦纬隹诘哪K能有效地避免內(nèi)容耦合3.結(jié)構(gòu)化設(shè)計(jì)的步驟建立初始結(jié)構(gòu)圖:將DFD映射到結(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ū)寫(xiě)設(shè)計(jì)文檔:書(shū)寫(xiě)設(shè)計(jì)規(guī)格說(shuō)明,特別為每個(gè)模塊書(shū)寫(xiě)功能、接口、約束和限制等設(shè)計(jì)評(píng)審八、數(shù)據(jù)流圖到軟件體系結(jié)構(gòu)的映射結(jié)構(gòu)化設(shè)計(jì)是將結(jié)構(gòu)化分析的結(jié)果(數(shù)據(jù)流圖)映射成軟件的體系結(jié)構(gòu)(結(jié)構(gòu)圖)將DFD分為變換型數(shù)據(jù)流圖和事務(wù)型數(shù)據(jù)流圖,對(duì)應(yīng)映射分別稱(chēng)為變換分析和事務(wù)分析分層DFD的映射1.信息流:分為變換流與事務(wù)流變換流特征:數(shù)據(jù)流圖可明顯地分成輸入、變換、輸出三部分事務(wù)流特征:數(shù)據(jù)流沿著輸入路徑到達(dá)一個(gè)事務(wù)中心,事務(wù)中心根據(jù)輸入數(shù)據(jù)的類(lèi)型在若干條動(dòng)作路徑中選擇一條來(lái)執(zhí)行。事務(wù)中心的任務(wù)是:接收輸入數(shù)據(jù)(即事務(wù));分析每個(gè)事務(wù)的類(lèi)型;根據(jù)事務(wù)類(lèi)型選擇執(zhí)行一條動(dòng)作路徑。實(shí)例:銀行業(yè)務(wù)中有存款、取款、查詢余額、開(kāi)戶、轉(zhuǎn)帳等多種事務(wù)2.數(shù)據(jù)流圖映射到結(jié)構(gòu)圖的步驟復(fù)審和精化數(shù)據(jù)流圖確定數(shù)據(jù)流圖的類(lèi)型(變換型、事務(wù)型)將DFD映射成初始結(jié)構(gòu)圖:采用變換分析(5.7.3節(jié))或事務(wù)分析(5.7.4節(jié))技術(shù),將DFD映射成初始結(jié)構(gòu)圖改進(jìn)初始結(jié)構(gòu)圖(5.8節(jié))3.變換分析變換分析的任務(wù)是將變換型的DFD映射成初始的結(jié)構(gòu)圖,步驟如下:劃定輸入流和輸出流的邊界,確定變換中心進(jìn)行第一級(jí)分解:將DFD映射成變換型的程序結(jié)構(gòu)進(jìn)行第二級(jí)分解:將DFD中的加工映射成結(jié)構(gòu)圖中的一個(gè)適當(dāng)?shù)哪K標(biāo)注輸入輸出信息:根據(jù)DFD,在初始結(jié)構(gòu)圖上標(biāo)注模塊間傳遞的輸入輸出信息1.確定輸入/出流邊界和變換中心相關(guān)概念:物理輸入/出:指系統(tǒng)輸入/出端的數(shù)據(jù)流邏輯輸入/出:指變換中心的輸入/出數(shù)據(jù)流基本步驟確定邏輯輸入:根據(jù)DFD從物理輸入端開(kāi)始,一步步向系統(tǒng)的中間移動(dòng),可找到離物理輸入端最遠(yuǎn)的,但仍可被看作系統(tǒng)輸入的那個(gè)(或那些)數(shù)據(jù)流,就是邏輯輸入確定邏輯輸出:根據(jù)DFD,從物理輸出端開(kāi)始,一步步向系統(tǒng)的中間移動(dòng),可找到離物理輸出端最遠(yuǎn)的,但仍可被看作系統(tǒng)輸出的那個(gè)(或那些)數(shù)據(jù)流,就是邏輯輸出確定變換中心:確定了所有的邏輯輸入和邏輯輸出后,位于邏輯輸入和邏輯輸出之間的部分就是變換中心示例:統(tǒng)計(jì)成績(jī)子圖的輸入、輸出流邊界2.進(jìn)行第一級(jí)分解將DFD映射成變換型的程序結(jié)構(gòu),p124圖5.303.進(jìn)行第二級(jí)分解將DFD中的加工映射成結(jié)構(gòu)圖中的一個(gè)適當(dāng)?shù)哪K分解步驟如下輸入控制模塊的分解:從變換中心的邊界開(kāi)始,沿著輸入路徑向外移動(dòng),把輸入路徑上的每個(gè)加工映射成結(jié)構(gòu)圖中受輸入控制模塊控制的一個(gè)低層模塊輸出控制模塊的分解:從變換中心的邊界開(kāi)始,沿著輸出路徑向外移動(dòng),把輸出路徑上的每個(gè)加工映射成結(jié)構(gòu)圖中受輸出控制模塊控制的一個(gè)低層模塊變換控制模塊的分解:把變換中心的每個(gè)加工映射成結(jié)構(gòu)圖中受變換控制模塊控制的一個(gè)低層模塊4.事務(wù)分析任務(wù):將事務(wù)型DFD映射成初始的結(jié)構(gòu)圖事務(wù)型的結(jié)構(gòu)圖如圖所示,包括:主控模塊:完成整個(gè)系統(tǒng)的功能接收模塊:接收輸入數(shù)據(jù)(事務(wù))發(fā)送模塊:根據(jù)輸入事務(wù)的類(lèi)型,選擇一個(gè)動(dòng)作路徑控制模塊動(dòng)作路徑控制模塊:完成相應(yīng)的動(dòng)作路徑所執(zhí)行的子功能事務(wù)分析的步驟確定事務(wù)中心:事務(wù)中心位于數(shù)條動(dòng)作路徑的起點(diǎn),這些動(dòng)作路徑呈幅射狀從該點(diǎn)流出將DFD映射成事務(wù)型的結(jié)構(gòu)圖分解每條動(dòng)作路徑所對(duì)應(yīng)的結(jié)構(gòu)圖接收模塊的分解:從事務(wù)中心開(kāi)始,沿著輸入路徑向外移動(dòng),把輸入路徑上的每個(gè)加工映射成結(jié)構(gòu)圖中受接收模塊控制的一個(gè)低層模塊動(dòng)作路徑控制模塊的分解:首先確定每條動(dòng)作路徑的流類(lèi)型(變換流或事務(wù)流),然后,運(yùn)用變換分析或事務(wù)分析,將每條動(dòng)作路徑映射成與其流特性相對(duì)應(yīng)的以動(dòng)作路徑控制模塊為根模塊的結(jié)構(gòu)圖5.分層DFD的映射0層圖反映了系統(tǒng)由哪些子系統(tǒng)組成,此時(shí)可先將0層圖映射成下圖中的結(jié)構(gòu)0層圖每個(gè)加工的DFD子圖可映射成以相應(yīng)模塊為根模塊的結(jié)構(gòu)子圖如果DFD子圖中的加工還可分解成一張子圖,則再將其映射成以相應(yīng)模塊為根模塊的結(jié)構(gòu)子圖依次一層一層分解下去得到最終的初始結(jié)構(gòu)圖如果初始結(jié)構(gòu)圖太大,我們也可以將它組織成分層的結(jié)構(gòu)圖案例分析:“考務(wù)處理系統(tǒng)”的初始結(jié)構(gòu)圖如書(shū)中圖5.35所示九、初始結(jié)構(gòu)圖的改進(jìn)改進(jìn)依據(jù):軟件設(shè)計(jì)的準(zhǔn)則和啟發(fā)式設(shè)計(jì)策略改進(jìn)往往不是一次完成的,需要進(jìn)行多次的反復(fù),有時(shí)還需要在多個(gè)改進(jìn)方案進(jìn)行選擇1.改進(jìn)實(shí)例1).“考試報(bào)名”結(jié)構(gòu)圖的改進(jìn)“考試報(bào)名”部分的結(jié)構(gòu)圖:“輸入報(bào)名單”模塊比較簡(jiǎn)單,可以和“檢查報(bào)名單”合并將“打印報(bào)名單出錯(cuò)信息”模塊合并到“檢查報(bào)名單”模塊,降低模塊間的耦合度最終三者合并為“輸入并檢查報(bào)名
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年人教版七年級(jí)地理上冊(cè)階段測(cè)試試卷含答案
- 2025年度貨車(chē)租賃合同書(shū):維修與保養(yǎng)責(zé)任分配3篇
- 2025年仁愛(ài)科普版八年級(jí)物理下冊(cè)月考試卷含答案
- 2025-2030年中國(guó)六氫異煙酸甲酯產(chǎn)業(yè)前景展望及投資風(fēng)險(xiǎn)評(píng)估報(bào)告
- 2025-2030年中國(guó)光波爐市場(chǎng)規(guī)模分析及發(fā)展建議研究報(bào)告
- 2025-2030年中國(guó)倒車(chē)?yán)走_(dá)行業(yè)發(fā)展前景分析與投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國(guó)低輻射LowE玻璃行業(yè)競(jìng)爭(zhēng)狀況及投資發(fā)展前景分析報(bào)告
- 臨時(shí)活動(dòng)場(chǎng)地租賃標(biāo)準(zhǔn)協(xié)議模板版B版
- 2025年新世紀(jì)版選修5化學(xué)下冊(cè)階段測(cè)試試卷
- 2025年華東師大版七年級(jí)科學(xué)上冊(cè)月考試卷含答案
- 基本藥物制度政策培訓(xùn)課件
- 一年級(jí)口算天天練(可直接打印)
- 軟件無(wú)線電原理與應(yīng)用第3版 課件 【ch02】軟件無(wú)線電理論基礎(chǔ)
- 國(guó)網(wǎng)山東電力生產(chǎn)技術(shù)改造原則
- 鐵路運(yùn)輸安全現(xiàn)場(chǎng)管理
- 2023年某保險(xiǎn)公司春節(jié)經(jīng)營(yíng)教材
- 劉都才-南方水稻田雜草發(fā)生動(dòng)態(tài)及防控技術(shù)
- 全自動(dòng)化學(xué)發(fā)光分析儀操作規(guī)程
- 深藍(lán)的故事(全3冊(cè))
- GB/T 42461-2023信息安全技術(shù)網(wǎng)絡(luò)安全服務(wù)成本度量指南
- 職校開(kāi)學(xué)第一課班會(huì)PPT
評(píng)論
0/150
提交評(píng)論