詳細(xì)設(shè)計(jì)的基本任務(wù):
(1)為每個(gè)模塊進(jìn)行詳細(xì)的算法設(shè)計(jì)。用某種圖形、表格、語(yǔ)言等工具將每個(gè)模塊處理過(guò)程 為每個(gè)模塊進(jìn)行詳細(xì)的算法設(shè)計(jì)。 為每個(gè)模塊進(jìn)行詳細(xì)的算法設(shè)計(jì)的詳細(xì)算法描述出來(lái)。
(2)為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì)。對(duì)于需求分析、概要設(shè)計(jì)確定的概念性的數(shù)據(jù)類(lèi)型進(jìn)行 為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì)。 為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì)確切的定義。
(3)對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行物理設(shè)計(jì),即確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。物理結(jié)構(gòu)主要指數(shù)據(jù)庫(kù)的存儲(chǔ)記 對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行物理設(shè)計(jì), 對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行物理設(shè)計(jì)即確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。 錄格式、存儲(chǔ)記錄安排和存儲(chǔ)方法,這些都依賴(lài)于具體所使用的數(shù)據(jù)庫(kù)系統(tǒng)。
(4)其他設(shè)計(jì):根據(jù)軟件系統(tǒng)的類(lèi)型,還可能要進(jìn)行以下設(shè)計(jì):
、俅a設(shè)計(jì)。為了提高數(shù) 其他設(shè)計(jì): 其他設(shè)計(jì) 根據(jù)軟件系統(tǒng)的類(lèi)型,還可能要進(jìn)行以下設(shè)計(jì): 代碼設(shè)計(jì)。 據(jù)的輸入、分類(lèi)、存儲(chǔ)、檢索等操作,節(jié)約內(nèi)存空間,對(duì)數(shù)據(jù)庫(kù)中的某些數(shù)據(jù)項(xiàng)的值要進(jìn)行 代碼設(shè)計(jì)。
、谳斎 輸出格式設(shè)計(jì)。 輸出格式設(shè)計(jì)。人機(jī)對(duì)話設(shè)計(jì)。 對(duì)于一個(gè)實(shí)時(shí)系統(tǒng), 用戶(hù)與計(jì)算機(jī)頻繁對(duì)話, 因此要進(jìn)行對(duì)話方式、 內(nèi)容、
③人機(jī)對(duì)話設(shè)計(jì)。 格式的具體設(shè)計(jì)。
(5)編寫(xiě)詳細(xì)設(shè)計(jì)說(shuō)明書(shū)。
(6)評(píng)審。對(duì)處理過(guò)程的算法和數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)都要評(píng)審。
結(jié)構(gòu)化程序設(shè)計(jì)方法:
詳細(xì)設(shè)計(jì)是軟件設(shè)計(jì)的第二階段,主要確定每個(gè)模塊具體執(zhí)行過(guò)程,也稱(chēng)“過(guò)程設(shè)計(jì)”,詳細(xì)設(shè)計(jì)的目標(biāo)不僅是邏輯上正確地實(shí)現(xiàn)每個(gè)模塊的功能,并使設(shè)計(jì)出的處理過(guò)程清晰易讀。過(guò)程設(shè)計(jì)中采用的典型方法是結(jié)構(gòu)化程序設(shè)計(jì)(簡(jiǎn)稱(chēng) SP)方法, 最早是由 E.W.Dijkstra 在 60 年代中期提出的,它是實(shí)現(xiàn)詳細(xì)設(shè)計(jì)目標(biāo)的關(guān)鍵技術(shù)之一。
結(jié)構(gòu)化程序設(shè)計(jì)方法的基本要點(diǎn)是:
采用自頂向下
1. 采用自頂向下,逐步求精的程序設(shè)計(jì)方法 在需求分析,概要設(shè)計(jì)中,都采用了自頂向下,逐層細(xì)化的方法。 在需求分析,概要設(shè)計(jì)中,都采用了自頂向下,逐層細(xì)化的方法。
2. 使用三種基本控制結(jié)構(gòu)構(gòu)造程序 任何程序都可由順序、選擇、重復(fù)三種基本控制結(jié)構(gòu)構(gòu)造。
主程序員組的組織形式指開(kāi)發(fā)程序的人員組織方式應(yīng)采用由一個(gè)主程序員(負(fù)責(zé)全部技術(shù)活 動(dòng))、一個(gè)后備程序員(協(xié)調(diào)、支持主程序員)和一個(gè)程序管理員(負(fù)責(zé)事務(wù)性工作,如收集、 記錄數(shù)據(jù),文檔資料管理等)三個(gè)為核心,再加上一些專(zhuān)家(如通信專(zhuān)家、數(shù)據(jù)庫(kù)專(zhuān)家)、其 他技術(shù)人員組成小組。
詳細(xì)設(shè)計(jì)描述法:
詳細(xì)描述處理過(guò)程常用三種工具:圖形、表格和語(yǔ)言。 本節(jié)主要介紹結(jié)構(gòu)化程序流程圖、 盒圖和問(wèn)題分析圖三種圖形工具。 它是使用最廣泛的一種描述程序邏輯結(jié)構(gòu)的工具。
程序流程圖
程序流程圖又稱(chēng)為程序框圖, PAD 圖 PAD 圖指問(wèn)題分析圖(Problem Analysis Diagram),是日本日立公司于 1979 年提出 的一種算法描述工具,它是一種由左往右展開(kāi)的二維樹(shù)型結(jié)構(gòu)。
過(guò)程設(shè)計(jì)語(yǔ)言
過(guò)程設(shè)計(jì)語(yǔ)言(Problem Design Language,簡(jiǎn)稱(chēng) PDL),也稱(chēng)程序描述語(yǔ)言(Problem 過(guò)程設(shè)計(jì)語(yǔ)言(Problem Design Language,簡(jiǎn)稱(chēng) PDL),也稱(chēng)程序描述語(yǔ)言(Problem Language),又稱(chēng)為偽碼。它是一種用于描述算法設(shè)計(jì)和處理細(xì)節(jié)的語(yǔ)言。 Descripition Language),又稱(chēng)為偽碼。它是一種用于描述算法設(shè)計(jì)和處理細(xì)節(jié)的語(yǔ)言。
表示的程序結(jié)構(gòu)一般有以下幾種:
用PDL 表示的程序結(jié)構(gòu)一般有以下幾種:
(1)順序結(jié)構(gòu):采用自然語(yǔ)言描述。
(2)選擇結(jié)構(gòu):
1、IF-ELSE 結(jié)構(gòu) IF 條件 IF 條件 處理 S1 或 處理 S ELSE 處理 S2 ENDIF ENDIF
2、IF-ORIF-ELSE 結(jié)構(gòu) IF 條件 1 處理 S2 ORIF 條件 2 處理 S2 . . . ELSE 處理 Sn ENDIF
3、CASE 結(jié)構(gòu) CASE OF CASE
(1) 處理 S1 CASE
(2) 處理 S2 . . . ELSE 處理 Sn ENDCASE
(3)重復(fù)結(jié)構(gòu):
1、FOR 結(jié)構(gòu) FOR i=1 TO n 循環(huán)體 ENDFOR
2、WHILE 結(jié)構(gòu) WHILE 條件 循環(huán)體 ENDWHILE
3、UNTIL 結(jié)構(gòu) REPEAT 循環(huán)體 UNTIL 條件
(4)出口結(jié)構(gòu):
1、ESCAPE 結(jié)構(gòu)(退出本層結(jié)構(gòu)) WHILE 條件 處理 S1 ESCAPE L IF 條件 處理 S2 ENDWHILE L:……
2、CYCLE 結(jié)構(gòu)(循環(huán)內(nèi)部進(jìn)入循環(huán)的下一次) L:WHILE 條件 處理 S1 CYCLE L IF 條件 處理 S2 ENDWHILE
(5)模塊定義與調(diào)用:
1、模塊定義 PROCEDURE 模塊名(參數(shù)) .. RETURN END
2、模塊調(diào)用 CALL 模塊名(參數(shù))
(6)數(shù)據(jù)定義:
DECLARE 屬性 變量名…… 屬性有:字符、整型、實(shí)型、雙精度、指針、數(shù)組、結(jié)構(gòu)等類(lèi)型。
(7)輸入/輸出: 輸入 GET(輸入變量表) PUT(輸出變量表)
現(xiàn)以 xx 系統(tǒng)主控模塊詳細(xì)設(shè)計(jì)為例,說(shuō)明如何用 PDL 來(lái)描述。 PROCEDURE 模塊名( ) PROCEDURE 模塊名( 清屏; 清屏; 系統(tǒng)用戶(hù)界面; 顯示 xx 系統(tǒng)用戶(hù)界面; PUT(“請(qǐng)輸入用戶(hù)口令: PUT(“請(qǐng)輸入用戶(hù)口令:”); GET(password); GET(password); >系統(tǒng)口令 IF password< >系統(tǒng)口令 提示警告信息; 提示警告信息; 退出運(yùn)行 ENDIF 顯示本系統(tǒng)主菜單; 顯示本系統(tǒng)主菜單; WHILE(true) ABC; 接收用戶(hù)選擇 ABC; ABC=“退出” IF ABC=“退出” Break; Break; ENDIF 調(diào)用相應(yīng)下層模塊完成用戶(hù)選擇功能; 調(diào)用相應(yīng)下層模塊完成用戶(hù)選擇功能; ENDWHILE
清屏; RETURN END 從以上例子可以看到 PDL 的總體結(jié)構(gòu)與一般程序完全相同。 外語(yǔ)法同相應(yīng)程序語(yǔ)言一致, 內(nèi)語(yǔ)法使用自然語(yǔ)言,易編寫(xiě),易理解,也很容易轉(zhuǎn)換成源程序。
Jackson 方法
Jackson 方法是面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法。 Jackson 方法定義了一組以數(shù)據(jù)結(jié)構(gòu)為指導(dǎo)的映射過(guò)程,它根據(jù)輸入、輸出的數(shù)據(jù)結(jié)構(gòu),按 一定的規(guī)則映射成軟件的過(guò)程描述,即程序結(jié)構(gòu) 程序結(jié)構(gòu) Jackson 設(shè)計(jì)步驟 Jackson 方法一般通過(guò)以下五個(gè)步驟來(lái)完成設(shè)計(jì):
(1)分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu) 并用 Jackson 結(jié)構(gòu)圖來(lái)表示這些數(shù)據(jù)結(jié)構(gòu)。分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu), 結(jié)構(gòu)圖來(lái)表示這些數(shù)據(jù)結(jié)構(gòu)。
(1)分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu),
(2)找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元。 找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元
(3)按一定的規(guī)則由輸入 輸出的數(shù)據(jù)結(jié)構(gòu)導(dǎo)出程序結(jié)構(gòu)。
(4)列出基本操作與條件 并把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。
(5)用偽碼寫(xiě)出程序。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |