結構化程式設計

結構化程式設計

結構化程式設計(structured programming)是進行以模組功能和處理過程設計為主的詳細設計的基本原則。結構化程式設計是過程式程式設計的一個子集,它對寫入的程式使用邏輯結構,使得理解和修改更有效更容易。

基本介紹

  • 中文名:結構化程式設計
  • 外文名:structured programming
  • 提出人:E.W.Dijikstra
  • 時間:1965年
概述,原則,基本結構,順序結構,選擇結構,循環結構,設計方法,自頂向下,逐步細化,模組化,結構化編碼,存在問題,優缺點,特點,優點,缺點,

概述

“面向結構”的程式設計方法即結構化程式設計方法, 是“面向過程”方法的改進, 結構上將軟體系統劃分為若干功能模組, 各模組按要求單獨編程, 再由各模組連線, 組合構成相應的軟體系統。 該方法強調程式的結構性, 所以容易做到易讀, 易懂。 該方法思路清晰, 做法規範, 深受設計者青睞。
結構化程式設計(STRUCTURED PROGRAMING,簡稱SP)思想是最早由E.W.Dijikstra在1965年提出的,結構化程式設計思想確實使程式執行效率提高。程式的出錯率和維護費用大大減少結構程式設計就是一種進行程式設計的原則和方法,按照這種原則和方法可設計出結構清晰、容易理解、容易修改、容易驗證的程式結構化程式設計的目標在於使程式具有一個合理結構,以保證和驗證程式的正確性,從而開發出正確、合理的程式。

原則

電腦程式設計語言有許多種,那些語言具有結構化程式語言特點呢?主要看用此語言進行的程式設計是否滿足下面的原則。
1、使用語言中的順序、選擇、重複等有限的基本控制結構表示程式邏輯。
2、選用的控制結構中只準許有一個入口和一個出口。
3、程式語句組成容易識別的塊,每塊只有一個入口和一個出口。
4、複雜結構應該用基本控制結構進行組合嵌套來實現。
5、語言中沒有的控制結構,可用一段等價的程式段實現,但要求該段程式在整個系統中應前後一致。
按照上面的原則進行的程式設計就稱為結構化的程式設計。

基本結構

結構化程式設計的三種基本結構是:順序結構選擇結構循環結構

順序結構

順序結構表示程式中的各操作是按照它們出現的先後順序執行的。

選擇結構

選擇結構表示程式的處理步驟出現了分支,它需要根據某一特定的條件選擇其中的一個分支執行。選擇結構有單選擇、雙選擇和多選擇三種形式。

循環結構

循環結構表示程式反覆執行某個或某些操作,直到某條件為假(或為真)時才可終止循環。在循環結構中最主要的是:什麼情況下執行循環?哪些操作需要循環執行?循環結構的基本形式有兩種:當型循環和直到型循環。
當型循環:表示先判斷條件,當滿足給定的條件時執行循環體,並且在循環終端處流程自動返回到循環入口;如果條件不滿足,則退出循環體直接到達流程出口處。因為是"當條件滿足時執行循環",即先判斷後執行,所以稱為當型循環。
直到型循環:表示從結構入口處直接執行循環體,在循環終端處判斷條件,如果條件不滿足,返回入口處繼續執行循環體,直到條件為真時再退出循環到達流程出口處,是先執行後判斷。因為是"直到條件為真時為止",所以稱為直到型循環。

設計方法

自頂向下

程式設計時,應先考慮總體,後考慮細節;先考慮全局目標,後考慮局部目標。不要一開始就過多追求眾多的細節,先從最上層總目標開始設計,逐步使問題具體化。

逐步細化

對複雜問題,應設計一些子目標作為過渡,逐步細化。

模組化

一個複雜問題,肯定是由若干稍簡單的問題構成。模組化是把程式要解決的總目標分解為子目標,再進一步分解為具體的小目標,把每一個小目標稱為一個模組。
結構化程式設計結構化程式設計
限制使用goto語句 結構化程式設計方法的起源來自對GOTO語句的認識和爭論。肯定的結論是,在塊和進程的非正常出口處往往需要用GOTO語句,使用GOTO語句會使程式執行效率較高;在合成程式目標時,GOTO語句往往是有用的,如返回語句用GOTO。否定的結論是,GOTO語句是有害的,是造成程式混亂的禍根,程式的質量與GOTO語句的數量呈反比,應該在所有高級程式設計語言中取消GOTO語句。取消GOTO語句後,程式易於理解、易於排錯、容易維護,容易進行正確性證明。作為爭論的結論,1974年Knuth發表了令人信服的總結,並證實了:
(1)GOTO語句確實有害,應當儘量避免;
(2)完全避免使用GOTO語句也並非是個明智的方法,有些地方使用GOTO語句,會使程式流程更清楚、效率更高;
(3)爭論的焦點不應該放在是否取消GOTO語句上,而應該放在用什麼樣的程式結構上。其中最關鍵的是,應在以提高程式清晰性為目標的結構化方法中限制使用GOTO語句。

結構化編碼

所謂編碼就是把已經設計好的算法用計算機語言表示,即根據已經細化的算法正確寫出電腦程式。結構化的語言(如 Pascal,C,QBASIC等)都有與三種基本結構對應的語句。

存在問題

1、軟體的重用性差
重用性是指同一事物不經修改或稍加修改就可多次重複使用的性質。軟體重用性是軟體工程追求的目標之一。如果軟體的重用性較差那么軟體的造價就相對高。
2、軟體的可維護性差
軟體工程強調軟體的可維護性。強調文檔資料的重要性。規定最終的軟體產品應該由完整、一致的配置成分組成。在軟體開發過程中。始終強調軟體的可讀性、可修改性和可測試性是軟體的重要的質量指標。實踐證明。用傳統方法開發出來的軟體.維護時其費用和成本仍然很高.其原因是可修改性差.維護困難。導致可維護性差。
3、開發出的軟體不能真正滿足用戶需要
結構化方法開發大型軟體系統涉及各種不同領域的知識。在開發需求模糊或需求動態變化的系統時.所開發出的軟體系統往往不能真正滿足用戶的需要。

優缺點

特點

結構化程式中的任意基本結構都具有唯一入口和唯一出口,並且程式不會出現死循環。在程式的靜態形式與動態執行流程之間具有良好的對應關係。

優點

由於模組相互獨立,因此在設計其中一個模組時,不會受到其它模組的牽連,因而可將原來較為複雜的問題化簡為一系列簡單模組的設計。模組的獨立性還為擴充已有的系統、建立新系統帶來了不少的方便,因為我們可以充分利用現有的模組作積木式的擴展。
按照結構化程式設計的觀點,任何算法功能都可以通過由程式模組組成的三種基本程式結構的組合:順序結構、選擇結構和循環結構來實現。
結構化程式設計的基本思想是採用"自頂向下,逐步求精"的程式設計方法和“單入口單出口”的控制結構。自頂向下、逐步求精的程式設計方法從問題本身開始,經過逐步細化,將解決問題的步驟分解為由基本程式結構模組組成的結構化程式框圖;“單入口單出口”的思想認為一個複雜的程式,如果它僅是由順序、選擇和循環三種基本程式結構通過組合、嵌套構成,那么這個新構造的程式一定是一個單入口單出口的程式。據此就很容易編寫出結構良好、易於調試的程式來。
①整體思路清楚,目標明確。
②設計工作中階段性非常強,有利於系統開發的總體管理和控制。
③在系統分析時可以診斷出原系統中存在的問題和結構上的缺陷。

缺點

①用戶要求難以在系統分析階段準確定義,致使系統在交付使用時產生許多問題。
②用系統開發每個階段的成果來進行控制,不能適應事物變化的要求。
③系統的開發周期長。

相關詞條

熱門詞條

聯絡我們