一、過程設計概念_第1頁
一、過程設計概念_第2頁
一、過程設計概念_第3頁
一、過程設計概念_第4頁
一、過程設計概念_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

一、過程設計概念二、過程設計的工具第七節(jié)過程設計前述的程序結構僅考慮軟件總體結構中模塊之間的控制分層關系,而不關心模塊內各處理元素和判斷元素的順序,過程設計緊跟在數據結構設計和程序結構設計之后,其基本任務恰恰是描述這方面的信息,圖6-7-1展示了模塊A的內部過程。一、過程設計概念所謂過程,應包括有關處理的精確說明,諸如事件的順序,確切的判斷位置、循環(huán)操作以及數據的組成,等等?!改K圖6-7-1一個模塊內的軟件過程程序結構描述了整個程序的控制層次關系和各個部分的接口情況,而圖6-7-1所示的軟件過程則著重描述各個模塊的處理細節(jié)。程序結構與軟件過程相互關聯,程序結構中任何模塊的所有從屬模塊必將被引用出現在該模塊的過程說明中。因此,軟件過程對應的程序結構亦構成一個層次體系,見圖6-7-2。

圖6-7-2過程的層次結構軟件過程必須提供精確的處理說明,包括事件的順序、正確的判定點、重復的操作直至數據的組織和結構等等。程序結構與軟件過程是有關系的。對每個模塊的處理必須指明該模塊所在的上下級環(huán)境。軟件過程遵從程序結構的主從關系,因此它也是層次化的。從軟件開發(fā)的工程化觀點來看,在使用程序設計語言編制程序以前,需要對所采用算法的邏輯關系進行分析,設計出全部必要的過程細節(jié),并給予清晰的表達,使之成為編碼的依據。這就是過程設計的任務。過程設計也叫做詳細設計或程序設計,它不同于編碼或編程。在過程設計階段,要決定各個模塊的實現算法,并精確地表達這些算法。前者涉及所開發(fā)項目的具體要求和對每個模塊規(guī)定的功能。以及算法的設計和評價,后者需要給出適當的算法描述,為此應提供過程設計的表達工具。二、過程設計的工具表達過程規(guī)格說明的工具叫做詳細設計工具,它可以分為三類:圖形工具、表格工具和語言工具。1.程序流程圖程序流程圖獨立于任何一種程序設計語言,比較直觀、清晰,易于學習掌握。但流程圖也存在一些嚴重的缺點。例如流程圖所使用的符號不夠規(guī)范,常常使用一些習慣性用法。特別是表示程序控制流程的箭頭可以不受任何約束,隨意轉移控制。這些現象顯然是與軟件工程化的要求相背離的。為了消除這些缺點,應對流程圖所使用的符號做出嚴格的定義,不允許人們隨心所欲地畫出各種不規(guī)范的流程圖。例如,為使用流程圖描述結構化程序,必須限制流程圖只能使用圖6-7-3所給出的5種基本控制結構。圖6-7-3流程圖的基本控制結構任何復雜的程序流程圖都應由這五種基本控制結構組合或嵌套而成。作為上述5種控制結構相互組合和嵌套的實例,圖6-7-4給出一個程序的流程圖。圖中增加了一些虛線構成的框,目的是便于理解控制結構的嵌套關系。顯然,這個流程圖所描述的程序是結構化的。

圖6-7-4圖6-7-4嵌套構成的流程圖實例2.N-S圖Nassi和Shneiderman提出了一種符合結構化程序設計原則的圖形描述工具,叫做盒圖,也叫做N-S圖。為表示五種基本控制結構,在N-S圖中規(guī)定了五種圖形構件。參看圖6-7-5。<3j-WILE重豆型■4:-IWTIL重復型②選擇瑕圖6-7-5N-S<3j-WILE重豆型■4:-IWTIL重復型②選擇瑕圖6-7-5N-S圖的五種基本控制結構A=1=2=nAIA2An⑤多分■克選擇瑕型)[<)WHILEPS①J贈塑s如UNTILr為說明N-S圖的使用,仍用圖6-7-4給出的實例,將它用如圖6-7-6所示的N-S圖表示。如前所述,任何一個N-S圖,都是前面介紹的五種基本控制結構相互組合與嵌套的結果。當問題很復雜時,N-S圖可能很大。

圖6-7-6N-S圖的實例3.PADPAD是ProblemAnalysisDiagram的縮寫,它是日本日立公司提出,由程序流程圖演化來的,用結構化程序設計思想表現程序邏輯結構的圖形工具?,F在已為ISO認可。PAD也設置了5種基本控制結構的圖式,并允許遞歸使用。圖6-7-7PAD的基本控制結構做為PAD應用的實例,圖6-7-8給出了圖6-7-4程序的PAD表示。PAD所描述程序的層次關系表現在縱線上。每條縱線表示了一個層次。把PAD圖從左到右展開。隨著程序層次的增加,PAD逐漸向右展開。PAD的執(zhí)行順序從最左主干線的上端的結點開始,自上而下依次執(zhí)行。每遇到判斷或循環(huán),就自左而右進入下一層,從表示下一層的縱線上端開始執(zhí)行,直到該縱線下端,再返回上一層的縱線的轉入處。如此繼續(xù),直到執(zhí)行到主干線的下端為止。

圖6-7-8PAD圖6-7-8PAD實例4.判定表當算法中包含多重嵌套的條件選擇時,用程序流程圖、N-S圖或PAD都不易清楚地描述。然而,判定表卻能清晰地表達復雜的條件組合與應做動作之間的對應關系。仍然使用圖6-7-5的例子。為了能適應判定表條件取值只能是,?!焙汀癋”的情形,對原圖稍微做了些改動,把多分支判斷改為兩分支判斷,但整個圖邏輯沒有改變。見圖6-7-9。圖6-7-9不包含多分支結構的流程圖實例與圖6-7-9表示的流程圖對應的判定表如圖6-7-10所示。在表的右上半部分中列出所有條件,“T”表示該條件取值為真,“F”表示該條件取值為假,空白表示這個條件無論取何

值對動作的選擇不產生影響。在判定表右下半部分中列出所有的處理,畫“Y”表示要做這個動作,空白表示不做這個動作。判定表右半部的每一列實質上是一條規(guī)則,規(guī)定了與特定條件取值組合相對應的動作。圖6-7-10圖6-7-10反映程序邏輯的判定表判定表的優(yōu)點是能夠簡潔,無二義性地描述所有的處理規(guī)則。但判定表表示的是靜態(tài)邏輯,是在某種條件取值組合情況下可能的結果,它不能表達加工的順序,也不能表達循環(huán)結構,因此判定表不能成為一種通用的設計工具。5.PDL(ProgramDesignLanguage)PDL是一種用于描述功能模塊的算法設計和加工細節(jié)的語言。稱為設計程序用語言。它是一種偽碼。一般地,偽碼的語法規(guī)則分為外語法”和“內語法”。外語法應當符合一般程序設計語言常用語句的語法規(guī)則;而內語法可以用英語中一些簡單的句子、短語和通用的數學符號,來描述程序應執(zhí)行的功能。PDL就是這樣一種偽碼。它具有嚴格的關鍵字外語法,用于定義控制結構和數據結構,同時它的表示實際操作和條件的內語法又是靈活自由的,可使用自然語言的詞匯。下面舉一個例子,來看PDL的使用。PROCEDUREspellcheckISBEGINsplitdocumentPROCEDUREspellcheckISBEGINsplitdocumentintosinglewordsloodupwordsindictionarydisplaywordswhicharenotindictionarycreateanewdictionaryENDspellcheck從上例可以看到,PDL語言具有正文格式,很像一個高級語言。人們可以很方便地使用計算機完成PDL的書寫和編輯工作。PDL作為一種用于描述程序邏輯設計的語言,具有以下特點:?有固定的關鍵字外語法,提供全部結構化控制結構、數據說明和模塊特征。屬于外語法的關鍵字是有限的詞匯集,它們能對PDL正文進行結構分割,使之變得易于理解。為了區(qū)別關鍵字,規(guī)定關鍵字一律大寫,其它單詞一律小寫。?內語法使用自然語言來描述處理特性。內語法比較靈活,只要寫清楚就可以,不必考慮語法錯,以利于人們可把主要精力放在描述算法的邏輯上。?有數據說明機制,包括簡單的(如標量和數組)與復雜的(如鏈表和層次結構)的數據結構。?有子程序定義與調用機制,用以表達各種方式的接口說明。使用PDL語言,可以做到逐步求精:從比較概括和抽象的PDL程序起,逐步寫出更詳細的更精確的描述。6.HIPO圖(HierarchyplusInputProcessOutput)HIPO最初只用做文檔編寫的格式要求,隨后發(fā)展成比較有名的軟件設計手段。HIPO圖采用功能框圖和PDL來描述程序邏輯,它由兩部分組成:可視目錄表和IPO圖??梢暷夸洷斫o出程序的層次關系,IPO圖則為程序各部分提供具體的工作細節(jié)。(1)可視目錄表:由體系框圖、圖例、描述說明3部分組成。?體系框圖。又稱層次圖(H圖),是可視目錄表的主體,用它表明各個功能的隸屬關系。它是自頂向下逐層分解得到的,是一個樹形結構。它的頂層是整個系統的名稱和系統的概括功能說明;第二層把系統的功能展開,分成了幾個框;第二層功能進一步分解,就得到了第三層、第四層,……,直到最后一層。每個框內都應有一個名字,用以標識它的功能。還應有一個編號,以記錄它所在的層次及在該層次的位置。?圖例。每一套HIPO圖都應當有一個圖例,即圖形符號說明。附上圖例,不管人們在什么時侯閱讀它都能對其符號的意義一目了然。?描述說明。它是對層次圖中每一框的補充說明,在必須說明時才用,所以它是可選的。描述說明可以使用自然語言。例如,應用HIPO法對盤存/銷售系統進行分析。得到如圖6-7-11所示的工作流程圖。圖6-7-11圖6-7-11盤存/銷售系統工作流程圖分析此工作流程圖,可得如圖6-7-12所示的可視目錄表。圖6-7-12(a)是系統的層次圖,圖6-7-12(b)是后面IPO圖的圖例,圖6-7-12(c)是描述說明。3)層次囹數據漣控制順序3)層次囹數據漣控制順序予程序賣陣數據械人/■械出號碼I.OJIt.I.II號碼I.OJIt.I.II[-1.1L.L2IJL2.D銷首;逢再紊孕福畝「處理訂貨、唯護盤存文件,產生發(fā)貨單、包裝單,貨運單、顧客付款收裾、產生盤存與銷害報表聊客訂單檢查、桂對河[客盼幻金幫產生銷告報表用工作文件的盤存項I瑪,晴顧客訂單進行棱對和排序以地區(qū)和人員為單位,端制銷曾報表,計算銷警帽金檢驗?客蹤欠金額.計算折扣.確定支付曝目處理旗存管理顧客付款收幅處理策貨、包裝、托遠圖6-7-12盤存/銷售系統的可視目錄表IPO圖:IPO圖為層次圖中每一功能框詳細地指明輸入、處理及輸出。通常,IPO圖有固定的格式,圖中處理操作部分總是列在中間,輸入和輸出部分分別在其左邊和右邊。由于某些細節(jié)很難在一張IPO圖中表達清楚,常常把IPO圖又分為兩部分,簡單概括的稱為概要IPO圖,細致具體一些的稱為詳細IPO圖。

概要IPO圖用于表達對一個系統,或對其中某一個子系統功能的概略表達,指明在完成某一功能框規(guī)定的功能時需要哪些輸入,哪些操作和哪些輸出。圖6-7-13是表示銷售/盤存系統第二層的對應于H圖上的1.1.0框的概要IPO圖。圖6-7-13對應H圖上1.1.0框的概要IPO圖在概要IPO圖中,沒有指明輸入一處理一輸出三者之間的關系,用它來進行下一步的設計是不可能的。故需要使用詳細IPO圖以指明輸入一處理一輸出三者之間的關系,其圖形與概要IPO圖一樣,但輸入、輸出最好用具體的介質和設備類型的圖形表示。圖6-7-14是銷售/盤存系統中對應于1.1.2框的一張詳細IPO圖。圖6-7-14對應于H圖1.1.2框的詳細IPO圖利用HIPO進行迭代式細化設計。在軟件設計時,解決設計問題通常需要經歷一個認識逐步發(fā)展的過程,并且對一些問題還要經過反復的考慮才可能達到比較滿意的設計效果。我們稱此為迭代式細化設計。HIPO能很好地適應這一要求。圖6-7-15是利用HIPO進行迭代式細化設計的示意圖。從圖中可看到,把可視目錄表和IPO圖結合起來,反復交替地使用它們,可使得設計工作逐步深化

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論