版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第三章軟件設(shè)計(jì)的概念和過(guò)程
軟件設(shè)計(jì)階段的目的是產(chǎn)生一個(gè)具有良好結(jié)構(gòu)的、可以初步運(yùn)行的軟件系統(tǒng)?!?.軟件設(shè)計(jì)過(guò)程:結(jié)構(gòu)化設(shè)計(jì)
初步設(shè)計(jì)設(shè)計(jì)復(fù)審詳細(xì)設(shè)計(jì)設(shè)計(jì)復(fù)審編碼軟件結(jié)構(gòu)與說(shuō)明修改設(shè)計(jì)資料模塊算法描述控制邏輯修改規(guī)格說(shuō)明源代碼編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
指導(dǎo)原則:層次化:合理地控制和劃分軟件成分的關(guān)系。模塊化:充分采用信息隱蔽原則,最大限度地實(shí)現(xiàn)程序局部化和數(shù)據(jù)局部化,控制復(fù)雜性。功能獨(dú)立:盡量使每個(gè)軟件成分的功能保持相對(duì)獨(dú)立。信息驅(qū)動(dòng):盡量使用分析階段取得的成果。結(jié)構(gòu)清晰:盡量使軟件成分之間的關(guān)系簡(jiǎn)單??刂坪?jiǎn)單:盡量使軟件成分內(nèi)部的控制關(guān)系清晰,控制結(jié)構(gòu)嚴(yán)格受限,避免混亂。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程§2.自頂向下、逐步求精的設(shè)計(jì)方法
原則從軟件系統(tǒng)的最高層開始,定義一個(gè)軟件的總控程序,由它驅(qū)動(dòng)第二層次的任務(wù),再逐級(jí)向下按同樣的原則依次擴(kuò)展,直至最底層不可再分的任務(wù)(模塊),編制源代碼。
基礎(chǔ):基于軟件的控制流向或程序的控制結(jié)構(gòu)。
優(yōu)點(diǎn):信息隱蔽。各層之間存在單向的控制關(guān)系,通過(guò)傳送必要的控制信息或數(shù)據(jù)來(lái)實(shí)現(xiàn),同層之間則無(wú)控制關(guān)系;某個(gè)數(shù)據(jù)結(jié)構(gòu)及其操作完全位于低層,則無(wú)需在高層定義;控制關(guān)系向下傳遞。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程2.【例】銀行算法A.問(wèn)題假定某個(gè)銀行有一筆若干個(gè)單位的資金,可供客戶項(xiàng)目發(fā)展貸款,尋求一個(gè)安全的貸款策略。B.規(guī)定:客戶預(yù)知貸款總額,且所有客戶貸款總額之和將超過(guò)資金總額;每個(gè)客戶一次請(qǐng)貸一個(gè)單位;對(duì)客戶的貸款請(qǐng)求,可以立即付給,也可請(qǐng)其等待;一旦客戶貸足總額,立即歸還全部貸款。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程C.
分析銀行存在兩種可能的狀態(tài):安全、不安全。安全狀態(tài):銀行無(wú)論如何貸款,都有可能使它當(dāng)前的所有客戶在有限的時(shí)間內(nèi)完成項(xiàng)目建設(shè)并歸還全部貸款。不安全狀態(tài):銀行將不可能實(shí)現(xiàn)上述目標(biāo),資金無(wú)法收回。
例如,銀行有10個(gè)貨幣單位,3個(gè)客戶,它們的貸款總額分別為:8、3、9。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程狀態(tài)1是安全的:狀態(tài)2是不安全的:銀行資金:4A:3(5)B:2(1)C:1(8)銀行資金:1A:4(4)B:2(1)C:3(6)編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程進(jìn)一步分析:在安全狀態(tài)和不安全狀態(tài)之間,存在一個(gè)臨界狀態(tài)。此時(shí),只有按照特定的貸款策略才可以完成所有項(xiàng)目。自頂向下設(shè)計(jì)
當(dāng)前系統(tǒng)的描述:
types=recordtransactions:array[1..n]ofrecordclaim,loan:int;completed:booleanend;capital,cash:int;end;編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程第一步:確定當(dāng)前系統(tǒng)安全否,分兩步。
functionsafe(current_state:s):boolean;varstate:s;beginstate:=current_state;
試完成所有的交易;
safe:=所有的交易是否全部完成;
end;安全否試完成全部交易是否全部完成編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程第二步:針對(duì)逐個(gè)試完成交易,又分兩步。此時(shí)有兩個(gè)程序:逐個(gè)試完成交易、所有交易是否完成。①逐個(gè)試完成交易
procedurecomplete_transactions(varstate:s);varcustomer:int;progress:boolean;beginrepeatprogress:=false;forcustomer:=1tondoifnotstate.transactions[customer].completedthenif該項(xiàng)交易能完成thenbegin
編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
歸還貸款;
state.transactions[customer].completed:=true;progress:=true;end;untilnotprogress;end;②所有交易是否完成
functionall_transactions_completed(state.s):boolean;beginifstate.capital=state.cash
thenall_transactions_completed:=trueelseall_transactions_completed:=false;end;編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程這時(shí),系統(tǒng)將又向下細(xì)化一級(jí):是否安全試完成全部交易是否全部完成逐個(gè)試完成交易歸還貸款編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程第三步:針對(duì)逐個(gè)試完成交易,又有兩項(xiàng)任務(wù):試完成每一項(xiàng)交易、歸還貸款。①試完成每一項(xiàng)交易
functioncompletion_possible(claim,cash:int):boolean;beginifclaim>cashthencompletion_possible:=falseelsecompletion_possible:=true;end;②歸還貸款
procedurereturn_loan(varloan,cash:int);begincash:=cash+loan;end;編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程于是,試完成所有交易的程序就完善了:procedurecomplete_transactions(varstate:s);varcustomer:int;progress:boolean;beginrepeatprogress:=false;forcustomer:=1tondoifnotstate.transactions[customer].completedthenifcompletion_possible(state.transactions[customer].claim,state.cash)then
beginreturn_loan(state.transactions[customer].loan,state.cash);
state.transactions[customer].completed:=true;progress:=true;end;untilnotprogress;end;編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
這樣,通過(guò)三級(jí)的求精過(guò)程,完成了全部的設(shè)計(jì)任務(wù)。整個(gè)程序結(jié)構(gòu)為:functionsafe(current_state:s):boolean;var:state:s;procedurecomplete_transactions(varstate:s);procedurereturn_loan(loan,cash:int);functionall_transactions_completed(state:s):boolean;functioncompletion_possible(claim,cash:int);beginstate:=current_state;complete_transactions(state);safe:=all_transactions_completed(state);end;
編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程§3軟件概念軟件結(jié)構(gòu)
軟件結(jié)構(gòu)是指程序的系統(tǒng)結(jié)構(gòu)。通常,它意味一種特殊的層次控制體系,但不一定表示軟件中各部分處理的順序、調(diào)用的次數(shù)或判定。僅僅體現(xiàn)了程序各部分之間的控制關(guān)系。研究軟件結(jié)構(gòu)就是研究各部分劃分的原則以及它們之間的聯(lián)系。軟件結(jié)構(gòu)的好壞對(duì)軟件的質(zhì)量具有極其重要的影響;另一方面,從不同的角度出發(fā),同一個(gè)問(wèn)題可以由不同的軟件結(jié)構(gòu)。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
要解決的問(wèn)題軟件結(jié)構(gòu)
必須著重指出,軟件的層次不是固有的,在很大程度上它是人為的。是人們?yōu)榱朔纸獯笙到y(tǒng)的復(fù)雜性而引入的。不同的設(shè)計(jì)方法可以產(chǎn)生不同的結(jié)構(gòu),問(wèn)題是何種結(jié)構(gòu)使軟件系統(tǒng)更加清晰、維護(hù)更加方便,這是人們所關(guān)心的。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
模塊模塊是組成軟件的最小單位。嚴(yán)格地定義是:模塊是一個(gè)可以獨(dú)立編址的程序單位。3.結(jié)構(gòu)
深度寬度編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
軟件結(jié)構(gòu)的深度是指控制的層數(shù);軟件結(jié)構(gòu)的寬度是指同一層次的最大跨度。模塊性模塊性是指軟件易于開發(fā)、管理和維護(hù)的程度。(C(P1)>C(P2))(E(P1)>E(P2))
但是,C(P1+P2)>C(P1)+C(P2),因此,
E(P1+P2)>E(P1)+E(P2)編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
但是,除了處理的復(fù)雜性以外,還存在模塊之間接口的復(fù)雜性。開發(fā)工作量是與兩者之和相關(guān)的。
工作量模塊數(shù)量接口代價(jià)模塊代價(jià)總代價(jià)編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
●抽象:指開發(fā)時(shí)概括的級(jí)別,層次越高,抽象級(jí)別越高。
●信息隱蔽:指模塊內(nèi)部定義的數(shù)據(jù)結(jié)構(gòu)和操作的外部不可見(jiàn)性,用以防止錯(cuò)誤蔓延。模塊獨(dú)立性模塊獨(dú)立性是指模塊可以被獨(dú)立地理解、編制、測(cè)試和修改的程度。其量度的標(biāo)準(zhǔn)是內(nèi)聚和耦合。內(nèi)聚:模塊內(nèi)部結(jié)合的緊密程度,理想的高內(nèi)聚是一個(gè)模塊恰好完成一件任務(wù)。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
低高共存的:模塊的語(yǔ)句之間實(shí)際上沒(méi)有聯(lián)系,僅僅從存儲(chǔ)的角度將它們放在一起;邏輯的:將邏輯上相似的功能合并為一個(gè)模塊;時(shí)態(tài)的:將需要同時(shí)執(zhí)行的程序放在一個(gè)模塊內(nèi);以上為弱內(nèi)聚的。過(guò)程的:模塊的各部分相互關(guān)聯(lián),且必須按指定的次序執(zhí)行;通信的:模塊的各個(gè)處理部分都因用同樣的數(shù)據(jù);共存的邏輯的時(shí)態(tài)的過(guò)程的通信的順序的功能的編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程順序的:模塊中的各個(gè)處理部分都緊密相關(guān)于一個(gè)功能,而且其中一個(gè)部分的輸出就是另一部分的輸入;功能的:一個(gè)模塊實(shí)現(xiàn)且僅實(shí)現(xiàn)一個(gè)功能。目標(biāo):盡可能設(shè)計(jì)高內(nèi)聚的模塊!耦合:模塊之間相互聯(lián)系和依賴的程度。模塊之間的耦合依賴于模塊之間接口的復(fù)雜性??疾炷K之間的耦合從三個(gè)角度:方式,耦合的方式;作用,共享信息的作用;數(shù)量,模塊間聯(lián)系的多少編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程研究耦合的目的:防止錯(cuò)誤蔓延。
低高數(shù)據(jù)的:模塊之間通過(guò)調(diào)用進(jìn)行聯(lián)系,調(diào)用參數(shù)為整體變量的數(shù)據(jù)型參數(shù);標(biāo)記的:模塊之間通過(guò)調(diào)用進(jìn)行聯(lián)系,調(diào)用參數(shù)可以是域變量的數(shù)據(jù)型參數(shù);無(wú)耦合數(shù)據(jù)的標(biāo)記的控制的外部的共用的內(nèi)容的編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程控制的:模塊之間通過(guò)調(diào)用進(jìn)行聯(lián)系,調(diào)用參數(shù)可以控制下屬模塊的運(yùn)行;外部的:模塊之間由于外部環(huán)境的約束而產(chǎn)生聯(lián)系,例如,兩個(gè)模塊通過(guò)I/O聯(lián)系、通過(guò)中斷(如OS)聯(lián)系等;共用的:模塊之間通過(guò)共同的數(shù)據(jù)區(qū)聯(lián)系;內(nèi)容的:一個(gè)模塊使用另一個(gè)模塊定義的數(shù)據(jù)結(jié)構(gòu)或控制信息??傊?lián)系方式:調(diào)用(好),直接引用數(shù)據(jù)或指令(不好),相互作用:數(shù)據(jù)交流(好),運(yùn)行控制(不好)。目標(biāo):盡可能設(shè)計(jì)低耦合的模塊聯(lián)系。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
設(shè)計(jì)的注意要點(diǎn)●模塊的大小問(wèn)題:在一個(gè)編程人員可以控制的復(fù)雜性以內(nèi);●高內(nèi)聚、耦合●保持單入口、單出口,防止病態(tài)連接,推薦使用三種結(jié)構(gòu):編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程●爭(zhēng)取合理的軟件結(jié)構(gòu),深度過(guò)大時(shí)可以適當(dāng)增加扇出、寬度過(guò)大時(shí)可以適當(dāng)減少扇出。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程●將模塊的作用范圍控制在它的控制范圍內(nèi)。ABCDEFGHIA’C’DEF’BGHI判定影響判定編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程●盡可能利用“黑箱”技術(shù),使模塊的功能可預(yù)測(cè)(具有內(nèi)部“存儲(chǔ)器”的模塊功能是難預(yù)測(cè)的)。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程§4軟件初步設(shè)計(jì)軟件初步設(shè)計(jì)的任務(wù):得到一個(gè)良好的軟件結(jié)構(gòu),又稱軟件的結(jié)構(gòu)設(shè)計(jì)。良好的軟件結(jié)構(gòu)良好的軟件結(jié)構(gòu)應(yīng)該是模塊單向依賴的,亦即下層模塊依賴上層模塊而不是反之。通常的軟件結(jié)構(gòu)有順序、半序和樹型三種。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程順序:偏序:樹型:程序結(jié)構(gòu)圖沒(méi)有徊路!編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程2.設(shè)計(jì)方法分類:面向功能的設(shè)計(jì)方法;面向數(shù)據(jù)流的設(shè)計(jì)方法;面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法;面向數(shù)據(jù)流和面向數(shù)據(jù)結(jié)構(gòu)相結(jié)合的設(shè)計(jì)方法;面向?qū)ο蟮脑O(shè)計(jì)方法;思想與手段分解與抽象,分解軟件系統(tǒng)的復(fù)雜性。
編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
面向數(shù)據(jù)流的設(shè)計(jì)方法基本思想:利用系統(tǒng)分析階段得到的DFD,導(dǎo)出軟件的系統(tǒng)結(jié)構(gòu)。通過(guò)定義若干“映射”規(guī)則,把不同的數(shù)據(jù)流映射到軟件結(jié)構(gòu)。應(yīng)用范圍:原則上可以通用。特別是對(duì)軟件的信息結(jié)構(gòu)不十分清晰或不易用形式化手段描述時(shí),這種方法更有效。例如嵌入式軟件、復(fù)雜的數(shù)值計(jì)算和分析過(guò)程、工業(yè)過(guò)程控制、CAD、GIS應(yīng)用軟件等。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程(1)信息流一般來(lái)說(shuō),信息流可以分為兩個(gè)大類。①轉(zhuǎn)換流:具有明顯的傳入、處理、傳出界限的信息流。是一種基本上呈現(xiàn)線性形狀的DFD。
傳入流轉(zhuǎn)換流傳出流傳入流信息時(shí)間編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程轉(zhuǎn)換中心:信息和形態(tài)發(fā)生根本變化的部分ABCDEFHGIJKL傳入流傳出流轉(zhuǎn)換中心編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程②事務(wù)基元流:具有明顯散射特性的DFD。
事務(wù)基元中心:對(duì)輸入信息進(jìn)行判斷確定處理方式的部分
ABCDHLMOEFGIJK動(dòng)作路徑:處理輸入信息的部分編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
在大型的DFD中,這兩種信息流可能同時(shí)存在。(2)設(shè)計(jì)步驟①?gòu)?fù)審、精化DFD,考慮正確性和合理性;②確定信息流的特性,從總體上區(qū)分是轉(zhuǎn)換流或事務(wù)基元流;③確定流的邊界
事務(wù)基元流:以事務(wù)基元中心分界,分為傳入、事務(wù)基元中心和動(dòng)作路徑;轉(zhuǎn)換流:從輸入端向內(nèi)推進(jìn),找出離輸入端最遠(yuǎn)、但仍構(gòu)成系統(tǒng)的輸入,與物理輸入有最小的相似性(如去掉注釋、間隔符,轉(zhuǎn)成內(nèi)部表示,經(jīng)過(guò)編輯、有效性檢查等)的地方,作為傳入流邊界。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
從物理輸出端開始向內(nèi)推進(jìn),但仍構(gòu)成系統(tǒng)的輸出,與物理輸出有最小的相似性(如未經(jīng)格式編排、未作單位轉(zhuǎn)換等)的地方,作為傳出流的邊界。有可能傳入流、傳出流的邊界重合,這時(shí)軟件的功能就是分發(fā)、轉(zhuǎn)換,沒(méi)有實(shí)質(zhì)性的處理。④
將DFD轉(zhuǎn)化為軟件的結(jié)構(gòu)
●轉(zhuǎn)換流軟件呈現(xiàn)三分結(jié)構(gòu):總控模塊傳入部分轉(zhuǎn)換部分傳出部分編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程傳入部分:在無(wú)子流的情況,從邊界由里向外推。ABDEC傳入分控ECDBAA編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程傳出部分:在無(wú)子流的情況,由傳出邊界里向外推。IJKL傳出分控JIKLK編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程轉(zhuǎn)換中心:在無(wú)子流的情況,自傳入邊界向傳出邊界推進(jìn)。FGH轉(zhuǎn)換分控FGHH編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程●
事務(wù)基元流軟件呈現(xiàn)出二分結(jié)構(gòu)??偪啬K接收部分發(fā)送部分編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程接收部分:同轉(zhuǎn)換流的傳入部分類似。AB接收分控AB編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程發(fā)送部分:由事務(wù)基元中心向外推。CDEFGHIJKLMO發(fā)送分控LMOHIJKDFEG編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程⑤繼續(xù)分解,在有子流的情況,繼續(xù)根據(jù)子流的類型轉(zhuǎn)化。例如,上例中事務(wù)基元流的第二條路徑又是一個(gè)轉(zhuǎn)換流,假定轉(zhuǎn)換轉(zhuǎn)換中心是I、J,就變成:發(fā)送分控LMO路徑子控H轉(zhuǎn)換微控KIJDFEG編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程●對(duì)得到的軟件結(jié)構(gòu)求精。原則:高內(nèi)聚、低耦合;具有相同的模塊可以合并,即可以產(chǎn)生偏序的軟件結(jié)構(gòu)。例如,上例的轉(zhuǎn)換流中,沿著流的方向出現(xiàn)分叉和合并,形成的軟件結(jié)構(gòu)中會(huì)出現(xiàn)一些相同的模塊。這時(shí)就可以將它們合并;視情況省略分控制模塊,如傳入部分只有一個(gè)數(shù)據(jù)流進(jìn)入轉(zhuǎn)換中心,傳入分控模塊可以省略、轉(zhuǎn)換分控模塊也可省去,傳出部分也類似。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程系統(tǒng)總控轉(zhuǎn)換分控傳入分控傳出分控EDBACFGHKIJL軟件結(jié)構(gòu)圖:編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程⑥文檔整理文檔整理是軟件初步設(shè)計(jì)的一個(gè)重要階段。在得到軟件的結(jié)構(gòu)以后,必須確定模塊之間的接口。要對(duì)模塊之間的調(diào)用給出明確的規(guī)定。模塊處理說(shuō)明:模塊處理說(shuō)明是對(duì)系統(tǒng)分析階段的加工說(shuō)明加以細(xì)化,比較深入地描述模塊在軟件系統(tǒng)中所處的位置及地位。要給出它使用的外部數(shù)據(jù)(包括數(shù)據(jù)庫(kù)中的數(shù)據(jù)、系統(tǒng)的全程數(shù)據(jù)結(jié)構(gòu)以及上級(jí)模塊的調(diào)用參數(shù)。還要給出它調(diào)用下級(jí)模塊所使用的參數(shù)。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程5.數(shù)據(jù)設(shè)計(jì)初步設(shè)計(jì)階段的另一個(gè)工作是進(jìn)行數(shù)據(jù)設(shè)計(jì):數(shù)據(jù)庫(kù)設(shè)計(jì),定義數(shù)據(jù)庫(kù)模式。要對(duì)系統(tǒng)分析階段得到的E-R圖進(jìn)行細(xì)化,特別是為了提高效率,需要設(shè)計(jì)部分中間數(shù)據(jù)表項(xiàng),例如臺(tái)帳等。全程數(shù)據(jù)結(jié)構(gòu);大致指出模塊內(nèi)部需要定義的局部數(shù)據(jù)結(jié)構(gòu);明確每個(gè)模塊的I/O數(shù)據(jù)及其結(jié)構(gòu)。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程模塊說(shuō)明的內(nèi)容:模塊名;模塊處理的描述;模塊中使用的數(shù)據(jù):數(shù)據(jù)庫(kù)表、輸入、輸出數(shù)據(jù)、全程數(shù)據(jù)結(jié)構(gòu)等;上級(jí)模塊名;上級(jí)模塊調(diào)用的參數(shù)及其含義和作用;下級(jí)模塊名;調(diào)用下級(jí)模塊使用的參數(shù)及其含義和作用。
編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程§5面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法
數(shù)據(jù)結(jié)構(gòu)與程序程序=數(shù)據(jù)結(jié)構(gòu)+算法數(shù)據(jù)結(jié)構(gòu)強(qiáng)烈地影響軟件的設(shè)計(jì)與過(guò)程設(shè)計(jì):處理重復(fù)數(shù)據(jù)結(jié)構(gòu)的程序往往具有循環(huán)結(jié)構(gòu);處理選擇數(shù)據(jù)結(jié)構(gòu)的程序往往具有條件判定的機(jī)構(gòu);處理分層次數(shù)據(jù)結(jié)構(gòu)的程序往往具有層次結(jié)構(gòu)。面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法就是把對(duì)數(shù)據(jù)結(jié)構(gòu)的描述轉(zhuǎn)化為對(duì)軟件結(jié)構(gòu)的描述。從I/O數(shù)據(jù)結(jié)構(gòu)出發(fā),推倒軟件的結(jié)構(gòu)及某些細(xì)節(jié)。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程[例]處理工資報(bào)表問(wèn)題環(huán)境數(shù)據(jù)結(jié)構(gòu)完成的任務(wù)執(zhí)行的操作程序結(jié)構(gòu)讀、寫程序編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
適用范圍原則上,處理定義清晰、具有層次特點(diǎn)的信息結(jié)構(gòu),都可以使用面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法。如:
●商業(yè)財(cái)政應(yīng)用—有明確的數(shù)據(jù)文件、輸出報(bào)告
●管理信息系統(tǒng)—固定的單據(jù)、報(bào)表
●系統(tǒng)程序—OS以大型表格為基本的數(shù)據(jù)結(jié)構(gòu)
DBMS處理結(jié)構(gòu)定義清晰的紀(jì)錄
●GIS—固定的點(diǎn)、線、面結(jié)構(gòu)編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
與面向數(shù)據(jù)流方法的不同
●設(shè)計(jì)出發(fā)點(diǎn)不同(對(duì)現(xiàn)實(shí)世界的觀察點(diǎn)不同)面向數(shù)據(jù)流方法以信息在處理時(shí)刻的流向?yàn)榛A(chǔ),設(shè)計(jì)一個(gè)具有鮮明時(shí)序特征的軟件結(jié)構(gòu),而面向數(shù)據(jù)結(jié)構(gòu)的方法以信息的構(gòu)成及其在處理時(shí)刻的相互關(guān)系為基礎(chǔ),設(shè)計(jì)一個(gè)具有鮮明層次特征的軟件結(jié)構(gòu)及其處理細(xì)節(jié)。
●設(shè)計(jì)的最終目標(biāo)不同前者以初步設(shè)計(jì)為目標(biāo),產(chǎn)生軟件的模塊結(jié)構(gòu),后者以詳細(xì)設(shè)計(jì)為目標(biāo),產(chǎn)生軟件的過(guò)程描述,模塊結(jié)構(gòu)僅僅是副產(chǎn)品。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
●設(shè)計(jì)步驟不同①評(píng)價(jià)數(shù)據(jù)結(jié)構(gòu)的特性(對(duì)軟件規(guī)格說(shuō)明中描述的信息結(jié)構(gòu)進(jìn)行復(fù)審)②將數(shù)據(jù)結(jié)構(gòu)表示成初等形式(順序、選擇、循環(huán))③把數(shù)據(jù)結(jié)構(gòu)的初等表示映射到軟件的控制層次④細(xì)化⑤開發(fā)軟件的過(guò)程性描述(即完成軟件的詳細(xì)設(shè)計(jì))編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
Jackson方法學(xué)基本思想:把一個(gè)問(wèn)題分解成可以由三種結(jié)構(gòu)形式表示的一個(gè)層次結(jié)構(gòu)。
Jackson方法以特定的數(shù)據(jù)模型為基礎(chǔ),但是,并不意味著必須描述數(shù)據(jù)結(jié)構(gòu)的物理特性(如數(shù)據(jù)類型、存儲(chǔ)長(zhǎng)度等)。而是指觀察問(wèn)題的角度,是描述數(shù)據(jù)結(jié)構(gòu)的邏輯特性,指建立面向問(wèn)題的數(shù)據(jù)結(jié)構(gòu)。
首先,建立面向問(wèn)題的、由三種結(jié)構(gòu)形式表示的層次數(shù)據(jù)結(jié)構(gòu),然后映射為軟件結(jié)構(gòu),同時(shí)給出“偽碼”表示。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程基本圖形(樹型)表示技術(shù):順序:數(shù)據(jù)結(jié)構(gòu)A由B、C、D所組成,每個(gè)成分僅出現(xiàn)一次。ACBD編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程選?。簲?shù)據(jù)結(jié)構(gòu)A由B或C組成,且僅出現(xiàn)一次。ABC編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程選取型的推廣ACBD編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程重復(fù):
A由多個(gè)B所組成(并不給定重復(fù)次數(shù))。利用這三種基本表示,可以構(gòu)造任意復(fù)雜的分層次樹型數(shù)據(jù)結(jié)構(gòu)。樹中的每個(gè)“樹葉”都可以用一棵子樹代替。AB*編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程【例】大學(xué)大學(xué)政黨部組織宣傳統(tǒng)戰(zhàn)宣傳教學(xué)機(jī)關(guān)部財(cái)務(wù)科研院數(shù)學(xué)物理統(tǒng)戰(zhàn)統(tǒng)戰(zhàn)院***編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程【例】列車:車頭、行李車、郵政車、餐車各一個(gè),硬座、硬臥、軟座、軟臥車廂若干。列車車頭車體服務(wù)車廂旅客車廂郵政行李餐車臥座軟硬軟硬**編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
程序結(jié)構(gòu)基本圖形表示法:ABCABC順序:選?。壕庉媝pt第三章軟件設(shè)計(jì)的概念和過(guò)程ABABCB1B2*重復(fù):回朔:quit編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
如果在一個(gè)需要作出選取判定的點(diǎn)上無(wú)法根據(jù)現(xiàn)有掌握的信息對(duì)判定條件進(jìn)行測(cè)定,只能任擇其中的一個(gè)分支開始執(zhí)行。在隨后的執(zhí)行過(guò)程中逐步獲得足夠的信息,對(duì)先前的選擇進(jìn)行事后評(píng)價(jià)以確定其是否正確。如發(fā)現(xiàn)當(dāng)初假設(shè)的判定選擇有誤時(shí),要返回到原判定點(diǎn)并轉(zhuǎn)向其它的分支,這種現(xiàn)象稱為回朔?!纠堪送鹾髥?wèn)題:如何在一個(gè)8╳8的棋盤上放置8個(gè)王后,使它們不能自相殘殺。(兩個(gè)王后既不能在同一行上,也不能在同一列上)編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
偽碼:偽碼(pseudocode)是一種混雜的語(yǔ)言,它使用一種語(yǔ)言(通常是自然語(yǔ)言)的詞匯和另一種語(yǔ)言(例如程序設(shè)計(jì)語(yǔ)言)的語(yǔ)法。前者用來(lái)描述處理的操作(因?yàn)槠潇`活、表達(dá)能力強(qiáng)),后者用來(lái)克化控制的結(jié)構(gòu)(因?yàn)槠鋰?yán)格、沒(méi)有或較少有歧義)因此,通常用偽碼來(lái)描述程序的處理過(guò)程,用來(lái)書寫詳細(xì)設(shè)計(jì)的文檔。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
四種程序結(jié)構(gòu)的偽碼表示:順序
AseqAseq
處理B;處理B;
處理C;處理C;
Aend;推廣處理D;
處理E;
Aend;ABC編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
四種基本程序結(jié)構(gòu)的偽碼表示:選取
Aselect(條件)Aselect(條件1)
處理B;處理B;Aor
推廣
Aor(條件2)
處理C;處理C;Aend;Aor(條件3)
處理D;Aend;ABC編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
重復(fù)
Aiter
until(條件)
處理B;Aend;AB*編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
回朔
Aposit(條件1)
Bseq
quitAif(條件2)
處理B1;
quitAif(條件3)
處理B2;Bend;Aadmit
處理C;quitAend;由此可見(jiàn):條件2V條件3┑條件1ABCB1B2編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
Jackson方法的設(shè)計(jì)步驟:
●復(fù)審,檢查數(shù)據(jù)結(jié)構(gòu)的合理性
●用三種基本的圖形形式表示數(shù)據(jù)結(jié)構(gòu)
●找出輸入、輸出數(shù)據(jù)結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)系(在找不到對(duì)應(yīng)關(guān)系的時(shí)候,要引入中間數(shù)據(jù)結(jié)構(gòu),形成一串對(duì)應(yīng)關(guān)系鏈)
●根據(jù)數(shù)據(jù)結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)系,得到程序的結(jié)構(gòu)●對(duì)得到的程序結(jié)構(gòu)求精(考慮回朔問(wèn)題、列出操作和判定條件等)●
偽碼表示編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程【例】處理卡片問(wèn)題:一張卡片上有三個(gè)域F1、F2、F3,若F1在[1,99]內(nèi),則從文件中取出兩個(gè)數(shù)a,b(假定a<b)和一個(gè)三元組(x,y,z),若a≤F2≤b,則用(F2×x,F(xiàn)2×y,F(xiàn)2×z)作為磁盤地址從磁盤上取出一個(gè)字符串s,若F3是s的一個(gè)子串,則打印F3。第一步:數(shù)據(jù)結(jié)構(gòu)的合理性無(wú)容置疑第二步:畫出基本圖形編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程基本圖形:第三步:輸出結(jié)構(gòu)為一個(gè)字符串,基本上可以忽略,輸入、輸出數(shù)據(jù)結(jié)構(gòu)無(wú)結(jié)構(gòu)沖突。第四步:根據(jù)輸入數(shù)據(jù)結(jié)構(gòu)導(dǎo)出程序結(jié)構(gòu)卡片F(xiàn)1F2F3編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程處理卡片此處,P1:處理F1,得到a,b和(x,y,z);
P2:處理F2,以(F2×x,F(xiàn)2×y,F(xiàn)2×z)為地址得到串s;
P3:處理F3
,打印。P1P2P3編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程第四步:求精??紤]卡片可能不符合規(guī)定的處理要求,無(wú)法最終打印F3。因此:處理卡片處理好卡片出錯(cuò)處理P1P2P3編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程用回朔結(jié)構(gòu)代替處理卡片處理好卡片出錯(cuò)處理PPPquit編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程第五步:偽碼表示。處理卡片posit
(卡片正確)處理好卡片seq
quit
處理卡片if(F1<1orF1>99)
P1;
quit
處理卡片if(F2<aorF2>b)
P2;
quit
處理卡片if(F3不是s的子串)
P3;處理好卡片end;處理卡片admit
出錯(cuò)處理(打印出錯(cuò)信息);處理卡片end;編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程【例】信用卡記帳系統(tǒng)支付文件顧客文件顧客號(hào)日期交易額顧客號(hào)結(jié)余額╳╳╳╳╳╳╳╳╳╳╳╳╳╳╳編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程記賬報(bào)告:顧客號(hào)日期交易額老結(jié)余新結(jié)余╳╳╳╳╳╳編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程支付文件顧客號(hào)組交易記錄顧客號(hào)支付記錄日期交易額**基本圖形表示支付文件:編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程顧客文件顧客記錄顧客號(hào)結(jié)余額顧客文件:*編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程記帳報(bào)告顧客數(shù)據(jù)店主數(shù)據(jù)顧客號(hào)組顧客號(hào)支付記錄支付小計(jì)結(jié)余小計(jì)日期交易額老結(jié)余新結(jié)余銷售總額總結(jié)余記賬報(bào)告:**編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程分析:系統(tǒng)有兩個(gè)輸入數(shù)據(jù)結(jié)構(gòu):支付文件、顧客文件;兩個(gè)輸出數(shù)據(jù)結(jié)構(gòu):記帳報(bào)告和顧客文件??梢钥闯?,記帳報(bào)告的內(nèi)容涵蓋了支付文件和顧客文件的全部?jī)?nèi)容,而且,在內(nèi)容的組織方式上亦基本上一致。結(jié)論:可以以記帳報(bào)告的結(jié)構(gòu)為主要參考點(diǎn)構(gòu)造程序結(jié)構(gòu)。同時(shí),在處理的過(guò)程中考慮顧客文件的生成、更新。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程記帳系統(tǒng)處理顧客數(shù)據(jù)處理店主數(shù)據(jù)處理顧客號(hào)組處理顧客號(hào)處理支付記錄計(jì)算支付小計(jì)計(jì)算結(jié)余處理老結(jié)余計(jì)算新結(jié)余計(jì)算銷售總額計(jì)算總結(jié)余程序結(jié)構(gòu):*編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程偽碼表示
記帳系統(tǒng)seq
處理顧客數(shù)據(jù)seq
打開支付文件、顧客文件;處理顧客號(hào)組iter
until
(支付文件結(jié)束)讀支付文件;處理顧客號(hào)(讀顧客文件、記下老結(jié)余);處理支付記錄iter
until(顧客號(hào)組結(jié)束)讀支付文件;累計(jì)支付額;登記報(bào)告行;
編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
處理支付記錄end;打開支付小計(jì);計(jì)算結(jié)余seq
處理老結(jié)余{照抄};計(jì)算新結(jié)余{老結(jié)余-支付小計(jì)};登記顧客報(bào)告行;計(jì)算結(jié)余end;處理顧客號(hào)組end;處理顧客數(shù)據(jù)end;處理店主數(shù)據(jù)seq
計(jì)算銷售總額{支付小計(jì)之和};編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
計(jì)算總結(jié)余{老結(jié)余之和-銷售總額);處理店主數(shù)據(jù)end;記帳系統(tǒng)end;編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程Jackson方法的一些補(bǔ)充技術(shù):●回朔回朔是經(jīng)常出現(xiàn)的,特別是采用試探算法時(shí)。
●結(jié)構(gòu)沖突當(dāng)輸入數(shù)據(jù)結(jié)構(gòu)與輸出數(shù)據(jù)結(jié)構(gòu)沒(méi)有明顯的對(duì)應(yīng)關(guān)系時(shí),謂之產(chǎn)生“結(jié)構(gòu)沖突”。這時(shí),無(wú)法建立這兩種數(shù)據(jù)結(jié)構(gòu)的對(duì)應(yīng),因而不能顯式地導(dǎo)出程序結(jié)構(gòu)?!纠烤幾g程序:輸入的是字符流,輸出的是二進(jìn)制代碼流。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程解決辦法:引入中間數(shù)據(jù)結(jié)構(gòu),從而使輸入、輸出數(shù)據(jù)結(jié)構(gòu)通過(guò)若干中間數(shù)據(jù)結(jié)構(gòu)的過(guò)渡建立對(duì)應(yīng)關(guān)系。實(shí)際上,這種方法就是將全系統(tǒng)劃分成若干個(gè)部分(分系統(tǒng)),對(duì)每個(gè)分系統(tǒng)生成程序結(jié)構(gòu)。再在分系統(tǒng)內(nèi)分解為若干個(gè)模塊,形成層次。大致上,結(jié)構(gòu)沖突可以分為兩類:次序沖突和邊界沖突。①次序沖突【例】矩陣轉(zhuǎn)換:矩陣按行輸入,按列輸出。每行一個(gè)數(shù)組。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程輸入結(jié)構(gòu)輸出結(jié)構(gòu)第一級(jí):無(wú)對(duì)應(yīng)關(guān)系,每一個(gè)列輸出不能由每一個(gè)行輸入得出。行、列的個(gè)數(shù)也可以不同。輸入矩陣輸出矩陣列元素元素行****編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程第二級(jí):無(wú)對(duì)應(yīng)關(guān)系,元素個(gè)數(shù)盡管相同,但次序不同。解決辦法:將整個(gè)程序分成三個(gè)部分。行輸入P1按行排列元素P2按列排列元素P3列輸出編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程P1:按行輸入,每個(gè)行數(shù)組的元素根據(jù)輸入行序號(hào)和行內(nèi)元素輸入序號(hào)標(biāo)注行、列號(hào),存入磁盤;P2;重新排序,讀磁盤,將先行后列存儲(chǔ)元素的文件轉(zhuǎn)化為先列后行存儲(chǔ)元素的文件,存入磁盤;P3;讀磁盤,按列輸出。若內(nèi)存空間足夠大,也可以將程序分為兩個(gè)部分,即一切都在內(nèi)存中進(jìn)行:按行輸入并作標(biāo)記;轉(zhuǎn)換成列并輸出。②邊界沖突【例】報(bào)文分析:編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
顯然,報(bào)文和信包不同步,輸入數(shù)據(jù)(信包)和輸出數(shù)據(jù)存在邊界沖突。第一級(jí):信包組,無(wú)對(duì)應(yīng)關(guān)系;第二級(jí):信包,無(wú)對(duì)應(yīng)關(guān)系。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
一組報(bào)文,存放在一組信包上,每次只讀入一個(gè)信包。每個(gè)信包內(nèi)有若干個(gè)詞,用空格分開,信包的終結(jié)符為EOB。最后一個(gè)信包的內(nèi)容為EOF,表示本組報(bào)文結(jié)束。每個(gè)報(bào)文的結(jié)尾詞用2222表示,EOF前的一個(gè)信包內(nèi)容只含2222。每個(gè)信包可以有若干個(gè)報(bào)文,一個(gè)報(bào)文可以占若干個(gè)信包。打印報(bào)文分析報(bào)告報(bào)文1:共×××個(gè)詞,其中××個(gè)詞多于12個(gè)字符。報(bào)文n:共×××個(gè)詞,其中××個(gè)詞多于12個(gè)字符。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程信包組信包EOF報(bào)文包EOB報(bào)文內(nèi)容字符組空格組詞空格字符字符組****分析:輸入數(shù)據(jù)結(jié)構(gòu)編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程分析報(bào)告報(bào)告體標(biāo)題結(jié)束報(bào)文報(bào)告總詞數(shù)超長(zhǎng)詞數(shù)*輸出數(shù)據(jù)結(jié)構(gòu):編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
由于報(bào)文和信包不同步,邊界混淆,形成邊界沖突。為此,引入兩個(gè)中間數(shù)據(jù)結(jié)構(gòu)。(1)詞組(2)報(bào)文組詞組詞報(bào)文組報(bào)文詞2222正常詞超長(zhǎng)詞***編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
通過(guò)引入兩個(gè)中間數(shù)據(jù)結(jié)構(gòu),重新設(shè)計(jì)的信包組的分析過(guò)程為:信包組P1詞組P2報(bào)文組P3分析報(bào)告編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程P1:讀入信包組,去掉空格、EOF、EOB,按詞先后排列,形成詞組;
P2:按2222的分割組織報(bào)文,去掉2222,形成報(bào)文組;
P3:按報(bào)文統(tǒng)計(jì)正常詞的數(shù)量和超長(zhǎng)詞的數(shù)量并形成分析報(bào)告,打印輸出。注:顯然,我們可以再進(jìn)行求精。例如,可以將三個(gè)模塊合成兩個(gè)(中間數(shù)據(jù)結(jié)構(gòu)只有一個(gè)):
P1:讀入信包組,去掉空格、EOB、EOF,按詞排列并標(biāo)記超長(zhǎng)詞;
P2:按報(bào)文計(jì)數(shù),去掉2222,形成分析報(bào)告。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程在單用戶、單任務(wù)系統(tǒng)中,P1、P2不能同時(shí)執(zhí)行,這樣會(huì)使運(yùn)行效率降低(從文件上讀出信包時(shí)需要等待)。采用多道程序設(shè)計(jì)技術(shù),將P1、P2設(shè)計(jì)成兩個(gè)進(jìn)程(或線程),P1讀完一個(gè)信包后就交給P2,這樣就可以邊讀、邊分析、邊打印,同時(shí)無(wú)需存儲(chǔ)整個(gè)中間文件。同樣,還可以采用程序變換的手法,將P1變成P2的子程序P’1,P2每調(diào)用一次P’1,就可以得到一個(gè)詞,然后處理。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程【作業(yè)】
在上例中,按求精后的情況:給出中間數(shù)據(jù)結(jié)構(gòu)的基本圖形表示;給出P1、P2程序結(jié)構(gòu)的基本圖形表示;給出P1、P2的偽碼表示;給出整個(gè)處理程序的偽碼表示。【思考題】
按程序變換的方法,給出P2、P’1的偽碼表示。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
LCP方法
LCP方法是根據(jù)理論的推導(dǎo),從數(shù)據(jù)結(jié)構(gòu)的表示出發(fā),作出過(guò)程的形式化描述,最后用系統(tǒng)的方法生成偽碼,并加以驗(yàn)證和優(yōu)化。
LCP方法給出了一組“規(guī)則”,這組規(guī)則將支配信息的結(jié)構(gòu)以及得到的程序結(jié)構(gòu)。這樣,LCP方法既比較嚴(yán)格,又便于驗(yàn)證?!馱arnier圖
Warnier圖既描繪了數(shù)據(jù)結(jié)構(gòu)的層次,又描繪了重復(fù)數(shù)據(jù)的次數(shù)。編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
數(shù)據(jù)項(xiàng)A(1次)數(shù)據(jù)記錄1數(shù)據(jù)項(xiàng)B(1次)
(4次)數(shù)據(jù)項(xiàng)C(1次)數(shù)據(jù)項(xiàng)F(1次)數(shù)據(jù)文件數(shù)據(jù)記錄2
(0或1次)數(shù)據(jù)項(xiàng)C(0或1次)
數(shù)據(jù)項(xiàng)D元素I(m次)數(shù)據(jù)記錄3(0或n次)
(n次)數(shù)據(jù)項(xiàng)E(1次)編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程●步驟①?gòu)?fù)審軟件規(guī)格說(shuō)明及數(shù)據(jù)結(jié)構(gòu)的Warnier圖。②用Warnier圖表示軟件處理的層次,根據(jù)輸入數(shù)據(jù)結(jié)構(gòu)導(dǎo)出軟件處理層次圖。③根據(jù)Warnier圖,畫出程序處理流程圖。④列出指令索引表(進(jìn)行詳細(xì)設(shè)計(jì),分配指令操作)編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
程序開始開始(1次)開始(1次)(1次)處理數(shù)據(jù)記錄1處理A、B、C(1次)(1次)結(jié)束(1次)開始(1次)處理F(1次)程序處理數(shù)據(jù)文件處理數(shù)據(jù)記錄2處理G(1次)(1次)處理G
結(jié)束(1次)處理數(shù)據(jù)記錄2
程序結(jié)束(1次)編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
開始(1次)開始(1次)處理D(n次)處理i((m次)處理數(shù)據(jù)記錄3處理D結(jié)束(1次)(n次)處理E(1次)結(jié)束(1次)編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程開始處理數(shù)據(jù)文件處理記錄1處理A、B、C<4次記錄2處理記錄2處理FG處理G處理記錄3D處理D處理項(xiàng)I<m次<n次處理E<n次結(jié)束編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程【例】顧客記帳報(bào)告輸入數(shù)據(jù)結(jié)構(gòu)活動(dòng)記錄顧客號(hào)活動(dòng)號(hào)數(shù)量特征碼顧客號(hào)名字活動(dòng)號(hào)借額貸額╳╳╳╳╳╳【例】顧客記帳報(bào)告輸入數(shù)據(jù)結(jié)構(gòu)顧客號(hào)名字老余額顧客頭記錄編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程輸入文件(0或1次)顧客(n次)顧客號(hào)(1次)名字(1次)
老余額(1次)活動(dòng)組(0或1次)
活動(dòng)(m次)顧客號(hào)(1次)活動(dòng)號(hào)(1次)數(shù)量(1次)特征碼(1次)第一層第二層第三層第四層第五層信息結(jié)構(gòu)編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程
顧客號(hào)
(1次)活動(dòng)號(hào)(1次)名字活動(dòng)行借額(0或1次)
(1次)(m次)貸額(0或1次)輸出報(bào)告顧客活動(dòng)組借小計(jì)
(0或1次)(1次)老余額貸小計(jì)
(1次)(1次)新余額
(1次)編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程處理層次:開始開始開始(1次)開始(1次)(1次)處理借(1次)開始處理活動(dòng)組處理活動(dòng)(0或1次)(1次)(1次)(m次)處理貸程序處理顧客處理活動(dòng)組結(jié)束(0或1次)(0或1次)(n次)結(jié)束(1次)結(jié)束結(jié)束(1次)(1次)結(jié)束(1次)(1次)編輯ppt第三章軟件設(shè)計(jì)的概念和過(guò)程流程圖:
010080090
020030100
040110120050060070
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)老院入住退住規(guī)定制度
- 企業(yè)內(nèi)部審計(jì)與合規(guī)制度
- 2026福建三明市清流縣應(yīng)急管理局招聘縣森林消防大隊(duì)勞務(wù)派遣人員1人參考題庫(kù)附答案
- 2026福建泉州市面向哈爾濱工業(yè)大學(xué)選優(yōu)生選拔引進(jìn)40人考試備考題庫(kù)附答案
- 會(huì)議代表權(quán)益保障制度
- 公共交通運(yùn)營(yíng)成本控制制度
- 八級(jí)工人制度
- 北京中國(guó)石油大學(xué)教育基金會(huì)招聘2人考試備考題庫(kù)附答案
- 成都東部新區(qū)2025年面向全國(guó)公開選調(diào)事業(yè)單位工作人員(40人)備考題庫(kù)附答案
- 新余市2025年市直單位公開遴選公務(wù)員考試備考題庫(kù)附答案
- 嗜酸性粒細(xì)胞與哮喘發(fā)病關(guān)系的研究進(jìn)展
- 傳染病學(xué)-病毒性肝炎
- 《陸上風(fēng)電場(chǎng)工程可行性研究報(bào)告編制規(guī)程》(NB/T 31105-2016)
- 京瓷哲學(xué)手冊(cè)樣本
- 五年級(jí)簡(jiǎn)便計(jì)算100題
- 三年級(jí)作文寫小狗海灘冬天童話故事
- (康德卷)重慶市2024屆高三一診物理試卷(含答案)
- 重慶市沙坪壩小學(xué)小學(xué)語(yǔ)文五年級(jí)上冊(cè)期末試卷
- 龍虎山正一日誦早晚課
- 《國(guó)際學(xué)術(shù)論文寫作與發(fā)表》學(xué)習(xí)通超星課后章節(jié)答案期末考試題庫(kù)2023年
- 中考滿分(合集15篇)
評(píng)論
0/150
提交評(píng)論