1樓:崔耀丹
構成耦合性的七種型別
一般模組之間可能的連線方式有七種,構成耦合性的七種型別。它們之間的關係為(由弱到強)
非直接耦合(nondirect coupling)
如果兩個模組之間沒有直接關係,它們之間的聯絡完全是通過主模組的控制和呼叫來實現的,這就是非直接耦合。這種耦合的模組獨立性最強。 。
資料耦合(data coupling)
如果一個模組訪問另一個模組時,彼此之間是通過資料引數(不是控制引數、公共資料結構或外部變數)來交換輸入、輸出資訊的,則稱這種耦合為資料耦合。由於限制了只通過參數列傳遞資料,按資料耦合開發的程式介面簡單、安全可靠。因此,資料耦合是鬆散的耦合,模組之間的獨立性比較強。
在軟體程式結構中至少必須有這類耦合。
印記耦合(stamp coupling)
如果一組模組通過參數列傳遞記錄資訊,就是標記耦合。事實上,這組模組共享了這個記錄,它是某一資料結構的子結構,而不是簡單變數。這要求這些模組都必須清楚該記錄的結構,並按結構要求對此記錄進行操作。
在設計中應儘量避免這種耦合,它使在資料結構上的操作複雜化了。如果採取「資訊隱蔽」的方法,把在資料結構上的操作全部集中在一個模組中,就可以消除這種耦合。
控制耦合(control coupling)
如果一個模組通過傳送開關、標誌、名字等控制資訊,明顯地控制選擇另一模組的功能,就是控制耦合。耦合的實質是在單一介面上選擇多功能模組中的某項功能。因此,對所控制模組的任何修改,都會影響控制模組。
另外,控制耦合也意味著控制模組必須知道所控制模組內部的一些邏輯關係,這些都會降低模組的獨立性。
外部耦合(external coupling)
一組模組都訪問同一全域性簡單變數而不是同一全域性資料結構,而且不是通過參數列傳遞該全域性變數的資訊,則稱之為外部耦合。例如c語言程式中各個模組都訪問被說明為extern型別的外部變數。外部耦合引起的問題類似於公共耦合,區別在於在外部耦合中不存在依賴於一個資料結構內部各項的物理安排。
公共耦合(common coupling)
若一組模組都訪問同一個公共資料環境,則它們之間的耦合就稱為公共耦合。公共的資料環境可以是全域性資料結構、共享的通訊區、記憶體的公共覆蓋區等。 這種耦合會引起下列問題:
1)所有公共耦合模組都與某一個公共資料環境內部各項的物理安排有關,若修改某個資料的大小,將會影響到所有的模組。 2)無法控制各個模組對公共資料的存取,嚴重影響軟體模組的可靠性和適應性。 3)公共資料名的使用,明顯降低了程式的可讀性。
[page] 公共耦合的複雜程度隨耦合模組的個數增加而顯著增加。如圖4.14所示,若只是兩個模組之間有公共資料環境,則公共耦合有兩種情況。 若一個模組只是往公共資料環境裡傳送資料,而另一個模組只是從公共資料環境中取資料,則這種公共耦合叫做鬆散公共耦合。
若兩個模組都從公共資料環境中取資料,又都向公共資料環境裡送資料,則這種公共耦合叫做緊密公共耦合。只有在模組之間共享的資料很多,且通過參數列傳遞不方便時,才使用公共耦合。否則,還是使用模組獨立性比較高的資料耦合好些。
內容耦合(content coupling)
又稱病態耦合。如果發生下列情形,兩個模組之間就發生了內容耦合。 1)一個模組直接訪問另一個模組的內部資料; 2)一個模組不通過正常入口轉到另一模組內部; 3)兩個模組有一部分程式**重疊(只可能出現在組合語言中); 4)一個模組有多個入口。
在內容耦合的情形,所訪問模組的任何變更,或者用不同的編譯器對它再編譯,都會造成程式出錯。好在大多數高階程式設計語言已經設計成不允許出現內容耦合。它一般出現在組合語言程式中。
這種耦合是模組獨立性最弱的耦合。
2樓:星葉心空
你是不是今天交作業。。。
計算機程式語言的程式設計軟體需要什麼語言?
開發軟體的軟體有哪些?一般又由什麼程式語言來編寫?
開發軟體的軟體有哪些?一般又由什麼程式語言來編寫?
3樓:圓呀嘛元
一般的外掛(像eclipse)就不扯了,業內有另一種成熟的軟體快速前端技術架構
後端技術架構
開發軟體的軟體--低**平臺在國內已經發展了近二十年,其優勢明顯。面對傳統底層編碼開發模式開發週期長、開發成本高、業務調整難等痛點,藉助低**開發平臺快速構建企業業務和管理應用已經成為一種新時尚!
請分析各種程式語言、基於各種語言的程式設計軟體
手機軟體的主流程式語言是什麼?
程式設計、軟體開發所用的程式語言
目前最常用的開發軟體的程式語言是什麼?
軟體文字**是什麼程式語言
4樓:匿名使用者
這應該是c語言應用吧
5樓:匿名使用者
這個很像html,應該是寫網頁之類的,不像c之類的
三本的軟體工程,三本的軟體工程
你好,我是軟體工程專業的,我們計科系也有電腦科學與技術專業。剛剛開始,兩者並沒很大的區別,我們要學的科目基本上都一樣。只是學習的時間不同罷了,比如我們這個學期學資料庫,那他們這個學期就可能學c語言。我只是舉個例子而已。既然是軟體工程,那以後的方向更多的是跟軟體有關,比如程式設計 程式設計 軟體測試等...
高階軟體工程師的工作職責,高階軟體工程師要具備哪些工作職責和職業道德?
在目前很多國內軟體企業中,如果你是 高階軟體工程師 那麼從需求分析,設計,開發,測試,甚至到客戶這一條龍都可能由一個人來負責。軟體開發與測試 首先,軟體開發是軟體工程師職責的基本組成部分,這點應該沒有問題。其次,此處的軟體測試可分為開發前的驅動測試,和開發過程中的白盒測試。驅動測試用於分析子系統 模...
我是學軟體工程的,但是我想再以金融工程為第二學位修雙學位,可以嗎
沒什麼不可以的吧 我們是電子資訊專業 很多同學輔修心理學 英語雙學位什麼的 就是辛苦 樓主要想好自己為什麼想學以及是否可以堅持不懈,因為雙學位很累人 有什麼問題可以補充 我是學軟體工程的,想修個雙學位。20 經濟學。軟體本來就是偏向應用型的專業,學習一點經濟學的知識有助於增加對市場的瞭解。如虎添翼 ...