《軟件工程》教案-05-結(jié)構(gòu)化分析與設(shè)計_第1頁
《軟件工程》教案-05-結(jié)構(gòu)化分析與設(shè)計_第2頁
《軟件工程》教案-05-結(jié)構(gòu)化分析與設(shè)計_第3頁
《軟件工程》教案-05-結(jié)構(gòu)化分析與設(shè)計_第4頁
《軟件工程》教案-05-結(jié)構(gòu)化分析與設(shè)計_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

精選優(yōu)質(zhì)文檔-----傾情為你奉上精選優(yōu)質(zhì)文檔-----傾情為你奉上專心---專注---專業(yè)專心---專注---專業(yè)精選優(yōu)質(zhì)文檔-----傾情為你奉上專心---專注---專業(yè)山東輕工業(yè)學(xué)院教師授課教案課程名稱:軟件工程課程代碼:學(xué)分:3課程類別:選修課開課單位:信息科學(xué)與技術(shù)學(xué)院授課班級:計科07-12授課教師:趙培英山東輕工業(yè)學(xué)院教務(wù)處制

授課時間2009年10月16日星期2009年10月21日星期2009年10月23授課內(nèi)容概要第五章結(jié)構(gòu)化分析與設(shè)計第一節(jié)結(jié)構(gòu)化分析第二節(jié)結(jié)構(gòu)化設(shè)計本章小結(jié)、部分習(xí)題選講目的要求了解結(jié)構(gòu)化分析模型;了解DFD的審查;掌握DFD畫法;掌握DD內(nèi)容;掌握DFD到結(jié)構(gòu)圖的變換。重點分層DFD畫法;DFD到結(jié)構(gòu)圖的變換。難點分層DFD畫法;DFD到結(jié)構(gòu)圖的變換。作業(yè)布置1.請說明結(jié)構(gòu)化分析模型的結(jié)構(gòu)?2.簡述畫分層數(shù)據(jù)流圖的步驟?3.簡述如何進行分層數(shù)據(jù)流圖的審查。4.簡述如何將DFD映射到結(jié)構(gòu)圖?參考書1.《軟件工程》錢樂秋等清華大學(xué)出版社2.軟件工程導(dǎo)論(第四版),張海藩主編,清華大學(xué)出版社,2003年。3.面向?qū)ο笈c經(jīng)典軟件工程(第5版)(英文影印版),(美)StephenR.Schach主編,機械工業(yè)出版社,2002年。課型理論課學(xué)時分配復(fù)習(xí)5分鐘主要教具多媒體講授35分鐘教學(xué)方法多媒體課件指導(dǎo)2分鐘教學(xué)手段講授結(jié)合實例總結(jié)3分鐘備注授課:雙周周三34,每周周五34,輕化B507答疑:每周四78節(jié),機電C415學(xué)時分配:指本章節(jié)每節(jié)課(45分鐘)的平均分配情況

第五章結(jié)構(gòu)化分析與設(shè)計一、結(jié)構(gòu)化分析概述主要思想:抽象:從作為整體的軟件系統(tǒng)開始,每一抽象層次上只關(guān)注于系統(tǒng)的輸入輸出分解:自頂向下逐層分解,不斷分解為子系統(tǒng),模塊……隨著分解層次的增加,抽象的級別越來越低,也越接近問題的解(算法和數(shù)據(jù)結(jié)構(gòu))結(jié)構(gòu)化分析過程獲得當(dāng)前系統(tǒng)的具體模型(物理模型)抽象出當(dāng)前系統(tǒng)的邏輯模型分析建立目標(biāo)系統(tǒng)的邏輯模型為目標(biāo)系統(tǒng)的邏輯模型作補充結(jié)構(gòu)化分析模型DD:核心,包含所有數(shù)據(jù)的描述DFD:用于功能建模,描述系統(tǒng)的輸入數(shù)據(jù)流如何經(jīng)過一系列的加工變換逐步變換成系統(tǒng)的輸出數(shù)據(jù)流ERD:用于數(shù)據(jù)建模,描述DD中數(shù)據(jù)之間的關(guān)系狀態(tài)轉(zhuǎn)換圖:用于行為建模,描述系統(tǒng)接收哪些外部事件,以及在外部事件的作用下的狀態(tài)遷移情況二、數(shù)據(jù)流圖DataFlowDiagram(簡稱DFD):描述輸入數(shù)據(jù)流到輸出數(shù)據(jù)流的變換(即加工)過程,用于對系統(tǒng)的功能建模?;驹匕ǎ簆88圖示例:圖書訂購系統(tǒng)DFD數(shù)據(jù)流圖的擴充符號:描述一個加工的多個數(shù)據(jù)流之間的關(guān)系星號(*):表示數(shù)據(jù)流之間存在“與”關(guān)系加號(+):表示數(shù)據(jù)流之間存在“或”關(guān)系異或(⊕):表示數(shù)據(jù)流之間存在“異或”(互斥)關(guān)系對數(shù)據(jù)流圖進行分層GeorgeMiller在著名的論文“神奇的數(shù)字7加減2:我們處理信息的能力的某種限制”中指出:人們在一段時間內(nèi)的短期記憶似乎限制在5~9件事情之內(nèi)根據(jù)自頂向下逐層分解的思想將數(shù)據(jù)流圖畫成層次結(jié)構(gòu)每個層次畫在獨立的數(shù)據(jù)流圖中,加工個數(shù)可大致控制在“7加減2”的范圍中數(shù)據(jù)流圖的各個層次頂層圖只有代表整個軟件系統(tǒng)的1個加工,描述了軟件系統(tǒng)與外界(源或宿)之間的數(shù)據(jù)流頂層圖中的加工經(jīng)分解后的圖稱為0層圖(只有1張)中間層圖中至少有一個加工(也可以有多個)在下層圖中分解成一張子圖處于最底層的圖稱為底層圖,其中所有的加工不再分解成新的子圖圖和加工的編號頂層圖只有一個代表整個軟件系統(tǒng)的加工,該加工不必編號。0層圖中的加工編號分別為1,2,3,…子圖號:若父圖中的加工號x分解成某一子圖,則該子圖號記為“圖x”子圖中加工的編號:若父圖中的加工號為x的加工分解成某一子圖,則該子圖中的加工編號分別為x.1、x.2、x.3…分層數(shù)據(jù)流圖畫法示例——資格和水平考試的考務(wù)處理系統(tǒng)簡化的資格和水平考試的考務(wù)處理系統(tǒng)分成多個級別,如初級程序員、程序員、高級程序員、系統(tǒng)分析員等,凡滿足一定條件的考生都可參加某一級別的考試考試的合格標(biāo)準(zhǔn)將根據(jù)每年的考試成績由考試中心確定考試的閱卷由閱卷站進行,因此,閱卷工作不包含在軟件系統(tǒng)中資格和水平考試的考務(wù)處理系統(tǒng)

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

—部分?jǐn)?shù)據(jù)流的組成報名單=地區(qū)+序號+姓名+文化程度+職業(yè)+考試級別+通信地址正式報名單=準(zhǔn)考證號+報名單準(zhǔn)考證=地區(qū)+序號+姓名+準(zhǔn)考證號+考試級別+考場考生名單={準(zhǔn)考證號+考試級別},其中{w}表示w重復(fù)多次考生名冊=正式報名單統(tǒng)計分析表=分類統(tǒng)計表+難度分析表考生通知單=準(zhǔn)考證號+姓名+通信地址+考試級別+考試成績+合格標(biāo)志(1).畫系統(tǒng)頂層圖確定源或宿確定加工確定數(shù)據(jù)流頂層圖通常沒有文件(2).畫系統(tǒng)0層圖以下確定加工、數(shù)據(jù)流、文件、源或宿的一般方法適用于0層圖及其各層子圖確定加工:指父圖中某加工分解的子加工根據(jù)功能分解來確定加工:將一個復(fù)雜的功能分解成若干個較小的功能,較多應(yīng)用于高層DFD中的分解根據(jù)業(yè)務(wù)處理流程確定加工:父圖中待分解加工的業(yè)務(wù)處理流程中的每一步都可能是一個子加工,較多應(yīng)用于低層DFD中的分解特別要注意在業(yè)務(wù)流程中數(shù)據(jù)流發(fā)生變化或數(shù)據(jù)流的值發(fā)生變化的地方,應(yīng)該存在一個加工,例如:圖5.6確定數(shù)據(jù)流在父圖中某加工分解而成的子圖中,父圖中相應(yīng)加工的輸入/輸出數(shù)據(jù)流都是且僅是子圖邊界上的輸入/輸出數(shù)據(jù)流分解后的子加工之間應(yīng)增添相應(yīng)的新數(shù)據(jù)流表示加工過程中的中間數(shù)據(jù)如果某些中間數(shù)據(jù)需要保存以備后用,那么可以成為流向文件的數(shù)據(jù)流同一個源或加工可以有多個數(shù)據(jù)流流向一個加工,如果它們不是一起到達和一起加工的,那么可以將它們分成若干個數(shù)據(jù)流,例如:圖5.7確定文件如果父圖中該加工存在讀寫文件的數(shù)據(jù)流,則相應(yīng)的文件和數(shù)據(jù)流都應(yīng)畫在子圖中在分解子圖中,如需要保存某些中間數(shù)據(jù)以備后用,則可將這些數(shù)據(jù)組成一個新文件新文件(首次出現(xiàn)的文件)至少應(yīng)有一個加工為其寫入記錄,同時至少存在另一個加工來讀該文件的記錄注意:從父圖中繼承下來的文件在子圖中可能只對其進行讀,或只進行寫確定源和宿0層圖和其它子圖中通常不必畫出源和宿有時為了提高可讀性,可以將頂層圖中的源和宿畫在0層圖中案例分析:最終得到考務(wù)處理系統(tǒng)0層圖根據(jù)功能分解方法識別出兩個加工:考試報名、統(tǒng)計成績數(shù)據(jù)流繼承頂層圖中的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流定義二個加工之間的數(shù)據(jù)流:由于這二個加工分別在考試前后進行,因此登記報名單所產(chǎn)生的結(jié)果“考生名冊”應(yīng)作為文件保存以便考試后由統(tǒng)計成績加工引用(3).加工細化(1…n層圖)復(fù)雜的加工可以繼續(xù)分解成1張DFD子圖,分解方法將該加工看作一個小系統(tǒng),該加工的輸入/輸出數(shù)據(jù)流就是這個假設(shè)的小系統(tǒng)的輸入/輸出數(shù)據(jù)流然后采用畫0層圖的方法,畫出該加工的子圖以0層圖中加工1(考試報名)為例根據(jù)業(yè)務(wù)處理流程來確定由加工1的分解與加工1相關(guān)的業(yè)務(wù)流程:首先檢查考生送來的報名單,然后編準(zhǔn)考證號,并產(chǎn)生準(zhǔn)考證,最后產(chǎn)生考生名單和考生名冊(文件)加工1(考試報名)子圖3個子加工:檢查報名單、編準(zhǔn)考證號、登記考生“合格報名單”和“正式報名單”是新增加的數(shù)據(jù)流,其它數(shù)據(jù)流都是加工1原有的在加工1的分解中沒有新的文件產(chǎn)生加工2(統(tǒng)計成績)子圖總結(jié):畫分層數(shù)據(jù)流圖的步驟1.畫系統(tǒng)的輸入和輸出,得頂層圖2.畫系統(tǒng)內(nèi)部,得0層圖3.畫加工內(nèi)部,得到各級子圖4.重復(fù)第3步,直至每個尚未分解的加工都足夠簡單(即不必再分解)三、分層數(shù)據(jù)流圖的審查分層數(shù)據(jù)流圖的一致性和完整性一致性:分層DFD中不存在矛盾和沖突完整性:分層DFD本身的完整性,即是否有遺漏的數(shù)據(jù)流、加工等元素需注意的問題分解的程度1.分層數(shù)據(jù)流圖的一致性父圖與子圖平衡:任何一張DFD子圖邊界上的輸入/輸出數(shù)據(jù)流必須與其父圖中對應(yīng)的加工的輸入/輸出數(shù)據(jù)流保持一致數(shù)據(jù)守恒一個加工所有輸出數(shù)據(jù)流中的數(shù)據(jù),必須能從該加工的輸入數(shù)據(jù)流中直接獲得,或者能通過該加工的處理而產(chǎn)生多余的數(shù)據(jù)流:加工未使用其輸入數(shù)據(jù)流中的某些數(shù)據(jù)項局部文件:考慮分層數(shù)據(jù)流中一個文件應(yīng)畫在哪些DFD中,而不該畫在哪些DFD中任何一個文件都應(yīng)同時包含讀和寫該文件的數(shù)據(jù)流,除非該文件是當(dāng)前系統(tǒng)與另一個軟件系統(tǒng)所共享(應(yīng)在需求說明中指明)在一張DFD中當(dāng)一個文件作為若干個加工之間的交界面(一個寫另一個讀)時該文件應(yīng)畫出在一張DFD中當(dāng)一個文件僅與一個加工進行讀寫操作,并且在該DFD的父(祖先)圖中未出現(xiàn)過該文件則該文件是相應(yīng)加工的內(nèi)部文件,在當(dāng)前DFD中不應(yīng)畫出一個文件一旦在某張DFD中畫出,那么在它的子孫圖中應(yīng)根據(jù)父圖與子圖平衡的原則畫出該文件在子孫圖中,這個文件可能只有讀或?qū)懳募械囊环N數(shù)據(jù)流一個加工的輸出數(shù)據(jù)流不能與該加工的輸入數(shù)據(jù)流同名案例分析:父圖與子圖不平衡的實例:加工2的輸入數(shù)據(jù)流有M和N,輸出數(shù)據(jù)流是T;而子圖(右圖)邊界上的輸入數(shù)據(jù)流是N,輸出數(shù)據(jù)流是S和T父圖與子圖平衡的實例:如果父圖某加工的一個數(shù)據(jù)流,對應(yīng)于子圖中幾個數(shù)據(jù)流,而子圖中組成這些數(shù)據(jù)流的數(shù)據(jù)項全體正好等于父圖中的這個數(shù)據(jù)流,那么它們?nèi)运闶瞧胶獾臄?shù)據(jù)不守恒的實例:由于“正式成績清單”中缺少“考生通知單”中的姓名、通信地址等數(shù)據(jù),這些數(shù)據(jù)也無法由加工2.3自己產(chǎn)生,因此,加工2.3不滿足數(shù)據(jù)守恒的條件局部文件示例:“試題得分清單”文件是加工2的局部文件,根據(jù)抽象原則不應(yīng)該將這類表示加工細節(jié)的局部文件畫在其父圖(如圖c)中,正確的畫法是圖a和b2.分層數(shù)據(jù)流圖的完整性每個加工至少有一個輸入數(shù)據(jù)流和一個輸出數(shù)據(jù)流在整套分層數(shù)據(jù)流中,每個文件應(yīng)至少有一個加工讀該文件,有另一個加工寫該文件分層數(shù)據(jù)流圖中的每個數(shù)據(jù)流和文件都必須命名(除了流入或流出文件的數(shù)據(jù)流),并保持與數(shù)據(jù)字典的一致分層DFD中的每個基本加工(即不再分解子圖的加工)都應(yīng)有一個加工規(guī)約3.構(gòu)造分層DFD需注意的問題適當(dāng)命名畫數(shù)據(jù)流而不是畫控制流:判斷準(zhǔn)則:這條線上是否有數(shù)據(jù)流過避免一個加工有過多的數(shù)據(jù)流:當(dāng)一個加工存在許多數(shù)據(jù)流時往往意味著分解不合理解決辦法:重新分解1)把需重新分解的某張圖(含有該復(fù)雜加工的圖)的所有子圖連接成一張圖2)把連接后的圖重新劃分成幾個部分,使各部分之間的聯(lián)系最小3)重新定義父圖,即第2)步中的每個部分作為父圖中的一個加工4)重新建立各子圖,即第2)步中的每個部分都是一張子圖5)為所有的加工重新命名和編號分解盡可能均勻理想目標(biāo):任何兩個加工的分解層數(shù)之差不超過1應(yīng)盡可能使分解均勻,對于分解不均勻的情況應(yīng)重新分解先考慮穩(wěn)定狀態(tài),忽略瑣碎的枝節(jié):先考慮穩(wěn)定狀態(tài)下的各種問題,暫時不考慮系統(tǒng)如何啟動、如何結(jié)束、出錯處理以及性能等問題隨時準(zhǔn)備重畫:對于一個復(fù)雜的軟件系統(tǒng),往往要經(jīng)過反復(fù)多次的重畫和修改才能構(gòu)造出完整、合理、滿足用戶需求的分層DFD4.分解的程度可參照以下幾條與分解有關(guān)的原則:7加減2分解應(yīng)自然,概念上合理、清晰只要不影響DFD的易理解性,可適當(dāng)多分解幾個加工,以減少層數(shù)一般,上層分解得快些(即多分解幾個加工),下層分解得慢些(即少分解幾個加工)分解要均勻四、數(shù)據(jù)字典數(shù)據(jù)流圖與數(shù)據(jù)字典是密不可分的,兩者結(jié)合起來構(gòu)成軟件的邏輯模型(分析模型)數(shù)據(jù)字典由字典條目組成,每個條目描述DFD中的一個元素數(shù)據(jù)字典條目包括:數(shù)據(jù)流、文件、數(shù)據(jù)項(組成數(shù)據(jù)流和文件的數(shù)據(jù))、加工、源或宿加工邏輯的詳細說明可以用“小說明”來描述(5.5節(jié))數(shù)據(jù)字典的描述符號p105各類字典條目不同的開發(fā)組織或團隊可以根據(jù)項目的需要定義字典條目的描述內(nèi)容字典條目中的描述內(nèi)容主要包括DFD元素的基本信息(名稱、別名、簡述、注解)定義(數(shù)據(jù)類型、數(shù)據(jù)組成)使用特點(取值范圍、使用頻率、激發(fā)條件)控制信息(來源、去向、訪問權(quán)限)等五、描述基本加工的小說明小說明是基本加工的規(guī)約說明,應(yīng)精確地描述用戶要求一個加工“做什么”包括加工的激發(fā)條件、加工邏輯、優(yōu)先級、執(zhí)行頻率、出錯處理等最基本的部分是加工邏輯,即該加工的輸出數(shù)據(jù)流與輸入數(shù)據(jù)流之間的邏輯關(guān)系加工邏輯不是對加工的設(shè)計,不涉及數(shù)據(jù)結(jié)構(gòu)、算法實現(xiàn)、編程語言等與設(shè)計和實現(xiàn)有關(guān)的細節(jié)加工邏輯的描述方法結(jié)構(gòu)化語言:介于自然語言和形式語言之間的一種半形式語言判定表:適用于加工邏輯包含多個條件,而不同的條件組合需做不同的動作判定樹:判定表的變種,它本質(zhì)上與判定表是相同的,只是表示形式不同七、結(jié)構(gòu)化設(shè)計概述結(jié)構(gòu)化設(shè)計(StructuredDesign,簡稱SD)是將結(jié)構(gòu)化分析得到的數(shù)據(jù)流圖映射成軟件體系結(jié)構(gòu)的一種設(shè)計方法強調(diào)模塊化、逐步求精、信息隱蔽、高內(nèi)聚低耦合等設(shè)計準(zhǔn)則分為概要設(shè)計和詳細設(shè)計兩大步驟結(jié)構(gòu)圖1)基本知識用結(jié)構(gòu)圖(StructureChart)來描述軟件系統(tǒng)的體系結(jié)構(gòu)描述一個軟件系統(tǒng)由哪些模塊組成,以及模塊之間的調(diào)用關(guān)系結(jié)構(gòu)圖的基本成分有:模塊、調(diào)用和數(shù)據(jù)2)結(jié)構(gòu)圖中的輔助符號3)結(jié)構(gòu)圖的幾個概念深度:程序結(jié)構(gòu)圖中控制的層數(shù)寬度:程序結(jié)構(gòu)圖中同一層次上模塊總數(shù)的最大值扇出(fanout):該模塊直接調(diào)用的模塊數(shù)目。扇入(fanin):能直接調(diào)用該模塊的模塊數(shù)目。相關(guān)指標(biāo)的含義深度和寬度在一定程序上反映了程序的規(guī)模和復(fù)雜程度深度和寬度較大,說明程序的規(guī)模和復(fù)雜程度都較大。模塊的扇入扇出會影響結(jié)構(gòu)圖的深度和寬度一個模塊扇出過大通常意味著該模塊比較復(fù)雜,然而扇出太少,可能導(dǎo)致深度的增加一般情況,一個模塊的扇出以3~9為宜一個模塊的扇入表示有多少模塊可直接調(diào)用它,它反映了該模塊的復(fù)用(reuse)程度,因此模塊的扇入越大越好2.啟發(fā)式設(shè)計策略按照模塊化設(shè)計原則,相應(yīng)的啟發(fā)式設(shè)計策略如下:改造程序結(jié)構(gòu)圖,降低耦合度,提高內(nèi)聚度避免高扇出,并隨著深度的增加,力求高扇入模塊的影響范圍應(yīng)限制在該模塊的控制范圍內(nèi)(p118)降低模塊接口的復(fù)雜程度和冗余程度,提高一致性:模塊接口上應(yīng)盡可能傳遞簡單數(shù)據(jù),而且傳遞的數(shù)據(jù)應(yīng)保持與模塊的功能相一致,即不傳遞與模塊功能無關(guān)的數(shù)據(jù)模塊的功能應(yīng)是可預(yù)測的,避免對模塊施加過多的限制模塊功能可預(yù)測是指該模塊對相同的輸入能產(chǎn)生相同的輸出限制一個模塊只處理單一的功能,那么,這個模塊體現(xiàn)出高內(nèi)聚盡可能設(shè)計單入口和單出口的模塊:單入口和單出口的模塊能有效地避免內(nèi)容耦合3.結(jié)構(gòu)化設(shè)計的步驟建立初始結(jié)構(gòu)圖:將DFD映射到結(jié)構(gòu)圖對結(jié)構(gòu)圖進行改進:可根據(jù)設(shè)計準(zhǔn)則和啟發(fā)式設(shè)計策略對初始結(jié)構(gòu)圖進行改進書寫設(shè)計文檔:書寫設(shè)計規(guī)格說明,特別為每個模塊書寫功能、接口、約束和限制等設(shè)計評審八、數(shù)據(jù)流圖到軟件體系結(jié)構(gòu)的映射結(jié)構(gòu)化設(shè)計是將結(jié)構(gòu)化分析的結(jié)果(數(shù)據(jù)流圖)映射成軟件的體系結(jié)構(gòu)(結(jié)構(gòu)圖)將DFD分為變換型數(shù)據(jù)流圖和事務(wù)型數(shù)據(jù)流圖,對應(yīng)映射分別稱為變換分析和事務(wù)分析分層DFD的映射1.信息流:分為變換流與事務(wù)流變換流特征:數(shù)據(jù)流圖可明顯地分成輸入、變換、輸出三部分事務(wù)流特征:數(shù)據(jù)流沿著輸入路徑到達一個事務(wù)中心,事務(wù)中心根據(jù)輸入數(shù)據(jù)的類型在若干條動作路徑中選擇一條來執(zhí)行。事務(wù)中心的任務(wù)是:接收輸入數(shù)據(jù)(即事務(wù));分析每個事務(wù)的類型;根據(jù)事務(wù)類型選擇執(zhí)行一條動作路徑。實例:銀行業(yè)務(wù)中有存款、取款、查詢余額、開戶、轉(zhuǎn)帳等多種事務(wù)2.數(shù)據(jù)流圖映射到結(jié)構(gòu)圖的步驟復(fù)審和精化數(shù)據(jù)流圖確定數(shù)據(jù)流圖的類型(變換型、事務(wù)型)將DFD映射成初始結(jié)構(gòu)圖:采用變換分析(5.7.3節(jié))或事務(wù)分析(5.7.4節(jié))技術(shù),將DFD映射成初始結(jié)構(gòu)圖改進初始結(jié)構(gòu)圖(5.8節(jié))3.變換分析變換分析的任務(wù)是將變換型的DFD映射成初始的結(jié)構(gòu)圖,步驟如下:劃定輸入流和輸出流的邊界,確定變換中心進行第一級分解:將DFD映射成變換型的程序結(jié)構(gòu)進行第二級分解:將DFD中的加工映射成結(jié)構(gòu)圖中的一個適當(dāng)?shù)哪K標(biāo)注輸入輸出信息:根據(jù)DFD,在初始結(jié)構(gòu)圖上標(biāo)注模塊間傳遞的輸入輸出信息1.確定輸入/出流邊界和變換中心相關(guān)概念:物理輸入/出:指系統(tǒng)輸入/出端的數(shù)據(jù)流邏輯輸入/出:指變換中心的輸入/出數(shù)據(jù)流基本步驟確定邏輯輸入:根據(jù)DFD從物理輸入端開始,一步步向系統(tǒng)的中間移動,可找到離物理輸入端最遠的,但仍可被看作系統(tǒng)輸入的那個(或那些)數(shù)據(jù)流,就是邏輯輸入確定邏輯輸出:根據(jù)DFD,從物理輸出端開始,一步步向系統(tǒng)的中間移動,可找到離物理輸出端最遠的,但仍可被看作系統(tǒng)輸出的那個(或那些)數(shù)據(jù)流,就是邏輯輸出確定變換中心:確定了所有的邏輯輸入和邏輯輸出后,位于邏輯輸入和邏輯輸出之間的部分就是變換中心示例:統(tǒng)計成績子圖的輸入、輸出流邊界2.進行第一級分解將DFD映射成變換型的程序結(jié)構(gòu),p124圖5.303.進行第二級分解將DFD中的加工映射成結(jié)構(gòu)圖中的一個適當(dāng)?shù)哪K分解步驟如下輸入控制模塊的分解:從變換中心的邊界開始,沿著輸入路徑向外移動,把輸入路徑上的每個加工映射成結(jié)構(gòu)圖中受輸入控制模塊控制的一個低層模塊輸出控制模塊的分解:從變換中心的邊界開始,沿著輸出路徑向外移動,把輸出路徑上的每個加工映射成結(jié)構(gòu)圖中受輸出控制模塊控制的一個低層模塊變換控制模塊的分解:把變換中心的每個加工映射成結(jié)構(gòu)圖中受變換控制模塊控制的一個低層模塊4.事務(wù)分析任務(wù):將事務(wù)型DFD映射成初始的結(jié)構(gòu)圖事務(wù)型的結(jié)構(gòu)圖如圖所示,包括:主控模塊:完成整個系統(tǒng)的功能接收模塊:接收輸入數(shù)據(jù)(事務(wù))發(fā)送模塊:根據(jù)輸入事務(wù)的類型,選擇一個動作路徑控制模塊動作路徑控制模塊:完成相應(yīng)的動作路徑所執(zhí)行的子功能事務(wù)分析的步驟確定事務(wù)中心:事務(wù)中心位于數(shù)條動作路徑的起點,這些動作路徑呈幅射狀從該點流出將DFD映射成事務(wù)型的結(jié)構(gòu)圖分解每條動作路徑所對應(yīng)的結(jié)構(gòu)圖接收模塊的分解:從事務(wù)中心開始,沿著輸入路徑向外移動,把輸入路徑上的每個加工映射成結(jié)構(gòu)圖中受接收模塊控制的一個低層模塊動作路徑控制模塊的分解:首先確定每條動作路徑的流類型(變換流或事務(wù)流),然后,運用變換分析或事務(wù)分析,將每條動作路徑映射成與其流特性相對應(yīng)的以動作路徑控制模塊為根模塊的結(jié)構(gòu)圖5.分層DFD的映射0層圖反映了系統(tǒng)由哪些子系統(tǒng)組成,此時可先將0層圖映射成下圖中的結(jié)構(gòu)0層圖每個加工的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)圖如書中圖5.35所示九、初始結(jié)構(gòu)圖的改進改進依據(jù):軟件設(shè)計的準(zhǔn)則和啟發(fā)式設(shè)計策略改進往往不是一次完成的,需要進行多次的反復(fù),有時還需要在多個改進方案進行選擇1.改進實例1).“考試報名”結(jié)構(gòu)圖的改進“考試報名”部分的結(jié)構(gòu)圖:“輸入報名單”模塊比較簡單,可以和“檢查報名單”合并將“打印報名單出錯信息”模塊合并到“檢查報名單”模塊,降低模塊間的耦合度最終三者合并為“輸入并檢查報名

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論