《軟件工程》課件第6章詳細(xì)設(shè)計(jì)_第1頁
《軟件工程》課件第6章詳細(xì)設(shè)計(jì)_第2頁
《軟件工程》課件第6章詳細(xì)設(shè)計(jì)_第3頁
《軟件工程》課件第6章詳細(xì)設(shè)計(jì)_第4頁
《軟件工程》課件第6章詳細(xì)設(shè)計(jì)_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、20142014年春年春 軟件工程軟件工程6.1 結(jié)構(gòu)程序設(shè)計(jì)結(jié)構(gòu)程序設(shè)計(jì)6.2 人機(jī)界面設(shè)計(jì)人機(jī)界面設(shè)計(jì)6.3 過程設(shè)計(jì)的工具過程設(shè)計(jì)的工具6.4 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法6.5 程序復(fù)雜程度的定量度量程序復(fù)雜程度的定量度量6.6 小結(jié)小結(jié)第第6章章 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)20142014年春年春 軟件工程軟件工程任務(wù):任務(wù): 為SC圖的每一個(gè)模塊確定使用的算法和數(shù)據(jù)結(jié)構(gòu) 確定模塊內(nèi)算法,用某種工具來表達(dá) 確定模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu) 確定模塊間的接口細(xì)節(jié) 為每個(gè)模塊設(shè)計(jì)測試原則:原則: 在保證正確可靠的前提下,盡量提高算法的可讀性 結(jié)構(gòu)化設(shè)計(jì)方法 自頂向下逐步求精; 具有單入、單出的

2、控制結(jié)構(gòu)(取消GOTO語句) 用工具來描述模塊算法引言:詳細(xì)設(shè)計(jì)的任務(wù)和原則引言:詳細(xì)設(shè)計(jì)的任務(wù)和原則20142014年春年春 軟件工程軟件工程6.1 6.1 結(jié)構(gòu)程序設(shè)計(jì)結(jié)構(gòu)程序設(shè)計(jì)傳統(tǒng)的設(shè)計(jì)技術(shù)和舊觀念: 強(qiáng)調(diào)設(shè)計(jì)的隨意性,具有濃厚的個(gè)人色彩. 追求程序效率和個(gè)人設(shè)計(jì)技巧新的設(shè)計(jì)思想和風(fēng)格: 清晰第一 使用標(biāo)準(zhǔn)的、規(guī)范的控制結(jié)構(gòu) 逐步細(xì)化20142014年春年春 軟件工程軟件工程例:打印例:打印A, B, CA, B, C三數(shù)中最小者的程序三數(shù)中最小者的程序 20142014年春年春 軟件工程軟件工程程序程序1 if ( A B ) goto 120; if ( B C ) goto 11

3、0; 100 write ( C ); goto 140; 110 write ( B ); goto 140; 120 if ( A C ) goto 130; goto 100; 130 write ( A ); 140 end 程序程序2 if ( A B ) and ( A C ) then write ( A ) else if ( A B ) and ( B C ) then write ( B ) else write ( C ) endif endif 20142014年春年春 軟件工程軟件工程例:非結(jié)構(gòu)化到結(jié)構(gòu)化例:非結(jié)構(gòu)化到結(jié)構(gòu)化20142014年春年春 軟件工程軟件工程例

4、:非結(jié)構(gòu)化到結(jié)構(gòu)化例:非結(jié)構(gòu)化到結(jié)構(gòu)化20142014年春年春 軟件工程軟件工程6.2 6.2 人機(jī)界面設(shè)計(jì)人機(jī)界面設(shè)計(jì) 人機(jī)界面設(shè)計(jì)是接口設(shè)計(jì)的一個(gè)重要的組成部分。人機(jī)界面設(shè)計(jì)是接口設(shè)計(jì)的一個(gè)重要的組成部分。對于交互式系統(tǒng)來說,人機(jī)界面設(shè)計(jì)和數(shù)據(jù)設(shè)計(jì)、對于交互式系統(tǒng)來說,人機(jī)界面設(shè)計(jì)和數(shù)據(jù)設(shè)計(jì)、體系結(jié)構(gòu)設(shè)計(jì)及過程設(shè)計(jì)一樣重要。體系結(jié)構(gòu)設(shè)計(jì)及過程設(shè)計(jì)一樣重要。 近年來,人機(jī)界面在系統(tǒng)中所占的比例越來越大,近年來,人機(jī)界面在系統(tǒng)中所占的比例越來越大,在個(gè)別系統(tǒng)中人機(jī)界面的設(shè)計(jì)工作量甚至占總設(shè)在個(gè)別系統(tǒng)中人機(jī)界面的設(shè)計(jì)工作量甚至占總設(shè)計(jì)量的一半以上。計(jì)量的一半以上。 問題:你心目中友好的人機(jī)界面是

5、怎樣的?問題:你心目中友好的人機(jī)界面是怎樣的?20142014年春年春 軟件工程軟件工程1、可使用性、可使用性 使用簡單。使用簡單。 用戶界面中所用術(shù)語的標(biāo)準(zhǔn)化和一致性。用戶界面中所用術(shù)語的標(biāo)準(zhǔn)化和一致性。 具有具有HELP功能。功能。 快速的系統(tǒng)響應(yīng)和低的系統(tǒng)成本。快速的系統(tǒng)響應(yīng)和低的系統(tǒng)成本。 具有容錯(cuò)能力。具有容錯(cuò)能力。2、靈活性、靈活性 考慮用戶的特點(diǎn)、能力、知識水平??紤]用戶的特點(diǎn)、能力、知識水平。 提供不同的系統(tǒng)響應(yīng)信息。提供不同的系統(tǒng)響應(yīng)信息。 提供根據(jù)用戶需求制定和修改界面。提供根據(jù)用戶需求制定和修改界面。3、界面的復(fù)雜性與可靠性、界面的復(fù)雜性與可靠性 復(fù)雜性復(fù)雜性界面規(guī)模及組

6、織的復(fù)雜程度。應(yīng)該愈簡單愈好。界面規(guī)模及組織的復(fù)雜程度。應(yīng)該愈簡單愈好。 可靠性可靠性指無故障使用的時(shí)間間隔。用戶界面應(yīng)該能夠保證用戶正指無故障使用的時(shí)間間隔。用戶界面應(yīng)該能夠保證用戶正確、可靠地使用系統(tǒng),及程序、數(shù)據(jù)的安全。確、可靠地使用系統(tǒng),及程序、數(shù)據(jù)的安全。20142014年春年春 軟件工程軟件工程6.2.1 6.2.1 設(shè)計(jì)問題設(shè)計(jì)問題在設(shè)計(jì)人機(jī)界面的過程中,幾乎總會遇到下述在設(shè)計(jì)人機(jī)界面的過程中,幾乎總會遇到下述4個(gè)問題:個(gè)問題:1. 系統(tǒng)響應(yīng)時(shí)間系統(tǒng)響應(yīng)時(shí)間2. 用戶幫助設(shè)施用戶幫助設(shè)施3. 出錯(cuò)信息處理出錯(cuò)信息處理4. 命令交互命令交互20142014年春年春 軟件工程軟件工程

7、6.2.2 6.2.2 設(shè)計(jì)過程設(shè)計(jì)過程 用戶界面設(shè)計(jì)是一個(gè)迭代的過程,步驟如下:用戶界面設(shè)計(jì)是一個(gè)迭代的過程,步驟如下:20142014年春年春 軟件工程軟件工程6.2.3 6.2.3 人機(jī)界面設(shè)計(jì)指南人機(jī)界面設(shè)計(jì)指南用戶界面設(shè)計(jì)主要依靠設(shè)計(jì)者的經(jīng)驗(yàn)。用戶界面設(shè)計(jì)主要依靠設(shè)計(jì)者的經(jīng)驗(yàn)。 一般交互指南一般交互指南 信息顯示指南信息顯示指南 數(shù)據(jù)輸入指南數(shù)據(jù)輸入指南 20142014年春年春 軟件工程軟件工程1. 1. 一般交互指南一般交互指南(1) 保持一致性。保持一致性。(2) 提供有意義的反饋。提供有意義的反饋。(3) 在執(zhí)行有較大破壞性的動(dòng)作之前要求用戶確認(rèn)。在執(zhí)行有較大破壞性的動(dòng)作之前

8、要求用戶確認(rèn)。(4) 允許取消絕大多數(shù)操作。允許取消絕大多數(shù)操作。(5) 減少在兩次操作之間必須記憶的信息量。減少在兩次操作之間必須記憶的信息量。(6) 提高對話、移動(dòng)和思考的效率。提高對話、移動(dòng)和思考的效率。(7) 允許犯錯(cuò)誤。允許犯錯(cuò)誤。(8) 按功能對動(dòng)作分類,并據(jù)此設(shè)計(jì)屏幕布局。按功能對動(dòng)作分類,并據(jù)此設(shè)計(jì)屏幕布局。(9) 提供對用戶工作內(nèi)容敏感的幫助設(shè)施。提供對用戶工作內(nèi)容敏感的幫助設(shè)施。(10) 用簡單動(dòng)詞或動(dòng)詞短語作為命令名。用簡單動(dòng)詞或動(dòng)詞短語作為命令名。20142014年春年春 軟件工程軟件工程 正文菜單、圖標(biāo)菜單、正文和圖標(biāo)混合菜單,如正文菜單、圖標(biāo)菜單、正文和圖標(biāo)混合菜單

9、,如“開始開始”菜單。菜單。 常用有以下類型:常用有以下類型: 固定位置、浮動(dòng)位置(彈出)、下拉式、嵌入式固定位置、浮動(dòng)位置(彈出)、下拉式、嵌入式 混合菜單 固定及下拉菜單固定菜單固定菜單下拉下拉菜單菜單20142014年春年春 軟件工程軟件工程在用戶界面中,加入豐富多彩的畫面,將能夠更加形象地為用戶提供在用戶界面中,加入豐富多彩的畫面,將能夠更加形象地為用戶提供有用的信息,以達(dá)到可視化的目的。主要的處理操作有:圖像的隱蔽和再有用的信息,以達(dá)到可視化的目的。主要的處理操作有:圖像的隱蔽和再現(xiàn)、屏幕滾動(dòng)和圖案顯示、動(dòng)畫等?,F(xiàn)、屏幕滾動(dòng)和圖案顯示、動(dòng)畫等。20142014年春年春 軟件工程軟件工

10、程 對話框是在需要時(shí),顯示在屏幕上一個(gè)矩形區(qū)域內(nèi)的圖形和正文信息。對話框是在需要時(shí),顯示在屏幕上一個(gè)矩形區(qū)域內(nèi)的圖形和正文信息。通過對話,實(shí)現(xiàn)系統(tǒng)和用戶之間的通信。通過對話,實(shí)現(xiàn)系統(tǒng)和用戶之間的通信。對話框顯示的方式與彈出式菜單類似,即瞬時(shí)彈出。同時(shí),系統(tǒng)還應(yīng)對話框顯示的方式與彈出式菜單類似,即瞬時(shí)彈出。同時(shí),系統(tǒng)還應(yīng)將對話框所覆蓋的原圖像進(jìn)行保存,以便在對話結(jié)束后能立即恢復(fù)。將對話框所覆蓋的原圖像進(jìn)行保存,以便在對話結(jié)束后能立即恢復(fù)。有三種對話形式:有三種對話形式:必須回答式必須回答式無需回答式無需回答式 警告式警告式 必須回答式對話框 無需回答式對話框 警告式對話框20142014年春年春

11、 軟件工程軟件工程4 4、窗口(、窗口(windowwindow) 下下圖描述了一個(gè)包括多個(gè)部件圖描述了一個(gè)包括多個(gè)部件的的窗口窗口. .標(biāo)題區(qū)標(biāo)題區(qū)圖標(biāo)區(qū)大小區(qū)大小區(qū)退出區(qū)退出區(qū)菜單區(qū)菜單區(qū)滾滾動(dòng)動(dòng)區(qū)區(qū)菜單工作區(qū)工作區(qū)20142014年春年春 軟件工程軟件工程2. 2. 信息顯示指南信息顯示指南(1) 只顯示與當(dāng)前工作內(nèi)容有關(guān)的信息。只顯示與當(dāng)前工作內(nèi)容有關(guān)的信息。(2) 不要用數(shù)據(jù)淹沒用戶,應(yīng)該用便于用戶迅速吸取信息的不要用數(shù)據(jù)淹沒用戶,應(yīng)該用便于用戶迅速吸取信息的方式來表示數(shù)據(jù)。方式來表示數(shù)據(jù)。(3) 使用一致的標(biāo)記、標(biāo)準(zhǔn)的縮寫和可預(yù)知的顏色。使用一致的標(biāo)記、標(biāo)準(zhǔn)的縮寫和可預(yù)知的顏色。

12、(4) 允許用戶保持可視化的語境。允許用戶保持可視化的語境。(5) 產(chǎn)生有意義的出錯(cuò)信息。產(chǎn)生有意義的出錯(cuò)信息。(6) 使用大小寫、縮進(jìn)和文本分組以幫助理解。使用大小寫、縮進(jìn)和文本分組以幫助理解。(7) 使用窗口分隔不同類型的信息。使用窗口分隔不同類型的信息。(8) 使用使用“模擬模擬”顯示方式表示信息,以使信息更容易被用顯示方式表示信息,以使信息更容易被用戶提取。戶提取。(9) 高效率地使用顯示屏。高效率地使用顯示屏。20142014年春年春 軟件工程軟件工程3. 3. 數(shù)據(jù)輸入指南數(shù)據(jù)輸入指南(1) 盡量減少用戶的輸入動(dòng)作。盡量減少用戶的輸入動(dòng)作。(2) 保持信息顯示和數(shù)據(jù)輸入之間的一致性

13、。保持信息顯示和數(shù)據(jù)輸入之間的一致性。(3) 允許用戶自定義輸入。允許用戶自定義輸入。(4) 交互應(yīng)該是靈活的,并且可調(diào)整成用戶最喜歡交互應(yīng)該是靈活的,并且可調(diào)整成用戶最喜歡的輸入方式。的輸入方式。(5) 使在當(dāng)前動(dòng)作語境中不適用的命令不起作用。使在當(dāng)前動(dòng)作語境中不適用的命令不起作用。(6) 讓用戶控制交互流。讓用戶控制交互流。(7) 對所有輸入動(dòng)作都提供幫助。對所有輸入動(dòng)作都提供幫助。(8) 消除冗余的輸入。消除冗余的輸入。20142014年春年春 軟件工程軟件工程6.3 6.3 過程設(shè)計(jì)的工具過程設(shè)計(jì)的工具20142014年春年春 軟件工程軟件工程6.3.1 6.3.1 程序流程圖程序流程

14、圖 程序流程圖也稱為程序框圖,程序流程圖中使用程序流程圖也稱為程序框圖,程序流程圖中使用的各種符號是的各種符號是:20142014年春年春 軟件工程軟件工程20142014年春年春 軟件工程軟件工程20142014年春年春 軟件工程軟件工程 20142014年春年春 軟件工程軟件工程程序流程圖特點(diǎn)程序流程圖特點(diǎn)優(yōu)點(diǎn):容易掌握,且歷史優(yōu)點(diǎn):容易掌握,且歷史“悠久悠久”,使用廣泛。,使用廣泛。缺點(diǎn):本質(zhì)上不具備逐步求精的特點(diǎn),對于提高缺點(diǎn):本質(zhì)上不具備逐步求精的特點(diǎn),對于提高 大型系統(tǒng)的可理解性作用甚微;大型系統(tǒng)的可理解性作用甚微; 不易表示數(shù)據(jù)結(jié)構(gòu);不易表示數(shù)據(jù)結(jié)構(gòu); 轉(zhuǎn)移控制太方便。轉(zhuǎn)移控制太

15、方便。趨勢:停止使用趨勢:停止使用20142014年春年春 軟件工程軟件工程6.3.2 6.3.2 盒圖盒圖(N-S(N-S圖圖) )20142014年春年春 軟件工程軟件工程20142014年春年春 軟件工程軟件工程20142014年春年春 軟件工程軟件工程特點(diǎn):特點(diǎn): 沒有箭頭,不允許隨意轉(zhuǎn)移控制;沒有箭頭,不允許隨意轉(zhuǎn)移控制; 每個(gè)矩形框每個(gè)矩形框(Case中條件取值例外中條件取值例外)都是一都是一個(gè)功能域個(gè)功能域(即一個(gè)特定結(jié)構(gòu)的作用域即一個(gè)特定結(jié)構(gòu)的作用域),結(jié),結(jié)構(gòu)表示明確;構(gòu)表示明確; 局部及全程數(shù)據(jù)的作用域易見;局部及全程數(shù)據(jù)的作用域易見; 易表現(xiàn)嵌套關(guān)系易表現(xiàn)嵌套關(guān)系(emb

16、edded structure)以及模以及模塊的層次結(jié)構(gòu)。塊的層次結(jié)構(gòu)。20142014年春年春 軟件工程軟件工程6.3.3 PAD6.3.3 PAD圖圖 PAD是問題分析圖是問題分析圖(problem analysis diagram)的的英文縮寫,自英文縮寫,自1973年由年由日本日立公司發(fā)明以后,日本日立公司發(fā)明以后,已得到一定程度的推廣。已得到一定程度的推廣。20142014年春年春 軟件工程軟件工程x4TFDo-Until x5ighfkx1TFbDo-Until x6ajx21cDo-While x323dek :例:例:N-S圖與圖與PAD的轉(zhuǎn)換的轉(zhuǎn)換20142014年春年春 軟

17、件工程軟件工程開始開始 結(jié)束結(jié)束 aj Until x5i Until x6bx1kfx4ghdefkx2de123 While x3c20142014年春年春 軟件工程軟件工程特點(diǎn):特點(diǎn): 結(jié)構(gòu)清晰,層次分明,易讀;結(jié)構(gòu)清晰,層次分明,易讀; 支持逐步求精的設(shè)計(jì)思想;支持逐步求精的設(shè)計(jì)思想; 容易將容易將PAD自動(dòng)轉(zhuǎn)換為高級語言源程序。自動(dòng)轉(zhuǎn)換為高級語言源程序。2. 設(shè)計(jì)工具設(shè)計(jì)工具20142014年春年春 軟件工程軟件工程6.3.4 6.3.4 判定表判定表 當(dāng)算法中包含多重嵌套的條件選擇時(shí),用程序流當(dāng)算法中包含多重嵌套的條件選擇時(shí),用程序流程圖、程圖、N-S圖或圖或PAD都不易清楚地描述

18、。這時(shí)可都不易清楚地描述。這時(shí)可以用判定表或判定樹來描述這些復(fù)雜的條件。判以用判定表或判定樹來描述這些復(fù)雜的條件。判定表與判定樹除了在詳細(xì)定表與判定樹除了在詳細(xì) 設(shè)計(jì)階段使用外,設(shè)計(jì)階段使用外,在需求分析階段也經(jīng)常使用。在需求分析階段也經(jīng)常使用。 判定表一般由判定表一般由4部分組成:左上半部分列出所有部分組成:左上半部分列出所有條件、左下半部分列出所有動(dòng)作、右上半部分列條件、左下半部分列出所有動(dòng)作、右上半部分列出各種條件組合,右下半部分列出和每組條件取出各種條件組合,右下半部分列出和每組條件取值組合對應(yīng)的動(dòng)作。其結(jié)構(gòu)下圖所示:值組合對應(yīng)的動(dòng)作。其結(jié)構(gòu)下圖所示:20142014年春年春 軟件工程

19、軟件工程 判定表的優(yōu)點(diǎn)是能夠簡潔,無二義性的描述所有的處理規(guī)判定表的優(yōu)點(diǎn)是能夠簡潔,無二義性的描述所有的處理規(guī)則。缺點(diǎn)是它所表示的是靜態(tài)邏輯,是在某種條件組合情況則。缺點(diǎn)是它所表示的是靜態(tài)邏輯,是在某種條件組合情況下可能的結(jié)果,它不能表達(dá)加工的順序,也不能表達(dá)循環(huán)結(jié)下可能的結(jié)果,它不能表達(dá)加工的順序,也不能表達(dá)循環(huán)結(jié)構(gòu)。因此,判定表不能成為一種通用的設(shè)計(jì)工具,一般作為構(gòu)。因此,判定表不能成為一種通用的設(shè)計(jì)工具,一般作為輔助工具配合其他工具一起使用。輔助工具配合其他工具一起使用。20142014年春年春 軟件工程軟件工程 例:例:“行李托運(yùn)費(fèi)的算法行李托運(yùn)費(fèi)的算法”的處理邏輯描述如下:的處理邏輯

20、描述如下:假設(shè)某航空公司規(guī)定,乘客可以免費(fèi)托運(yùn)重量不假設(shè)某航空公司規(guī)定,乘客可以免費(fèi)托運(yùn)重量不超過超過30kg的行李。當(dāng)行李重量超過的行李。當(dāng)行李重量超過30kg時(shí),對時(shí),對頭等艙的國內(nèi)乘客超重部分每公斤收費(fèi)頭等艙的國內(nèi)乘客超重部分每公斤收費(fèi)4元,對元,對其他艙的國內(nèi)乘客超重部分每公斤收費(fèi)其他艙的國內(nèi)乘客超重部分每公斤收費(fèi)6元,對元,對外國乘客超重部分每公斤收費(fèi)比國內(nèi)乘客多一倍,外國乘客超重部分每公斤收費(fèi)比國內(nèi)乘客多一倍,對殘疾乘客超重部分每公斤收費(fèi)比正常乘客少一對殘疾乘客超重部分每公斤收費(fèi)比正常乘客少一半。半。試用判定表表示出該邏輯。試用判定表表示出該邏輯。20142014年春年春 軟件工程

21、軟件工程20142014年春年春 軟件工程軟件工程6.3.5 6.3.5 判定樹判定樹 判定樹實(shí)質(zhì)上是判定表的一種變形,本質(zhì)上是一判定樹實(shí)質(zhì)上是判定表的一種變形,本質(zhì)上是一樣的。樣的。 判定樹的優(yōu)點(diǎn)是形式簡單、比較直觀、易于掌握判定樹的優(yōu)點(diǎn)是形式簡單、比較直觀、易于掌握和使用。和使用。 缺點(diǎn)是不如判定表簡潔。對于缺點(diǎn)是不如判定表簡潔。對于:“行李托運(yùn)費(fèi)的行李托運(yùn)費(fèi)的算法算法”例的描述可用判定樹表示成如下圖所示的例的描述可用判定樹表示成如下圖所示的形式:形式:20142014年春年春 軟件工程軟件工程圖圖6.7 用判定樹表示計(jì)算行李費(fèi)的算法用判定樹表示計(jì)算行李費(fèi)的算法20142014年春年春 軟

22、件工程軟件工程6.3.6 6.3.6 過程設(shè)計(jì)語言過程設(shè)計(jì)語言應(yīng)具備以下特點(diǎn):應(yīng)具備以下特點(diǎn): 有固定的外語法有固定的外語法(keyword); 內(nèi)語法用自然語言描述;內(nèi)語法用自然語言描述; 有數(shù)據(jù)說明;有數(shù)據(jù)說明;有子程序定義與調(diào)用機(jī)制;有子程序定義與調(diào)用機(jī)制;優(yōu)點(diǎn):易于實(shí)現(xiàn)由PDL到源代碼的自動(dòng)轉(zhuǎn)換。缺點(diǎn):不夠直觀。20142014年春年春 軟件工程軟件工程面向數(shù)據(jù)流的結(jié)構(gòu)化分析與設(shè)計(jì)方法總結(jié)面向數(shù)據(jù)流的結(jié)構(gòu)化分析與設(shè)計(jì)方法總結(jié)20142014年春年春 軟件工程軟件工程6.4 6.4 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法 在許多應(yīng)用領(lǐng)域中信息都有清楚的層次結(jié)構(gòu),數(shù)在許多應(yīng)用領(lǐng)域中信

23、息都有清楚的層次結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)既影響程序的結(jié)構(gòu)又影響程序的處理過程,據(jù)結(jié)構(gòu)既影響程序的結(jié)構(gòu)又影響程序的處理過程,層次的數(shù)據(jù)組織通常和使用這些數(shù)據(jù)的程序的層層次的數(shù)據(jù)組織通常和使用這些數(shù)據(jù)的程序的層次結(jié)構(gòu)十分相似。次結(jié)構(gòu)十分相似。 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法的最終目標(biāo)是得出對程面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法的最終目標(biāo)是得出對程序處理過程的描述。這種設(shè)計(jì)方法并不明顯地使序處理過程的描述。這種設(shè)計(jì)方法并不明顯地使用軟件結(jié)構(gòu)的概念,模塊是設(shè)計(jì)過程的副產(chǎn)品,用軟件結(jié)構(gòu)的概念,模塊是設(shè)計(jì)過程的副產(chǎn)品,對于模塊獨(dú)立原理也沒有給予應(yīng)有的重視。因此,對于模塊獨(dú)立原理也沒有給予應(yīng)有的重視。因此,這種方法最適合于在詳細(xì)設(shè)計(jì)階段

24、使用,也就是這種方法最適合于在詳細(xì)設(shè)計(jì)階段使用,也就是說,在完成了軟件結(jié)構(gòu)設(shè)計(jì)之后,可以使用面向說,在完成了軟件結(jié)構(gòu)設(shè)計(jì)之后,可以使用面向數(shù)據(jù)結(jié)構(gòu)的方法來設(shè)計(jì)每個(gè)模塊的處理過程。數(shù)據(jù)結(jié)構(gòu)的方法來設(shè)計(jì)每個(gè)模塊的處理過程。 20142014年春年春 軟件工程軟件工程ABCBCA =ABoCoSA =SCBA = BAB*I注意:注意:H中的方框表示模中的方框表示模塊,而塊,而JD中的方框中的方框代表幾個(gè)語句構(gòu)成代表幾個(gè)語句構(gòu)成的簡單操作;的簡單操作;H表現(xiàn)調(diào)用關(guān)系,表現(xiàn)調(diào)用關(guān)系,而而JD表現(xiàn)組成關(guān)系。表現(xiàn)組成關(guān)系。6.4.1 Jackson6.4.1 Jackson圖圖20142014年春年春 軟

25、件工程軟件工程 例:例:一個(gè)正文文件由若干個(gè)記錄組成,每個(gè)一個(gè)正文文件由若干個(gè)記錄組成,每個(gè)記錄是一個(gè)字符串。要求統(tǒng)計(jì)每個(gè)記錄中空格記錄是一個(gè)字符串。要求統(tǒng)計(jì)每個(gè)記錄中空格字符的個(gè)數(shù),以及文件中空格字符的總個(gè)數(shù)。字符的個(gè)數(shù),以及文件中空格字符的總個(gè)數(shù)。要求的輸出數(shù)據(jù)格式是:每復(fù)制一行輸入字符要求的輸出數(shù)據(jù)格式是:每復(fù)制一行輸入字符串之后,另起一行印出這個(gè)字符串中的空格數(shù),串之后,另起一行印出這個(gè)字符串中的空格數(shù),最后印出文件中空格的總個(gè)數(shù)。最后印出文件中空格的總個(gè)數(shù)。2、Jackson方法:方法:20142014年春年春 軟件工程軟件工程第第1 1步:用步:用JacksonJackson圖描述

26、圖描述 IO 的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)正文文件正文文件I字符串字符串*字符字符*空格空格O非空格非空格OIS輸入輸入輸出表格輸出表格表格體表格體串信息串信息*字符串字符串空格數(shù)空格數(shù)I輸出輸出空格總數(shù)空格總數(shù)第第2 2步:在兩個(gè)圖中指出有直接因果關(guān)系步:在兩個(gè)圖中指出有直接因果關(guān)系(causality)、可以同時(shí)處理的單元(重復(fù)的次序,次數(shù)均相同)可以同時(shí)處理的單元(重復(fù)的次序,次數(shù)均相同)20142014年春年春 軟件工程軟件工程正文文件正文文件I字符串字符串*字符字符*空格空格O非空格非空格OIS輸入輸入輸出表格輸出表格表格體表格體串信息串信息*字符串字符串空格數(shù)空格數(shù)I輸出輸出空格總數(shù)空格總

27、數(shù)? 經(jīng)過程序處理由經(jīng)過程序處理由正文文件正文文件得到得到輸出表格輸出表格。 每處理輸入中一個(gè)每處理輸入中一個(gè)字符串字符串后就后就得到輸出中一個(gè)得到輸出中一個(gè)串信息串信息,二者重,二者重復(fù)次序和次數(shù)均相同。復(fù)次序和次數(shù)均相同。 字符字符不與多字符組成的不與多字符組成的字符串字符串對應(yīng)。對應(yīng)。 單個(gè)單個(gè)空格空格不能決定不能決定空格數(shù)空格數(shù)。20142014年春年春 軟件工程軟件工程第第3步:步:Data structure Program structure把有對應(yīng)關(guān)系的單元合為一個(gè)處理框,畫在相應(yīng)的層次中把有對應(yīng)關(guān)系的單元合為一個(gè)處理框,畫在相應(yīng)的層次中(不同層以低層為準(zhǔn))(不同層以低層為準(zhǔn))

28、20142014年春年春 軟件工程軟件工程第第4 4步:列出所有操作條件,并分配到上步:列出所有操作條件,并分配到上幅程序結(jié)構(gòu)圖中幅程序結(jié)構(gòu)圖中20142014年春年春 軟件工程軟件工程圖圖6.14 把操作和條件分配到程序結(jié)構(gòu)圖的適當(dāng)位把操作和條件分配到程序結(jié)構(gòu)圖的適當(dāng)位置置20142014年春年春 軟件工程軟件工程第第5 5步:用步:用PseudocodePseudocode表示程序表示程序統(tǒng)計(jì)空格統(tǒng)計(jì)空格seqseq打開文件打開文件讀入字符串讀入字符串totalsumtotalsum=0=0程序體程序體iteriter until until文件結(jié)束文件結(jié)束 處理字符串處理字符串seqse

29、q印字符串印字符串seqseq 印出字符串印出字符串印字符串印字符串endendsum=0sum=0pointer=1pointer=1分析字符串分析字符串iteriter until until字符串結(jié)束字符串結(jié)束 分析字符分析字符selectselect字符是空格字符是空格 處理空格處理空格seqseqsum=sum+1sum=sum+1pointer=pointer+1pointer=pointer+1 處理空格處理空格endend 分析字符分析字符oror字符不是空格字符不是空格 處理非空格處理非空格seqseq pointer=pointer+1pointer=pointer+1處理

30、非空格處理非空格endend 分析字符分析字符endend分析字符串分析字符串endend印空格數(shù)印空格數(shù)seqseq印出空格數(shù)目印出空格數(shù)目印空格數(shù)印空格數(shù)endend totalsumtotalsum=totalsum+sumtotalsum+sum讀入字符串讀入字符串 處理字符串處理字符串endend程序體程序體endend印總數(shù)印總數(shù)seqseq 印出空格總數(shù)印出空格總數(shù)印總數(shù)印總數(shù)endend關(guān)閉文件關(guān)閉文件停止停止統(tǒng)計(jì)空格統(tǒng)計(jì)空格endend20142014年春年春 軟件工程軟件工程JacksonJackson結(jié)構(gòu)程序設(shè)計(jì)方法步驟:結(jié)構(gòu)程序設(shè)計(jì)方法步驟:(1) 分析并確定輸入數(shù)據(jù)和

31、輸出數(shù)據(jù)的邏輯結(jié)構(gòu),分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu),并用并用Jackson圖描繪這些數(shù)據(jù)結(jié)構(gòu)。圖描繪這些數(shù)據(jù)結(jié)構(gòu)。(2) 找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對應(yīng)關(guān)找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對應(yīng)關(guān)系的數(shù)據(jù)單元。所謂有對應(yīng)關(guān)系是指有直接的因系的數(shù)據(jù)單元。所謂有對應(yīng)關(guān)系是指有直接的因果關(guān)系,在程序中可以同時(shí)處理的數(shù)據(jù)單元果關(guān)系,在程序中可以同時(shí)處理的數(shù)據(jù)單元(對對于重復(fù)出現(xiàn)的數(shù)據(jù)單元必須重復(fù)的次序和次數(shù)都于重復(fù)出現(xiàn)的數(shù)據(jù)單元必須重復(fù)的次序和次數(shù)都相同才可能有對應(yīng)關(guān)系相同才可能有對應(yīng)關(guān)系)。(3) 用下述用下述3條規(guī)則從描繪數(shù)據(jù)結(jié)構(gòu)的條規(guī)則從描繪數(shù)據(jù)結(jié)構(gòu)的Jackson圖圖導(dǎo)出描繪程序

32、結(jié)構(gòu)的導(dǎo)出描繪程序結(jié)構(gòu)的Jackson圖:圖:20142014年春年春 軟件工程軟件工程第一,為每對有對應(yīng)關(guān)系的數(shù)據(jù)單元,按照它們在第一,為每對有對應(yīng)關(guān)系的數(shù)據(jù)單元,按照它們在數(shù)據(jù)結(jié)構(gòu)圖中的層次在程序結(jié)構(gòu)圖的相應(yīng)層次畫一數(shù)據(jù)結(jié)構(gòu)圖中的層次在程序結(jié)構(gòu)圖的相應(yīng)層次畫一個(gè)處理框個(gè)處理框(注意,如果這對數(shù)據(jù)單元在輸入數(shù)據(jù)結(jié)注意,如果這對數(shù)據(jù)單元在輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中所處的層次不同,則和它們對構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中所處的層次不同,則和它們對應(yīng)的處理框在程序結(jié)構(gòu)圖中所處的層次與它們之中應(yīng)的處理框在程序結(jié)構(gòu)圖中所處的層次與它們之中在數(shù)據(jù)結(jié)構(gòu)圖中層次低的那個(gè)對應(yīng)在數(shù)據(jù)結(jié)構(gòu)圖中層次低的那個(gè)對應(yīng));第二,根據(jù)

33、輸入數(shù)據(jù)結(jié)構(gòu)中剩余的每個(gè)數(shù)據(jù)單元所第二,根據(jù)輸入數(shù)據(jù)結(jié)構(gòu)中剩余的每個(gè)數(shù)據(jù)單元所處的層次,在程序結(jié)構(gòu)圖的相應(yīng)層次分別為它們畫處的層次,在程序結(jié)構(gòu)圖的相應(yīng)層次分別為它們畫上對應(yīng)的處理框;上對應(yīng)的處理框;第三,根據(jù)輸出數(shù)據(jù)結(jié)構(gòu)中剩余的每個(gè)數(shù)據(jù)單元所第三,根據(jù)輸出數(shù)據(jù)結(jié)構(gòu)中剩余的每個(gè)數(shù)據(jù)單元所處的層次,在程序結(jié)構(gòu)圖的相應(yīng)層次分別為它們畫處的層次,在程序結(jié)構(gòu)圖的相應(yīng)層次分別為它們畫上對應(yīng)的處理框。上對應(yīng)的處理框。JacksonJackson結(jié)構(gòu)結(jié)構(gòu)程序程序設(shè)計(jì)設(shè)計(jì)方法步方法步驟驟:20142014年春年春 軟件工程軟件工程總之,描繪程序結(jié)構(gòu)的總之,描繪程序結(jié)構(gòu)的Jackson圖應(yīng)該綜合輸入數(shù)圖應(yīng)該綜合輸

34、入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)的層次關(guān)系而導(dǎo)出來。在導(dǎo)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)的層次關(guān)系而導(dǎo)出來。在導(dǎo)出程序結(jié)構(gòu)圖的過程中,由于改進(jìn)的出程序結(jié)構(gòu)圖的過程中,由于改進(jìn)的Jackson圖規(guī)圖規(guī)定在構(gòu)成順序結(jié)構(gòu)的元素中不能有重復(fù)出現(xiàn)或選擇定在構(gòu)成順序結(jié)構(gòu)的元素中不能有重復(fù)出現(xiàn)或選擇出現(xiàn)的元素,因此可能需要增加中間層次的處理框。出現(xiàn)的元素,因此可能需要增加中間層次的處理框。(4) 列出所有操作和條件列出所有操作和條件(包括分支條件和循環(huán)結(jié)束包括分支條件和循環(huán)結(jié)束條件條件),并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。,并且把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。(5) 用偽碼表示程序。用偽碼表示程序。應(yīng)用:根據(jù)它能直接推出

35、程序結(jié)構(gòu)的規(guī)則,可以將應(yīng)用:根據(jù)它能直接推出程序結(jié)構(gòu)的規(guī)則,可以將它與它與SD方法相結(jié)合。用方法相結(jié)合。用SD方法在總體設(shè)計(jì)階段完方法在總體設(shè)計(jì)階段完成軟件體系結(jié)構(gòu)設(shè)計(jì),在詳細(xì)設(shè)計(jì)階段用成軟件體系結(jié)構(gòu)設(shè)計(jì),在詳細(xì)設(shè)計(jì)階段用Jackson方法設(shè)計(jì)它的局部模塊。方法設(shè)計(jì)它的局部模塊。JacksonJackson結(jié)構(gòu)結(jié)構(gòu)程序程序設(shè)計(jì)設(shè)計(jì)方法步方法步驟驟:20142014年春年春 軟件工程軟件工程軟件復(fù)雜性軟件復(fù)雜性 是軟件度量的一個(gè)重要分支。主要參數(shù)有:是軟件度量的一個(gè)重要分支。主要參數(shù)有:1、規(guī)模:即總共的指令數(shù),或源程序行數(shù)。、規(guī)模:即總共的指令數(shù),或源程序行數(shù)。2、難度:通常由程序中出現(xiàn)的操作

36、數(shù)的數(shù)目所決、難度:通常由程序中出現(xiàn)的操作數(shù)的數(shù)目所決定的量來表示。定的量來表示。3、結(jié)構(gòu):通常用與程序結(jié)構(gòu)有關(guān)的度量來表示。、結(jié)構(gòu):通常用與程序結(jié)構(gòu)有關(guān)的度量來表示。4、智能度:即算法的難易程度。、智能度:即算法的難易程度。軟件復(fù)雜性主要表現(xiàn)在程序的復(fù)雜性,程序復(fù)雜性軟件復(fù)雜性主要表現(xiàn)在程序的復(fù)雜性,程序復(fù)雜性主要指模塊內(nèi)程序的復(fù)雜性。主要指模塊內(nèi)程序的復(fù)雜性。6.5 6.5 程序復(fù)雜程度的定量度量程序復(fù)雜程度的定量度量20142014年春年春 軟件工程軟件工程6.5.1 McCabe6.5.1 McCabe方法方法1. 流圖流圖 T。McCabe的研究:一個(gè)程序的環(huán)形復(fù)雜度取的研究:一個(gè)程

37、序的環(huán)形復(fù)雜度取決于它的流圖包含的判決結(jié)點(diǎn)的數(shù)量。決于它的流圖包含的判決結(jié)點(diǎn)的數(shù)量。 為了突出表示程序的控制流,人們通常使用流圖為了突出表示程序的控制流,人們通常使用流圖(也稱為程序圖也稱為程序圖)。所謂流圖實(shí)質(zhì)上是。所謂流圖實(shí)質(zhì)上是“退化了的退化了的”程序流程圖,它僅僅描繪程序的控制流程,完全程序流程圖,它僅僅描繪程序的控制流程,完全不表現(xiàn)對數(shù)據(jù)的具體操作以及分支或循環(huán)的具體不表現(xiàn)對數(shù)據(jù)的具體操作以及分支或循環(huán)的具體條件。條件。20142014年春年春 軟件工程軟件工程流圖的基本元素流圖的基本元素20142014年春年春 軟件工程軟件工程把程序流程圖映射成流圖把程序流程圖映射成流圖20142

38、014年春年春 軟件工程軟件工程由由PDLPDL翻譯成的流圖翻譯成的流圖20142014年春年春 軟件工程軟件工程圖圖6.17 由包含復(fù)合條件的由包含復(fù)合條件的PDL映射成的流圖映射成的流圖20142014年春年春 軟件工程軟件工程2. 2. 計(jì)算環(huán)形復(fù)雜度計(jì)算環(huán)形復(fù)雜度V V(G G)的方法)的方法20142014年春年春 軟件工程軟件工程2. 2. 計(jì)算環(huán)形復(fù)雜度計(jì)算環(huán)形復(fù)雜度V V(G G)的方法)的方法20142014年春年春 軟件工程軟件工程2. 2. 計(jì)算環(huán)形復(fù)雜度計(jì)算環(huán)形復(fù)雜度V V(G G)的方法)的方法20142014年春年春 軟件工程軟件工程3. 環(huán)形復(fù)雜度的用途環(huán)形復(fù)雜度的用途程序的環(huán)形復(fù)雜度取決于程序控制流的復(fù)雜程度,程序的環(huán)形復(fù)雜度取決于程序控制流的復(fù)雜程度,也即是取決于程序結(jié)構(gòu)的復(fù)雜

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論