下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
程序設(shè)計方法學(xué)程序設(shè)計方法學(xué)程序設(shè)計方法學(xué)是指用以指導(dǎo)程序設(shè)計各階段工作的原理和原則,以及依此提出的設(shè)計技術(shù)。有時也指研究這些原理、原則和技術(shù)的學(xué)科。程序設(shè)計方法學(xué)的目標是能設(shè)計出可靠、易讀而且代價合理的程序。程序設(shè)計方法學(xué)包括程序理論、研制技術(shù)、支援環(huán)境、工程規(guī)范和自動程序設(shè)計等課題,使程序設(shè)計更加科學(xué)化和工程化。其基本內(nèi)容是:結(jié)構(gòu)程序設(shè)計;程序理論在程序設(shè)計技術(shù)中的應(yīng)用,以及規(guī)格說明和變換技術(shù)。程序理論與程序設(shè)計方法學(xué)的發(fā)展密切相關(guān),它豐富了程序人員的思維方法,促進了程序設(shè)計技術(shù)的發(fā)展。程序設(shè)計方法學(xué)也與軟件工程關(guān)系密切。方法學(xué)對軟件的研制和維護起指導(dǎo)作用。軟件工程要求程序設(shè)計規(guī)范化,建立新的原則和技術(shù)。而一種新的方法的出現(xiàn),又要求制訂出相應(yīng)的規(guī)范。方法和工具是同一問題的兩個側(cè)面。工具的研究以方法學(xué)為基礎(chǔ),而工具的研制成功又會影響程序設(shè)計。程序設(shè)計方法學(xué)還涉及程序推導(dǎo)、程序綜合、程序設(shè)計自動化研究、并發(fā)程序設(shè)計、分布式程序設(shè)計、函數(shù)式程序設(shè)計、語義學(xué)、程序邏輯、形式化規(guī)格說明和公理化系統(tǒng)等課題。一、程序設(shè)計方法學(xué)的發(fā)展過程與歷史現(xiàn)狀程序設(shè)計方法學(xué)的發(fā)展過程與軟件的發(fā)展過程以及語言的發(fā)展過程都存在密切的關(guān)系。一般情況下,軟件的發(fā)展分為三個階段:第一階段,開創(chuàng)階段。在1955——1965年,計算機軟件剛剛起步,高級語言的作用還沒有被接受,機器語言和匯編語言仍是程序員的主流編程語言。在這個階段,程序設(shè)計完全是一些專家才能完成的任務(wù),他們能使龐大的機器按照預(yù)想執(zhí)行,程序設(shè)計被看作是一門藝術(shù),還沒有上升到方法學(xué)的高度。第二階段,穩(wěn)定階段。1965——1985年,像科學(xué)計算語言FORTRAN、商務(wù)計算語言COBOL這樣的高級語言開始被人們所接受,軟件也不再是隨硬件附帶的贈品,逐漸成為一個獨立的商品,具有其自身的價值。這個時期軟件設(shè)計方法的主流是結(jié)構(gòu)化分析和設(shè)計,以結(jié)構(gòu)化分析、結(jié)構(gòu)化評審、結(jié)構(gòu)化設(shè)計以了結(jié)構(gòu)化測試為特征。隨著軟件應(yīng)用價值的挖掘,其規(guī)模和復(fù)雜性不斷增加,軟件編制的工作量加大,常常需要幾百到幾千人年。按照原有的手工方式研制軟件周期長,可靠性差、維護困難,軟件項目失敗的案例屢見不鮮,具體表現(xiàn)為軟件開發(fā)成本和進度的估計常常很不準確;用戶對“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生;軟件常常是不可維護的;軟件常常是不可管理的;軟件在計算機系統(tǒng)總成本中所占的比例逐年上升;軟件開發(fā)生產(chǎn)率提高的速度遠遠跟不上計算機應(yīng)用迅速及深入普及的速度。這個現(xiàn)象就是人們通常所說的“軟件危機”。軟件危機的出現(xiàn)引起人們對程序設(shè)計方法學(xué)的重視。在這個時期,結(jié)構(gòu)化程序設(shè)計的理論和方法成為這個時期軟件開發(fā)的主流。在1969年程序設(shè)計方法學(xué)作為一門學(xué)科誕生。在這個時期的程序設(shè)計方法學(xué)就是指結(jié)構(gòu)化程序理論、模塊化與逐步求精,以及有關(guān)結(jié)構(gòu)化程序正確性證明技術(shù)、形式推導(dǎo)技術(shù)和變換技術(shù)。第三階段,發(fā)展階段。1985年至今,軟件作用和價值牢固地樹立起來了。軟件的發(fā)展速度已超過硬件產(chǎn)業(yè),各種軟件理論、技術(shù)、方法層出不窮,如面向?qū)ο蟮某绦蛟O(shè)計方法和理論、類型系統(tǒng)理論、軟件復(fù)用、設(shè)計模式理論、統(tǒng)一建模理論等??梢哉f在20世紀90年代以后,面向?qū)ο蟪绦蛟O(shè)計方法學(xué)成為程序設(shè)計的主流。圍繞著面向?qū)ο罄碚摦a(chǎn)生出了各種不同的程序設(shè)計方法、概念、理論和技術(shù)。但都沒能達到在程序設(shè)計方法學(xué)的高度將它們統(tǒng)一起來,這就是目前程序設(shè)計方法學(xué)的發(fā)展現(xiàn)狀。程序設(shè)計方法學(xué)的發(fā)展也是與程序設(shè)計語言的發(fā)展歷程密不可分的。如FORTRAN語言的產(chǎn)生使得人們從機器語言和匯編語言走向高級語言,開始了結(jié)構(gòu)化程序設(shè)計方法的歷程,而PASCAL語言和C語言的成熟標志著結(jié)構(gòu)議成熟。LISP語言的產(chǎn)生標志人們開始函數(shù)式程序設(shè)計方法的歷程。PROLOG語言的產(chǎn)生標志著邏輯式程序設(shè)計方法的產(chǎn)生。Simula的產(chǎn)生開始了面向?qū)ο蟪绦蛟O(shè)計方法學(xué)的研究,而C++,JAVA的應(yīng)用標志著面向?qū)ο蟪绦蛟O(shè)計方法的成熟。綜上所述,程序設(shè)計方法學(xué)的主體應(yīng)用大致經(jīng)歷了:手工作坊式和程序設(shè)計→結(jié)構(gòu)化程序設(shè)計方法→模塊化程序設(shè)計方法→面向?qū)ο蟪绦蛟O(shè)計方法,此外,還有邏輯型程序設(shè)計方法、函數(shù)型程序設(shè)計方法、并行程序設(shè)計方法等。二、結(jié)構(gòu)化方法軟件危機與面向?qū)ο蠓椒ǖ奶岢?0年代末開始,國際上出現(xiàn)了“軟件危機”,主要表現(xiàn)是:軟件質(zhì)量差、成本及開發(fā)進度難以控制,維護工作麻煩,產(chǎn)生這一危機的根本原因在于結(jié)構(gòu)化方法強烈依賴系統(tǒng)邏輯模型的完整性描述,難以做到系統(tǒng)的動態(tài)變化與擴展,系統(tǒng)開發(fā)速度慢、周期長、費用高;結(jié)構(gòu)化設(shè)計方法講究的是自頂而下的“瀑布式”設(shè)計,使數(shù)據(jù)結(jié)構(gòu)的設(shè)計僅服從于當前功能實現(xiàn)的要求,為以后的擴充和重用設(shè)置了巨大的障礙。結(jié)構(gòu)化方法中提高軟件的結(jié)構(gòu)化、模塊化及可讀性等基本思想是完全正確的,但問題空間和解空間在結(jié)構(gòu)上存在著不一致性,使大型信息系統(tǒng)的開發(fā)和設(shè)計面臨許多困難。解決這一難題的關(guān)鍵在于分析、設(shè)計、實現(xiàn)一個系統(tǒng)的方法和過程應(yīng)盡可能接近我們認識系統(tǒng)的方法和過程,即問題空間與解空間在結(jié)構(gòu)上盡可能一致。面向?qū)ο蠓椒ń鉀Q了傳統(tǒng)結(jié)構(gòu)化方法中問題空間和解空間在結(jié)構(gòu)上不一致的問題,避免了從分析和設(shè)計到軟件模塊結(jié)構(gòu)間的多次轉(zhuǎn)換過程,使開發(fā)軟件變得簡捷、高效、合理。面向?qū)ο蠓椒ㄊ紫葟娬{(diào)來自域的對象,然后圍繞對象設(shè)置屬性和操作。它盡可能模擬人類習(xí)慣的思維方式。把問題域的概念直接映射到對象和對象之間的接口,符合人們的常用的思維方式,減少結(jié)構(gòu)化方法的從問題域到分析階段的映射誤差。面向?qū)ο蠓椒ü膭铋_發(fā)者使用“對象”的觀念去看待問題。三、面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法的比較面向?qū)ο蠼Y(jié)構(gòu)化設(shè)計基本思想自底向上設(shè)計庫類自頂向下設(shè)計過程庫,逐步求精,分而治之概念或術(shù)語名詞對象、類、消息、繼承等過程、函數(shù)、數(shù)據(jù)等編程的語言C++、VB、JAVA等C、BASIC、FORTRAN等邏輯工具對象模型圖、數(shù)據(jù)字典動態(tài)模型圖、功能模型圖數(shù)據(jù)流圖、系統(tǒng)結(jié)構(gòu)圖、數(shù)據(jù)字典狀態(tài)轉(zhuǎn)移圖、實體關(guān)系圖處理問題的出發(fā)點面向問題面向過程控制程序方式通過“事件驅(qū)動”來激活和運行程序通過設(shè)計調(diào)用或返回程序可擴展性只需修改或增加操作,而基本對象結(jié)構(gòu)不變,擴展性好功能變化會危及整個系統(tǒng),擴展性差重用性好不好層次結(jié)構(gòu)的邏輯關(guān)系用類的層次結(jié)構(gòu)來體現(xiàn)類之間的繼承和發(fā)展用模塊的層次結(jié)構(gòu)概括模塊和模塊之間的關(guān)系和功能分析、設(shè)計、編碼的轉(zhuǎn)換方式平滑過程,無縫連接按規(guī)則轉(zhuǎn)換。四、結(jié)構(gòu)化方法與面向?qū)ο蠓椒ǖ膬?nèi)在聯(lián)系(一)二者在分解和抽象原則上一致分解和抽象是軟件開發(fā)中控制問題復(fù)雜性的重要原則。分解即化整分零,將問題剝繭抽絲,層層消化;抽象則是通過分解體現(xiàn),在逐層分解時,上層是下層的抽象,下層是上層的具體解釋和體現(xiàn),運用抽象可以不用一次考慮太多細節(jié),而逐漸的有計劃有層次的了解更多細節(jié)。面向?qū)ο蠓椒ㄅc結(jié)構(gòu)化方法在運用分解和抽象原則上的要求是完全一致的。(二)局部化和重用性設(shè)計上的一致局部化是軟件開發(fā)中的一個重要原則,即不希望軟件一部分過多地涉及或影響軟件的其它部分。在結(jié)構(gòu)化方法中,局部化主要體現(xiàn)在代碼與數(shù)據(jù)的分隔化,即程序各部分除必要的信息交流外,彼此相互隔離而互不影響,而面向?qū)ο蠓椒▌t采用數(shù)據(jù)、代碼的封裝,即將數(shù)據(jù)、代碼和操作方法封裝成一個類似“黑箱”的整體對象,提高了程序的可靠性和安全性,同時增強了系統(tǒng)的可維護性。也就是說面向?qū)ο蠓椒ū冉Y(jié)構(gòu)化方法的運用更加深入更徹底。五、結(jié)構(gòu)化方法與面向?qū)ο蠓椒ǖ膮^(qū)別(一)處理問題時的出發(fā)點不同結(jié)構(gòu)化方法是強調(diào)過程抽象化和模塊化,以過程為中心構(gòu)造或處理客觀世界問題的,它是一種面向過程的開發(fā)方法;面向?qū)ο蠓椒◤娬{(diào)把問題域的要領(lǐng)直接影射到對象及對象之間的接口上,是用符合人們通常的思維方式來處理客觀世界的問題。(二)處理問題的基本單位和層次邏輯關(guān)系不同結(jié)構(gòu)化方法把客觀世界的問題抽象成計算機可以處理的過程,處理問題的基本單位是能清晰表達過程的模塊,用模塊的層次結(jié)構(gòu)概括模塊或模塊間的關(guān)系和功能;面向?qū)ο蠓椒ㄊ怯糜嬎銠C邏輯來模擬客觀世界中的物理存在,以對象的集合類作為處理問題的基本單位,盡可能使計算機世界向客觀世界靠攏,以使問題的處理更直截了當,面向?qū)ο蠓椒ㄊ怯妙惖膶哟谓Y(jié)構(gòu)來體現(xiàn)類之間的繼承和發(fā)展。(三)數(shù)據(jù)處理方式與控制程序方式不同結(jié)構(gòu)化方法是直接通過程序來處理數(shù)據(jù),處理完畢后即可顯示處理結(jié)果,在控制程序方式上是按照設(shè)計調(diào)用或返回程序不能自由導(dǎo)航,各模塊程序之間存在著控制與被控制的關(guān)系;面向?qū)ο蠓椒▽?shù)據(jù)與對應(yīng)的代碼封裝成一個整體,原則上其它對象不能直接修改其數(shù)據(jù),即對象的修改只能由自身的成員函數(shù)完成,控制程序方式上是通過“事件驅(qū)動”來激活和運行程序。(四)分析設(shè)計與編碼轉(zhuǎn)換方式不同結(jié)構(gòu)化方法強調(diào)分析、設(shè)計及編碼之間按規(guī)則進行轉(zhuǎn)換,貫穿軟件生命周期的分析、設(shè)計及編碼之間實現(xiàn)的是一種有縫的連接;面向?qū)ο蠓椒◤姆治龅皆O(shè)計再到編碼則采用一致性的模型表示,貫穿軟件生命周期的分析、設(shè)計及編碼之間是一種平滑過程,即實現(xiàn)的是一種無縫連接。六、結(jié)語綜上所述,軟件開發(fā)的目標是以最小的代價開發(fā)出滿足用戶需求的軟件。為此,根據(jù)系統(tǒng)的實際需求,分別針對具體情況選擇采用不同的設(shè)計方法,可以充分發(fā)揮面向?qū)ο笈c結(jié)構(gòu)化方法各自的優(yōu)勢。目前在大多數(shù)軟件系統(tǒng)的分析設(shè)計過程中,這兩種方法
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度廠房租賃合同能源管理專項條款范本3篇
- 2024投資合作風(fēng)險分擔(dān)協(xié)議樣本版B版
- 2024濟南勞動合同
- 二零二五版建筑安全施工管理責(zé)任協(xié)議3篇
- 二零二五年度高端百貨門店租賃合同范本3篇
- 專項融資擔(dān)保代償合同(2024年度)版B版
- 二零二五年度車庫租賃與新能源充電樁建設(shè)合同2篇
- 二零二五版地形圖保密及城市規(guī)劃實施合同3篇
- 2025年度餐廳總經(jīng)理突發(fā)事件應(yīng)對處理合同3篇
- 2024石材行業(yè)安全防護與應(yīng)急預(yù)案合同范本3篇
- 污水處理廠提標升級可研
- 湖南省建設(shè)工程施工階段監(jiān)理服務(wù)費計費規(guī)則【實用文檔】doc
- GB/T 6913-2008鍋爐用水和冷卻水分析方法磷酸鹽的測定
- GB/T 18717.2-2002用于機械安全的人類工效學(xué)設(shè)計第2部分:人體局部進入機械的開口尺寸確定原則
- 教案:第三章 公共管理職能(《公共管理學(xué)》課程)
- 中國文化概論(第三版)全套課件
- 117-鋼結(jié)構(gòu)工程質(zhì)量常見問題與管控措施
- SHS5230三星指紋鎖中文說明書
- 諾和關(guān)懷俱樂部對外介紹
- 保定市縣級地圖PPT可編輯矢量行政區(qū)劃(河北省)
- 新蘇教版科學(xué)六年級下冊全冊教案(含反思)
評論
0/150
提交評論