首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載 | ||
![]() |
2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試 MPA考試 | 中科院 |
|
![]() |
四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT 新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語 |
|
![]() |
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證 華為認證 | Java認證 |
|
![]() |
公務員 | 報關員 | 銀行從業資格 | 證券從業資格 | 期貨從業資格 | 司法考試 | 法律顧問 | 導游資格 報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師 人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業資格 | 廣告師職業水平 駕駛員 | 網絡編輯 |
|
![]() |
衛生資格 | 執業醫師 | 執業藥師 | 執業護士 | |
![]() |
會計從業資格考試(會計證) | 經濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師 注冊資產評估師 | 高級會計師 | ACCA | 統計師 | 精算師 | 理財規劃師 | 國際內審師 |
|
![]() |
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監理工程師 | 安全工程師 質量工程師 | 物業管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產估價師 | 土地估價師 | 巖土師 設備監理師 | 房地產經紀人 | 投資項目管理師 | 土地登記代理人 | 環境影響評價師 | 環保工程師 城市規劃師 | 公路監理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師 |
|
![]() |
繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲 |
三、軟件設計的基本原理
1、模塊化
模塊就是指在程序中的數據說明、可執行語句等程序對象的集合,或者是單獨命名和編址的元素。如高級語言中的過程,函數、子程序等。每個模塊可以完成一個特定的子功能,各個模塊可以按一定方法組裝起來成為一個整體。從而實現整個系統的功能。
模塊化就是指解決一個復雜問題時自頂向下逐層把軟件系統劃分成若干模塊的過程。
為了解決復雜的問題,在軟件設計中就必須把整個問題進行分解來降低復雜性,這樣就可以減少開發工作量并降低開發成本和提高軟件生產率。但是劃分模塊并不是越多越好,因為這會增加模塊之間接口的工作量。所以劃分模塊的層次和數量應該避免過多或過少。
2、抽象
抽象這個詞本身也比較抽象,(老師要小明用抽象和具體造一個句子,可是他不懂,就問媽媽,什么是抽象,什么是具體? 媽媽告訴他:抽象就是看不見摸不著的,具體就是看得見摸得著的。小明懂了,很快造好了一個句子,是這樣的:今天我很早起床,看見具體的媽媽在炒具體的菜,我打開窗戶,抽象的新鮮空氣呼地一下跑進來,真舒服啊。)呵呵,事實上,抽象并不是這么簡單的意思,它是一種思維工具,就是把事物本質的共同特性抽出來而不考慮其他細節,比如說我們可以把把男人女人老人小孩的共同本質特性抽出來之后形成一個概念"人",這個概念就是抽象的結果。在軟件工程中就是這樣,在每個階段中,抽象的層次逐步降低,在軟件結構設計中的模塊分層也是由抽象到具體的分析和構造出來的。比如上一層的模塊所進行的加工是一個抽象的操作"銷售統計",分解到最后一層,就可能是具體"打印報表"的操作了。
3、信息隱蔽
信息隱蔽的意思就是指,在設計和確定模塊時,使得一個模塊內包含的信息(過程或數據),對于不需要這些信息的其他模塊來說是不能訪問的。舉個例子吧,假設我是程序中的一個模塊,電話機是另一個模塊,我在使用電話機時,對電話機的控制是通過幾個按鍵來確定的,輸入的數據是我的語音,輸出的數據是對方的語音,而這些輸入、輸出的數據變換以及控制在電話機內部是怎么實現的我不需要知道,同時也不能加以直接控制,這樣,如果電話機壞了,修復或更換后對我的使用是沒有任何影響的。所以說,電話機這個模塊的信息隱蔽是十分完善的。在軟件設計中,模塊的劃分也要采取措施使它實現信息隱蔽。
4、模塊獨立性
模塊獨立性是指每個模塊只完成系統要求的獨立的子功能,并且與其他模塊的聯系最少且接口簡單。這個概念就是上面說的三個基本原理的直接產物,在概要設計過程中,就是要求設計出具有良好模塊獨立性的軟件結構。
那么如何來衡量軟件的模塊獨立性呢?這里有兩個定性的度量標準。
(1)耦合性:就是指模塊之間的聯系緊密程度。模塊之間聯系越緊密,其耦合性越強,獨立性就越差。
模塊的耦合性從低到高可分為以下幾種類型:(假設某人為一模塊)
無直接耦合 (比如陌生人之間的聯系)
數據耦合 (比如去售貨員與顧客之間的聯系)
標記耦合 (比如兩個人下棋)
控制耦合 (領導和下屬之間的聯系)
公共耦合 (比如圖書館的所有借書者之間的聯系)
內容耦合 (比如小兩口之間的聯系)
在軟件設計中,提高模塊的獨立性,建立模塊間盡可能松散的系統,是模塊化設計的目標。為了降低模塊間的耦合度,可以采取以下措施:
(1)在耦合方式上降低模塊間接口的復雜性。
(2)在傳遞信息類型上盡量采用數據耦合,避免使用控制耦合,慎用或有控制地使用公共耦合。在實踐中要根據實際情況綜合考慮。
2、內聚性
內聚性是指模塊內部各個元素彼此結合的緊密程度。根據內聚性的從低到高可分為以下六種類型:
偶然內聚:指一個模塊內的各處理元素之間沒有任何聯系。(公共汽車內的人群)
邏輯內聚:指模塊內執行幾個邏輯上相似的功能,通過參數確定該模塊完成哪一個功能。(警察局里的警察)
時間內聚:把需要同時執行的動作組合在一起形成的模塊為時間內聚模塊。(交響樂團的演奏員)
通信內聚:指模塊內所有處理元素都在同一個數據結構上的操作。或者指各處理使用相同的輸入數據或者產生相同的輸出數據。(建筑工地上的工人)
順序內聚:指一個模塊中各個處理元素都密切相關于同一功能且必須順序執行,前一功能的元素的輸出就是下一功能元素的輸入。(我們可以想像紡織廠中從紡紗到織布的各個操作形成的一個模塊,就是一種順序內聚)
功能內聚:這是最強的內聚,指模塊內所有元素共同完成一個功能,缺一不可,模塊已不可再分。(就如兩個人演獅子舞,要完成獅子形象的再現,兩個人缺一不可.)
耦合性與內聚性是模塊獨立性的兩個定性標準,將軟件系統劃分模塊時,盡量做到高內聚,低耦合,提高模塊的獨立性。在內聚性與耦合性發生矛盾的時候,最好優先考慮耦合性,也就是先保證耦合性低一些。
相關推薦:2010年下半年軟考試題及答案解析匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |