軟體架構設計的目的

來源:互聯網
上載者:User

標籤:

 軟體架構設計的目的簡單說就是在保持軟體內在聯絡的前提下,分解軟體系統,降低軟體系統開發的複雜性,而分解軟體系統的基本方法無外乎分層和分割。但是在保持軟體內在聯絡的前提下,如何分層分割系統,分層分割到什麼樣的粒度,並不是一件容易的事,這方面有各種各樣的分解方法,比如:關注點分離,面向方面,物件導向,面向介面,面向服務,依賴注入,以及各種各樣的設計原則等,

耦合可以分為以下幾種,它們之間的耦合度由高到低排列如下:

(1) 內容耦合:一個模組直接存取另一模組的內容,則稱這兩個模組為內容耦合。

若在程式中出現下列情況之一,則說明兩個模組之間發生了內容耦合:

1. 一個模組直接存取另一個模組的內部資料。

2. 一個模組不通過正常入口而直接轉入到另一個模組的內部。

3. 兩個模組有一部分代碼重疊(該部分代碼具有一定的獨立功能)。

4. 一個模組有多個入口。

內容耦合可能在組合語言中出現。大多數進階語言都已設計成不允許出現內容耦合。這種耦合的耦合性最強,模組獨立性最弱。

(2) 公用耦合:一組模組都訪問同一個全域資料結構,則稱之為公用耦合。公用資料環境可以是全域資料結構、共用的通訊區、記憶體的公用覆蓋區等。如果模組只是向公用資料環境輸入資料,或是只從公用資料環境取出資料,這屬於比較鬆散的公用耦合;如果模組既向公用資料環境輸入資料又從公用資料環境取出資料,這屬於較緊密的公用耦合。

公用耦合會引起以下問題:

1. 無法控制各個模組對公用資料的存取,嚴重影響了軟體模組的可靠性和適應性。

2. 使軟體的可維護性變差。若一個模組修改了公用資料,則會影響相關模組。

3. 降低了軟體的可理解性。不容易清楚知道哪些資料被哪些模組所共用,排錯困難。

一般地,僅當模組間共用的資料很多且通過參數傳遞很不方便時,才使用公用耦合。

(3) 外部耦合:一組模組都訪問同一全域簡單變數,而且不通過參數表傳遞該全域變數的資訊,則稱之為外部耦合。

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

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

(6) 資料耦合:調用模組和被調用模組之間只傳遞簡單的資料項目參數。相當於進階語言中的值傳遞。

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

總結:耦合是影響軟體複雜程度和設計品質的一個重要因素,為提高模組的獨立性,應建立模組間儘可能鬆散的系統,在設計上我們應採用以下原則:若模組間必須存在耦合,應盡量使用資料耦合,少用控制耦合,慎用或有控制地使用公用耦合,並限制公用耦合的範圍,盡量避免內容耦合。

 

 

   易悅(深圳)科技有限公司

        讓快樂更簡單

     :EJoyYOJOY

微博:http://weibo.com/EJoyYOJOY

官網:http://www.ejoytec.com/

 

軟體架構設計的目的

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.