軟體工程之耦合性

2022-08-01 23:00:24 字數 1974 閱讀 7509

一般模組之間可能的連線方式有七種,構成耦合性的七種型別。它們之間的關係為(由弱到強)

如果兩個模組之間沒有直接關係,它們之間的聯絡完全是通過主模組的控制和呼叫來實現的,這就是非直接耦合。這種耦合的

模組獨立性

最強。 。

如果乙個模組訪問另乙個模組時,彼此之間是通過資料引數(不是控制引數、公共

資料結構

或外部變數

)來交換輸入、輸出資訊的,則稱這種耦合為資料耦合。由於限制了只通過參數列傳遞資料,按資料耦合開發的程式介面簡單、安全可靠。因此,資料耦合是鬆散的耦合,模組之間的獨立性比較強。在

軟體程式結構中至少必須有這類耦合。

如果一組模組通過參數列傳遞記錄資訊,就是

標記耦合

。事實上,這組模組共享了這個記錄,它是某一

資料結構

的子結構,而不是簡單

變數。這要求這些模組都必須清楚該記錄的結構,並按結構要求對此記錄進行操作。在設計中應盡量避免這種耦合,它使在資料結構上的操作複雜化了。如果採取「

資訊隱蔽

」的方法,把在資料結構上的操作全部集中在乙個模組中,就可以消除這種耦合。

如果乙個模組通過傳送開關、標誌、名字等控制資訊,明顯地控制選擇另一模組的功能,就是控制耦合。耦合的實質是在單一

介面上選擇多功能模組中的某項功能。因此,對所控制模組的任何修改,都會影響控制模組。另外,控制耦合也意味著控制模組必須知道所控制模組內部的一些邏輯關係,這些都會降低模組的獨立性。

一組模組都訪問同一全域性簡單

變數而不是同一全域性

資料結構

,而且不是通過參數列傳遞該

全域性變數

的資訊,則稱之為外部耦合。例如c語言程式中各個模組都訪問被說明為extern型別的

外部變數

。外部耦合引起的問題類似於

公共耦合

,區別在於在外部耦合中不存在依賴於乙個資料結構內部各項的物理安排。

若一組模組都訪問同乙個公共資料環境,則它們之間的耦合就稱為

公共耦合

。公共的資料環境可以是全域性

資料結構

、共享的通訊區、記憶體的公共覆蓋區等。

這種耦合會引起下列問題:

1)所有公共耦合模組都與某乙個公共資料環境內部各項的物理安排有關,若修改某個資料的大小,將會影響到所有的模組。

2)無法控制各個模組對公共資料的訪問,嚴重影響

軟體模組的可靠性和適應性。

3)公共資料名的使用,明顯降低了程式的可讀性。[page]

公共耦合的複雜程度隨耦合模組的個數增加而顯著增加。如圖4.14所示,若只是兩個模組之間有公共資料環境,則公共耦合有兩種情況。

若乙個模組只是往公共資料環境裡傳送資料,而另乙個模組只是從公共資料環境中取資料,則這種公共耦合叫做鬆散公共耦合。若兩個模組都從公共資料環境中取資料,又都向公共資料環境裡送資料,則這種公共耦合叫做緊密公共耦合。只有在模組之間共享的資料很多,且通過參數列傳遞不方便時,才使用公共耦合。否則,還是使用

模組獨立性

比較高的

資料耦合

好些。又稱病態耦合。如果發生下列情形,兩個模組之間就發生了內容耦合。

1)乙個模組直接訪問另乙個模組的內部資料;

2)乙個模組不通過正常入口轉到另一模組內部;

3)兩個模組有一部分程式**重疊(只可能出現在組合語言中);

4)乙個模組有多個入口。

在內容耦合的情形,所訪問模組的任何變更,或者用不同的

編譯器對它再編譯,都會造成程式出錯。好在大多數高階

程式語言

已經設計成不允許出現內容耦合。它一般出現在

組合語言程式

中。這種耦合是

模組獨立性

最弱的耦合。

以上由myers給出的七種耦合型別,只是從耦合的機制上所做的分類,按耦合的鬆緊程度的排列只是相對的關係。但它給設計人員在設計程式結構時提供了乙個決策準則。實際上,開始時兩個模組之間的耦合不只是一種型別,而是多種型別的混合。這就要求設計人員按照myers提出的方法進行分析,比較和分析,逐步加以改進,以提高模組的獨立性。

軟體工程之軟體工程管理

乙個好的工程需要配套的管理體系,軟體工程也不列外。軟體工程就我的理解就是對軟體工程的各個階段都一定規範,俗話說 不以規矩,不能成方圓 而這個規矩就由管理來充當。乙個軟體工程管理需要軟體專案計畫 成本估算 進度計畫 風險分析和人員的組織形式 或調動 一 在軟體專案計畫中,專案的任務是研究專案的效能 功...

軟體工程中的耦合

軟體工程中的耦合 簡單地說,物件之間的耦合度就是物件之間的依賴性。指導使用和維護物件的主要問題是物件之間的多重依賴性。物件之間的耦合越高,維護成本越高。因此物件的設計應使類和構件之間的耦合最小。就是依賴性,相關性吧!有軟硬體之間的耦合,還有軟體各模組之間的耦合。耦合性是程式結構中各個模組之間相互關聯...

軟體工程之軟體工程的概述

最近在學軟體工程,但工程分為好多種,那麼怎樣認識這些工程,什麼是軟體?什麼是工程?軟體工程和其他工程的區別又是什麼?軟體 程式設計的最終結果是軟體。軟體是使用者與硬體之間的介面介面。使用者主要是通過軟體與計算機進行交流。軟體是計算機系統設計的重要依據。為了方便使用者,為了使計算機系統具有較高的總體效...