




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1/71內容摘要軟件工程中的設計設計過程與設計質量設計概念設計模型 基于模式的軟件設計設計小結 第1頁/共33頁2/71軟件工程中的設計 軟件需求分析解決“做什么”的問題,軟件設計過程則解決“怎么做”的問題 軟件設計是把軟件需求變換成軟件表示的過程,它主要包含兩個階段:軟件體系結構設計階段和部件級設計 軟件工程中的設計第2頁/共33頁3/71軟件設計的任務 使用一種設計方法,軟件分析模型中通過數(shù)據、功能和行為模型所展示的軟件需求的信息被傳送給設計階段,產生數(shù)據/類設計、體系結構設計、接口設計、部件級設計 第3頁/共33頁4/71 數(shù)據/類設計:將分析-類模型變換成類的實現(xiàn)和軟件實現(xiàn)所需要的數(shù)據
2、結構 體系結構設計:體系結構設計定義了軟件的整體結構 接口設計:接口設計描述了軟件內部、軟件和協(xié)作系統(tǒng)之間以及軟件同人之間如何通信 部件級設計:部件級設計將軟件體系結構的結構性元素變換為對軟件部件的過程性描述 第4頁/共33頁5/711)數(shù)據/類設計 在類和由CRC中定義的數(shù)據對象和關系以及數(shù)據字典中描述的詳細數(shù)據內容提供了數(shù)據設計活動的基礎 數(shù)據設計的過程包括以下兩步 : 首先,為在需求分析階段所確定的數(shù)據對象選擇邏輯表示,需要對不同結構進行算法分析,以便選擇一個最有效的設計方案; 然后,確定對邏輯數(shù)據結構所必需的那些操作的程序模塊,以便限制或確定各個數(shù)據設計決策的影響范圍。 第5頁/共33
3、頁6/712)體系結構設計 體系結構設計定義了軟件的整體結構,它由軟件部件、外部可見的屬性和它們之間的關系組成。體系結構設計表示可以從系統(tǒng)規(guī)約、分析模型和分析模型中定義的子系統(tǒng)的交互導出。 第6頁/共33頁7/713)接口設計 接口設計主要包括三個方面:設計軟件模塊間的接口設計模塊和其他非人的信息生產者和消費者(比如外部實體)之間的接口設計人(用戶)和計算機間的接口 第7頁/共33頁8/714)部件級設計 部件級設計將軟件體系結構的結構性元素變換為對軟件部件的過程性描述。從類為基礎的模型、流模型、行為模型中得到的信息是部件設計的基礎。 第8頁/共33頁9/71軟件設計的目標 在進行軟件設計的過
4、程中,我們要密切關注軟件的質量因素。 McGlanghlin 軟件設計過程的目標: 1)設計必須實現(xiàn)分析模型中描述的所有顯式需求,必須滿足用戶希望的所有隱式需求。2)設計必須是可讀、可理解的,使得將來易于編程、易于測試、易于維護。3)設計應從實現(xiàn)角度出發(fā),給出與數(shù)據、功能、行為相關的軟件全貌。第9頁/共33頁10/71衡量設計的技術標準 1)設計出來的結構應是分層結構,從而建立軟件成份之間的控制。2)設計應當模塊化,從邏輯上將軟件劃分為完成特定功能或子功能的部件。3)設計應當既包含數(shù)據抽象,也包含過程抽象。4)設計應當建立具有獨立功能特征的模塊。5)設計應當建立能夠降低模塊與外部環(huán)境之間復雜連
5、接的接口。6)設計應能根據軟件需求分析獲取的信息,建立可驅動、可重復的方法。第10頁/共33頁11/71設計過程與設計質量1)制定規(guī)范2)體系結構和接口設計3)數(shù)據/類設計4)部件級(過程)設計5)編寫設計文檔6)設計評審第11頁/共33頁12/71設計概念 抽象,是在軟件設計的規(guī)模逐漸增大的情況下,控制復雜性的基本策略。 抽象的過程是從特殊到一般的過程,上層概念是下層概念的抽象,下層概念是上層概念的精化和細化。 軟件工程過程的每一步都是對較高一級抽象的解作一次具體化的描述 第12頁/共33頁13/71 軟件設計中主要抽象手段有:過程抽象和數(shù)據抽象 過程抽象(也稱功能抽象)是指任何一個完成明確
6、定義功能的操作都可被使用者當作單個實體看待,盡管這個操作實際上是由一系列更低級的操作來完成的 數(shù)據抽象是指定義數(shù)據類型和施加于該類型對象的操作,并限定了對象的取值范圍,只能通過這些操作修改和觀察數(shù)據第13頁/共33頁14/71模塊化 模塊化,即把軟件按照規(guī)定原則,劃分為一個個較小的,相互獨立的但又相互關聯(lián)的部件,實際上是系統(tǒng)分解和抽象的過程。 模塊是數(shù)據說明、可執(zhí)行語句等程序對象的集合,它是單獨命名的,并且可以通過名字來訪問 例如,過程。函數(shù)、子程序、宏等 第14頁/共33頁15/71 設C(x)是描述問題x 復雜性的函數(shù),E(x)是解決問題x 所需工作量(按時間計算)的函數(shù)。對于兩個問題p1
7、 和p2,如果 C(p1)C(p2)(4.1a) 那么 E(p1)E(p2) (4.1b) 即問題越復雜,解決問題所需要的花費更多。 第15頁/共33頁16/71 通過對人解決問題的實驗,又存在另一個有趣的規(guī)律: C(p1p2)C(p1)C(p2) (4.2) 方程式(4.2)意味著p1 和p2 組合后的復雜性比單獨考慮每個問題時的復雜性要大??紤]方程式(4.2)和方程式(4.1)隱含的條件,我們可以得出 E(p1p2) E(p1)E(p2) (4.3) 不等式(4.3)表達出了一個對于模塊化和軟件具有十分重要意義的結論(即,模塊化的論據):將復雜問題分解成可以管理的片斷會更使解決問題更加容易
8、。 第16頁/共33頁17/71 如果我們無限制地劃分軟件,開發(fā)它所需的工作量會變得小到可以忽略?! 事實上,影響軟件開發(fā)的工作量的因素還有很多,例如模塊接口費用等等 上述不等式只能說明,當模塊的總數(shù)增加時,單獨開發(fā)各個子模塊的工作量之和會有所減少 第17頁/共33頁18/71 如果模塊是相互獨立的,當模塊變得越小,每個模塊花費的工作量越低; 但當模塊數(shù)增加時,模塊間的聯(lián)系也隨之增加,把這些模塊聯(lián)接起來的工作量也隨之增加。 第18頁/共33頁19/71信息隱藏 每個模塊的實現(xiàn)細節(jié)對于其它模塊來說應該是隱蔽的 塊中所包含的信息(包括數(shù)據和過程)不允許其它不需要這些信息的模塊使用 通過信息隱蔽,則
9、可定義和實施對模塊的過程細節(jié)和局部數(shù)據結構的存取限制 第19頁/共33頁20/71功能獨立 模塊獨立:模塊完成獨立的功能并且與其他模塊的接口簡單,符合信息隱蔽和信息局部化原則,模塊間關聯(lián)和依賴程度盡可能小 模塊獨立的重要性 功能被劃分,并且接口被簡化,所以具有有效模塊化的軟件更易于開發(fā) 由于因設計和編碼修改引起的副作用受到局限,錯誤傳播被減小,并且模塊復用成為可能,所以獨立的模塊更易于維護和測試 第20頁/共33頁21/71功能獨立 模塊的獨立性可以由兩項指標來衡量:內聚度與耦合度 內聚(cohesion)是一個模塊內部各個元素彼此結合的緊密程度的度量 耦合(coupling)是模塊之間的相對
10、獨立性(互相連接的緊密程度)的度量 第21頁/共33頁22/71逐步求精 逐步求精,把問題的求解過程分解成若干步驟或階段,每步都比上步更精化,更接近問題的解法 抽象使得設計者能夠描述過程和數(shù)據而忽略低層的細節(jié),而求精有助于設計者在設計過程中揭示低層的細節(jié) 第22頁/共33頁23/71內聚 (重構) 一般模塊的內聚性分為七種類型 第23頁/共33頁24/71內聚(重構)1)巧合內聚(偶然內聚):將幾個模塊中沒有明確表現(xiàn)出獨立功能的相同程序代碼段獨立出來建立的模塊稱為巧合內聚模塊。2)邏輯內聚 :指完成一組邏輯相關任務的模塊,調用該模塊時,由傳送給模塊的控制型參數(shù)來確定該模塊應執(zhí)行哪一種功能。3)
11、時間內聚:指一個模塊中的所有人物必須在同一時間段內執(zhí)行。例如初始化模塊和終止模塊。第24頁/共33頁25/71內聚4)過程內聚 :指一個模塊完成多個任務,這些任務必須按指定的過程(procedural)執(zhí)行。5)通信內聚 :指一個模塊內所有處理元素都集中在某個數(shù)據結構的一塊區(qū)域中。6)順序內聚:指一個模塊完成多個功能,這些功能又必須順序執(zhí)行。7)功能內聚 :指一個模塊中各個部分都是為完成一項具體功能而協(xié)同工作,緊密聯(lián)系,不可分割的。第25頁/共33頁26/71耦合 一般模塊之間可能的耦合方式有七種類型 第26頁/共33頁27/71耦合1)內容耦合 :如果一個模塊直接訪問另一個模塊的內部數(shù)據;或
12、者一個模塊不通過正常入口轉到另一模塊內部;或者兩個模塊有一部分程序代碼重迭;或者一個模塊有多個入口,則兩個模塊之間就發(fā)生了內容耦合。2)公共耦合 :若一組模塊都訪問同一個公共數(shù)據環(huán)境,則它們之間的耦合就稱為公共耦合。公共的數(shù)據環(huán)境可以是全局數(shù)據結構、共享的通信區(qū)、內存的公共覆蓋區(qū)等。3)外部耦合 :指模塊間通過軟件之外的環(huán)境聯(lián)結(如I/O將模塊耦合到特定的設備、格式、通信協(xié)議上)時,稱為外部耦合。第27頁/共33頁28/71耦合4)控制耦合:如果一個模塊傳送給另一個模塊的參數(shù)中包含了控制信息,該控制信息用于控制接收模塊中的執(zhí)行邏輯,則稱為控制耦合。5)標記耦合:兩個模塊之間通過參數(shù)表傳遞一個數(shù)據結構的一部分(如某一數(shù)據結構的子結構),就是標記耦合。6)數(shù)據耦合:兩個模塊之間僅通過參數(shù)表傳遞簡單數(shù)據,則稱為數(shù)據耦合。7)非直接耦合 :如果兩個模塊之間沒有直接關系,即它們中的任何一個都不依賴于另一個而能獨立工作,這種耦合稱為非直接耦合。第28頁/共33頁29/71 模塊之間的連接越緊密,聯(lián)系越多,耦合性就越高,而其模塊獨立性就越弱
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療器械買賣合同協(xié)議書
- 商品房產購銷合同
- 2025年春人教版(2024)小學數(shù)學一年級下冊教學計劃
- 2021電力工程繼電保護及接線施工作業(yè)指導書
- 醫(yī)院醫(yī)療器械買賣合同
- 2025年南昌年貨運從業(yè)資格證考試試題題庫
- 承包攪拌站運輸合同
- 2025年鷹潭貨運資格證培訓考試題
- 戶外廣告發(fā)布合同
- 2025年遵義貨運從業(yè)資格考試題
- 工程造價預算書
- 終止授權代理協(xié)議書模板
- 修建水壩施工合同模板
- 劍橋商務英語中級unit12
- 北師大版三年級下冊除法豎式計算題練習100道及答案
- 十堰2024年湖北十堰市茅箭區(qū)教育局所屬學校招聘教師134人筆試歷年典型考題及考點附答案解析
- 小白兔拔蘿卜(無背景音樂)
- 人音版六年級下冊音樂教案及反思
- 四年級上冊豎式計算100題及答案
- 結構化在崗帶教手冊模板2.0
- 2024屆遼寧省沈陽市名校中考四模化學試題含答案解析
評論
0/150
提交評論