程序設(shè)計(jì)思想變革及發(fā)展培訓(xùn)課件_第1頁(yè)
程序設(shè)計(jì)思想變革及發(fā)展培訓(xùn)課件_第2頁(yè)
程序設(shè)計(jì)思想變革及發(fā)展培訓(xùn)課件_第3頁(yè)
程序設(shè)計(jì)思想變革及發(fā)展培訓(xùn)課件_第4頁(yè)
程序設(shè)計(jì)思想變革及發(fā)展培訓(xùn)課件_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、程序設(shè)計(jì)思想變革及發(fā)展程序設(shè)計(jì)思想變革及發(fā)展Contents程序設(shè)計(jì)的基本程序設(shè)計(jì)的基本一程序設(shè)計(jì)思想的發(fā)展程序設(shè)計(jì)思想的發(fā)展二程序設(shè)計(jì)語(yǔ)言的變化及發(fā)展程序設(shè)計(jì)語(yǔ)言的變化及發(fā)展三程序設(shè)計(jì)的基本程序設(shè)計(jì)的基本概念概念1程序設(shè)計(jì)的步驟程序設(shè)計(jì)的步驟2程序設(shè)計(jì)面對(duì)的問(wèn)題程序設(shè)計(jì)面對(duì)的問(wèn)題3概念概念通俗地說(shuō), 程序就是人們讓計(jì)算機(jī)完成特定任務(wù)的一系列命令的總稱(chēng), 而用某種編程語(yǔ)言編寫(xiě)程序的過(guò)程就是程序設(shè)計(jì)。程序設(shè)計(jì)的步驟程序設(shè)計(jì)的步驟設(shè)計(jì)方案分析問(wèn)題解決問(wèn)題123程序設(shè)計(jì)面對(duì)的問(wèn)題1 技術(shù)問(wèn)題2目標(biāo)復(fù)雜度和規(guī)模的增長(zhǎng)3需求的變化面向過(guò)程編程面向過(guò)程編程面向過(guò)程編程關(guān)注的是解決問(wèn)題的步驟,先把軟件系統(tǒng)分

2、解成多個(gè)模塊,然后逐步細(xì)化,完成整個(gè)軟件系統(tǒng)。各模塊之間存在相互調(diào)用和信息傳遞。程序設(shè)計(jì)思想的發(fā)展程序設(shè)計(jì)思想的發(fā)展面向?qū)ο缶幊堂嫦蜻^(guò)程編程面向方面編程20世紀(jì)60年代20世紀(jì)70年代20世紀(jì)90年代面向過(guò)程編程的面向過(guò)程編程的產(chǎn)生60 年代末, 國(guó)際著名學(xué)者E.W.Dijkstr首先提出了“ 結(jié)構(gòu)化程序設(shè)計(jì)” 的思想, 按照結(jié)構(gòu)化程序設(shè)計(jì)思想編制出來(lái)的程序稱(chēng)為結(jié)構(gòu)化程序,即 面向過(guò)程編程。、Pascal 和ortran 語(yǔ)言均采用面向過(guò)程編程思想。面向過(guò)程編程面向過(guò)程編程產(chǎn)生產(chǎn)生1設(shè)計(jì)思想設(shè)計(jì)思想2特點(diǎn)特點(diǎn)3產(chǎn)生的問(wèn)題產(chǎn)生的問(wèn)題4面向過(guò)程編程的設(shè)計(jì)思想面向過(guò)程編程的設(shè)計(jì)思想采用“ 自頂向下,

3、逐步求精” 的方法, 即當(dāng)編寫(xiě)程序時(shí)常從總體出發(fā), 把任務(wù)分解為若干個(gè)多少有些獨(dú)立的模塊, 對(duì)于每一個(gè)模塊, 又需分解為若干個(gè)低一層的子模塊, 直到最低層的每一個(gè)子模塊都有明確的解決步驟為止, 每一個(gè)模塊內(nèi)部均是由順序、選擇和循環(huán)三種基本結(jié)構(gòu)組成, 其模塊化的具體實(shí)現(xiàn)方法是使用子程序。面向過(guò)程編程的設(shè)計(jì)思想面向過(guò)程編程的設(shè)計(jì)思想正如上面的程序段所示, 結(jié)構(gòu)化的程序方法通常是:(1) 定義變量及其初始值;(2) 根據(jù)事件發(fā)展順序, 進(jìn)行對(duì)應(yīng)的處理。面向過(guò)程編程的設(shè)計(jì)思想面向過(guò)程編程的設(shè)計(jì)思想示例:鉛筆數(shù)=5鋼筆數(shù)=6圓珠筆數(shù)=4其它筆數(shù)=7 / 銷(xiāo)售程序段鉛筆數(shù)=鉛筆數(shù)- 1 / 賣(mài)出了1 支鉛

4、筆其它筆數(shù)=其它筆數(shù)- 2 / 賣(mài)出了2支其它筆/ 采購(gòu)程序段鋼筆數(shù)=鋼筆數(shù)+20 / 新進(jìn)了20 支鋼筆圓珠筆數(shù)=圓珠筆數(shù)+10 / 新進(jìn)了10支圓珠筆 面向過(guò)程編程的特點(diǎn)面向過(guò)程編程的特點(diǎn)面向過(guò)程的程序設(shè)計(jì)的特點(diǎn):面向過(guò)程的程序設(shè)計(jì)方法強(qiáng)調(diào)需求分析。強(qiáng)調(diào)在軟件生命周期的每個(gè)階段結(jié)束之前必須進(jìn)行評(píng)審,從而提高了開(kāi)發(fā)的成功率。面向過(guò)程編程的問(wèn)題產(chǎn)生的原因面向過(guò)程編程的問(wèn)題產(chǎn)生的原因原因是:某些系統(tǒng)類(lèi)型需求是模糊的,預(yù)先定義需求的策略對(duì)于某些類(lèi)型的軟件系統(tǒng)是適用的。但是,對(duì)于數(shù)量占多數(shù)的一些應(yīng)用系統(tǒng),其需求往往難以預(yù)先準(zhǔn)確地指定。面向過(guò)程編程的總結(jié)面向過(guò)程編程的總結(jié) 面向過(guò)程編程的思維方式易于理

5、解、條理清晰,曾被廣泛應(yīng)用,但隨著軟件系統(tǒng)規(guī)模的擴(kuò)大和性能要求的提高,面向過(guò)程編程的缺陷日益明顯。軟件系統(tǒng)規(guī)模的擴(kuò)大,使得模塊的分解難度加大,模塊之間的聯(lián)系也更加復(fù)雜,軟件的可靠性難以提高,可維護(hù)性差。為了提高軟件系統(tǒng)的穩(wěn)定性、可修改性、可重用性。人們?cè)趯?shí)踐中逐漸創(chuàng)造出軟件開(kāi)發(fā)的新途徑:面向?qū)ο蟮某绦蛟O(shè)計(jì)方法面向?qū)ο缶幊趟^面向?qū)ο缶褪窃谔幚韱?wèn)題時(shí),從該問(wèn)題所存在的事物本身出發(fā),以類(lèi)及對(duì)象作為基本構(gòu)造單元,逐步認(rèn)識(shí)事物的屬性和行為特征。面向?qū)ο缶幊坍a(chǎn)生產(chǎn)生1主要概念2編程思想編程思想3特點(diǎn)特點(diǎn)4面向?qū)ο缶幊痰漠a(chǎn)生結(jié)構(gòu)化程序設(shè)計(jì)方法的可重用性差,使用面向過(guò)程的方法來(lái)開(kāi)發(fā)和維護(hù)此類(lèi)軟件將非常困難。

6、因此提出了面向?qū)ο缶幊獭C嫦驅(qū)ο缶幊痰母拍罡拍罡拍?大基本概念對(duì)象(對(duì)象(bject)類(lèi)(類(lèi)(lass)抽象(抽象(bstract)封裝(封裝(ncapsulation)繼承(繼承(nheritance)多態(tài)(多態(tài)(olymorphism)面向?qū)ο缶幊趟枷朊嫦驅(qū)ο缶幊痰闹行乃枷胧? 軟件模塊的分解并不是從功能上, 或是從處理問(wèn)題的算法上出發(fā), 而是從系統(tǒng)的組成上考慮。 優(yōu)點(diǎn) 穩(wěn)定性好 可重用性 可擴(kuò)展性支持多線(xiàn)程編程 可管理性面向?qū)ο缶幊痰目偨Y(jié)總體來(lái)說(shuō),較面向過(guò)程編程相比,面向?qū)ο缶幊炭梢悦枋龈鼜?fù)雜、更接近現(xiàn)實(shí)的系統(tǒng),描述方法靈活,具備良好的可重用性和可擴(kuò)展性,提高了軟件系統(tǒng)的質(zhì)量和開(kāi)發(fā)效率,

7、保證了對(duì)系統(tǒng)項(xiàng)目的有效管理。面向方面編程在軟件術(shù)語(yǔ)中,面向方面的編程能夠獨(dú)立于任何繼承層次結(jié)構(gòu)而應(yīng)用改變類(lèi)或?qū)ο笮袨榈姆矫妗H秉c(diǎn)代碼散亂和代碼糾纏使得面向?qū)ο缶幊痰南到y(tǒng)結(jié)構(gòu)混亂,難以維護(hù)和擴(kuò)展,降低了軟件系統(tǒng)的質(zhì)量。面向方面編程的產(chǎn)生面向方面編程()的概念是regoriczaes 在eroxarc 團(tuán)隊(duì)于 世紀(jì) 年代后期提出的,ilman 與riedman年在關(guān)于分離關(guān)注點(diǎn)的討論會(huì)上給出了得到公認(rèn)的面向方面的定義。雖然面向方面編程還處于不完善的階段,但它已經(jīng)受到了廣泛的關(guān)注。面向方面編程產(chǎn)生產(chǎn)生1主要概念2編程思想編程思想3特點(diǎn)特點(diǎn)4面向方面編程的概念6大基本概念 關(guān)注點(diǎn)(關(guān)注點(diǎn)(oncern

8、) 方面(方面(spect) 通知(通知(dvice) 切入點(diǎn)(切入點(diǎn)(ointcut) 連接點(diǎn)(連接點(diǎn)(oinpoint) 織入(織入(eaving)面向方面編程的思想對(duì)所分解的關(guān)注點(diǎn)的實(shí)現(xiàn),核心關(guān)注點(diǎn)可以采用面向?qū)ο缶幊碳夹g(shù),橫切關(guān)注點(diǎn)可以采用面向方面編程技術(shù)將軟件系統(tǒng)分解為核心關(guān)注點(diǎn)和橫切關(guān)注點(diǎn)通過(guò)創(chuàng)建方面來(lái)制定制定關(guān)注點(diǎn)之間的實(shí)施規(guī)則,從而得到最終的系統(tǒng)方面分解關(guān)注點(diǎn)實(shí)現(xiàn)織入面向方面編程的特點(diǎn)方面的設(shè)計(jì)使得系統(tǒng)的松散耦合性更強(qiáng),代碼冗余小,系統(tǒng)易維護(hù)、易擴(kuò)充。優(yōu)點(diǎn)及缺點(diǎn)切入點(diǎn)與基礎(chǔ)程序的耦合性較強(qiáng),基礎(chǔ)程序結(jié)構(gòu)的變化就可能導(dǎo)致意外的連接點(diǎn)丟失面向方面編程的總結(jié)較面向?qū)ο缶幊滔啾冉档土讼?/p>

9、統(tǒng)實(shí)施的難度,解決了代碼散亂和代碼糾纏的問(wèn)題。但其本身存在的問(wèn)題也給使用帶來(lái)了一定的困難。目前在開(kāi)發(fā)過(guò)程中,面向方面編程技術(shù)只作為面向?qū)ο缶幊碳夹g(shù)的補(bǔ)充加以運(yùn)用。面向過(guò)程VS面向?qū)ο笠砸惠v汽車(chē)為例: 用面向過(guò)程的思想去考慮它應(yīng)該是這樣的:如何啟動(dòng)汽車(chē)、如何起步、加速、剎車(chē)、熄火等一個(gè)個(gè)操作。而汽車(chē)在這里并不是我們所關(guān)心的。 而面向?qū)ο髣t以汽車(chē)為對(duì)象,一切由汽車(chē)開(kāi)始,以上的可用操作,即功能是汽車(chē)這個(gè)對(duì)象本身所具有的,做任何操作只要告訴汽車(chē)就可以。面向過(guò)程VS面向?qū)ο笫褂妹嫦蜻^(guò)程的語(yǔ)言,你需要告訴電腦要做什么,怎么做,一步步教它。使用面向?qū)ο蟮恼Z(yǔ)言,你只需要告訴它要做什么,不用告訴它過(guò)程。面向過(guò)程

10、VS面向?qū)ο?又例如五子棋,面向過(guò)程的設(shè)計(jì)思路就是首先分析問(wèn)題的步驟: 1、開(kāi)始游戲,2、黑子先走,3、繪制畫(huà)面,4、判斷輸贏,5、輪到白子,6、繪制畫(huà)面,7、判斷輸贏,8、返回步驟2,9、輸出最后結(jié)果。 把上面每個(gè)步驟用分別的函數(shù)來(lái)實(shí)現(xiàn),問(wèn)題就解決了。 而面向?qū)ο蟮脑O(shè)計(jì)則是從另外的思路來(lái)解決問(wèn)題。整個(gè)五子棋可以分為: 1、黑白雙方,這兩方的行為是一模一樣的,2、棋盤(pán)系統(tǒng),負(fù)責(zé)繪制畫(huà)面,3、規(guī)則系統(tǒng),負(fù)責(zé)判定諸如犯規(guī)、輸贏等。 面向過(guò)程VS面向?qū)ο蠊δ苌系慕y(tǒng)一保證了面向?qū)ο笤O(shè)計(jì)的可擴(kuò)展性。因此,就實(shí)際編程情況來(lái)說(shuō)在大多時(shí)候面向?qū)ο蟾鼮閷?shí)際。程序設(shè)計(jì)語(yǔ)言的變化及發(fā)展1 機(jī)器語(yǔ)言機(jī)器語(yǔ)言2 匯編語(yǔ)

11、言3 高級(jí)語(yǔ)言、算法語(yǔ)言高級(jí)語(yǔ)言、算法語(yǔ)言4 非過(guò)程化語(yǔ)言非過(guò)程化語(yǔ)言5 智能性語(yǔ)言語(yǔ)言的發(fā)展語(yǔ)言的發(fā)展機(jī)器語(yǔ)言機(jī)器語(yǔ)言是計(jì)算機(jī)誕生和發(fā)展初期使用的語(yǔ)言,表現(xiàn)為二進(jìn)制的編碼形式,是由CPU可以直接識(shí)別的一組由0和1序列構(gòu)成的指令碼。機(jī)器語(yǔ)言例如,下面列出的一串二進(jìn)制編碼 011011 000000 000000 000001 110101 命令計(jì)算機(jī)硬件完成清除累加器,然后把內(nèi)存地址為117的單元內(nèi)容與累加器的內(nèi)容相加的操作。 可以看出,使用機(jī)器語(yǔ)言編寫(xiě)程序是很不方便的,它要求用者熟悉計(jì)算機(jī)的所有細(xì)節(jié),程序的質(zhì)量完全決定于個(gè)人的編程水平。匯編語(yǔ)言匯編語(yǔ)言開(kāi)始于20世紀(jì)50年代初期,它是用助記符

12、來(lái)表示每一條機(jī)器指令的。例如,機(jī)器指令可以表示為 CLA 00 017高級(jí)語(yǔ)言、算法語(yǔ)言高級(jí)語(yǔ)言起始于20世紀(jì)50年代中期,它允許人們用熟悉自然語(yǔ)言和數(shù)學(xué)語(yǔ)言編寫(xiě)程序代碼,可讀性強(qiáng),編程方便。例如,在高級(jí)語(yǔ)言中寫(xiě)出如下語(yǔ)句: X(A+B)/(C+D)與之等價(jià)的匯編語(yǔ)言程序如下: CLA C ADD DSTD M CLA A ADD B DIV MSTD X非過(guò)程化語(yǔ)言用戶(hù)在使用這種語(yǔ)言時(shí),不必關(guān)心問(wèn)題的解法和處理過(guò)程的描述,只需說(shuō)明所要完成的工作目標(biāo)及工作條件,就能得到所要的結(jié)果,而其他的工作都由系統(tǒng)來(lái)完成。非過(guò)程化語(yǔ)言例如,用戶(hù)想檢索出滿(mǎn)足一定條件的學(xué)生名單,只要通過(guò)SQL語(yǔ)言的SELECT語(yǔ)句告訴計(jì)算機(jī)查詢(xún)的范圍(查學(xué)生信息表)、查詢(xún)內(nèi)容(查出姓名和年齡)和檢索條件(查年齡小于18歲的學(xué)生)即可

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論