(软件工程复习核心重点)第四章总体设计-第二节:设计原理
文章目錄
- 一:模塊化
- (1)模塊
- (2)模塊化
- (3)優點或作用
- 二:抽象(了解)
- 三:逐步求精
- (1)定義
- (2)MIller法則:注意力集中在(7 ±\pm± 2)
- 四:信息隱藏和局部化(了解)
- 五:模塊獨立
- (1)定義
- (2)重要性
- (3)模塊耦合及其分類
- A:定義
- B:分類
- C:設計原則
- (4)模塊內聚及其分類
- A:定義
- B:分類
- 軟件設計目標
一:模塊化
(1)模塊
模塊:模塊是由邊界元素限定的相鄰程序元素的序列,而且有一個總體標識符代表它。模塊是構成程序的基本構件。過程、函數、子程序和宏等,都可作為模塊。面向對象方法學中的對象是模塊,對象內的方法也是模塊
(2)模塊化
模塊化:模塊化就是把程序劃分成獨立命名且可獨立訪問的模塊,每個模塊完成一個子功能,把這些模塊集成起來構成一個整體,可以完成指定的功能滿足用戶的需求。模塊化是為了使一個復雜的大型程序能被人的智力所管理,是軟件應該具備的唯一屬性
(3)優點或作用
- 使軟件結構清晰,不僅容易設計也容易閱讀和理解
- 使軟件容易測試和調試,有助于提高軟件的可靠性
- 提高軟件的可修改性
- 有助于軟件開發工程的組織管理
二:抽象(了解)
抽象:抽出事物的本質特性而暫時不考慮它們的細節
三:逐步求精
(1)定義
逐步求精:逐步求精是軟件工程技術的基礎,為了能集中精力解決主要問題而盡量推遲對問題細節的考慮
(2)MIller法則:注意力集中在(7 ±\pm± 2)
這是對人類能力的研究得到的結果:一個人能力的極限也只能把注意力集中在7±2個信息塊。這就像人彈跳的極限,人忍受肌餓的極限一樣,是不可改變的客觀因素。它很大程度上限制人的思維能力。這個法則被成為:Miller法則我更喜歡這樣來描述這個法則:一個人的注意力的極限是集中注意力在7±2個事物上。我們知道,相比安靜的環境,在吵鬧的環境中,我們比較難以集中注意力,所以我這里使用“事物”來代替“信息塊”,因為我不想把吵鬧聲成為信息。另外還有一種定義是:一個人在任何時候只能把注意力集中在(7±2)個知識塊上。這說明了一個普通人(特異人士除外)能同時學習的能力是有限的,所以這個法則對于我們如何分配工作和學習的精力,也提供了很好的指導和參考
四:信息隱藏和局部化(了解)
信息隱藏:指一個模塊內包含的信息對于不需要這些信息的模塊來說是不能訪問的,主要是指模塊的實現細節
局部化:指把一些關系密切的軟件元素物理地放得彼此接近,有助于實現信息隱藏
- 在模塊中使用局部數據元素是一個典型的例子
五:模塊獨立
(1)定義
模塊獨立:開發具有獨立功能而且和其他模塊之間沒有過多的相互作用的模塊,就可以做到模塊獨立。使得每個模塊完成一個相對獨立的特定子功能,并且和其他模塊之間的關系很簡單。模塊獨立的概念是模塊化、抽象、信息隱藏和局部化概念的直接結果。其質量標準是耦合和內聚
(2)重要性
- 具有獨立的模塊的軟件比較容易開發出來
- 獨立的模塊比較容易測試和維護
(3)模塊耦合及其分類
A:定義
耦合:是對一個軟件結構內不同模塊間互連程序的度量。耦合強度取決于模塊接口的復雜程度、通過接口的數據等。耦合度越高,模塊獨立性越弱
B:分類
耦合度從低到高
- 完全獨立
- 數據耦合
- 特征耦合
- 控制耦合
- 外部耦合
- 公共耦合
- 內容耦合
完全獨立:如果兩個模塊中的每一個都能獨立地工作而不需要另一個模塊的存在,則稱它們彼此完全獨立,耦合程度最低。但是,在一個軟件系統中不可能所有模塊之間都沒有任何連接
數據耦合: 如果兩個模塊彼此間通過參數交換信息,而且交換的信息僅僅是數據,則稱它們是數據耦合。數據耦合是低耦合,系統中至少必須存在這種耦合
特征耦合: 如果整個數據結構作為參數傳遞而被調用的模塊只需要使用其中一部分數據元素,則稱它們是特征耦合。在這種情況下,被調用的模塊可以使用的數據多于它確實需要的數據,這將導致對數據的訪問失去控制,從而給計算機犯罪提供了機會
控制耦合: 如果兩個模塊彼此間通過參數交換信息,并且傳遞的信息中包含控制信息(這種控制信息可以以數據的形式出現),則稱它們是控制耦合。控制耦合是中等程度的耦合,它增加了系統的復雜程度。控制耦合往往是多余的,可用數據耦合代替它
外部耦合: 一組模塊都訪問同一全局簡單變量,而且不通過參數表傳遞該全局變量的信息,則稱之為外部耦合。外部耦合和公共耦合很像,區別就是一個是簡單變量,一個是復雜數據結構
公共耦合: 如果兩個或多個模塊通過一個公共數據環境相互作用,則稱它們是公共環境耦合。公共環境耦合的復雜程度隨耦合的模塊個數增加而增加
內容耦合: 內容耦合是最高程度的耦合,一個模塊直接訪問另一模塊的內容,則稱這兩個模塊為內容耦合。
C:設計原則
- 力求做到低耦合
- 盡量使用數據耦合
- 少用控制耦合和特征耦合
- 限制公共耦合的范圍
- 完全不用內容耦合
(4)模塊內聚及其分類
A:定義
內聚:是用來度量一個模塊內部各個元素彼此結合的緊密程度。內聚度越高,緊密程度越高
B:分類
內聚度從低到高。其中1-3屬于低內聚;4-5屬于中內聚;6-7屬于高內聚
偶然內聚: 如果一個模塊完成一組任務,這些任務彼此間即使有關系,關系也是很松散的,就叫做偶然內聚。有時在寫完一個程序之后,發現一組語句在兩處或多處出現,于是把這些語句作為一個模塊以節省內存,這樣就出現了偶然內聚的模塊
邏輯內聚: 如果一個模塊完成的任務在邏輯上屬于相同或相似的一類, 則成為邏輯內聚
時間內聚: 如果一個模塊包含的任務必須在同一段時間內執行,就叫時間內聚。時間關系在一定程度上反映了程序的某些實質,所以時間內聚比邏輯內聚好一些
過程內聚: 如果一個模塊內的處理元素是相關的,而且必須以特定次序執行,則稱為過程內聚。使用程序流程圖作為工具設計軟件時,往往得到的是過程內聚的模塊。
通信內聚: 如果模塊中所有元素都使用同一個輸入數據和(或)產生同一個輸出數據,則稱為通信內聚
順序內聚: 如果一個模塊內的處理元素和同一個功能密切相關,而且這些處理必須順序執行,則稱為順序內聚。根據數據流圖劃分模塊時,通常得到順序內聚的模塊
功能內聚: 如果模塊內所有處理元素屬于一個整體,完成一個單一的功能,則稱為功能內聚。功能內聚是最高程度的內聚。
軟件設計目標
高內聚、低耦合
總結
以上是生活随笔為你收集整理的(软件工程复习核心重点)第四章总体设计-第二节:设计原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML中的meta(转载)
- 下一篇: 关于运行SWT程序遇到的一个错误的总结