軟件工程4軟件設(shè)計ppt課件_第1頁
軟件工程4軟件設(shè)計ppt課件_第2頁
軟件工程4軟件設(shè)計ppt課件_第3頁
軟件工程4軟件設(shè)計ppt課件_第4頁
軟件工程4軟件設(shè)計ppt課件_第5頁
已閱讀5頁,還剩60頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第4章 軟件設(shè)計掌握:概要設(shè)計的方法、詳細設(shè)計的方法、軟掌握:概要設(shè)計的方法、詳細設(shè)計的方法、軟件設(shè)計闡明書的規(guī)范化編寫。件設(shè)計闡明書的規(guī)范化編寫。4.1 軟件設(shè)計概述4.1.1 軟件設(shè)計的義務(wù) 軟件設(shè)計的根本目的就是回答“系統(tǒng)應(yīng)該如何實現(xiàn)?這個問題。軟件設(shè)計的義務(wù),就是把分析階段產(chǎn)生的軟件需求闡明轉(zhuǎn)換為用適當手段表示的軟件設(shè)計文檔。 1系統(tǒng)構(gòu)造設(shè)計 系統(tǒng)構(gòu)造設(shè)計用于定義軟件主要構(gòu)造性元素之間的關(guān)系。系統(tǒng)構(gòu)造設(shè)計表示即基于計算機的系統(tǒng)的框架可以從系統(tǒng)規(guī)約、分析模型以及分析模型中所定義的子系統(tǒng)的交互中導出。 2數(shù)據(jù)設(shè)計 數(shù)據(jù)設(shè)計用于將分析階段創(chuàng)建的信息模型,如數(shù)據(jù)字典、數(shù)據(jù)流圖等,轉(zhuǎn)變?yōu)閷崿F(xiàn)軟件

2、所需的數(shù)據(jù)構(gòu)造。部分數(shù)據(jù)設(shè)計能夠和軟件系統(tǒng)構(gòu)造的設(shè)計同時發(fā)生,但更詳細的數(shù)據(jù)設(shè)計活動那么會發(fā)生在設(shè)計每個詳細軟件構(gòu)件或模塊的時候。 3接口設(shè)計 接口設(shè)計描畫軟件內(nèi)部模塊之間以及軟件與人之間是如何通訊的包括數(shù)據(jù)流和控制流。一個接口意味著特定的信息流如數(shù)據(jù)流或控制流以及行為類型,因此,數(shù)據(jù)和控制流圖提供了接口設(shè)計所需的信息。 4構(gòu)件設(shè)計 從工程管理的角度來看,傳統(tǒng)的軟件設(shè)計義務(wù)通常分兩個階段完成,即概要設(shè)計和詳細設(shè)計。 4.1.2 模塊與模塊化 在軟件系統(tǒng)設(shè)計中,模塊是一個明確定義的輸入、輸出和特性的程序?qū)嶓w,通常程序中單獨命名且可經(jīng)過名字訪問的過程函數(shù)、子程序或宏調(diào)用都可看作模塊。普通模塊具有以

3、下幾種特征: 1接口:模塊的輸入/輸出。 2功能:模塊實現(xiàn)什么功能,有什么作用。 3邏輯:描畫模塊內(nèi)部如何實現(xiàn)需求及所需數(shù)據(jù)。 4形狀:模塊的運轉(zhuǎn)環(huán)境,模塊間調(diào)用與被調(diào)用關(guān)系。 軟件設(shè)計該當遵照“模塊化的原那么。所謂“模塊化,就是將程序劃分成假設(shè)干個獨立的模塊的過程,其中,每個模塊完成一個特定子功能,每個模塊既相對獨立,又相互聯(lián)絡(luò),它們共同完成系統(tǒng)指定的各項功能。 4.1.3 籠統(tǒng)與細化籠統(tǒng)是指從一些事物中抽取其本質(zhì)的共同的特性,而忽略其非本質(zhì)細節(jié)的差別。細化是一種先總體、后部分的思想原那么,也就是一種逐層分解、分而治之的方法。模塊的“粒度是指模塊的規(guī)模。假設(shè)模塊的規(guī)模過大,會使得模塊的可重用

4、性差,同時,修正、維護也比較困難。在模塊設(shè)計中,“細化與“籠統(tǒng)的思想極為重要。經(jīng)過細化,可以將一個大模塊分解成假設(shè)干個小模塊;經(jīng)過籠統(tǒng),可以將多個模塊中的公共部分概括出來,用單獨的模塊表示,從而降低了模塊的粒度。4.1.4 信息隱蔽 信息隱蔽是在設(shè)計和確定模塊時,使得一個模塊內(nèi)包含的信息過程和數(shù)據(jù)對于不需求這些信息的模塊來說是不能訪問的。它經(jīng)過定義一組獨立的模塊來實現(xiàn)有效的模塊化。信息隱蔽作為一種設(shè)計準那么用于模塊化系統(tǒng),在測試與維護期間會為軟件修正帶來極大的益處。4.1.5 模塊的獨立性 模塊的獨立性是指軟件系統(tǒng)中的每個模塊只涉及軟件要求的詳細的子功能,應(yīng)與軟件系統(tǒng)中其他模塊的接口堅持簡單化

5、,即模塊間的聯(lián)絡(luò)不要太多。例如,假設(shè)一個模塊只具有單一的功能,且與其他模塊沒有太多的聯(lián)絡(luò),那么稱此模塊具有模塊獨立性。1. 耦合 耦合是模塊之間的相對獨立性相互銜接的嚴密程度)的度量。模塊之間的銜接越嚴密,聯(lián)絡(luò)越多,耦合性就越高,而其模塊獨立性就越弱。 1非直接耦合 非直接耦合是指兩個模塊之間無直接關(guān)系,它們之間的聯(lián)絡(luò)完全是經(jīng)過主程序的控制和調(diào)用來實現(xiàn)的。非直接耦合的模塊間耦合程度最低,即模塊獨立性最強。 2數(shù)據(jù)耦合 數(shù)據(jù)耦合指的是模塊間的通訊參數(shù)都是數(shù)據(jù)項。數(shù)據(jù)是模塊間進展信息交流的一種必不可少的聯(lián)絡(luò)方式。在模塊之間傳輸?shù)臄?shù)據(jù)項越少,產(chǎn)生的不利影響越少。圖4-1 數(shù)據(jù)耦合 3標志耦合 假設(shè)兩

6、個模塊經(jīng)過參數(shù)表傳送記錄信息,而這個記錄是某一數(shù)據(jù)構(gòu)造的子構(gòu)造如字符串,而不是簡單變量 4控制耦合 控制耦合是指一個模塊向另一個模塊傳送的信息控制了另一個模塊的執(zhí)行。圖4-2 控制耦合圖4-3 控制耦合的修正 5外部耦合 假設(shè)一組模塊經(jīng)過同個全局簡單變量相互作用,那么它們之間的耦合稱為外部耦合。 6公共耦合 公共耦合就是一組模塊都訪問同一全局數(shù)據(jù)構(gòu)造。 7內(nèi)容耦合 內(nèi)容耦合是指一個模塊直接訪問另一模塊的內(nèi)容。圖4-4 7種耦合的耦合性及數(shù)據(jù)獨立性2. 內(nèi)聚 內(nèi)聚是模塊功能強度(一個模塊內(nèi)部各個元素彼此結(jié)合的嚴密程度)的度量。一個模塊內(nèi)部各個元素之間的聯(lián)絡(luò)越嚴密,那么它的內(nèi)聚性就越高,相對地,它

7、與其他模塊之間的耦合性就會減低,而模塊獨立性也就越強。 1偶爾內(nèi)聚 假設(shè)一個模塊的各個部分之間沒有聯(lián)絡(luò),或者即使有聯(lián)絡(luò),這種聯(lián)絡(luò)也是很松散的,就稱為偶爾內(nèi)聚。 2邏輯內(nèi)聚 假設(shè)把幾個邏輯上相關(guān)的功能放在同一個模塊中,那么模塊每次被調(diào)用時,根據(jù)傳送給該模塊的斷定參數(shù)來確定模塊應(yīng)執(zhí)行的功能,就稱為邏輯內(nèi)聚。 3時間內(nèi)聚 時間內(nèi)聚是指一個模塊的各個組成部分的處置動作和時間有關(guān)。 4通訊內(nèi)聚 通訊內(nèi)聚是指一個模塊內(nèi)各個組成部分的處置動作都運用一樣的輸入數(shù)據(jù)或產(chǎn)生一樣的輸出數(shù)據(jù)。 5順序內(nèi)聚 順序內(nèi)聚是指一個模塊內(nèi)部的各個組成部分執(zhí)行的幾個處置動作有這樣的特征:前一處置動作所產(chǎn)生的輸出數(shù)據(jù)是下一個處置動

8、作的輸入數(shù)據(jù)。 6功能內(nèi)聚 功能內(nèi)聚是指一個模塊內(nèi)部的各個組成部分的處置動作全部都為執(zhí)行同一個功能而存在,并且只執(zhí)行一個功能。圖4-5 6種耦合的耦合性及數(shù)據(jù)獨立4.1.6 自底向上與自頂向下設(shè)計戰(zhàn)略采用自頂向下的戰(zhàn)略,首先將整個系統(tǒng)分解成子系統(tǒng),再將子系統(tǒng)分解成更小的子系統(tǒng),直至分解為可以直接實現(xiàn)的軟件模塊。采用自底向上的戰(zhàn)略那么首先思索最根本的系統(tǒng)構(gòu)件和系統(tǒng)的內(nèi)部函數(shù),然后逐漸將這些構(gòu)件聚合成更大的軟件模塊、子系統(tǒng),最終構(gòu)成整個系統(tǒng)。4.1.7 構(gòu)造化設(shè)計原那么1設(shè)計過程應(yīng)該可以預測和評價。 2設(shè)計對于分析模型應(yīng)該是可跟蹤的。 3設(shè)計應(yīng)該注重資源重用。 4設(shè)計應(yīng)該使最終軟件盡能夠和現(xiàn)實世界

9、中的問題“類似,也就是說,軟件設(shè)計的構(gòu)造應(yīng)該盡能夠地模擬問題域的構(gòu)造。 5設(shè)計應(yīng)該表現(xiàn)出一致性和集成性。 6設(shè)計應(yīng)該順應(yīng)擴展和變卦。 7設(shè)計應(yīng)該思索軟件的容錯性和處置錯誤、異常的才干。 8設(shè)計不是編碼,編碼也不是設(shè)計。 9在創(chuàng)建設(shè)計時就應(yīng)該可以評價質(zhì)量,而不是在事情完成之后評價。 10應(yīng)該評審設(shè)計,以減少概念性語義性錯誤。4.2 概要設(shè)計4.2.1 概要設(shè)計的根本義務(wù)1. 制定規(guī)范如規(guī)定代碼體系、接口規(guī)約、命名規(guī)那么等。2. 總體構(gòu)造設(shè)計1將軟件功能轉(zhuǎn)換成模塊,規(guī)定每個功能用哪些模塊實現(xiàn),保證每個功能都有相應(yīng)的模塊來實現(xiàn)。2決議模塊層次構(gòu)造和模塊間的調(diào)用關(guān)系。3模塊間的接口設(shè)計決議模塊間傳送的

10、信息及構(gòu)造。4用戶界面設(shè)計。5詳細的數(shù)據(jù)構(gòu)造設(shè)計,如表、索引、文件等。6與算法相關(guān)的邏輯數(shù)據(jù)構(gòu)造及操作。7其他性能方面的設(shè)計。4.2.2 概要設(shè)計的步驟1. 構(gòu)造化軟件設(shè)計方法 構(gòu)造化軟件概要設(shè)計的步驟如下: 1詳細閱讀需求規(guī)格闡明書,了解系統(tǒng)建立目的、業(yè)務(wù)現(xiàn)狀、現(xiàn)有系統(tǒng)、用戶需求的各功能闡明。 2分析數(shù)據(jù)流圖,弄清數(shù)據(jù)流加工的過程。 3根據(jù)數(shù)據(jù)流圖來決議數(shù)據(jù)處置問題的類型,普通分為變換型、事務(wù)型。 4推導出系統(tǒng)的初始構(gòu)造圖。 普通遵照以下步驟: 找出系統(tǒng)底層邏輯輸入、主加工和邏輯輸出; 設(shè)計頂層模塊和第一層模塊; 對輸入、變換、輸出模塊逐個分解,便可得到初始構(gòu)造圖5對初始構(gòu)造圖進展改良完善:

11、一切的加工都要能對應(yīng)到相應(yīng)模塊模塊的完好性在于它們完成了需求中的一切加工,消除完全類似或部分類似的反復功能,理清模塊間的層次、控制關(guān)系,平衡模塊大小。6由數(shù)據(jù)字典導出邏輯數(shù)據(jù)構(gòu)造、每種數(shù)據(jù)構(gòu)造上的操作,操作該當屬于某個模塊。7確定系統(tǒng)包含哪些運用效力子系統(tǒng)、客戶端、數(shù)據(jù)庫管理子系統(tǒng)。8對每個挑選后的模塊進展列表闡明。9對邏輯數(shù)據(jù)構(gòu)造進展列表闡明。10編寫概要設(shè)計闡明書。2. 面向?qū)ο蟮能浖O(shè)計方法 運用面向?qū)ο蟮脑O(shè)計方法,首先需求構(gòu)建軟件的體系構(gòu)造,其過程是:先將系統(tǒng)劃分為子系統(tǒng)可以運用包來描畫子系統(tǒng),根據(jù)子系統(tǒng)提供的操作定義它們的接口,然后設(shè)計子系統(tǒng)的概念模型。對復雜的子系統(tǒng),可以繼續(xù)將其分

12、解,得到更簡單的子系統(tǒng)。3. 構(gòu)造化軟件設(shè)計方法和面向?qū)ο蟮能浖O(shè)計方法之間的比較 1從概念方面看,構(gòu)造化軟件是功能的集合,經(jīng)過模塊以及模塊和模塊之間的分層調(diào)用關(guān)系實現(xiàn);面向?qū)ο筌浖鞘挛锏募?,?jīng)過對象以及對象和對象之間的通訊聯(lián)絡(luò)實現(xiàn)。 2從構(gòu)成方面看,構(gòu)造化軟件過程數(shù)據(jù),以過程為中心;面向?qū)ο筌浖?shù)據(jù)相應(yīng)操作的封裝,以數(shù)據(jù)為中心。 3從運轉(zhuǎn)控制方面看,構(gòu)造化軟件采用順序處置方式,由過程驅(qū)動控制;面向?qū)ο筌浖捎媒换ナ?、并行處置方式,由音訊?qū)動控制。 4從開發(fā)方面看,構(gòu)造化方法的任務(wù)重點是設(shè)計;面向?qū)ο蠓椒ǖ娜蝿?wù)重點是分析。但是,在構(gòu)造化方法中,分析階段和設(shè)計階段采用了不相吻合的表達方式,需

13、求把在分析階段采用的具有網(wǎng)絡(luò)特征的數(shù)據(jù)流圖轉(zhuǎn)換為設(shè)計階段采用的具有分層特征的構(gòu)造圖,而在面向?qū)ο蠓椒ㄖ心敲床淮嬖谶@一問題。 5從運用方面看,相對而言,構(gòu)造化方法和面向?qū)ο蟮姆椒ňm宜數(shù)據(jù)處置、事務(wù)處置軟件的開發(fā),但相對而言,構(gòu)造化方法更適宜數(shù)據(jù)類型比較簡單的數(shù)值計算軟件的開發(fā),面向?qū)ο蠓椒敲锤m宜大型復雜軟件的開發(fā)。4.2.3 軟件構(gòu)造圖圖4-6 成果管理系統(tǒng)的軟件構(gòu)造圖4.2.4 數(shù)據(jù)流圖 數(shù)據(jù)流圖簡稱DFD,是采用圖形方式來表達系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過程,是構(gòu)造化系統(tǒng)分析方法的主要表達工具及用于表示軟件模型的一種圖示方法。4.3 詳細設(shè)計4.3.1 詳細設(shè)計的

14、根本義務(wù)1對每個模塊進展詳細的算法設(shè)計。用某種圖形、表格、言語工具將每個模塊處置過程的詳細算法描畫出來。2對模塊內(nèi)的數(shù)據(jù)構(gòu)造進展設(shè)計。對需求分析、概要設(shè)計確定的概念性的數(shù)據(jù)類型進展確切的定義。3對數(shù)據(jù)構(gòu)造進展物理設(shè)計,即確定數(shù)據(jù)庫的物理構(gòu)造。物理構(gòu)造主要指數(shù)據(jù)庫的存儲記錄格式、存儲記錄安排和存儲方法,這些都依賴于詳細所運用的數(shù)據(jù)庫系統(tǒng)。4其他設(shè)計:為了提高數(shù)據(jù)的輸入、分類、存儲、檢索等操作的效率,節(jié)約內(nèi)存空間,對數(shù)據(jù)庫中的某些數(shù)據(jù)項的值要進展代碼設(shè)計。為了規(guī)范系統(tǒng)的輸入和輸出,還需求進展輸入/輸出格式設(shè)計。對于一個實時系統(tǒng),用戶與計算機頻繁對話,因此要進展對話方式、內(nèi)容、格式的詳細設(shè)計。5編寫

15、詳細設(shè)計闡明書。6評審。對處置過程的算法和數(shù)據(jù)庫的物理構(gòu)造都要評審。4.3.2 程序流程圖符號說明端點:流程的開始點或結(jié)束點處理:定義一個操作(一個或多個程序語句)流線:表示程序控制轉(zhuǎn)向判斷:測試條件是否滿足表4-1 程序流程圖的符號闡明圖4-7 程序流程圖的一個簡單例子4.3.3 盒圖圖4-8 盒圖的順序構(gòu)造圖4-9 盒圖的條件構(gòu)造圖4-10 盒圖的While循環(huán)構(gòu)造圖4-11 盒圖的Until循環(huán)構(gòu)造圖4-12 盒圖的選擇構(gòu)造圖4-13 盒圖的端點表示圖4-14 盒圖的模塊調(diào)用圖4-15 盒圖表示的一個簡單例子4.3.4 詳細設(shè)計中的IPO圖 IPO圖既是需求分析的工具,也是詳細設(shè)計的工具

16、。它的優(yōu)點是輸入、輸出明顯,容易被人了解,適宜于進展自頂向下設(shè)計,有一定的靈敏性。另外,運用IPO圖開發(fā)軟件還可以便于人員分工,具有易于測試、糾錯等優(yōu)點。它的缺陷是:制造量較大,修正較困難。4.3.5 PAD圖圖4-16 PAD圖的常見構(gòu)造4.3.6 偽代碼 偽代碼是一種算法描畫言語,它介于自然言語與實踐的編程言語之間。相比實踐的編程言語而言,偽代碼的代碼簡單、可讀性好,但它不可以在實踐的編程環(huán)境中編譯運轉(zhuǎn)。相比自然言語而言,偽代碼更容易被轉(zhuǎn)換為實踐的程序。普通來說,在軟件設(shè)計中,一些復雜的算法可以用偽代碼來表示。4.4 軟件設(shè)計闡明書與案例分析4.4.1 軟件設(shè)計闡明書1. 概要設(shè)計闡明書1引言1.1編寫目的1.2背景1.3定義1.4參考資料2總體設(shè)計2.1需求規(guī)定2.2運轉(zhuǎn)環(huán)境2.3根本設(shè)計概念和處置流程2.4構(gòu)造2.5功能需求與程序的關(guān)系2.6人工處置過程2.7尚未問決的問題3接口設(shè)計3.1用戶接口3.2外部接口3.3內(nèi)部接口4運轉(zhuǎn)設(shè)計4.1運轉(zhuǎn)模塊組合

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論