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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

概要設(shè)計第4章本章要點

掌握軟件設(shè)計的概念與原則;理解軟件設(shè)計的任務(wù);

掌握概要設(shè)計的內(nèi)容與步驟;掌握結(jié)構(gòu)化設(shè)計方法;了解概要設(shè)計說明書的內(nèi)容。概要設(shè)計第4章項目任務(wù)了解瑞天圖書管理系統(tǒng)的開發(fā)與運行環(huán)境

;認真分析瑞天圖書系統(tǒng)的程序界面,研究各類基礎(chǔ)數(shù)據(jù)與書籍借出、歸還、預(yù)借和續(xù)借等操作之間的關(guān)系,確定擬開發(fā)的圖書管理系統(tǒng)的軟件結(jié)構(gòu)和數(shù)據(jù)庫表結(jié)構(gòu)

;運用結(jié)構(gòu)化設(shè)計方法完成圖書管理系統(tǒng)軟件結(jié)構(gòu)設(shè)計和數(shù)據(jù)結(jié)構(gòu)設(shè)計

;編寫圖書管理系統(tǒng)軟件概要設(shè)計說明書

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

溫馨提示

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

評論

0/150

提交評論