|
1. 結(jié)構(gòu)化程序設(shè)計(jì)
|
為了提高程序的可讀性、可重用性等,逐漸出現(xiàn)了將程序開發(fā)中經(jīng)常用到的相同的功能,比如數(shù)學(xué)函數(shù)運(yùn)算、字符串操作等,獨(dú)立出來編寫成函數(shù),然后按照相互關(guān)系或應(yīng)用領(lǐng)域匯集在相同的文件里,這些文件構(gòu)成了函數(shù)庫。
函數(shù)庫是一種對(duì)信息的封裝,將常用的函數(shù)封裝起來,人們不必知道如何實(shí)現(xiàn)它們。只需要了解如何調(diào)用它們即可。函數(shù)庫可以被多個(gè)應(yīng)用程序共享,在具體編程環(huán)境中,一般都有一個(gè)頭文件相伴,在這個(gè)頭文件中以標(biāo)準(zhǔn)的方式定義了庫中每個(gè)函數(shù)的接口,根據(jù)這些接口形式可以在程序中的任何地方調(diào)用所需的函數(shù)。
由于函數(shù)、庫、模塊等一系列概念和技術(shù)的出現(xiàn),程序設(shè)計(jì)逐漸變成如圖所示的風(fēng)格。程序被分解成一個(gè)個(gè)函數(shù)模塊,其中既有系統(tǒng)函數(shù),也有用戶定義的函數(shù)。通過對(duì)函數(shù)的調(diào)用,程序的運(yùn)行逐步被展開。閱讀程序時(shí),由于每一塊的功能相對(duì)獨(dú)立,因此對(duì)程序結(jié)構(gòu)的理解相對(duì)容易,在一定程度上緩解了程序代碼可讀性和可重用件的矛盾,但并未徹底解決矛盾。隨著計(jì)算機(jī)程序的規(guī)模越來越大,這個(gè)問題變得更加尖銳,于是出現(xiàn)了另一種編程風(fēng)格——結(jié)構(gòu)化程序設(shè)計(jì)。
在結(jié)構(gòu)化程序設(shè)計(jì)中,任何程序段的編寫都基于3種結(jié)構(gòu):分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和順序結(jié)構(gòu)。程序具有明顯的模塊化特征,每個(gè)程序模塊具有惟一的出口和入口語句。結(jié)構(gòu)化程序的結(jié)構(gòu)簡單清晰,模塊化強(qiáng),描述方式貼近人們習(xí)慣的推理式思維方式。因此可讀性強(qiáng),在軟件重用性、軟件維護(hù)等方面都有所進(jìn)步,在大型軟件開發(fā)尤其是大型科學(xué)與工程運(yùn)算軟件的開發(fā)中發(fā)揮了重要作用。因此到目前為止,仍有許多應(yīng)用程序的開發(fā)采用結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)和方法。即使在目前流行的面向?qū)ο筌浖_發(fā)中也不能完全脫離結(jié)構(gòu)化程序設(shè)計(jì)。
|