




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
軟件工程主講:陳利平計算機與信息科學學院2015軟件工程一、主要內(nèi)容講述軟件設計的概念和原則。二、目的與要求了解軟件設計的基本概念,理解軟件設計的基本原則。三、重點與難點軟件設計的原則。概述:一、主要內(nèi)容概述:思考:提問:1)什么是軟件軟件設計?2)軟件工程的基本原則是什么?思考:提問:4.1軟件設計的概念及原則軟件設計的概念
設計是一項核心的工程活動。在20世紀90年代早期,Lotus1-2-3的發(fā)明人MitchKapor在Dr.Dobbs雜志上發(fā)表了“軟件設計宣言”,其中指出:“什么是設計?設計是你站在兩個世界——技術世界和人類的目標世界——而你嘗試將這兩個世界結(jié)合在一起……”。4.1軟件設計的概念及原則軟件設計的概念4.1軟件設計的概念及原則軟件設計的概念
羅馬建筑批評家Vitruvius提出了這樣一個觀念:“設計良好的建筑應該展示出堅固、適用和令人賞心悅目”。4.1軟件設計的概念及原則軟件設計的概念4.1軟件設計的概念及原則軟件設計的原則
(1)分而治之分而治之是將大型復雜的問題分解為許多容易解決的小問題,原來的問題也就容易解決了。軟件的體系結(jié)構設計、模塊化設計都是分而治之策略的具體表現(xiàn)。4.1軟件設計的概念及原則軟件設計的原則4.1軟件設計的概念及原則(1)分而治之盡管模塊分解可以簡化要解決的問題,但模塊分解并不是越小越好。當模塊數(shù)目增加時,每個模塊的規(guī)模將減小,開發(fā)單個模塊的成本確實減少了;但是,隨著模塊數(shù)目增加,模塊之間關系的復雜程度也會增加,設計模塊間接口所需要的工作量也將增加,如圖所示。4.1軟件設計的概念及原則(1)分而治之圖4.2模塊化和軟件成本圖4.2模塊化和軟件成本4.1軟件設計的概念及原則(2)模塊獨立性模塊的獨立性是指軟件系統(tǒng)中每個模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其他的模塊的接口是簡單的。例如,若一個模塊只具有單一的功能且與其他模塊沒有太多的聯(lián)系,那么,我們則稱此模塊具有模塊獨立性。一般采用兩個準則度量模塊獨立性。即模塊間的耦合和模塊的內(nèi)聚。
4.1軟件設計的概念及原則(2)模塊獨立性
1)
耦合
耦合是對一個軟件結(jié)構內(nèi)不同模塊之間互連程度的度量。耦合強弱取決于模塊間接口的復雜程度,進入或訪問一個模塊的點,以及通過接口的數(shù)據(jù)。在軟件設計中應該追求盡可能松散耦合的系統(tǒng)。在這樣的系統(tǒng)中可以研究、測試或維護任何一個模塊,而不需要對系統(tǒng)的其他模塊有很多了解。此外,由于模塊間聯(lián)系簡單,發(fā)生在一處的錯誤傳播到整個系統(tǒng)的可能性就很小。因此,模塊間的耦合程度強烈影響系統(tǒng)的可理解性、可測試性、可靠性和可維護性。1)耦合耦合性與模塊屬性的關系
對修改的敏感性可重用性
可修改性
可理解性
內(nèi)容耦合很強很差很差很差公共耦合強很差中很差控制耦合一般差差差數(shù)據(jù)耦合不一定好好好耦合性與模塊屬性的關系
對修改的敏感性可重用性可修改性耦合性耦合性應采取下述設計原則:盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合。耦合性耦合性應采取下述設計原則:盡量使用數(shù)據(jù)耦合,少用控制耦
2)內(nèi)聚內(nèi)聚標志一個模塊內(nèi)各個元素彼此結(jié)合的緊密程度,它是信息隱蔽和局部化概念的自然擴展。簡單地說,理想內(nèi)聚的模塊只做一件事情。設計時應該力求做到高內(nèi)聚,通常中等程度的內(nèi)聚也是可以采用的,而且效果和高內(nèi)聚相差不多;但是,低內(nèi)聚很壞,不要使用。2)內(nèi)聚內(nèi)聚與模塊屬性的關系
內(nèi)部聯(lián)系清晰性可復用性可修改性可理解性偶然內(nèi)聚很差差很差很差很差邏輯內(nèi)聚很差很差很差很差差時間內(nèi)聚差中很差中中過程內(nèi)聚中好差中中通信內(nèi)聚中好差中中順序內(nèi)聚好好中好好功能內(nèi)聚好好好好好內(nèi)聚與模塊屬性的關系
內(nèi)部聯(lián)系清晰性可復用性可修改性可理解內(nèi)聚性內(nèi)聚性設計內(nèi)聚原則:設計時應力爭做到高內(nèi)聚,并且能夠辨認出低內(nèi)聚的模塊,并采取措施進行修改,以提高模塊的內(nèi)聚程度、降低模塊間的耦合程度,從而獲得較高的模塊獨立性。內(nèi)聚性內(nèi)聚性設計內(nèi)聚原則:設計時應力爭做到高內(nèi)聚,并且能夠辨
內(nèi)聚和耦合是密切相關的,模塊內(nèi)的高內(nèi)聚往往意味著模塊間的松耦合。內(nèi)聚和耦合都是進行模塊化設計的有力工具,但是實踐表明內(nèi)聚更重要,應該把更多注意力集中到提高模塊的內(nèi)聚程度上。事實上,沒有必要精確確定內(nèi)聚的級別。重要的是設計時力爭做到高內(nèi)聚,并且能夠辨認出低內(nèi)聚的模塊,有能力通過修改設計提高模塊的內(nèi)聚程度降低模塊間的耦合程度,從而獲得較高的模塊獨立性。內(nèi)聚和耦合是密切相關的,模塊內(nèi)的高內(nèi)聚往往意味著模塊間4.1軟件設計的概念及原則(3)提高抽象層次抽象是指忽視一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。當我們進行軟件設計時,設計開始時應盡量提高軟件的抽象層次,按抽象級別從高到低進行軟件設計。4.1軟件設計的概念及原則(3)提高抽象層次4.1軟件設計的概念及原則(4)復用性設計復用是指同一事物不做修改或稍加修改就可以多次重復使用。將復用的思想用于軟件開發(fā),稱為軟件復用。我們將軟件的重用部分稱為軟構件。也就是說,在構造新的軟件系統(tǒng)時不必從零做起,可以直接使用已有的軟構件即可組裝(或加以合理修改)成新的系統(tǒng)。4.1軟件設計的概念及原則(4)復用性設計4.1軟件設計的概念及原則(5)靈活性設計保證軟件靈活性設計的關鍵是抽象。面向?qū)ο笙到y(tǒng)中的類結(jié)構類似一座金字塔,越接近金字塔的頂端,抽象程度就越高。“抽象”的反義詞是“具體”。理想情況下,一個系統(tǒng)的任何代碼、邏緝、概念在這個系統(tǒng)中都應該是唯一的,也就是說不存在重復的代碼。4.1軟件設計的概念及原則(5)靈活性設計4.1軟件設計的概念及原則在設計中引入靈活性的方法有:降低耦合并提高內(nèi)聚(易于提高替換能力);建立抽象(創(chuàng)建有多態(tài)操作的接口和父類);不要將代碼寫死(消除代碼中的常數(shù));拋出異常(由操作的調(diào)用者處理異常);使用并創(chuàng)建可復用的代碼。4.1軟件設計的概念及原則在設計中引入靈活性的方法有:小結(jié)本次課主要講述軟件設計的概念與原則。重點掌握模塊化和模塊獨立性度量。小結(jié)本次課主要講述軟件設計的概念與原則。重點掌握模塊化和模塊
下課了。。。休息一會兒。。。追求下課了。。。休息一會兒。。。追軟件工程主講:陳利平計算機與信息科學學院2015軟件工程一、主要內(nèi)容講述軟件設計的概念和原則。二、目的與要求了解軟件設計的基本概念,理解軟件設計的基本原則。三、重點與難點軟件設計的原則。概述:一、主要內(nèi)容概述:思考:提問:1)什么是軟件軟件設計?2)軟件工程的基本原則是什么?思考:提問:4.1軟件設計的概念及原則軟件設計的概念
設計是一項核心的工程活動。在20世紀90年代早期,Lotus1-2-3的發(fā)明人MitchKapor在Dr.Dobbs雜志上發(fā)表了“軟件設計宣言”,其中指出:“什么是設計?設計是你站在兩個世界——技術世界和人類的目標世界——而你嘗試將這兩個世界結(jié)合在一起……”。4.1軟件設計的概念及原則軟件設計的概念4.1軟件設計的概念及原則軟件設計的概念
羅馬建筑批評家Vitruvius提出了這樣一個觀念:“設計良好的建筑應該展示出堅固、適用和令人賞心悅目”。4.1軟件設計的概念及原則軟件設計的概念4.1軟件設計的概念及原則軟件設計的原則
(1)分而治之分而治之是將大型復雜的問題分解為許多容易解決的小問題,原來的問題也就容易解決了。軟件的體系結(jié)構設計、模塊化設計都是分而治之策略的具體表現(xiàn)。4.1軟件設計的概念及原則軟件設計的原則4.1軟件設計的概念及原則(1)分而治之盡管模塊分解可以簡化要解決的問題,但模塊分解并不是越小越好。當模塊數(shù)目增加時,每個模塊的規(guī)模將減小,開發(fā)單個模塊的成本確實減少了;但是,隨著模塊數(shù)目增加,模塊之間關系的復雜程度也會增加,設計模塊間接口所需要的工作量也將增加,如圖所示。4.1軟件設計的概念及原則(1)分而治之圖4.2模塊化和軟件成本圖4.2模塊化和軟件成本4.1軟件設計的概念及原則(2)模塊獨立性模塊的獨立性是指軟件系統(tǒng)中每個模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其他的模塊的接口是簡單的。例如,若一個模塊只具有單一的功能且與其他模塊沒有太多的聯(lián)系,那么,我們則稱此模塊具有模塊獨立性。一般采用兩個準則度量模塊獨立性。即模塊間的耦合和模塊的內(nèi)聚。
4.1軟件設計的概念及原則(2)模塊獨立性
1)
耦合
耦合是對一個軟件結(jié)構內(nèi)不同模塊之間互連程度的度量。耦合強弱取決于模塊間接口的復雜程度,進入或訪問一個模塊的點,以及通過接口的數(shù)據(jù)。在軟件設計中應該追求盡可能松散耦合的系統(tǒng)。在這樣的系統(tǒng)中可以研究、測試或維護任何一個模塊,而不需要對系統(tǒng)的其他模塊有很多了解。此外,由于模塊間聯(lián)系簡單,發(fā)生在一處的錯誤傳播到整個系統(tǒng)的可能性就很小。因此,模塊間的耦合程度強烈影響系統(tǒng)的可理解性、可測試性、可靠性和可維護性。1)耦合耦合性與模塊屬性的關系
對修改的敏感性可重用性
可修改性
可理解性
內(nèi)容耦合很強很差很差很差公共耦合強很差中很差控制耦合一般差差差數(shù)據(jù)耦合不一定好好好耦合性與模塊屬性的關系
對修改的敏感性可重用性可修改性耦合性耦合性應采取下述設計原則:盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合。耦合性耦合性應采取下述設計原則:盡量使用數(shù)據(jù)耦合,少用控制耦
2)內(nèi)聚內(nèi)聚標志一個模塊內(nèi)各個元素彼此結(jié)合的緊密程度,它是信息隱蔽和局部化概念的自然擴展。簡單地說,理想內(nèi)聚的模塊只做一件事情。設計時應該力求做到高內(nèi)聚,通常中等程度的內(nèi)聚也是可以采用的,而且效果和高內(nèi)聚相差不多;但是,低內(nèi)聚很壞,不要使用。2)內(nèi)聚內(nèi)聚與模塊屬性的關系
內(nèi)部聯(lián)系清晰性可復用性可修改性可理解性偶然內(nèi)聚很差差很差很差很差邏輯內(nèi)聚很差很差很差很差差時間內(nèi)聚差中很差中中過程內(nèi)聚中好差中中通信內(nèi)聚中好差中中順序內(nèi)聚好好中好好功能內(nèi)聚好好好好好內(nèi)聚與模塊屬性的關系
內(nèi)部聯(lián)系清晰性可復用性可修改性可理解內(nèi)聚性內(nèi)聚性設計內(nèi)聚原則:設計時應力爭做到高內(nèi)聚,并且能夠辨認出低內(nèi)聚的模塊,并采取措施進行修改,以提高模塊的內(nèi)聚程度、降低模塊間的耦合程度,從而獲得較高的模塊獨立性。內(nèi)聚性內(nèi)聚性設計內(nèi)聚原則:設計時應力爭做到高內(nèi)聚,并且能夠辨
內(nèi)聚和耦合是密切相關的,模塊內(nèi)的高內(nèi)聚往往意味著模塊間的松耦合。內(nèi)聚和耦合都是進行模塊化設計的有力工具,但是實踐表明內(nèi)聚更重要,應該把更多注意力集中到提高模塊的內(nèi)聚程度上。事實上,沒有必要精確確定內(nèi)聚的級別。重要的是設計時力爭做到高內(nèi)聚,并且能夠辨認出低內(nèi)聚的模塊,有能力通過修改設計提高模塊的內(nèi)聚程度降低模塊間的耦合程度,從而獲得較高的模塊獨立性。內(nèi)聚和耦合是密切相關的,模塊內(nèi)的高內(nèi)聚往往意味著模塊間4.1軟件設計的概念及原則(3)提高抽象層次抽象是指忽視一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。當我們進行軟件設計時,設計開始時應盡量提高軟件的抽象層次,按抽象級別從高到低進行軟件設計。4.1軟件設計的概念及原則(3)提高抽象層次4.1軟件設計的概念及原則(4)復用性設計復用是指同一事物不做修改或稍加修改就可以多次重復使用。將復用的思想用于軟件開發(fā),稱為軟件復用。我們將軟件的重用部分稱為軟構件。也就是說,在構造新的軟件系統(tǒng)時不必從零做起,可以直接使用已有的軟構件即可組裝(或加以合理修改)成新的系統(tǒng)。4.1軟件設計的概念及原則(4)復用性設計4.1軟件設計的概念及原則(5)靈活性設計保證軟件靈活性設計的關鍵是抽象。面向?qū)ο笙到y(tǒng)中的類結(jié)構類似一座金字塔,越接近金字塔的頂端,抽象程度就越高?!俺橄蟆钡姆戳x詞是“具體”。理想情況下,一個系統(tǒng)的任何代碼、邏緝、概念在這個系統(tǒng)中都應該是唯一的,也就是說不存在重復的代碼。4.1軟件設計的概念及原
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)隱私保護合規(guī)管理體系建設合同
- 模具翻新與客戶定制化解決方案協(xié)議
- 高端倉儲管理員勞務派遣合同范本
- 寵物和主人協(xié)議書
- 同行業(yè)退股協(xié)議書
- 疆老人收養(yǎng)協(xié)議書
- 葡萄田租賃協(xié)議書
- 大火鍋轉(zhuǎn)讓協(xié)議書
- 資金股投資協(xié)議書
- 美容院活動協(xié)議書
- 香港借貸合同協(xié)議
- 酒店消防安全知識培訓
- 經(jīng)營崗位筆試題目及答案
- 農(nóng)行反洗錢與制裁合規(guī)知識競賽考試題庫大全-上下
- DGTJ08-202-2020鉆孔灌注樁施工規(guī)程 上海市
- 作風建設學習教育讀書班交流發(fā)言提綱
- 2025年社會工作者職業(yè)水平考試中級實務模擬試卷:社會工作專業(yè)能力與團隊協(xié)作能力試題
- 2025年《AI人工智能知識競賽》題庫及答案解析
- 全國公開課一等獎人教版小學數(shù)學五年級下冊《數(shù)學廣角-找次品》課件
- 2022年高中物理同步講義(選修性必修3)第11講-熱力學第一定律(原卷版)
- 電工電焊工安全培訓
評論
0/150
提交評論