freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

軟件工程導(dǎo)論第五版-資料下載頁(yè)

2025-09-11 21:48本頁(yè)面
  

【正文】 結(jié)構(gòu)、輸入輸出以及接口設(shè)計(jì)、運(yùn)行設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和出錯(cuò)處理設(shè)計(jì)等,為詳細(xì)設(shè)計(jì)提供基礎(chǔ)。 第 6章:詳細(xì)設(shè)計(jì) 目標(biāo) :確定如何具體實(shí)現(xiàn)所要求的系統(tǒng) 。 不是具體編寫(xiě)程序 , 而是設(shè)計(jì)程序的“ 藍(lán)圖 ” 。 詳細(xì)設(shè)計(jì)的結(jié)果決定最終程序代碼的質(zhì)量 。 最早提出結(jié)構(gòu)程序設(shè)計(jì):程序質(zhì)量與程序中包含的 Goto語(yǔ)句的數(shù)量成反比( 1965)。 1966 , Bohm, Jacopini ,證明了只用“順序”、“選擇”、“循環(huán)”控制結(jié)構(gòu)就能實(shí)現(xiàn)任何單入口單出口程序。 結(jié)構(gòu)程序設(shè)計(jì) 理論上,最基本的控制結(jié)構(gòu)只有兩種:順序、循環(huán)結(jié)構(gòu)(選擇結(jié)構(gòu)可由其兩者構(gòu)造)。 學(xué)界認(rèn)識(shí)到,不是簡(jiǎn)單去掉 Goto語(yǔ)句的問(wèn)題,而是要?jiǎng)?chuàng)立一種新的程序設(shè)計(jì)方法。 ——結(jié)構(gòu)化程序設(shè)計(jì)( IBM率先成功運(yùn)用)。 結(jié)構(gòu)程序設(shè)計(jì) : 一種設(shè)計(jì)程序的技術(shù) , 它采用自頂向下逐步求精的設(shè)計(jì)方法和單入口單出口的控制結(jié)構(gòu) 。 使用結(jié)構(gòu)程序設(shè)計(jì)技術(shù)的好處 : 1)提高軟件開(kāi)發(fā)工程的成功率和生產(chǎn)率; 2)系統(tǒng)有清晰的層次結(jié)構(gòu),容易閱讀理解; 3)單入口單出口的控制結(jié)構(gòu),容易診斷糾正; 4)模塊化可以使得軟件可以重用; 5)程序邏輯結(jié)構(gòu)清晰,有利于程序正確性證明。 經(jīng)典的結(jié)構(gòu)程序設(shè)計(jì) :只允許使用順序、IF_THEN_ELSE選擇和 DO_WHILE循環(huán); 擴(kuò)展的結(jié)構(gòu)程序設(shè)計(jì) :除了三種基本控制結(jié)構(gòu),還使用 DO_CASE和 DO_UNTIL循環(huán); 修正的結(jié)構(gòu)程序設(shè)計(jì) :除了三種基本控制結(jié)構(gòu)和兩種擴(kuò)充結(jié)構(gòu),還使用 BREAK等結(jié)構(gòu)。 流程圖通常由三種結(jié)點(diǎn)組成: 1) 函數(shù)結(jié)點(diǎn) 如果一個(gè)結(jié)點(diǎn)有一個(gè)入口線和一個(gè)出口線 , 則稱為函數(shù)結(jié)點(diǎn) 。 由于函數(shù)結(jié)點(diǎn)一般對(duì)應(yīng)于賦值語(yǔ)句,所以 F 也表示了這一個(gè)結(jié)點(diǎn)對(duì)應(yīng)的函數(shù)關(guān)系。 F 函數(shù)結(jié)點(diǎn) 結(jié)構(gòu)化程序 控制結(jié)構(gòu) 2) 謂詞結(jié)點(diǎn) 如果一個(gè)結(jié)點(diǎn)有一個(gè)入口線和兩個(gè)出口線,而且它不改變程序的數(shù)據(jù)項(xiàng)的值,則稱為謂詞結(jié)點(diǎn)。 P是一個(gè)謂詞,根據(jù) P的邏輯值( T或 F),結(jié)點(diǎn)有不同的出口。 P 謂詞結(jié)點(diǎn) 3) 匯點(diǎn) 如果一個(gè)結(jié)點(diǎn)有兩個(gè)或多個(gè)入口線和一個(gè)出口線,而且它不執(zhí)行任何運(yùn)算,則稱為匯點(diǎn) 。 匯點(diǎn) 匯點(diǎn)的簡(jiǎn)略表示 1) 順序結(jié)構(gòu) :相當(dāng)于“ A、 B” 2. 三種基本控制結(jié)構(gòu) A B (a)順序結(jié)構(gòu) 2) 選擇結(jié)構(gòu) 相當(dāng)于“ If exp then A else B endif ” A B exp (b)選擇結(jié)構(gòu) 3) 循環(huán)結(jié)構(gòu) :相當(dāng)于“ While exp do A” A (c)循環(huán)結(jié)構(gòu) exp 1) 多分支結(jié)構(gòu) 相當(dāng)于“ Case I of I=1:C1。 I=2:C2。 I=3:C3。 … 。 I=n:Cn” 3. 擴(kuò)充兩種控制結(jié)構(gòu) Cn C3 C1 C2 (d)多分支結(jié)構(gòu) I=? … 2) UNTIL循環(huán)結(jié)構(gòu) 相當(dāng)于“ Repeat A Until exp” A (e)UNTIL循環(huán) exp 正規(guī)程序 定義 1:一個(gè)流程圖程序如果滿足下面兩個(gè)條件 , 稱為正規(guī)程序: 1) 具有一個(gè)入口線和一個(gè)出口線; 2)對(duì)每一個(gè)結(jié)點(diǎn),都有一條從入口線到出口線的通路通過(guò)該結(jié)點(diǎn)。 由于正規(guī)程序有一個(gè)入口線和一個(gè)出口線,因而一個(gè)正規(guī)程序總可以抽象為一個(gè) 函數(shù)結(jié)點(diǎn) 。 F 函數(shù)結(jié)點(diǎn) 定義 2:如果一個(gè)正規(guī)程序的某個(gè)部分仍然是正規(guī)程序,那么稱它為該正規(guī)程序的正規(guī)子程序。 先給出一個(gè)概念: 封閉結(jié)構(gòu) 定義 3:流程圖中 , 兩個(gè)結(jié)點(diǎn)之間所有沒(méi)有重復(fù)結(jié)點(diǎn)的通路組成的結(jié)構(gòu)稱為封閉結(jié)構(gòu) 。 基本程序 如圖:封閉結(jié)構(gòu)為 { a [ b1 b2 b3 。 c1 c2 。 d1 d2 d3 。 e ] f } a b1 b2 b3 c2 c1 d1 d2 d3 e f 1) 不包括多于一個(gè)結(jié)點(diǎn)的正規(guī)子程序 , 即它是一種不可再分解的正規(guī)程序; ( 程序自身不可視為正規(guī)子程序 ) 2)如果存在封閉結(jié)構(gòu),封閉結(jié)構(gòu)都是正規(guī)程序。 基本程序 定義 4:一個(gè)正規(guī)程序 , 如果滿足以下兩個(gè)條件 ,則稱之為 基本程序 : 基本程序形式有多種,前面提到的三種基本控制結(jié)構(gòu)( 順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu) )和兩個(gè)擴(kuò)充控制結(jié)構(gòu)( 多分支結(jié)構(gòu)、UNTIL循環(huán)結(jié)構(gòu) )都是基本程序。 定義 5: 用以構(gòu)造程序的基本程序的集合稱為 基集合 。 如: {順序 , ifthenelse, while do} {順序, ifthenelse, repeatuntil} 都是基集合。 定義 6:如果一個(gè)基本程序的函數(shù)結(jié)點(diǎn)用另一個(gè)基本函數(shù)程序替換,產(chǎn)生的新的正規(guī)程序稱為 復(fù)合程序 。 A 復(fù)合程序 exp B exp A: 循環(huán)結(jié)構(gòu)的 A函數(shù)結(jié)點(diǎn)用另一循環(huán)結(jié)構(gòu)代替,即嵌套循環(huán),就產(chǎn)生了復(fù)合程序。 由于復(fù)合程序是由一些基本程序組成,因此,無(wú)論從總體上看或是從每個(gè)組成部分看,都滿足“ 一個(gè)入口,一個(gè)出口 ” 的原則,這樣的程序就是通常說(shuō)的好結(jié)構(gòu)程序,或者結(jié)構(gòu)化程序。 定義 7:由基本程序的一個(gè)固定的基集合構(gòu)造出的復(fù)合程序 , 稱為 結(jié)構(gòu)化程序 。 結(jié)構(gòu)化定理 :任一正規(guī)程序都可以函數(shù)等價(jià)于一個(gè)由基集合 {順序 , Ifelsethen, Whiledo}產(chǎn)生的結(jié)構(gòu)化程序 。 實(shí)際上,只要能證明可以將任一正規(guī)程序轉(zhuǎn)換成等價(jià)的結(jié)構(gòu)化程序就可以證明這個(gè)結(jié)構(gòu)化定理。 結(jié)構(gòu)化定理 證明 :(分三步進(jìn)行結(jié)構(gòu)化程序的轉(zhuǎn)換) 步驟一:從程序入口處開(kāi)始 給程序的函數(shù)結(jié)點(diǎn)和謂詞結(jié)點(diǎn)編號(hào) : 1, 2, 3, … , n, 同時(shí) , 將每個(gè)函數(shù)和謂詞結(jié)點(diǎn)的出口線用它后面的結(jié)點(diǎn)的號(hào)碼進(jìn)行編號(hào) , 如果出口線后面沒(méi)有結(jié)點(diǎn) ,也就是說(shuō)該結(jié)點(diǎn)的出口線與程序的出口線相連時(shí) , 出口線編號(hào)為 0。 步驟二:對(duì)原程序中每一個(gè)編號(hào)為 i, 出口線編號(hào)為 j的函數(shù)結(jié)點(diǎn) H, 構(gòu)造一個(gè)新的序列程序Gi, 如圖: H Gi = H L:= j i i j 類(lèi)似地,對(duì)于每個(gè)編號(hào)為 i, 出口線分別為 j和 k的謂詞結(jié)點(diǎn),構(gòu)造一個(gè)新的選擇程序 Gi,如圖: P j k i Gi = P i L := j L := k 步驟三: 利用已經(jīng)得到的一些 Gi程序( i=1,2,3,…,n ),按下圖的形式構(gòu)造一個(gè) Whiledo循環(huán)。 圖中的循環(huán)體是一個(gè)對(duì) L從 1到 n的嵌套選擇 ( ifthenelse)程序 , 轉(zhuǎn)換后的程序與原程序是等價(jià)的 ,是由基集合 {順序 、選擇 、 循環(huán) } 所復(fù)合成的結(jié)構(gòu)化程序 。 L:=1 L0 L=1 L=n L=2 Gn L:=0 G2 G1 … … T T T T F F F F 這種方法并不是唯一的把程序轉(zhuǎn)變?yōu)榻Y(jié)構(gòu)化程序的方法,所得的程序也不一定是最好的。 它的目的是為了證明結(jié)構(gòu)化定理。 例 1:把圖示的非結(jié)構(gòu)化程序轉(zhuǎn)換成結(jié)構(gòu)化程序( 用結(jié)構(gòu)化定理證明過(guò)程提供的方法轉(zhuǎn)換 ) 非結(jié)構(gòu)化程序到結(jié)構(gòu)化程序的轉(zhuǎn)換 P1 P2 A B 非結(jié)構(gòu)化程序例圖 1)進(jìn)行結(jié)點(diǎn)及其出口線的編號(hào); 1 3 4 0 2 0 2 3 4 1 P1 P2 A B 非結(jié)構(gòu)化程序例圖 P1 3 2 1 G1= P1 1 L := 3 L := 2 2)將圖中的四個(gè)結(jié)點(diǎn)構(gòu)造新的程序 G G GG4; B G2 = B L:= 0 2 2 0 P2 4 0 3 G3 = P2 3 L := 4 L := 0 A G4 = A L:= 1 4 4 1 3)利用得到的 G G G G4按介紹的方法構(gòu)造一個(gè)Whiledo循環(huán),最終結(jié)果如圖: L:=1 L0 L=1 L=4 L=2 L:=0 P1 L := 3 L := 2 B L:= 0 L=3 P2 L := 4 L := 0 A L:= 1 轉(zhuǎn)化后的結(jié)構(gòu)化程序圖 F F F F F T T T T T 人機(jī)界面設(shè)計(jì) 設(shè)計(jì)問(wèn)題 1. 系統(tǒng)響應(yīng)時(shí)間; 2. 用戶幫助; 3. 出錯(cuò)信息處理; 4. 命令交互 設(shè)計(jì)過(guò)程 人機(jī)界面設(shè)計(jì)指南 1. 一般交互指南; 2. 信息顯示指南; 3. 數(shù)據(jù)輸入指南。 過(guò)程設(shè)計(jì)的工具 程序流程圖 程序流程圖 :是一種描述程序的控制結(jié)構(gòu)流程和指令執(zhí)行情況的有向圖 。 歷史悠久 、 使用廣泛 、 直觀描繪控制流程 、 便于初學(xué)者掌握 。 ASP檢索程序流程圖: 開(kāi) 始 加載 Include文件 定義記數(shù)變量、作物變量 創(chuàng)建數(shù)據(jù)庫(kù)鏈接對(duì)象、記錄集對(duì)象 打開(kāi)數(shù)據(jù)庫(kù) 用客戶提交的值對(duì)作物變量賦值 SQL查詢語(yǔ)句賦值 通過(guò)記錄集對(duì)象打開(kāi) SQL語(yǔ)句設(shè)定的記錄 記錄集末端? 記數(shù)變量加 1,輸出記錄字段值及圖像 轉(zhuǎn)跳下一記錄 關(guān)閉數(shù)據(jù)庫(kù)鏈接對(duì)象、記錄集對(duì)象,并釋放資源 輸出記錄數(shù)和提示 結(jié) 束 Y N 2) 程序流程圖中用箭頭代表控制流 , 因此程序員不受任何約束 , 可以完全不顧結(jié)構(gòu)程序設(shè)計(jì)的精神 , 隨意轉(zhuǎn)移控制 。 3)程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu)。 程序流程圖的 缺點(diǎn) : 1) 程序流程圖本質(zhì)上不是逐步求精的好工具 ,它誘使程序員過(guò)早地考慮程序的控制流程 ,而不去考慮程序的全局結(jié)構(gòu) 。 盒圖( NS圖) A B C 條件 F T Else B Then A Case條件 Case1 A Case2 B … Casen N 循環(huán)條件 循環(huán)條件 DoWhile部分 DoUntil部分 A A 圖 盒圖的基本符號(hào) 盒圖的特點(diǎn)有: 1) 功能域明確 , 可以從盒圖上一眼就看出來(lái); 2) 不可能任意轉(zhuǎn)移控制; 3) 很容易確定局部和全程數(shù)據(jù)的作用域; 4)很容易表現(xiàn)嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)。 F T B C D A Case 1 E 2 F 3 G 4 H A: 盒圖例子 PAD( Problem Analysis Diagram) 是問(wèn)題分析圖 。 日立公司發(fā)明和推廣 ( 1973) 。 PAD圖 P1 P2 WHILE C UNTIL C P P P2 P1 C P1 P2 Pn … X= L1 L2 Ln def 圖 PAD圖的基本符號(hào) 例子: P1 P2 UNTIL C2 P7 P4 P3 C def PAD圖 圖 PAD圖例子 def符號(hào)細(xì)化處理框 P2 P5 P2 P8 C1 UNTIL C2 P9 P10 P6 PAD圖的優(yōu)點(diǎn): 1) 使用表示結(jié)構(gòu)化控制結(jié)構(gòu)的 PAD符號(hào)所設(shè)計(jì)出來(lái)的程序必然是結(jié)構(gòu)化程序; 2) PAD圖所描繪的程序結(jié)構(gòu)十分清晰 。 圖中最左面的豎線是程序的主線 , 即第一層結(jié)構(gòu) 。 隨著程序?qū)哟蔚脑黾?, PAD圖逐漸向右延伸 , 每增加一個(gè)層次 , 圖形向右擴(kuò)展一條豎線 。PAD圖中豎線的總條數(shù)就是程序的層次數(shù); 3) 用 PAD圖表現(xiàn)程序 , 通俗易懂 , 程序從圖中最左豎線上端的結(jié)點(diǎn)開(kāi)始執(zhí)行 , 自上而下 ,從左向右順序執(zhí)行 , 遍歷所有結(jié)點(diǎn); 4) 容易將 PAD圖轉(zhuǎn)換成高級(jí)語(yǔ)言源程序 , 這種轉(zhuǎn)換可以用軟件工具自動(dòng)完成; 5) 可用于表示程序邏輯 , 也可用于描繪數(shù)據(jù)結(jié)構(gòu); 6) PAD圖的符號(hào)支持自頂向下 、 逐步求精的方法 。 判定表由四部分組成: 左上部列出所有 條件 左下部是
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1