第12講詳細(xì)設(shè)計(jì)_第1頁(yè)
第12講詳細(xì)設(shè)計(jì)_第2頁(yè)
第12講詳細(xì)設(shè)計(jì)_第3頁(yè)
第12講詳細(xì)設(shè)計(jì)_第4頁(yè)
第12講詳細(xì)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩51頁(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、可行性研究需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼測(cè)試運(yùn)行/維護(hù)軟件生命周期模型結(jié)構(gòu)圖問(wèn)題定義n詳細(xì)設(shè)計(jì)的任務(wù)是將概要設(shè)計(jì)階段提出的解決詳細(xì)設(shè)計(jì)的任務(wù)是將概要設(shè)計(jì)階段提出的解決問(wèn)題的辦法具體化問(wèn)題的辦法具體化n詳細(xì)設(shè)計(jì)給出軟件結(jié)構(gòu)中詳細(xì)設(shè)計(jì)給出軟件結(jié)構(gòu)中各個(gè)模塊內(nèi)部過(guò)程的各個(gè)模塊內(nèi)部過(guò)程的描述描述,從而在編碼階段可以把這個(gè)描述直接翻,從而在編碼階段可以把這個(gè)描述直接翻譯成用某種程序設(shè)計(jì)語(yǔ)言書寫的程序。譯成用某種程序設(shè)計(jì)語(yǔ)言書寫的程序。nProgram Design Coding,詳細(xì)設(shè)計(jì)不是,詳細(xì)設(shè)計(jì)不是真正的編寫程序,而是設(shè)計(jì)出程序的詳細(xì)規(guī)格真正的編寫程序,而是設(shè)計(jì)出程序的詳細(xì)規(guī)格說(shuō)明說(shuō)明n 詳

2、細(xì)設(shè)計(jì)的目標(biāo)不僅僅是邏輯上正確地詳細(xì)設(shè)計(jì)的目標(biāo)不僅僅是邏輯上正確地實(shí)現(xiàn)每個(gè)模塊的功能,更重要的是設(shè)計(jì)出實(shí)現(xiàn)每個(gè)模塊的功能,更重要的是設(shè)計(jì)出的處理過(guò)程應(yīng)該的處理過(guò)程應(yīng)該盡可能簡(jiǎn)明易懂盡可能簡(jiǎn)明易懂。n 結(jié)構(gòu)程序設(shè)計(jì)結(jié)構(gòu)程序設(shè)計(jì)技術(shù)是詳細(xì)設(shè)計(jì)的邏輯基技術(shù)是詳細(xì)設(shè)計(jì)的邏輯基礎(chǔ)。礎(chǔ)。n詳細(xì)設(shè)計(jì)過(guò)程1.確定每個(gè)模塊的算法n選擇適當(dāng)工具表達(dá)算法執(zhí)行過(guò)程2.確定每一個(gè)模塊的數(shù)據(jù)組織3.為每一個(gè)模塊設(shè)計(jì)一組測(cè)試用例n輸入數(shù)據(jù)、預(yù)期輸出結(jié)果4.編寫詳細(xì)設(shè)計(jì)說(shuō)明書5.設(shè)計(jì)評(píng)審n詳細(xì)設(shè)計(jì)內(nèi)容 用圖表列出系統(tǒng)的每個(gè)程序,包括每個(gè)模塊和子程序名稱、標(biāo)識(shí)符、層出結(jié)構(gòu)關(guān)系 對(duì)程序的功能、性能、輸入、輸出、算法、流對(duì)程序的功

3、能、性能、輸入、輸出、算法、流程、接口等進(jìn)行描述程、接口等進(jìn)行描述 內(nèi)容包括n程序描述:程序簡(jiǎn)要描述,意義和特點(diǎn)n功能:程序應(yīng)具備的功能n性能:精度、靈活性和時(shí)間特性等n輸入項(xiàng)n輸出項(xiàng) 內(nèi)容包括n算法:具體的計(jì)算步驟和過(guò)程n接口:模塊的隸屬關(guān)系、調(diào)用方式和參數(shù)、與模塊直接關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)(如數(shù)據(jù)庫(kù)表、文件等)n存儲(chǔ)分配(根據(jù)需要)n注釋設(shè)計(jì):程序注釋說(shuō)明n限制條件:程序運(yùn)行中所受的限制條件n詳細(xì)設(shè)計(jì)優(yōu)化 在不考慮時(shí)間因素的前提下開發(fā)并精化軟件結(jié)構(gòu) 選出最耗時(shí)的模塊,仔細(xì)設(shè)計(jì)處理算法 孤立出大量占有處理機(jī)資源的模塊 必要時(shí)重新設(shè)計(jì)或用依賴于機(jī)器的語(yǔ)言重寫大量占有資源的模塊n3.1 結(jié)構(gòu)程序設(shè)計(jì)的提

4、出 結(jié)構(gòu)程序設(shè)計(jì)概念最早1965年由E.W.Dijkstra提出n“可以從高級(jí)語(yǔ)言中取消GOTO語(yǔ)句”n“程序的質(zhì)量與程序中所包含的GOTO語(yǔ)句的數(shù)量成反比” 1966年bohm和Jacopini證明了:n只用三種基本的控制結(jié)構(gòu)能實(shí)現(xiàn)任何單入口單出口的程序 1968年人們認(rèn)識(shí)要?jiǎng)?chuàng)立一種新的程序設(shè)計(jì)思想n以顯著地提高軟件生產(chǎn)率和降低軟件維護(hù)代價(jià) 1971年IBM公司成功地使用了結(jié)構(gòu)程序設(shè)計(jì)技術(shù)n紐約時(shí)報(bào)信息庫(kù)管理系統(tǒng)n美國(guó)宇航局空間實(shí)驗(yàn)室飛行模擬系統(tǒng) 1972年IBM公司的Mills進(jìn)一步補(bǔ)充了結(jié)構(gòu)程序設(shè)計(jì)的規(guī)則 結(jié)構(gòu)程序設(shè)計(jì)是盡可能少用GOTO語(yǔ)句的程序設(shè)計(jì)方法。最好僅在檢測(cè)出錯(cuò)誤時(shí)才使用GO

5、TO語(yǔ)句,而且應(yīng)該總是使用前向GOTO語(yǔ)句n3.2 結(jié)構(gòu)程序設(shè)計(jì)分類 只允許使用順序、IF-THEN-ELSE分支和DO-WHILE型循環(huán)這三種基本控制結(jié)構(gòu),稱為經(jīng)典的結(jié)構(gòu)程序設(shè)計(jì) 還允許使用DO-CASE多分支結(jié)構(gòu)和DO-UNTIL循環(huán)結(jié)構(gòu),稱為擴(kuò)展的結(jié)構(gòu)程序設(shè)計(jì) 如果再加上允許使用LEAVE(或BREAK)結(jié)構(gòu),稱為修正的結(jié)構(gòu)程序設(shè)計(jì)l 三種基本的控制結(jié)構(gòu):順序選擇循環(huán)l 其他常用的控制結(jié)構(gòu):DO-UNTILDO-CASEl 受限制的前向GO TO 語(yǔ)句:LEAVEBREAK3種基本的控制結(jié)構(gòu)其他常用的控制結(jié)構(gòu)3.3 結(jié)構(gòu)化程序設(shè)計(jì)應(yīng)遵循的基本原則(一)采用自頂向下、逐步求精的模塊化方法設(shè)

6、計(jì)程序l 自底向上的程序設(shè)計(jì)方法,編寫出的程序往往局部結(jié)構(gòu)較好,而整體結(jié)構(gòu)不佳,有時(shí)會(huì)導(dǎo)致程序設(shè)計(jì)不理想或失敗。l自頂向下逐步求精的方法符合人們解決復(fù)雜問(wèn)題的普遍規(guī)律,整體結(jié)構(gòu)清晰、合理。l軟件可讀性好,提高了軟件的可維護(hù)性(二)盡量使用 “基本結(jié)構(gòu)”編程(三)限制轉(zhuǎn)向語(yǔ)句的使用 大量的資料數(shù)據(jù)表明:軟件產(chǎn)品的質(zhì)量與軟件中g(shù)oto語(yǔ)句的數(shù)量成反比;3.4 結(jié)構(gòu)化程序設(shè)計(jì)的好處結(jié)構(gòu)化程序設(shè)計(jì)的好處l 自頂向下逐步求精的軟件開發(fā)方法比較符合人們解決復(fù)雜問(wèn)題的規(guī)律,因此可以提高軟件開發(fā)的成功率和生產(chǎn)率。l 由全局到局部,由整體到細(xì)節(jié)的逐步求精過(guò)程開發(fā)出的軟件具有良好的層次結(jié)構(gòu),更易于人們的閱讀和理解

7、。l 限制或不使用goto語(yǔ)句,使得程序的靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)執(zhí)行情況較為接近,對(duì)于錯(cuò)誤的診斷和糾正比較容易。(1) 圖形工具程序流程圖(FC)盒圖(NS) 問(wèn)題分析圖(PAD) (2) 表格工具判定表判定樹 (3) 語(yǔ)言工具過(guò)程設(shè)計(jì)語(yǔ)言(PDL)問(wèn)題問(wèn)題定義定義可行可行性研性研究究需求需求分析分析概要概要設(shè)計(jì)設(shè)計(jì)詳細(xì)詳細(xì)設(shè)計(jì)設(shè)計(jì)編碼編碼測(cè)試測(cè)試維護(hù)維護(hù)理論理論層層工具工具層層文檔文檔層層概念、任務(wù)、研究?jī)?nèi)容、方法(原則)、技術(shù)沒(méi)有系統(tǒng)流程圖ER圖、數(shù)據(jù)流圖、數(shù)據(jù)字典、狀態(tài)轉(zhuǎn)換圖、 Petril網(wǎng)層次方框圖、Warnier圖、IPO圖、有窮狀態(tài)機(jī)、ZH圖、HIPO圖結(jié)構(gòu)圖、IDE界面工具箱、程序流程

8、圖、NS圖、PAD圖、判定表、判定樹、PDL語(yǔ)言Jackson圖(改進(jìn))、McCabe、Halstead具體程序設(shè)計(jì)語(yǔ)言和開發(fā)工具輔助測(cè)試工具以理論層的思想和工具層的工具,加上一定的書寫規(guī)范,來(lái)書寫各階段文檔1. 程序流程圖 在40年代末到70年代中期,程序流程圖一直是軟件設(shè)計(jì)的工具 它以對(duì)控制流程的描繪直觀、易于掌握而被設(shè)計(jì)人員青睞 依據(jù)國(guó)家標(biāo)準(zhǔn)(GB1526-89),列出有關(guān)程序流程圖的基本符號(hào)數(shù)據(jù) 處理 待處理 準(zhǔn)備 判斷 循環(huán)上、下界 連接端點(diǎn)符 注解符 流線 虛線 省略符 并行方式 多出口判斷 換頁(yè)連接控制流 缺點(diǎn):本質(zhì)上不具備逐步求精的特點(diǎn),對(duì)于提缺點(diǎn):本質(zhì)上不具備逐步求精的特點(diǎn),

9、對(duì)于提高高 大型系統(tǒng)的可理解性作用甚微;大型系統(tǒng)的可理解性作用甚微; 不易表示數(shù)據(jù)結(jié)構(gòu);不易表示數(shù)據(jù)結(jié)構(gòu); 可以隨心所欲地畫控制流程,容易造成非可以隨心所欲地畫控制流程,容易造成非 結(jié)構(gòu)化的程序結(jié)構(gòu)。結(jié)構(gòu)化的程序結(jié)構(gòu)。 趨勢(shì):停止使用趨勢(shì):停止使用 優(yōu)點(diǎn):容易掌握,且歷史優(yōu)點(diǎn):容易掌握,且歷史“悠久悠久”,使用廣泛。,使用廣泛。第第1個(gè)任務(wù)個(gè)任務(wù)第第2個(gè)任務(wù)個(gè)任務(wù) 第第n個(gè)任務(wù)個(gè)任務(wù)TF條件條件ELSE部分部分THEN部分部分CASE條件條件值值 1CASE1部分部分值值 2CASE2部分部分值值 nCASEn部分部分循環(huán)條件循環(huán)條件DO- WHILE 部分部分循環(huán)條件循環(huán)條件DO- UNTI

10、L 部分部分AnN-S圖是Nassi和Shneiderman提出來(lái)的,它體現(xiàn)了結(jié)構(gòu)程序設(shè)計(jì)精神,是目前過(guò)程設(shè)計(jì)中廣泛使用的一種圖形工具。ab條 件 1TF Case Xi, i=2,3,4X2X3X4當(dāng)條件3成立條 件 2直到條件4成立直 到 條 件 成立cdefghijn順序結(jié)構(gòu)nif選擇結(jié)構(gòu)ncase多分支選擇結(jié)構(gòu)nDo-while循環(huán)nDo-until循環(huán)FTTFnDo-until循環(huán) 優(yōu)點(diǎn)n功能域(一個(gè)特定控制結(jié)構(gòu)的作用域)明確,可以從盒圖上一眼就看出來(lái)。n沒(méi)有箭頭不允許隨意轉(zhuǎn)移控制,不可能任意轉(zhuǎn)移控制。n很容易確定局部和全程數(shù)據(jù)的作用域。n很容易表現(xiàn)嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)

11、。 缺點(diǎn)n隨著程序內(nèi)嵌套的層數(shù)增多時(shí),內(nèi)層方框越來(lái)越小,會(huì)增加畫圖的難度,影響清晰度。 輸入y y不能被4整除N Y y不能被400整除結(jié)束輸出是潤(rùn)年 輸出非潤(rùn)年Y不能被100整除N YN Y輸出是閏年輸出非閏年n S=0i=1Fuhao=1iFIRSTSECOND =FIRSTFIRST=KISECOND =KInPAD圖PADPAD圖轉(zhuǎn)換成代碼舉例圖轉(zhuǎn)換成代碼舉例KI SECONDBEGIN FIRST:=K1; SECOND:=0;BEGIN FOR I:=2 TO N DO BEGIN IF KISECOND THENBEGIN IF KIFIRSTTHEN BEGIN SECOND:

12、=FIRST; FIRST:=KI; ELSE SECOND:=KI; END END END END 判定表能夠清晰地表示復(fù)雜的條件組合與所產(chǎn)生的動(dòng)作之前的關(guān)系。 一張判定表由四部分組成:n左上部列出所有的條件n左下部是所有可能的操作n右上部是各種條件的組合矩陣n右下部是每種條件組合對(duì)應(yīng)的動(dòng)作例:n某航空公司規(guī)定,乘客可以免費(fèi)托運(yùn)重量不超過(guò)30公斤的行李。當(dāng)行李重量超過(guò)30公斤時(shí),頭等艙國(guó)內(nèi)乘客超重部分每公斤收費(fèi)4元,其他艙的國(guó)內(nèi)乘客超重部分每公斤收費(fèi)6元,對(duì)于外國(guó)乘客超重部分每公斤收費(fèi)比國(guó)內(nèi)乘客多一倍,對(duì)于殘疾乘客超重部分每公斤收費(fèi)比正常乘客減少一半。國(guó)內(nèi)乘客國(guó)內(nèi)乘客TTTTFFFF頭等倉(cāng)

13、頭等倉(cāng)TFTFTFTF殘疾乘客殘疾乘客FFTTFFTT行李重量行李重量 30T F F F FF F F F免費(fèi)免費(fèi) (W-30)*2(W-30)*3(W-30)*4(W-30)*6(W-30)*8(W-30)*12n1、當(dāng)算法中包含多重嵌套的條件選擇時(shí),用程序流程圖、N-S圖或PAD都不易清楚地描述。然而,判定表卻能清晰地表達(dá)復(fù)雜的條件組合與應(yīng)做動(dòng)作之間的對(duì)應(yīng)關(guān)系。n2、判定表缺乏通用性,沒(méi)法和PAD圖那樣良好的轉(zhuǎn)換成代碼。n3、當(dāng)數(shù)據(jù)元素的值多于兩個(gè)時(shí)不易表示n4、無(wú)法清晰表示順序和重復(fù)等處理n判定樹的定義n判定樹又稱決策樹,適合描述問(wèn)題處理中具有多重判斷,即每個(gè)決策與若干條件有關(guān)。n使用

14、判定樹進(jìn)行描述時(shí),應(yīng)該從問(wèn)題的文字描述中分清哪些是判定條件,哪些是判定的決策。2. 判定樹的符號(hào)殘疾乘客殘疾乘客 (w-30)*2正常乘客正常乘客 (w-30)*4殘疾乘客殘疾乘客 (w-30)*3正常乘客正常乘客 (w-30)*6殘疾乘客殘疾乘客 (w-30)*4正常乘客正常乘客 (w-30)*8殘疾乘客殘疾乘客 (w-30)*6正常乘客正常乘客 (w-30)*12頭等艙頭等艙其它艙其它艙頭等艙頭等艙其它艙其它艙國(guó)內(nèi)乘客國(guó)內(nèi)乘客國(guó)外乘客國(guó)外乘客行李重量行李重量30公斤公斤行李重量行李重量 30公斤公斤行李費(fèi)行李費(fèi)算法算法免費(fèi)免費(fèi)n例:某航空公司規(guī)定乘客可以免費(fèi)托運(yùn)30KG的物品,超出部分收費(fèi)

15、,頭等艙國(guó)內(nèi)乘客1kg收費(fèi)4元,其他艙國(guó)內(nèi)乘客1kg收費(fèi)6元,國(guó)外乘客費(fèi)用翻倍,殘疾人半價(jià) 表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作之間的對(duì)應(yīng)關(guān)系 判定樹形式簡(jiǎn)單,長(zhǎng)期以來(lái)一直受到重視 判定樹的簡(jiǎn)潔性不如判定表n經(jīng)常出現(xiàn)同一個(gè)值重復(fù)寫多遍n且葉端重復(fù)次數(shù)急劇增加 由于判定樹的分枝次序?qū)τ谧罱K畫出的判定樹的簡(jiǎn)潔程度有較大影響n所以選擇哪一個(gè)條件作為第一個(gè)分枝是至關(guān)重要的l 過(guò)程設(shè)計(jì)語(yǔ)言(PDL)也稱為偽碼。它是用正文形式表示數(shù)據(jù)和處理過(guò)程的設(shè)計(jì)工具。l 是一種“混雜式語(yǔ)言”,采用了某種語(yǔ)言(如英語(yǔ)或自然語(yǔ)言)的詞匯,另一種語(yǔ)言(某種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言)的語(yǔ)法。PDL的特點(diǎn):n正文用嚴(yán)格的程序語(yǔ)言的基本控制

16、結(jié)構(gòu)分割,稱為“外語(yǔ)法”,如 If Then Else 、 While DO 、 Repeat Until 、 Case of n操作用自然語(yǔ)言表示,描述處理特點(diǎn),稱為“內(nèi)語(yǔ)法”。(3)具有數(shù)據(jù)說(shuō)明的手段,既包括簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)(例如純量和數(shù)組),又包括復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(例如,鏈表或?qū)哟蔚臄?shù)據(jù)結(jié)構(gòu)(4)具有模塊定義和調(diào)用技術(shù),提供各種接口描述模式。PDLPDL的優(yōu)點(diǎn):的優(yōu)點(diǎn):(1)可以作為注釋直接插在源程序中間。 (2)可以使用普通的正文編輯程序或文字處理系統(tǒng),很方便地完成PDL的書寫和編輯工作。(3)已經(jīng)有自動(dòng)處理PDL的程序存在,而且可以自動(dòng)由PDL生成程序代碼。PDLPDL的缺點(diǎn):的缺點(diǎn): 不如圖形工具形象直觀,描述復(fù)雜的條件組合與動(dòng)作間的對(duì)應(yīng)關(guān)系時(shí),不如判定表清晰簡(jiǎn)單。例:商店業(yè)務(wù)處理系統(tǒng)中“檢查發(fā)貨單” IF 發(fā)貨單

溫馨提示

  • 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)論