軟件工程第4章-軟件設(shè)計_第1頁
軟件工程第4章-軟件設(shè)計_第2頁
軟件工程第4章-軟件設(shè)計_第3頁
軟件工程第4章-軟件設(shè)計_第4頁
軟件工程第4章-軟件設(shè)計_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第4章 軟件設(shè)計 本章主要內(nèi)容 軟件設(shè)計的概念和原則軟件設(shè)計的基本過程總體設(shè)計的主要內(nèi)容面向數(shù)據(jù)流的設(shè)計方法詳細(xì)設(shè)計的任務(wù)與原則詳細(xì)設(shè)計的表達(dá)工具軟件設(shè)計說明書的編制與評審 1第4章 軟件設(shè)計本章結(jié)構(gòu):4.1 軟件設(shè)計的基礎(chǔ)知識 4.2 軟件設(shè)計的基本過程 4.3 總體設(shè)計 4.4 詳細(xì)設(shè)計 4.5 實例分析24.1 軟件設(shè)計的基礎(chǔ)知識 4.1.1 軟件設(shè)計概述 軟件設(shè)計是一個將軟件需求變換成軟件表示的過程。軟件設(shè)計的基本目標(biāo)是用比較抽象概括的方式確定目標(biāo)系統(tǒng)如何完成預(yù)定的任務(wù),即確定系統(tǒng)的物理模型,解決軟件“怎么做”的問題。從技術(shù)的角度來看,軟件設(shè)計可分為軟件結(jié)構(gòu)設(shè)計、數(shù)據(jù)設(shè)計、接口設(shè)計和過

2、程設(shè)計。從工程管理的角度來看,軟件設(shè)計可分為總體設(shè)計和詳細(xì)設(shè)計兩個步驟。 34.1 軟件設(shè)計的基礎(chǔ)知識 4.1.2 軟件設(shè)計的任務(wù)和原則 在設(shè)計階段,系統(tǒng)設(shè)計人員和程序設(shè)計人員應(yīng)該在反復(fù)理解軟件需求的基礎(chǔ)上,提出多個設(shè)計方案,分析每個設(shè)計方案能實現(xiàn)的功能并進(jìn)行相互比較,最后確定一個設(shè)計方案,包括該軟件的結(jié)構(gòu)、模塊的劃分、功能的分配以及處理流程。在一般情況下,應(yīng)完成的文檔包括:總體設(shè)計說明書、詳細(xì)設(shè)計說明書和測試計劃初稿。軟件設(shè)計中一般應(yīng)遵循以下原則:模塊化、抽象、信息隱蔽與局部化、一致性、完整性和可驗證性。 44.1 軟件設(shè)計的基礎(chǔ)知識 1.模塊化 (1)模塊的含義 (2)模塊化的依據(jù) (3)

3、模塊化與軟件成本 (4)定義模塊大小的標(biāo)準(zhǔn)2.抽象3.信息隱蔽和局部化4.一致性、完整性和可驗證性 54.2 軟件設(shè)計的基本過程 4.2.1 軟件設(shè)計的基本過程1在總體設(shè)計過程中需要完成以下工作: (1)確定最佳方案 (2)功能分解 (3)體系結(jié)構(gòu)設(shè)計 (4)模塊設(shè)計 (5)數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫設(shè)計 (6)用戶界面設(shè)計 (7)編寫總體設(shè)計文檔 (8)評審 2在詳細(xì)設(shè)計過程中需要完成以下工作:(1)設(shè)計軟件各組成部分的內(nèi)部算法和數(shù)據(jù)組織;(2)選擇某種表達(dá)方式來描述各種算法;(3)進(jìn)行詳細(xì)設(shè)計評審。64.2 軟件設(shè)計的基本過程 4.2.2 數(shù)據(jù)設(shè)計和文件設(shè)計進(jìn)行數(shù)據(jù)設(shè)計時一般應(yīng)遵循以下原則:(1)用

4、于功能和行為的系統(tǒng)分析原則也可以應(yīng)用于數(shù)據(jù)設(shè)計;(2)應(yīng)該標(biāo)識所有數(shù)據(jù)結(jié)構(gòu)以及在每個數(shù)據(jù)結(jié)構(gòu)上所施加的操作;(3)應(yīng)建立數(shù)據(jù)詞典,并應(yīng)用于數(shù)據(jù)設(shè)計和程序設(shè)計;(4)采用自頂向下、逐步求精的方法完成數(shù)據(jù)設(shè)計,低層的設(shè)計決策應(yīng)該推遲到設(shè)計過程的后期; (5)應(yīng)該開發(fā)一個由有用的數(shù)據(jù)結(jié)構(gòu)和應(yīng)用于其上的操作組成的庫;(6)數(shù)據(jù)結(jié)構(gòu)的表示應(yīng)做到:只有那些需要直接使用數(shù)據(jù)結(jié)構(gòu)、內(nèi)部數(shù)據(jù)的模塊才能看到該數(shù)據(jù)的表示;(7)軟件設(shè)計和程序設(shè)計語言應(yīng)該支持抽象數(shù)據(jù)類型的規(guī)格說明和實現(xiàn)。74.3 總體設(shè)計 4.3.1 數(shù)據(jù)設(shè)計和文件設(shè)計常見的體系結(jié)構(gòu)有兩大類:層次結(jié)構(gòu)和客戶機(jī)/服務(wù)器結(jié)構(gòu)。1.層次結(jié)構(gòu)圖層次結(jié)構(gòu)是在

5、系統(tǒng)功能分解的基礎(chǔ)上提出的,即將一個大的任務(wù)分解成若干小的任務(wù)分層次來完成。常見的層次結(jié)構(gòu)有樹狀層次結(jié)構(gòu)和相鄰關(guān)系的層次結(jié)構(gòu)。(1)樹狀層次結(jié)構(gòu)(2)相鄰關(guān)系的層次結(jié)構(gòu) 2.客戶機(jī)/服務(wù)器結(jié)構(gòu) 3. 瀏覽器/服務(wù)器結(jié)構(gòu)84.3 總體設(shè)計 4.3.2 模塊設(shè)計評價模塊獨(dú)立性的兩個度量準(zhǔn)則是耦合和內(nèi)聚(或稱聚合),耦合是模塊之間相互依賴的緊密程度的度量,內(nèi)聚是一個模塊內(nèi)部各個元素之間彼此結(jié)合的緊密程度的度量。一個模塊內(nèi)部各個元素之間的聯(lián)系越緊密,則模塊的內(nèi)聚度就越高(強(qiáng)),相對地,它與其他模塊之間的耦合就越低(弱),模塊的獨(dú)立性就越強(qiáng)。一個優(yōu)秀的軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚、低耦合,從而提高模塊的獨(dú)

6、立性。1.耦合(coupling) (1)非直接耦合 (2)數(shù)據(jù)耦合 (3)標(biāo)記耦合 (4)控制耦合(5)外部耦合(6)公共耦合 (7)內(nèi)容耦合 94.3 總體設(shè)計 2.內(nèi)聚(cohesion) (1)偶然內(nèi)聚 (2)邏輯內(nèi)聚 (3)時間內(nèi)聚 (4)過程內(nèi)聚 (5)通信內(nèi)聚 (6)順序內(nèi)聚 (7)功能內(nèi)聚 104.3 總體設(shè)計 3.啟發(fā)式設(shè)計規(guī)則(1)消除重復(fù)功能,改進(jìn)軟件結(jié)構(gòu),提高模塊獨(dú)立性降低耦合,提高內(nèi)聚。 (2)模塊規(guī)模應(yīng)該適中,一般不超過60行語句。 (3)深度、寬度、扇出和扇入都應(yīng)適當(dāng)。(4)模塊的作用范圍應(yīng)該在控制范圍之內(nèi)。(5)力爭降低模塊接口的復(fù)雜程度。(6)設(shè)計單入口、單出

7、口的模塊。(7)模塊功能應(yīng)該可以預(yù)測。 114.3 總體設(shè)計 4.3.3 數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫設(shè)計 1.數(shù)據(jù)結(jié)構(gòu)設(shè)計 2.數(shù)據(jù)庫設(shè)計 數(shù)據(jù)庫的數(shù)據(jù)模型設(shè)計,主要包括以下幾方面的內(nèi)容: (1)概念數(shù)據(jù)模型設(shè)計 (2)邏輯數(shù)據(jù)模型設(shè)計 (3)物理數(shù)據(jù)模型設(shè)計124.3 總體設(shè)計 4.3.4 界面設(shè)計人機(jī)界面(Human Computer Interface,簡稱HCI)通常也稱為用戶界面。人機(jī)界面有如下幾種定義:人機(jī)界面是由人、硬件、軟件結(jié)合而成的系統(tǒng)元素,完成需要人機(jī)配合才能實現(xiàn)的功能。人機(jī)界面是人與計算機(jī)之間使用的某種對話語言,以一定的交互方式、用某種方式完成設(shè)定任務(wù)需要的信息交互過程。人機(jī)界面是

8、人與計算機(jī)之間傳遞交換信息的媒介,是用戶使用計算機(jī)的綜合的操作環(huán)境。 134.3 總體設(shè)計 1數(shù)據(jù)輸入界面設(shè)計(1)數(shù)據(jù)輸入的規(guī)則數(shù)據(jù)輸入的目標(biāo)是:盡量簡化用戶的工作、減少輸入的出錯率;減輕用戶的記憶負(fù)擔(dān)、盡可能減少輸入量并實現(xiàn)自動輸入; 對共同的輸入設(shè)置默認(rèn)值; 使用代碼或縮寫; 自動填入已輸入過的內(nèi)容;列表式輸入; 數(shù)據(jù)分組輸入。數(shù)據(jù)輸入屏幕的設(shè)計應(yīng)當(dāng)盡量與輸入格式相匹配。數(shù)據(jù)內(nèi)容應(yīng)當(dāng)根據(jù)其使用頻率、重要性或輸入次序進(jìn)行組織。數(shù)據(jù)輸入對話設(shè)計的一般規(guī)則是:明確的輸入。明確的動作。明確的取消。確認(rèn)刪除。提供反饋。允許編輯。提供復(fù)原。自動格式化。提示輸入的范圍。 144.3 總體設(shè)計 (2)輸

9、入表格設(shè)計數(shù)據(jù)表格設(shè)計是對較復(fù)雜的數(shù)據(jù)錄入時使用最廣泛的一種對話類型。這種方法是在屏幕上顯示一張表格,類似于用戶熟悉的填表格式,以供用戶輸入數(shù)據(jù)。數(shù)據(jù)表格設(shè)計時要注意以下問題:數(shù)據(jù)驗證屏幕設(shè)計報信數(shù)據(jù)輸入對話控制154.3 總體設(shè)計 2數(shù)據(jù)顯示界面設(shè)計數(shù)據(jù)顯示界面包括屏幕查詢、文件瀏覽、圖形顯示和報告等內(nèi)容。(1)數(shù)據(jù)顯示的規(guī)則只顯示必要的數(shù)據(jù),與用戶需求無直接關(guān)系的數(shù)據(jù)一律省略;在一起使用的數(shù)據(jù)應(yīng)一起顯示;顯示出的數(shù)據(jù)應(yīng)與用戶執(zhí)行的任務(wù)有關(guān);每一屏數(shù)據(jù)的數(shù)量不應(yīng)超過整個屏幕面積的30%。利用這些原則,并根據(jù)用戶要求,將數(shù)據(jù)分組,然后將每組數(shù)據(jù)按一定的結(jié)構(gòu)形式來安排,以方便用戶的使用。(2)屏

10、幕布局規(guī)則盡量少用代碼和縮寫,以便于理解;如有多個顯示畫面,應(yīng)建立統(tǒng)一格式;提供明了的標(biāo)題、欄題及其他提示信息;遵循用戶習(xí)慣,盡量使用用戶習(xí)慣的術(shù)語;采用顏色、字符大小、下劃線、不同字體等方式強(qiáng)化重要數(shù)據(jù)。 164.3 總體設(shè)計 4.3.5 面向數(shù)據(jù)流的設(shè)計方法 1結(jié)構(gòu)圖結(jié)構(gòu)圖(Structure Chart,SC圖)是結(jié)構(gòu)化設(shè)計方法的主要描述工具,它用于表達(dá)軟件系統(tǒng)內(nèi)各組成模塊及其相互調(diào)用關(guān)系。SC圖的符號如下圖所示。174.3 總體設(shè)計 SC圖中模塊的調(diào)用、判斷調(diào)用和循環(huán)調(diào)用關(guān)系如下圖所示。184.3 總體設(shè)計 2數(shù)據(jù)流圖的類型及結(jié)構(gòu)化設(shè)計過程結(jié)構(gòu)化設(shè)計方法把數(shù)據(jù)流圖映射成軟件結(jié)構(gòu),信息流

11、的類型決定了映射的方法,信息流有變換流和事務(wù)流兩種類型,因此組成的數(shù)據(jù)流圖也分為變換型數(shù)據(jù)流圖和事務(wù)型數(shù)據(jù)流圖兩種類型。(1)變換流(transform stream)194.3 總體設(shè)計 (2)事務(wù)流(transaction stream)204.3 總體設(shè)計 (3)設(shè)計過程(design process)面向數(shù)據(jù)流的結(jié)構(gòu)化方法的設(shè)計過程如下圖所示。214.3 總體設(shè)計 3.變換分析變換分析是一系列設(shè)計步驟的總稱,通過執(zhí)行這些步驟,將具有變換流特點(diǎn)的數(shù)據(jù)流圖按預(yù)先確定的模式映射成軟件結(jié)構(gòu)。采用變換分析方法開發(fā)出的軟件結(jié)構(gòu)圖,其一般方式為:“輸入處理輸出”。 4.事務(wù)分析事務(wù)分析的設(shè)計步驟和變

12、換分析的設(shè)計步驟基本類似,主要差別在于數(shù)據(jù)流圖到軟件結(jié)構(gòu)的映射方法不同。在事務(wù)分析的設(shè)計中,由數(shù)據(jù)流圖映射到軟件結(jié)構(gòu)時,從事務(wù)中心邊界開始,把接收通路映射成一個模塊,在發(fā)送通路設(shè)立一個控制模塊,用以控制由不同發(fā)送通路映射成的分支模塊。 5.綜合設(shè)計 在實際的系統(tǒng)設(shè)計中,首先從總體上確定數(shù)據(jù)流圖的類型,采用相應(yīng)的設(shè)計方法進(jìn)行設(shè)計,確定頂層模塊,然后采用自頂向下的方法依次完成下層模塊的設(shè)計。 6.設(shè)計優(yōu)化設(shè)計優(yōu)化應(yīng)該力求做到在有效的模塊化的前提下盡量使用最少的模塊,在滿足信息要求的前提下盡量使用最簡單的數(shù)據(jù)結(jié)構(gòu)。 224.4 詳細(xì)設(shè)計 4.4.1 詳細(xì)設(shè)計的基本任務(wù)1算法設(shè)計采用某種圖形、表格、語

13、言等過程描述工具將每個模塊處理過程的詳細(xì)算法描述出來。2數(shù)據(jù)結(jié)構(gòu)設(shè)計對于需求分析、總體設(shè)計階段確定的概念性的數(shù)據(jù)類型進(jìn)行確切的定義。3物理設(shè)計對數(shù)據(jù)庫進(jìn)行物理設(shè)計,即確定數(shù)據(jù)庫的物理結(jié)構(gòu)。物理結(jié)構(gòu)主要是指數(shù)據(jù)庫的存儲記錄格式、存儲記錄安排和存儲方法等。4其他設(shè)計完整性控制和輸入輸出設(shè)計人機(jī)對話設(shè)計代碼設(shè)計5編寫詳細(xì)設(shè)計文檔6進(jìn)行詳細(xì)設(shè)計評審234.4 詳細(xì)設(shè)計 4.4.2 詳細(xì)設(shè)計的原則 進(jìn)行詳細(xì)設(shè)計時應(yīng)遵循以下原則:(1)采用自頂向下、逐步求精的程序設(shè)計方法。(2)使用三種基本控制結(jié)構(gòu)完成程序設(shè)計。(3)設(shè)計人員組織結(jié)構(gòu)采用“外科醫(yī)生助手”模式。244.4 詳細(xì)設(shè)計 4.4.3 詳細(xì)設(shè)計的表達(dá)進(jìn)行詳細(xì)設(shè)計時常用三種工具:圖形、表格和語言。 1.程序流程圖程序流程圖的三種基本控制結(jié)構(gòu)如下圖。254.4 詳細(xì)設(shè)計 2.N-S圖N-S圖又叫盒圖,是Nassi和Shneiderman提出的一種符合結(jié)構(gòu)化程序設(shè)計原則的圖形描述工具。N-S圖的三種基本控制結(jié)構(gòu)如下圖所示。264.3 詳細(xì)設(shè)計 3.PAD圖PAD(Problem Analysis Diagram)是問題分析圖的縮寫,是由日本日立公司提出,由程序流程圖演化而來的。PAD圖的三種基本控制結(jié)構(gòu)如下圖所示。274.4 詳細(xì)設(shè)計 4.PDLPDL(Program Design Language)是一種用于描述功能模塊的算法設(shè)計和加工

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論