![第4章結(jié)構(gòu)化設計方法_第1頁](http://file4.renrendoc.com/view/19c9104d4ad30c7ba3211645646b74b4/19c9104d4ad30c7ba3211645646b74b41.gif)
![第4章結(jié)構(gòu)化設計方法_第2頁](http://file4.renrendoc.com/view/19c9104d4ad30c7ba3211645646b74b4/19c9104d4ad30c7ba3211645646b74b42.gif)
![第4章結(jié)構(gòu)化設計方法_第3頁](http://file4.renrendoc.com/view/19c9104d4ad30c7ba3211645646b74b4/19c9104d4ad30c7ba3211645646b74b43.gif)
![第4章結(jié)構(gòu)化設計方法_第4頁](http://file4.renrendoc.com/view/19c9104d4ad30c7ba3211645646b74b4/19c9104d4ad30c7ba3211645646b74b44.gif)
![第4章結(jié)構(gòu)化設計方法_第5頁](http://file4.renrendoc.com/view/19c9104d4ad30c7ba3211645646b74b4/19c9104d4ad30c7ba3211645646b74b45.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
第4章結(jié)構(gòu)化設計方法12主要內(nèi)容軟件設計的概念及原則結(jié)構(gòu)化設計體系結(jié)構(gòu)設計接口設計數(shù)據(jù)設計過程設計軟件設計規(guī)格說明4.6
過程設計概要設計的任務完成后,就進入詳細設計階段,也就是過程設計階段。在這個階段,要決定各個模塊的實現(xiàn)算法,并使用過程描述工具精確地描述這些算法。34過程設計的基本任務為每個模塊進行詳細的算法設計用某種圖形、表格、語言等工具將每個模塊處理過程的詳細算法描述出來。為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進行設計對數(shù)據(jù)庫進行物理設計,即確定數(shù)據(jù)庫的物理結(jié)構(gòu)編寫詳細設計說明書評審(Program
Design
?
Coding)5過程描述工具表達過程規(guī)格說明的工具稱為過程描述工具,可以分以下3類:圖形工具:程序流程圖、N-S圖、PAD圖、決策樹等。表格工具:決策表。語言工具:某種類高級語言(稱為偽代碼),如很多數(shù)據(jù)結(jié)構(gòu)教材中使用類
Pascal、類C語言來描述算法。6詳細設計的目標:不僅是邏輯上正確地實現(xiàn)每個模塊的功能,還應使設計出的處理過程清晰易讀結(jié)構(gòu)化程序設計是實現(xiàn)該目標的關鍵技術之一詳細設計的目標74.6.1結(jié)構(gòu)化程序設計(SP)結(jié)構(gòu)程序設計的概念最早由E.W.Dijkstra于1965年提出是一種新的程序設計思想、方法和風格。能指導人們用良好的思想方法開發(fā)易于理解、易于驗證的程序。本質(zhì)上是一種使程序代碼容易閱讀、容易理解的編程方法。8結(jié)構(gòu)程序設計的概念如果一個程序的代碼塊僅僅通過順序、選擇和循環(huán)這三種基本控制結(jié)構(gòu)進行連接,
并且每個代碼塊只有一個入口和一個出口,則稱這個程序是結(jié)構(gòu)化的。9結(jié)構(gòu)化程序設計的主要原則使用語言中的順序、選擇、重復等有限的基本控制結(jié)構(gòu)表示程序邏輯。選用的控制結(jié)構(gòu)只準許有一個入口和一個出口。程序語句組成容易識別的塊,每塊只有一個入口和一個出口。復雜結(jié)構(gòu)應該用基本控制結(jié)構(gòu)進行組合嵌套來實現(xiàn)。10語言中沒有的控制結(jié)構(gòu),可用一段等價的程序段模擬,但要求該程序段在整個系統(tǒng)中應前后一致。嚴格控制GOTO語句,僅在下列情形才可使用:①用一個非結(jié)構(gòu)化的程序設計語言去實現(xiàn)一個結(jié)構(gòu)化的構(gòu)造。②若不使用GOTO語句就會使程序功能模糊。③在某種可以改善而不是損害程序可讀性的情況下。結(jié)構(gòu)化程序設計的主要原則11在程序設計過程中,盡量采用自頂向下
(Top-Down)、逐步細化(StepwiseRefinement)的原則,由粗到細,一步步展開。結(jié)構(gòu)化程序設計的主要原則124.6.2
程序流程圖程序流程圖也稱為程序框圖,是軟件開發(fā)者最熟悉的算法表達工具。早期的流程圖也存在一些缺點,特別是表示程序控制流程的箭頭,使用的靈活性極大,程序員可以不受任何約束,隨意轉(zhuǎn)移控制,不符合結(jié)構(gòu)化程序設計的思想。為使用流程圖描述結(jié)構(gòu)化程序,必須對流程圖加以限制。13程序流程圖的基本控制結(jié)構(gòu)順序型:幾個連續(xù)的加工步驟依次排列構(gòu)成。選擇型:由某個邏輯判斷式的取值決定選擇兩個加工中的一個。先判定(while)型循環(huán):在循環(huán)控制條件成立時,重復執(zhí)行特定的加工。后判定(until)型循環(huán):重復執(zhí)行某些特定的加工,直至控制條件成立。多情況(case)型選擇:列舉多種加工情況,根據(jù)控制變量的取值,選擇執(zhí)行其一。程序流程圖的基本控制結(jié)構(gòu)14程序流程圖實例15程序流程圖的標準符號(國家標準)16循環(huán)符號和注解符17多選擇判斷判斷有一個入口,當有多條可選的執(zhí)行路徑時,所有的執(zhí)行路徑都要歸到一個出口。1819優(yōu)點:直觀、清晰,容易掌握,歷史“悠久”,使用廣泛?!?/p>
缺點:本質(zhì)上不具備逐步求精的特點,對于提高大型系統(tǒng)的可理解性作用甚微;不易表示數(shù)據(jù)結(jié)構(gòu);轉(zhuǎn)移控制太方便。程序流程圖的特點204.6.3 N-S圖1973年,Nassi和Shneiderman提出了一種符合結(jié)構(gòu)化程序設計原則的圖形描述工具,叫做盒圖(box-diagram),也叫做N-S圖。在N-S圖中,為了表示5種基本控制結(jié)構(gòu),規(guī)定了
5種圖形構(gòu)件。N-S圖的基本控制結(jié)構(gòu)21N-S圖的實例2223N-S圖的特點(1)圖中每個矩形框(除CASE構(gòu)造中表示條件取值的矩形框外)都是明確定義了的功能域(即一個特定控制結(jié)構(gòu)的作用域),以圖形表示,清晰可見。(2)它的控制轉(zhuǎn)移不能任意規(guī)定,必須遵守結(jié)構(gòu)化程序設計的要求。(3)很容易確定局部數(shù)據(jù)和(或)全局數(shù)據(jù)的作用域。(4)很容易表現(xiàn)嵌套關系,也可以表示模塊的層次結(jié)構(gòu)。N-S圖的擴展表示24254.6.4 PAD圖PAD(problemanalysisdiagram)是日本日立公司提出,由程序流程圖演化來的,用結(jié)構(gòu)化程序設計思想表現(xiàn)程序邏輯結(jié)構(gòu)的圖形工具。PAD也設置了5種基本控制結(jié)構(gòu)的圖式,并允許遞歸使用。PAD圖的基本控制結(jié)構(gòu)26PAD圖的實例27PAD的擴充控制結(jié)構(gòu)2829PAD的優(yōu)點使用PAD符號所設計出來的程序必然是結(jié)構(gòu)化程序。PAD圖描繪程序結(jié)構(gòu)清晰,圖中豎線的總條數(shù)就是程序的層次數(shù)。用PAD圖表現(xiàn)程序邏輯易讀、易懂、易記。容易將PAD圖自動轉(zhuǎn)換為高級語言源程序。PAD圖既可以表示程序邏輯,也可用于描繪數(shù)據(jù)結(jié)構(gòu)。PAD圖的符號支持自頂向下、逐步求精方法的使用。304.6.5
偽代碼偽代碼是一種介于自然語言和形式化語言之間的半形式化語言,是一種用于描述功能模塊的算法設計和加工細節(jié)的語言,也稱為程序設計語言(Program
Design
Language,PDL)。偽碼的語法規(guī)則分為“外語法”和“內(nèi)語法”。外語法應當符合一般程序設計語言常用語句的語法規(guī)則;內(nèi)語法可以用英語中一些簡單的句子、短語和通用的數(shù)學符號來描述程序應執(zhí)行的功能。31偽代碼的基本控制結(jié)構(gòu)簡單陳述句結(jié)構(gòu):避免復合語句。判定結(jié)構(gòu):
IF_THEN_ELSE結(jié)構(gòu)
CASE_OF結(jié)構(gòu)重復結(jié)構(gòu):
WHILE_DO結(jié)構(gòu)
REPEAT_UNTIL結(jié)構(gòu)偽代碼實例:“檢查訂貨單”3233偽代碼的特點有固定的關鍵字外語法,提供全部結(jié)構(gòu)化控制結(jié)
構(gòu)、數(shù)據(jù)說明和模塊特征。外語法的關鍵字是有
限的詞匯集,它們能對偽代碼正文進行結(jié)構(gòu)分割,使之變得易于理解。內(nèi)語法使用自然語言來描述處理特性,為開發(fā)者提供方便,提高可讀性。有數(shù)據(jù)說明機制,包括簡單的(如標量和數(shù)組)與復雜的(如鏈表和層次結(jié)構(gòu))的數(shù)據(jù)結(jié)構(gòu)。有子程序定義與調(diào)用機制,用以表達各種方式的接口說明。344.6.6自頂向下、逐步細化自頂向下、逐步細化的設計過程主要包括兩個方面:一是將復雜問題的解法分解和細化成由若干個模塊組成的層次結(jié)構(gòu)---模塊化;二是將每個模塊的功能逐步分解細化為一系列的處理。逐步細化的含義:P10035自頂向下、逐步細化的設計過程在概要設計階段,我們已經(jīng)采用自頂向下、逐步細化的方法,把復雜問題的解法分解
和細化成了由許多功能模塊組成的層次結(jié)
構(gòu)的軟件系統(tǒng)。在詳細設計和編碼階段,我們還應當采取自頂向下、逐步求精的方法,把模塊的功能逐步分解,細化為一系列具體的步驟,進而翻譯成一系列用某種程序設計語言寫成的程序。36自頂向下、逐步細化方法舉例用篩選法求100以內(nèi)的素數(shù)。所謂的篩選法,就是從2到100中去掉2,3,5,7的倍數(shù),剩下的就是100以內(nèi)的素數(shù)。37首先按程序功能寫出一個框架main
()
{建立2到100的數(shù)組A[],其中A[i]=i;-----1建立2到10的素數(shù)表B[],存放2到10以內(nèi)的素數(shù);--2若A[i]=i是B[]中任一數(shù)的倍數(shù),則剔除A[i];--3輸出A[]中所有沒有被剔除的數(shù);-------4}38第一層細化main
()
{/*建立2到100的數(shù)組A[
],其中A[i]=i*/
-
-
1for
(i
=
2;i
<=
100;i++)A[i]
=
i;/*
建立2到10的素數(shù)表B[
],存放2到10以內(nèi)的素數(shù)*/
-
2B[1]
=2; B[2]
=
3; B[3]
=
5; B[4]
=
7;/*若A[i]=i是B[
]中任一數(shù)的倍數(shù),則剔除A[i]*/
-
-
3for
(j
=
1;
j
<=
4;
j++)檢查A[]所有的數(shù)能否被B[
j]整除并將能被整除的數(shù)從A[]中剔除;/*輸出A[
]中所有沒有被剔除的數(shù)*/
-
-
-
-
-
-
-
4for
(i
=
2;
i
<=
100;
i++)若A[i]沒有被剔除,則輸出之}39第二層細化main
()
{/*建立2到100的數(shù)組A[
],其中A[i]=i*/
-
-
1for
(i
=
2;i
<=
100;i++)A[i]
=
i;/*
建立2到10的素數(shù)表B[
],存放2到10以內(nèi)的素數(shù)*/
-
2B[1]
=2; B[2]
=
3; B[3]
=
5; B[4]
=
7;/*若A[i]=i是B[
]中任一數(shù)的倍數(shù),則剔除A[i]*/
-
-
3for
(j
=
1;
j
<=
4;
j++)/*檢查A[]所有的數(shù)能否被B[
j]整除并將能被整除的數(shù)從A[]中剔除;*/for(i=2;i<=100;i++)if(a[i]%b[
j]==0)a[i]=0;/*輸出A[]中所有沒有被剔除的數(shù)*/for
(i=2;
i<=100;
i++)/*若A[i]沒有被剔除,則輸出之*/if(a[i]!=0)cout<<a[i]<<endl;}-
-
-
-
-
-
-
440自頂向下,逐步求精方法的優(yōu)點自頂向下、逐步求精方法符合人們解決復雜問題的普遍規(guī)律??商岣哕浖_發(fā)的成功率和生產(chǎn)率。用先全局后局部,先整體后細節(jié),先抽象后具體的逐步求精的過程開發(fā)出來的程序具有清晰的層次結(jié)構(gòu),因此程序容易閱讀和理解。程序自頂向下、逐步細化,分解成樹形結(jié)構(gòu)。在同一層的結(jié)點上做細化工作,相互之間沒有關系,因此它們之間的細化工作相互獨立。在任何一步發(fā)生錯誤,一般只影響它下層的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 未來電商模式探索與展望
- 現(xiàn)代企業(yè)財務管理的倫理與責任
- 生產(chǎn)管理策略與工藝優(yōu)化技術
- 災害預防教育學校防災減災的必由之路
- 環(huán)保節(jié)能建筑的設計與實施案例分享
- 2024年重陽節(jié)活動策劃方案-11
- 現(xiàn)代物流與科技融合的商業(yè)模式
- 國慶節(jié)房地產(chǎn)促銷方案
- 2024年五年級英語上冊 Unit 6 In a nature park Part A 第三課時說課稿 人教PEP
- 2024-2025學年新教材高中語文 第二單元 5 雷雨(節(jié)選)(1)說課稿 部編版必修下冊
- 教體局校車安全管理培訓
- 湖北省十堰市城區(qū)2024-2025學年九年級上學期期末質(zhì)量檢測綜合物理試題(含答案)
- 網(wǎng)優(yōu)案例匯總
- 冶金廠、軋鋼廠工藝流程圖
- 《民航服務溝通技巧》教案第15課民航服務人員下行溝通的技巧
- 中國人婚戀狀況調(diào)查報告公布
- 早產(chǎn)兒視網(wǎng)膜病變
- GB 10665-1997碳化鈣(電石)
- 《中小學教育懲戒規(guī)則》重點內(nèi)容學習PPT課件(帶內(nèi)容)
- 板帶生產(chǎn)工藝5(熱連軋帶鋼生產(chǎn))課件
- 2022年同等學力英語考試真題及詳解
評論
0/150
提交評論