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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

5、系統(tǒng)功能分解的基礎(chǔ)上提出的,即將一個(gè)大的任務(wù)分解成若干小的任務(wù)分層次來(lái)完成。常見(jiàn)的層次結(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è)計(jì) 4.3.2 模塊設(shè)計(jì)評(píng)價(jià)模塊獨(dú)立性的兩個(gè)度量準(zhǔn)則是耦合和內(nèi)聚(或稱聚合),耦合是模塊之間相互依賴的緊密程度的度量,內(nèi)聚是一個(gè)模塊內(nèi)部各個(gè)元素之間彼此結(jié)合的緊密程度的度量。一個(gè)模塊內(nèi)部各個(gè)元素之間的聯(lián)系越緊密,則模塊的內(nèi)聚度就越高(強(qiáng)),相對(duì)地,它與其他模塊之間的耦合就越低(弱),模塊的獨(dú)立性就越強(qiáng)。一個(gè)優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚、低耦合,從而提高模塊的獨(dú)

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

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

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

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

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

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論