第4章-概要設計_第1頁
第4章-概要設計_第2頁
第4章-概要設計_第3頁
第4章-概要設計_第4頁
第4章-概要設計_第5頁
已閱讀5頁,還剩37頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

概要設計第4章本章要點

掌握軟件設計的概念與原則;理解軟件設計的任務;

掌握概要設計的內容與步驟;掌握結構化設計方法;了解概要設計說明書的內容。概要設計第4章項目任務了解瑞天圖書管理系統的開發與運行環境

;認真分析瑞天圖書系統的程序界面,研究各類基礎數據與書籍借出、歸還、預借和續借等操作之間的關系,確定擬開發的圖書管理系統的軟件結構和數據庫表結構

;運用結構化設計方法完成圖書管理系統軟件結構設計和數據結構設計

;編寫圖書管理系統軟件概要設計說明書

。4.1軟件設計概述第4章軟件設計是軟件工程的重要階段,是一個將軟件需求轉換為軟件表示的過程。軟件設計的基本目標是用比較抽象概括的方式確定目標系統如何完成預定的任務,即確定系統的物理模型,解決軟件系統“怎么做”的問題。軟件設計不同于程序設計,程序設計是軟件設計的編碼實現過程。軟件設計的重要性有以下幾點:(1)軟件開發階段(設計、編碼、測試)占據軟件項目開發總成本絕大部分,是在軟件開發中形成質量的關鍵環節。(2)軟件設計是開發階段最重要的步驟,是將用戶需求準確地轉化為最終的軟件產品的唯一途徑。(3)軟件設計作出的決策,最終將直接影響軟件實現的成敗。(4)軟件設計是軟件工程和軟件維護的基礎。4.1.1軟件設計的概念與重要性4.1軟件設計概述第4章從工程管理的角度來看,可以將軟件設計分為兩個階段:概要設計(又稱總體設計)階段和詳細設計(又稱過程設計)階段。概要設計階段得到軟件系統的基本框架,詳細設計階段明確系統內部的實現細節。4.1.2軟件設計的任務4.2概要設計的任務與步驟第4章概要設計的基本任務是:(1)設計軟件系統結構;(2)數據結構及數據庫設計;(3)編寫概要設計文檔;(4)評審概要設計文檔。4.2.1概要設計的任務4.2概要設計的任務與步驟第4章概要設計的一般步驟如下:1.選定體系結構2.確定設計方案3.設計軟件結構4.數據結構及數據庫設計5.制訂測試計劃6.編寫概要設計文檔7.概要設計文檔評審4.2.2概要設計的步驟4.3概要設計的原則第4章1.模塊化模塊化是“分而治之”策略的具體表現。模塊化就是將整體軟件劃分成獨立命名且可獨立訪問的模塊,不同的模塊通常具有不同的功能或職責。每個模塊可獨立地開發、測試,最后組裝成完整的軟件。在結構化方法中,函數、過程和子程序等都可作為模塊;在面向對象方法中,對象、對象內的方法也是模塊。模塊是構成軟件的基本構件。4.3概要設計的原則第4章2.抽象與分解抽象是指忽視一個主題中與當前目標無關的方面,以便更充分地注意與當前目標有關的方面。抽象可以分成若干級別,級別越高,細節越少。其實整個軟件的開發過程就是一個從抽象到具體的過程:需求分析時,使用問題域語言來概括性地描述解決方案,抽象級別最高;軟件設計時,同時使用面向問題域和面向實現的兩種術語描述解決方案,抽象級別次之;在編碼時,使用直接實現的方式(源程序代碼)來描述解決方案,抽象級別最低。在軟件設計中,過程抽象和數據抽象是兩種常用的抽象手段。4.3概要設計的原則第4章3.信息隱蔽和局部化信息隱蔽是指模塊所包含的信息,不允許其他不需要這些信息的模塊訪問,獨立的模塊間僅僅交換為完成系統功能而必須交換的信息。信息隱蔽的目的是提高模塊的獨立性,減少修改或維護時的影響面。局部化就是把關系密切的軟件元素物理地放得彼此靠近。其優點是可維護性、可靠性和可理解性好。4.模塊獨立性模塊獨立性概括了把軟件劃分為模塊時要遵守的準則,也是判斷模塊構造是否合理的標準。模塊獨立性好的軟件接口簡單、容易開發,獨立的模塊也容易測試和維護。因此,模塊獨立性是軟件質量的關鍵。4.3概要設計的原則第4章5.復用性設計復用是指同一事物不做修改或稍加修改就可以多次重復使用。將復用思想用于軟件開發稱為軟件復用,將軟件的重用部分稱為軟構件。也就是說,在構造軟件系統時不必從零做起,可通過直接使用或加以修改已有軟構件來組裝成新系統。軟件復用可提高軟件的生產率。由于軟構件是經過反復使用驗證的,自身具有較高的質量,因此由軟構件組成的新系統也具有較高的質量。軟件復用并不局限于軟件代碼,其范圍也可擴展到軟件開發各個階段,包括需求模型和規格說明、設計模型、文檔、測試用例等。4.4模塊的獨立性第4章模塊獨立性是指軟件系統中每個模塊只涉及軟件要求的具體的子功能,而與軟件系統中其他模塊的接口是簡單的。模塊獨立性取決于模塊的內部和外部特征。一般用耦合和內聚兩個定性的指標來度量。耦合是模塊之間相互依賴的緊密程度的度量,內聚是一個模塊內部各個元素之間彼此結合的緊密程度的度量。一個模塊內部各個元素之間的聯系越緊密,則模塊的內聚度就越高,相對地,它與其他模塊之間的耦合就越低,模塊的獨立性就越強。一個優秀的軟件設計,應盡量做到高內聚、低耦合,從而提高模塊的獨立性。4.4模塊的獨立性第4章耦合是模塊之間相互連接的緊密程度的度量。耦合強弱取決于模塊間接口的復雜程度、進入或訪問一個模塊的點以及通過接口的數據。模塊之間的連接越緊密,聯系越多,耦合性就越高,而其模塊獨立性就越弱。通常希望一個軟件系統具有較低的耦合性。4.4.1耦合性(Coupling)4.4模塊的獨立性第4章1.非直接耦合兩個模塊間沒有直接關系,它們之間的聯系完全是通過主模塊的控制和調用來實現的。耦合度最弱,模塊獨立性最強。2.數據耦合調用模塊和被調用模塊之間只傳遞簡單的數據項參數。相當于高級語言中的值傳遞。4.4.1耦合性(Coupling)4.4模塊的獨立性第4章3.標記耦合調用模塊和被調用模塊之間傳遞數據結構而不是簡單數據。也稱特征耦合。標記耦合的模塊間傳遞的不是簡單變量,而是像高級語言中的數組名、記錄名和文件名等數據結構,這些名字即為標記,其實傳遞的是地址。4.4.1耦合性(Coupling)4.4模塊的獨立性第4章4.控制耦合模塊之間傳遞的不是數據信息,而是控制信息如標志、開關量,一個模塊控制了另一模塊的功能。4.4.1耦合性(Coupling)4.4模塊的獨立性第4章5.外部耦合一組模塊都訪問同一全局簡單變量,而且不通過參數表傳遞該全局變量的信息,則稱之為外部耦合。6.公共耦合若一組模塊都訪問同一全局數據結構,則稱之為公共耦合。公共數據環境可以是全局數據結構、共享的通信區、內存的公共覆蓋區等。如果模塊只是向公共數據環境輸入數據,或是只從公共數據環境取出數據,這屬于比較松散的公共耦合;如果模塊既向公共數據環境輸入數據又從公共數據環境取出數據,這屬于較緊密的公共耦合。4.4.1耦合性(Coupling)4.4模塊的獨立性第4章7.內容耦合一個模塊直接訪問另一模塊的內容,則稱這兩個模塊為內容耦合。若在程序中出現下列情況之一,則說明兩個模塊之間發生了內容耦合:(1)一個模塊直接訪問另一個模塊的內部數據;(2)一個模塊不通過正常入口而直接轉入到另一個模塊的內部;(3)兩個模塊有一部分代碼重疊(該部分代碼具有一定的獨立功能);(4)一個模塊有多個入口。4.4.1耦合性(Coupling)4.4模塊的獨立性第4章一個模塊內各個元素彼此結合的緊密程度用內聚(或稱聚合)來度量。一個理想的模塊只完成一個功能,模塊設計的目標之一是盡可能高內聚。4.4.2內聚性(Cohesion)4.4模塊的獨立性第4章1.偶然內聚一個模塊內的各處理元素之間沒有任何聯系,只是偶然地被湊到一起。這種模塊也稱巧合內聚,內聚程度最低。4.4.2內聚性(Cohesion)4.4模塊的獨立性第4章2.邏輯內聚指模塊內執行幾個邏輯上相關的功能,通過參數確定該模塊完成哪一個功能。4.4.2內聚性(Cohesion)4.4模塊的獨立性第4章3.時間內聚把需要同時或順序執行的動作組合在一起形成的模塊。時間內聚模塊中的功能元素只因時間因素關聯在一起,各元素之間沒有共用數據,而且一般情況下各部分可以以任意次序執行。4.過程內聚如果一個模塊內的處理元素是相關的,而且必須以特定次序執行則稱為過程內聚。4.4.2內聚性(Cohesion)4.4模塊的獨立性第4章5.通信內聚指模塊內所有處理功能都通過公用數據而發生關系。即模塊內各個組成部分都使用相同的輸入數據或產生相同的輸出結果。4.4.2內聚性(Cohesion)4.4模塊的獨立性第4章6.順序內聚指一個模塊中各個處理元素和同一個功能密切相關,而且這些處理必須順序執行,通常前一個處理元素的輸出是后一個處理元素的輸入。順序內聚的內聚度比較高,但缺點是不如功能內聚易于維護。7.功能內聚指模塊內所有元素的各個組成部分全部都為完成同一個功能而存在,共同完成一個單一的功能,模塊已不可再分。即模塊僅包括為完成某個功能所必須的所有成分,這些成分緊密聯系、缺一不可。4.4.2內聚性(Cohesion)4.4模塊的獨立性第4章1.模塊功能的完善化2.消除重復功能,改善軟件結構3.模塊規模應該適中4.模塊的深度、寬度、扇出和扇入都應適當5.模塊的作用范圍應該在控制范圍之內6.力爭降低模塊接口的復雜程度7.設計單入口、單出口的模塊8.模塊功能應該可以預測4.4.2軟件結構優化準則4.5軟件結構設計的圖形工具第4章層次圖(Hierarchy)也稱H圖,用于表示軟件的層次結構,特別適合于在自頂向下設計時使用。4.5.1層次圖4.5軟件結構設計的圖形工具第4章IPO圖是輸入/處理/輸出圖(InputProcessOutput),其基本形式是三個方框,左邊方框列出所有的輸入數據,中間框列出主要的處理,右邊框列出輸出數據。4.5.2IPO圖4.5軟件結構設計的圖形工具第4章模塊結構圖(StructureChart,SC圖)用于表示軟件系統的層次分解關系、模塊調用關系、模塊之間數據流和控制信息流的傳遞關系,是描述軟件系統物理模型、進行概要設計的主要工具,也是軟件文檔的一部分。4.5.3結構圖4.6結構化的設計方法第4章結構化設計方法是面向數據流的設計方法,它以數據流圖為基礎,定義了將數據流圖映射為軟件結構圖(即DFD→SC)的方法,而數據流的類型決定了映射的方法。數據流分為變換流和事務流兩種,因此由數據流組成的數據流圖也分為變換型數據流圖和事務型數據流圖兩種類型。由變換型數據流圖向結構圖的映射稱變換分析,由事務型數據流圖向結構圖的映射稱事務分析。4.6結構化的設計方法第4章1.數據流圖的類型(1)變換流變換型數據流的特征是可以把它看成由輸入、變換中心和輸出三部分組成,這樣的數據流圖稱為變換型數據流圖。如圖4-20所示。4.6結構化的設計方法第4章(2)事務流事務型數據流的特征是可以把它看成具有在多種事務中選擇執行某類事務的能力。這樣的數據流圖稱為事務型數據流圖。4.6結構化的設計方法第4章2.結構化設計過程面向數據流的結構化方法的設計過程如圖4-22所示。4.6結構化的設計方法第4章(1)精化DFD。(2)確定DFD類型。(3)把DFD映射到系統模塊結構,設計模塊結構的上層。(4)基于DFD逐步分解高層模塊,設計出下層模塊。(5)根據模塊獨立性原理,精化模塊結構。(6)描述模塊接口。4.6結構化的設計方法第4章兩種映射方法都是先映射出初始軟件結構圖。4.6結構化的設計方法第4章3.變換分析變換分析是一系列設計步驟的總稱,通過執行這些步驟,將具有變換流特點的數據流圖按預先確定的模式映射成軟件結構。采用變換分析方法開發出的軟件結構圖,其一般方式為:“輸入—處理—輸出”。變換分析方法的設計步驟如下:第一步復查基本系統模型。以確定輸入數據和輸出數據是否與實際相符。第二步復查并精化數據流圖。完成對需求分析階段得出的數據流圖的復查和精化。第三步判斷數據流圖具有變換特性還是事務特性。根據數據流圖中占優勢的屬性是事務的還是變換的,來確定數據流的全局屬性。第四步確定輸入流和輸出流的邊界,從而將變換中心劃分出來。第五步完成“第一級分解”。分配控制的過程,劃分頂層模塊和從屬模塊。第六步完成“第二級分解”。就是把數據流圖中的每個處理映射成軟件結構中一個適當的模塊。第七步采用啟發式設計規則和設計度量對得到的軟件結構進行精化。4.6結構化的設計方法第4章4.事務分析事務分析的設計步驟和變換分析的設計步驟基本類似,主要差別在于數據流圖到軟件結構的映射方法不同。在事務分析的設計中,由數據流圖映射到軟件結構時,從事務中心邊界開始,把接收通路映射成一個模塊,在發送通路設立一個控制模塊,用以控制由不同發送通路映射成的分支模塊。4.7概要設計文檔與評審第4章軟件設計規格說明書是軟件設計階段要完成的文檔,作為設計任務的最終成果。概要設計、詳細設計、數據設計規格說明書可根據項目的大小分別編寫或合并為一份設計規格說明書。我國國家標準GB/T8567\|2006《計算機軟件文檔編制規范》都給出了設計說明書的內容框架,可以選擇使用。本章4.8節給出的“高校圖書管理系統”《軟件概要設計說明書》可供讀者參考。4.7.1概要設計說明書的編寫內容4.7概要設計文檔與評審第4章設計評審就是對設計文檔的評審。目的是為了盡早發現軟件的欠缺并盡早糾正,因此評審對于項目的成功是絕對必要的。(1)評審的指導原則概要設計評審和詳細設計評審應分開進行,不可合并為一次評審;概要設計評審應邀請用戶代表和有關領域專家到會,詳細設計評審則不需要;評審是為了提前揭露錯誤,參加評審的設計人員應該歡迎別人提出批評和建議,不要掩蓋設計的缺陷。評審的對象是設計文檔而不是設計者;評審中提出的問題應詳細記錄,但不謀求當場解決;評審結束前應做出本次評審能否通過的結論。4.7.2概要設計評審4.7概要設計文檔與評審第4章(2)評審的主要內容概要設計評審應該把重點放在系統的總體結構、模塊劃分、內外

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論