1. 程式人生 > >【軟工】軟體工程(五)——高內聚低耦合

【軟工】軟體工程(五)——高內聚低耦合

一、前言

      模組獨立是指每個模組完成一個相對獨立的特定子功能,並且與其他模組之間的聯絡簡單。而衡量模組獨立的標準就是:耦合性和內聚性。我們要做到模組間的高內聚和低耦合。

二、耦合

      耦合指的是模組間的聯絡緊密程度。 低耦合~~

這裡寫圖片描述

                                                    圖一 耦合
  • 非直接耦合:兩個模組之間沒有直接關係,它們之間的聯絡完全是通過主模組的控制和呼叫來實現的。耦合度最弱,模組獨立性最強。

  • 資料耦合:呼叫模組和被呼叫模組之間只傳遞簡單的資料項引數。相當於高階語言中的值傳遞。

  • 標記耦合:呼叫模組和被呼叫模組之間傳遞資料結構

    而不是簡單資料,同時也稱作特徵耦合。表就和的模組間傳遞的不是簡單變數,而是像高階語言中的資料名、記錄名和檔名等資料結果,這些名字即為標記,其實傳遞的是地址。

  • 控制耦合:模組之間傳遞的不是資料資訊,而是控制資訊例如標誌、開關量等,一個模組控制了另一個模組的功能。

  • 公共耦合:一組模組都訪問同一個全域性資料結構,則稱之為公共耦合。

  • 內容耦合:最高耦合,一個模組直接訪問另一模組的內容,則稱這兩個模組為內容耦合。或者通過非正常入口而轉入另一個模組的內部。

三、內聚

      內聚指的是模組內部各個元素之間聯絡的緊密程度。高內聚~~~

這裡寫圖片描述

                                                    圖二 內聚
  • 偶然內聚:一個模組內的各處理元素之間沒有任何聯絡,只是偶然地被湊到一起。這種模組也稱為巧合內聚,內聚程度最低。

  • 邏輯內聚:這種模組把幾種相關的功能組合在一起, 每次被呼叫時,由傳送給模組引數來確定該模組應完成哪一種功能 。

  • 時間內聚:把需要同時執行的動作組合在一起形成的模組稱為時間內聚模組。

  • 通訊內聚:模組內元素都在同一個資料結構上操作,或者指各處理使用相同的輸入資料或者產生相同的輸出資料。
     
     

  • 順序內聚:一個模組中各個處理元素和同一個功能密切相關,而且這些處理必須順序執行,通常前一個處理元素的輸出時後一個處理元素的輸入。

  • 功能內聚:最強,模組內所有元素共同完成一個功能,缺一不可。

四、小結

      出來混吃遲早是要還的,這一塊的知識在剛開始學習的時候就沒有總結,到後來用到了,才開始,真是應該去好好的做做啊!加油!檢查就是勝利。

相關推薦

軟體工程——耦合

一、前言       模組獨立是指每個模組完成一個相對獨立的特定子功能,並且與其他模組之間的聯絡簡單。而衡量模組獨立的標準就是:耦合性和內聚性。我們要做到模組間的高內聚和低耦合。 二、耦合    

——軟體工程基礎知識資料流程圖、資料字典

資料流程圖(DFD)???——》一種便於使用者理解、分析系統資料流程的圖形工具;???——》擺脫了系統的物理內容,精確地在邏輯上描述系統的功能、 輸入、輸出和資料儲存等,是系統邏輯模型的重要組成部分 ; 資料流圖的基本圖形元屬???——》資料流(data flow)、加

——軟體工程基礎知識Web應用系統分析與設計

WebApp的特性 WebApp屬性???——》網路密集性、併發性、無法預知的負載量、效能、可用性、資料驅動; web應用系統分析的模型型別???——》 內容模型???——》給出由Web應

——軟體工程基礎知識軟體測試

軟體測試???——》顧名思義; 軟體測試???——》儘可能多的發現軟體產品中的錯誤和缺陷; 軟體測試???——》自底向上,逐步整合的過程,低一級測試為上一級測試準備條件; 軟體測試的主要步驟???——》單元測試、整合測試、確認測試; 單元測試???——》主

考總結---軟體工程

     這篇博文主要分享軟考中關於軟體工程部分的例題: 1、根據活動圖計算鬆弛時間 1、某軟體專案的活動圖如下圖所示,其中頂點表示專案里程碑,連線頂點的邊表示包含的活動,邊上的數字表示相應活動的持

——軟體工程基礎知識軟體過程模型

軟體過程模型 軟體過程模型???——》 軟體過程模型???——》瀑布模型、增量模型、演化模型、噴泉模型、基於構建的開發模型、形式化方法模型、統一過程模型、敏捷方法; 瀑布模型???——》以

軟體工程

碎碎念:            這次自考報了3科、其中就有資料庫系統原理、上次因為感覺有難度就沒報、這次報了之後發現自己資料庫搞的真不咋地、被Select語句搞鬱悶了、還有關係模式與元祖的轉換………

——面向物件4

Diagram  VS  Diagram Sequence Diagram  VS  Collaboration diagram???——》 同點:在語義上等價,可以相互轉化;???——》都是互動

位元組跳動效率工程EE筆試

筆試有三道題 1.給定年月日輸出這一天是當年的第幾天(區分好閏年就可以)   2.給出陣列輸出超過半數的數字,不存在的話輸出沒有(要求時間複雜度最低的辦法) 當時選擇了一個歸併排序的方法 回去後發現可以採用遍歷的方法,時間複雜度為O(n) 詳見如下連結 【Java筆

軟體工程軟體介面設計

         一看視訊中有軟體介面設計我就樂了、一看視訊我就哭了……感覺有點老吧、雖然概念性的東西沒變、但是提不起來興趣呢、所以這次總結下我對介面設計的認識。 如果說軟體是一個亭亭玉立的姑娘、那

機器學習人像識別——K-Means

簡介   K-Means聚類是一種非監督的聚類方式,原理參看資料探勘十大演算法 | k-means。    程式碼 import sys import random import numpy as np from sklearn.decomposit

軟體工程中的耦合

定義 高內聚低耦合,是軟體工程中的概念,是判斷設計好壞的標準,主要是面向物件的設計,主要是看類的內聚性是否高,耦合度是否低。 概念 耦合性:也稱塊間聯絡。指軟體系統結構中各模組間相互聯絡緊密程度的一種度量。模組之間聯絡越緊密,其耦合性就越強,模組的獨立性則越

件設計之——“耦合

font 道理 即使 可靠 標準 沒有 增加 關系 環境 耦合度 一、什麽是耦合度 軟件設計中通常用耦合度和內聚度作為衡量模塊獨立程度的標準。劃分摸塊的一個準則就是高內聚低耦合。 耦合度(Coupling)是對模塊間關聯程度的度量。耦合的強弱取決與模塊間接口的復雜性、調用模

軟體設計之—— 耦合

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

工程---理解需求

意圖 常見 質量 功能 利益相關者 需求 任務 服務商 需求獲取過程 軟件工程(五)---理解需求 1.需求工程是一個不會因為軟件項目的變化而變化的通用過程。 2.在項目開始階段,任務的意圖是確定基本問題理解、所需解決方案的性質和想要解決問題的人。 3.使需求獲

PP生產訂單入門介紹

生產訂單的下達: 只有訂單下達之後才可以做如下操作: 1、系統標準的列印功能; 2、物料發料; 3、處理; 4、確認; 5、收貨; 6、結算。 其中有效性檢查不需要訂單下達就可以做。 下面著重介紹一下生產訂單的狀態: 演變過程展示:

第18天Java集合---Map介面概述及Map介面實現的HashMap類、SortedMap介面實現的TreeMap類

1 Map的通性 1.1 基本用法與特點 1.2 遍歷 2 HashMap集合的特性 3 TreeMap集合的特性 1 Map的通性     &nb

軟體工程軟體需求分析

大綱: 瞭解軟體需求分析的目標和任務 瞭解軟體需求的獲得方法 掌握結構化分析方法 瞭解需求規格說明和需求評審的要點 什麼是軟體需求分析? 軟體需求分析就是把軟體計劃期間建立的軟體可行性分析求精和細化,分析各種可能的解法,並且分配給各個軟體元素。需求分析是軟體定義

軟體開發模型彙總分析

軟體開發模型 瀑布模型 將生命週期中的各個活動規定為以線性順序連結的若干階段的模型,包括需求分析、設計、編碼、測試、執行與維護,它規定由前至後的順序次序,就像瀑布流水一樣逐級下落 小明來解說:小明的媽媽要小明去買東西(薯片,爆米花,烤紅薯,糖炒栗子),瀑布模型就是,小明在家裡

淺談社釣魚網站

唉,是不是經常看到王者榮耀領面板的連結?賬號密碼一輸~然後就沒有然後了,23333333不過講真,你仔細留意一下,那些介面挺low的,記得有一次,簡單看下那個釣魚網站的原始碼就會知道,它把使用者輸入的賬號密碼直接寫到了同目錄下的一個txt裡,然後那個txt可以直接拿下來,23333333 今天呢!我們