freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

總體設(shè)計(jì)ppt課件(2)(編輯修改稿)

2025-06-01 18:05 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 塊之間沒有直接關(guān)系 或 彼此完全獨(dú)立 。 ① 它們分別從屬于不同模塊的控制和調(diào)用, ② 它們之間不傳遞任何信息。 但是 ,在一個(gè)軟件系統(tǒng)中不可能所有模塊之間 都沒有任何聯(lián)系 , 否則,就不能構(gòu)成整體。 模塊獨(dú)立性最強(qiáng) 模塊 1 模塊 2 模塊 3 模塊 4 75 (2) 數(shù)據(jù)耦合 當(dāng)一個(gè)模塊 調(diào)用 另一模塊時(shí), 被調(diào)用模塊的輸入、輸出都是 簡(jiǎn)單的數(shù)據(jù) (若干參數(shù) )。 (調(diào)用函數(shù)時(shí) 實(shí)參 和 形參 的關(guān)系) ,最常用的耦合 GO 計(jì)算水費(fèi) 單價(jià)、 數(shù)量 金額 開發(fā)票 76 (3) 特征耦合 (標(biāo)記耦合、數(shù)據(jù)結(jié)構(gòu)耦合 ) 當(dāng)一個(gè)模塊調(diào)用另一個(gè)模塊時(shí)傳遞了 整個(gè) 數(shù)據(jù)結(jié)構(gòu) , 而 被調(diào)用的模塊 只需要其中的 一部分 數(shù)據(jù)元素 。 則稱這兩個(gè)模塊間存在特征偶合。 數(shù)據(jù)結(jié)構(gòu) :不是是簡(jiǎn)單的數(shù)據(jù), 而是數(shù)組名、記錄名、文件名等。 這種耦合可能會(huì)帶來一些問題, ① 那些 不該修改的數(shù)據(jù) 也可能會(huì)被不小心修改了; ② 沒有權(quán)利接觸 某些數(shù)據(jù)的人也能修改, 從而給計(jì)算機(jī)犯罪提供了機(jī)會(huì)。 出于安全考慮,應(yīng)該 只傳遞那些必須的 數(shù)據(jù)項(xiàng) 。 工資單 :只能瀏覽本人,不能瀏覽他人,更不能修改。 77 特征耦合舉例 計(jì)算水電費(fèi) 計(jì)算水費(fèi) 計(jì)算電費(fèi) 住戶情況 水費(fèi) 電費(fèi) 住戶情況 “ 住戶情況 ” 是一個(gè) 數(shù)據(jù)結(jié)構(gòu) (文件 ), 圖中模塊都與此數(shù)據(jù)結(jié)構(gòu)有關(guān)。 “ 計(jì)算水費(fèi) ” 和 “ 計(jì)算電費(fèi) ” 本來沒有關(guān)系 , 由于引用了此數(shù)據(jù)結(jié)構(gòu)產(chǎn)生 依賴關(guān)系 ,它們之間也是 特征耦合 . 78 將 特征耦合 修改為 數(shù)據(jù)耦合 舉例 計(jì)算水電費(fèi) 計(jì)算水費(fèi) 計(jì)算電費(fèi) 本月用水量/單價(jià) 本月用電量 /單價(jià) 水費(fèi) 電費(fèi) 79 (4) 控制耦合 一模塊 向下屬模塊 傳遞的信息 , 控制了 被調(diào)用模塊的 內(nèi)部邏輯。 控制信息 : (開關(guān)量、標(biāo)志等控制被調(diào)用模塊決策的變量 ) ① 一個(gè)模塊 A調(diào)用另一個(gè)模塊 B時(shí), 傳遞的是 控制信息 ( flag=0,1) ,2個(gè)以上 ② 因此被調(diào)用模塊 B內(nèi)部有多個(gè)功能, ③ B模塊根據(jù)控制信息的值,有選擇的執(zhí)行某一功能, ④ 哪個(gè)功能發(fā)揮作用完全受 A模塊的控制, ⑤ A模塊必須知道 B模塊內(nèi)部邏輯,才能發(fā)出正確的控制信息 。 80 控制耦合舉例 A 計(jì)算 平均分 或 最高分 B 平均 /最高 (控制信號(hào) ) 成績(jī) 讀入分?jǐn)?shù) 輸出結(jié)果 計(jì)算平均分 計(jì)算最高分 平均 /最高 ? B 0 1 0 1 BACK 81 去除模塊間 控制耦合 的方法 控制耦合 增加了理解和編程的復(fù)雜性, 調(diào)用模塊 必須知道 被調(diào)模塊 的內(nèi)部邏輯, 增加了相互依賴。 (1)將 被調(diào)用模塊內(nèi) 的 判定 上移到 調(diào)用模塊 中進(jìn)行, (2)把 被調(diào)用模塊分解 成若干 單一功能 模塊。 82 改 控制耦合 為 數(shù)據(jù)耦合 舉例 A 計(jì)算平均分 B1 平均成績(jī) 最高成績(jī) 計(jì)算最高分 B2 分?jǐn)?shù) GO 83 (5) 外部耦合 一組模塊均與 同一外部環(huán)境 關(guān)聯(lián), 并受到約束時(shí), 它們之間便存在 外部耦合 。 外部環(huán)境 :如 ,I/O模塊 與特定的設(shè)備、格式和通信協(xié)議相關(guān)聯(lián) 外部耦合 必不可少 ,但這種模塊 數(shù)目應(yīng)盡量少 。 D A N M F E C B O P 外部模塊 設(shè)備 84 (6) 公共耦合 (公共數(shù)據(jù)區(qū)耦合 ) 一組模塊引用同一個(gè) 公共數(shù)據(jù)區(qū)。 公共數(shù)據(jù)區(qū) 指: ? 全局?jǐn)?shù)據(jù)結(jié)構(gòu) (全局變量 ) ? 共享通訊區(qū) ? 內(nèi)存公共覆蓋區(qū)等 85 公共耦合舉例 A 公用數(shù)據(jù)區(qū) C B 模塊 A、 B、 C間存在錯(cuò)綜復(fù)雜的聯(lián)系 86 全局變量 : V1 V2 A: ………… ………… A1=V1+V2 ………… ………… B: ………… ………… V1=B1 ………… ………… 全局變量 : V1 V2 A: ………… ………… V1++ ………… ………… B: ………… ………… V2=B1+V1 ………… ………… A、 B 兩個(gè)模塊都能 使用 和 改變 V V2值, 若發(fā)生錯(cuò)誤,錯(cuò)誤定位難。 87 公共耦合存在的問題 (1) 診斷錯(cuò)誤困難 (2) 耦合的復(fù)雜程度隨 模塊的個(gè)數(shù) 增加而顯著增加 (3) 軟件可理解性降低 (4) 軟件可維護(hù)性差, (5) 軟件可靠性差 (公共數(shù)據(jù)區(qū)及全程變量無保護(hù)措施 ) 慎用 公共數(shù)據(jù)區(qū)和 全程變量 !!! 88 ( 7)內(nèi)容耦合 ( content coupling) 如果兩個(gè)模塊中的一個(gè)模塊 直接引用 了另一個(gè)模塊的 內(nèi)容 , 則它們之間是 內(nèi)容耦合 。 …… A B C D A: ………… ………… goto C1 ………… ………… C: ………… ………… C1: …… …… 例 1: A訪問 C的 內(nèi)部數(shù)據(jù) 或 不通過正常入口 而轉(zhuǎn)入 C的內(nèi)部。 89 例 2: 部分代碼重疊 (常出現(xiàn)在匯編程序中) B A 例 3: 一個(gè)模塊有多個(gè)入 口(功能) A: ……………… ……………… entry 1: ……………… ……………… entry 2: ……………… ……………… 事實(shí)上許多高級(jí)程序設(shè)計(jì)語言 已經(jīng)設(shè)計(jì)成 不允許在程序中 出現(xiàn)任何形式的 內(nèi)容耦合 。 ? 耦合度 最高 ? 最壞的耦合 ,不要使用?。? 90 總之,耦合是影響軟件復(fù)雜程度的一個(gè)重要因素。 應(yīng)該采取下述設(shè)計(jì)原則: 盡量使用 數(shù)據(jù)耦合, 少用 控制 耦合 和 特征耦合, 限制 公共環(huán)境耦合的范圍, 完全不用 內(nèi)容耦合。 91 2. 內(nèi)聚 內(nèi)聚 (塊 內(nèi) 聯(lián)系 ): 衡量 一個(gè)模塊 內(nèi)部 各個(gè)元素 彼此結(jié)合的緊密程度 。 元素 :語句或語句段 模塊的內(nèi)聚性高 , 就意味著模塊內(nèi)部的 各個(gè)元素 是為了完成 一個(gè)功能 而存在,顯然與其他模塊關(guān)系簡(jiǎn)單, 那么 模塊的獨(dú)立性 就高。 內(nèi)聚 和 耦合 是密切相關(guān)的, 模塊內(nèi)的 高內(nèi)聚 往往意味著模塊間的 松耦合 。 If…… …… EndIf Do while…… …… EndDo 92 內(nèi)聚類型 1. 偶然內(nèi)聚 2. 邏輯內(nèi)聚 3. 時(shí)間內(nèi)聚 4. 過程內(nèi)聚 5. 通信內(nèi)聚 6. 順序內(nèi)聚 7. 功能內(nèi)聚 功能內(nèi)聚 順序內(nèi)聚 通信內(nèi)聚 過程內(nèi)聚 時(shí)間內(nèi)聚 邏輯內(nèi)聚 偶然內(nèi)聚 高 低 強(qiáng) 弱 內(nèi)聚性 模塊獨(dú)立性 功能單一 功能分散 10分 9分 7分 5分 3分 1分 0分 93 ( 1)偶然內(nèi)聚 如果一個(gè)模塊完成 一組 任務(wù) , 這些任務(wù) 彼此之間 沒有實(shí)質(zhì)性關(guān)系 , 或者即使有關(guān)系, 關(guān)系也是很松散的 。(應(yīng)盡量避免) 如:一些沒有任何聯(lián)系的語句,可能在許多模塊中重復(fù)多次 , 程序員為了節(jié)省存儲(chǔ)空間, 把它們抽出來組成一個(gè)新的模塊。(早期內(nèi)存比較小) 94 偶然內(nèi)聚舉例 A B C M Z=X+Y PRINT N IF K=0 THEN S=10 模塊 M中的三個(gè)語句 沒有任何聯(lián)系,且重復(fù)出現(xiàn)多次。 缺點(diǎn):可理解性差, 可修改性差 例 : 95 (2)邏輯內(nèi)聚 如果 一個(gè)模塊完成的任務(wù) 在 邏輯上 屬于 相同 或 相似的 一類。 這幾種任務(wù) 在 邏輯上 相似 ,但實(shí)際上并無必然的聯(lián)系。 例如:將 各種錯(cuò)誤信息的處理集中起來 ,定義為 一個(gè)模塊 , 但這些錯(cuò)誤信息的處理彼此間沒有絲毫關(guān)系。 由于它把所有 形式上 或 邏輯上 相似 (都是 錯(cuò)誤信息處理 ) 而實(shí)質(zhì)上毫無關(guān)系的處理放在一起, 它和其他模塊之間的連接關(guān)系就必然相當(dāng)復(fù)雜, 因此修改維護(hù)相當(dāng)困難。 錯(cuò)誤信息處理模塊 : 從其他系統(tǒng)讀記錄錯(cuò)誤; 格式錯(cuò)誤; 輸出錯(cuò)誤; …… 96 邏輯內(nèi)聚 模塊舉例 A B C E F G A B C EFG E1 F1 G1 EFG模塊內(nèi)部邏輯 E、 F、 G邏輯功能 相似 , 組成新模塊 EFG 缺點(diǎn):增強(qiáng)了耦合程度 (控制耦合 ) 不易修改,效率低 公用代碼段 公用代碼段 97 (3)時(shí)間內(nèi)聚 :如果 一個(gè)模塊包含的任務(wù) 必須在 同一個(gè)時(shí)間段內(nèi) 執(zhí)行。 這些任務(wù)只因 時(shí)間因素 關(guān)聯(lián) 在一起 ,彼此之間 毫無聯(lián)系 。 例如 :初始化系統(tǒng) 模塊、 系統(tǒng)結(jié)束 模塊、 緊急故障處理 模塊等均是 時(shí)間內(nèi)聚 模塊。 98 打開某個(gè)文件; 置計(jì)數(shù)器為零; 置累加器為零; ………… 初始化模塊 進(jìn)行中斷處理; 關(guān)閉文件; 報(bào)警; 保留現(xiàn)場(chǎng); ………… 處理意外故障模塊 強(qiáng)調(diào) : 在 同一個(gè)時(shí)間段內(nèi) 執(zhí)行 99 ( 4)過程內(nèi)聚 (順序性組合) :如果 一個(gè)模塊內(nèi)的處理元素 是 相關(guān) 的, 而且必須以 特定次序 執(zhí)行。 讀入 成績(jī)單 審查 成績(jī)單 統(tǒng)計(jì) 成績(jī) 打印 成績(jī) 讀入 并 審查成績(jī)單 統(tǒng)計(jì) 并 打印成績(jī)單 100 過程內(nèi)聚 強(qiáng)調(diào)嚴(yán)格的 執(zhí)行次序 (先后次序), 時(shí)間內(nèi)聚 強(qiáng)調(diào) 同一個(gè)時(shí)間段內(nèi) 執(zhí)行, 對(duì)執(zhí)行次序則并無要求。 顯然, 過程內(nèi)聚 比 時(shí)間內(nèi)聚 模塊的內(nèi)部緊密程度要 高些。 過程內(nèi)聚 和 時(shí)間內(nèi)聚 的比較: 101 (5)通信內(nèi)聚 :如果 模塊中所有元素 是都使用 同一個(gè)輸入數(shù)據(jù) , 或 產(chǎn)生同一個(gè)輸出數(shù)據(jù) 。 產(chǎn)生 工資報(bào)表 計(jì)算 平均工資 職工工資記錄 職工工資報(bào)表 平均工資 產(chǎn)生職工工資報(bào)表并計(jì)算平均工資的模塊 102 (6) 順序內(nèi)聚 :如果 一個(gè)模塊內(nèi)的各處理元素 和 同一個(gè)功能 密切相關(guān), 而且 這些處理 必須 順序執(zhí)行 。 通常,一個(gè)處理元素的 輸出數(shù)據(jù) , 作為下一個(gè)處理元素的 輸入數(shù)據(jù) 。 例如 : 1. 輸入 系數(shù) 2. 求 方程的 根 3. 打印 方程的 根 求一元二次方程 根的模塊 103 順序內(nèi)聚 和 過程內(nèi)聚 的區(qū)別: 順序內(nèi)聚 :強(qiáng)調(diào)的是 數(shù)據(jù) 的先后順序。 過程內(nèi)聚: 強(qiáng)調(diào)的是 加工處理 的先后順序。 104 (7)功能內(nèi)聚 :一個(gè)模塊內(nèi)所有處理元素 都屬于 一個(gè)整體 , 完成一個(gè) 單一的功能 。 由于這種模塊只執(zhí)行一個(gè)功能,因而內(nèi)聚性最高。 “ 一個(gè)模塊 , 一個(gè)功能 ” ,已成為模塊化設(shè)計(jì)的一條原則。 Go 105 模塊設(shè)計(jì)原則 1) 設(shè)計(jì)時(shí)應(yīng)該力求做到模塊的 高內(nèi)聚 (功能 和 順序 ); 2) 通常 中等程度的內(nèi)聚 (過程 、 通信 )也是可以采用的 , 而且效果和 高內(nèi)聚 相差不多; 3) 但是, 低內(nèi)聚 (偶然、邏輯、時(shí)間 )很壞, 建議不要使用。 106 ⊙ 耦合 、 內(nèi)聚 與 模塊獨(dú)立性 關(guān)系 在模塊化過程中可能遇到這樣的問題, 耦合 和 內(nèi)聚 更應(yīng) 重視 那一方面? 看法一: 耦合和內(nèi)聚是一個(gè)問題 (衡量模塊獨(dú)立性 )的兩個(gè)方面, 它們處于 同等地位 、同樣重要,很難確定哪個(gè)更重要。多數(shù)人持這種觀點(diǎn)。 看法二: 內(nèi)聚 更重要(張海藩, P98) 高內(nèi)聚 意味著 松耦合 ,實(shí)踐表明 內(nèi)聚更重要 , 應(yīng)該把更多的注意力集中到 提高模塊的內(nèi)聚
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1