程序設(shè)計(jì)方法
隨著計(jì)算機(jī)硬件技術(shù)的不斷發(fā)展,程序設(shè)計(jì)方法也隨之不斷發(fā)展。最早的程序設(shè)計(jì)方法稱為個(gè)體化方法,每個(gè)程序員都按照自己的習(xí)慣和風(fēng)格來編寫程序,其結(jié)果是程序很難維護(hù)。特別是規(guī)模較大的程序.個(gè)體化方法導(dǎo)致程序的壽命縮短。成本提高,不能滿足需要.經(jīng)過計(jì)算機(jī)工作者的努力.程序設(shè)計(jì)方法持續(xù)改進(jìn),在過去的幾十年中,程序設(shè)計(jì)方法主要經(jīng)歷了兩次革命性的飛躍:結(jié)構(gòu)化方法和面向?qū)ο蠓椒?相對(duì)應(yīng)地產(chǎn)生了面向過程程序設(shè)計(jì)和面向?qū)ο蟪绦蛟O(shè)計(jì)。下面介紹結(jié)構(gòu)化方法(Structured Method)和面向?qū)ο蠓椒?Object-OrientedMethod).
曾被稱譽(yù)為“程序設(shè)計(jì)方法的革命”的結(jié)構(gòu)化程序設(shè)計(jì).使程序設(shè)計(jì)從主要依賴于程序員個(gè)人的自由活動(dòng)變成為有章可循的一門科學(xué)。它的主要貢獻(xiàn),是推動(dòng)了程序設(shè)計(jì)風(fēng)格從“追求技巧與效率”到“清晰第一、效率第二”的轉(zhuǎn)變。從而提高了程序的易讀性和可靠性。1976年.瑞士的沃斯((Nikiaus Wirth)教授在其經(jīng)典名著《算法十?dāng)?shù)據(jù)結(jié)構(gòu)二程序,的序言中指出:“程序就是在數(shù)據(jù)的某些特定表示形式和結(jié)構(gòu)的纂礎(chǔ)上.對(duì)于抽象算法的具體描述。”、“不了解施加于數(shù)據(jù)上的算法,就無法決定如何構(gòu)成數(shù)據(jù);反之,算法的結(jié)構(gòu)和選撣,卻常常在很大程度上依翰于作為基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)。簡而言之。程序的構(gòu)成與數(shù)據(jù)結(jié)構(gòu)是兩個(gè)不可分割地聯(lián)系在一起的問題.”
沃斯的論述.精辟地概括了算法與數(shù)據(jù)結(jié)構(gòu)在當(dāng)時(shí)程序設(shè)計(jì)中的地位與相互關(guān)系.“算法+數(shù)據(jù)結(jié)構(gòu)二程序”.影響和指導(dǎo)了一代又一代的程序員。從早期的程序設(shè)計(jì)語言Fortran,Cobol,ADA,Pascal到現(xiàn)代的C語言,全是面向過程的,都有一個(gè)特點(diǎn):當(dāng)對(duì)軟件進(jìn)行分析或設(shè)計(jì)時(shí).開發(fā)人員總是遵循“程序二數(shù)據(jù)結(jié)構(gòu)十算法”的思路.把程序理解為由一組被動(dòng)的數(shù)據(jù)和一組能動(dòng)的過程所構(gòu)成,這樣的程序設(shè)計(jì)方法就稱為面向過程的程序設(shè)計(jì)方法。
結(jié)構(gòu)化程序設(shè)計(jì)的普及促進(jìn)了軟件生產(chǎn)的工業(yè)化,也緩解了當(dāng)時(shí)的軟件危機(jī)。然而它的面向過程的程序設(shè)計(jì)思路,不適合日益復(fù)雜應(yīng)用系統(tǒng)。實(shí)踐表明用結(jié)構(gòu)化技術(shù)處理5000行以下代碼的軟件的確是十分有效的,但面對(duì)當(dāng)今的大規(guī)模軟件產(chǎn)品的復(fù)雜性。卻仍舊無能為力。可是在客觀事物中,實(shí)體的內(nèi)部“狀態(tài)態(tài),’(可用數(shù)據(jù)表示)和“運(yùn)動(dòng)”(加于數(shù)據(jù)的操作)卻是結(jié)合在一起的.這就使采用傳統(tǒng)范型開發(fā)的軟件模型(稱為“解空間” Solutiondomain)被人為地偏離客觀實(shí)體本身的模型(稱為“間題空間”,Problem domain).于是,面向?qū)ο蟮姆椒ň蛻?yīng)運(yùn)而生了。
在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,數(shù)據(jù)及其操作被封裝在一個(gè)個(gè)稱為“對(duì)象”(Object)的統(tǒng)一體中,對(duì)象之間則通過“消息”(Message)相互聯(lián)系,‘對(duì)象+消息”的機(jī)制取代了“數(shù)據(jù)結(jié)構(gòu)+算法”的思路,因而較好地實(shí)現(xiàn)了一解空間”與“問題空間,的一致性,為解決軟件危機(jī)帶來了新的希望,從結(jié)構(gòu)化程序設(shè)計(jì)到面向?qū)ο蟮某绦蛟O(shè)計(jì),是程序設(shè)汁方法的又一次飛躍,在軟件開發(fā)和維護(hù)中正日益顯露其優(yōu)越性。
面向?qū)ο蟮乃枷胱畛跗鹪从?0世紀(jì)60年代中期的仿真程序設(shè)計(jì)語言Simula 67。 20世紀(jì)紀(jì)80年代初出現(xiàn)的Smalltalk語言和90年代推出的C++,Java語言及其程序設(shè)計(jì)環(huán)境先后成為面向?qū)ο蠹夹g(shù)發(fā)展的重要里程碑。從80年代末開始,面向?qū)ο蟮某绦蛟O(shè)計(jì)和面向?qū)ο蟮男枨蠓治龆嫉玫娇焖侔l(fā)展,特別是90年代中期,lBooch, Rumbaugh和Jacoson共同提出了統(tǒng)一建模ig言(Unified Modeling Language, CML),把眾多面向?qū)ο蠓椒ňC合成一種標(biāo)準(zhǔn),使面向?qū)ο蟮姆椒ǔ蔀橹髁鞯某绦蛟O(shè)計(jì)方法。
(1)對(duì)象((Object),對(duì)象是現(xiàn)實(shí)世界中個(gè)體或事物的抽象表示,是它的屬性和相關(guān)操作的統(tǒng)一封裝體。屬性表示對(duì)象的性質(zhì),屬性值規(guī)定了對(duì)象所有可能的狀態(tài)。對(duì)象的操作是指該對(duì)象可以展現(xiàn)的外部服務(wù)。例如。若將卡車視為對(duì)象。則它具有位置、速度、顏色、容量等屬性。對(duì)于該對(duì)象可施行啟動(dòng)、停車、加速、維修等操作,這些操作將或多或少地改變卡車的屬性值。
(2)類(Class)。類用于表示某些對(duì)象的共同特征(屬性和操作),對(duì)象是類的實(shí)例。例如,汽車類可包含位置、速度、顏色等屬性,以及啟動(dòng)、停車、加速等操作。卡車是汽車類的一個(gè)實(shí)例。
(3)繼承(Inheritance)類之間可以存在繼承關(guān)系,它是現(xiàn)實(shí)世界中遺傳關(guān)系的直接模擬,可用來表示類之間的內(nèi)在聯(lián)系以及對(duì)屬性和操作的共享。子類可以沿用父類(被繼承類)的某些特征,同時(shí)子類也可以具有自己獨(dú)有的屬性和操作,對(duì)于一個(gè)類的修改能自動(dòng)反映到它的所有子類中。例如,飛行器、汽車和輪船都是交通工具類的子類,它們都可以繼承交通工具類的某些屬性和操作。除繼承關(guān)系外,現(xiàn)實(shí)世界中還大量存在著“部分和整體”關(guān)系。例如,飛機(jī)可由發(fā)動(dòng)機(jī)、機(jī)身、機(jī)械控制系統(tǒng)、電子控制系統(tǒng)等構(gòu)成。這種關(guān)系在面向?qū)ο蠓椒▽W(xué)中可表示為類之間的聚集(Aggregation)關(guān)系。在聚集關(guān)系下,“部分”類的對(duì)象“整體”類對(duì)象的一個(gè)組成部分。
(4)消息(Message)。消息傳遞是對(duì)象與其外部世界相互關(guān)聯(lián)的唯一途徑。對(duì)象可以向其他對(duì)象發(fā)送消息以請(qǐng)求服務(wù),也可以響應(yīng)其他對(duì)象傳來的消息,完成自身固有的某些操作,從而服務(wù)于其他對(duì)象.例如。直升飛機(jī)可以響應(yīng)輪船的海難急救信號(hào),起飛,加速,飛赴出事地點(diǎn)并實(shí)施救援作業(yè)。 對(duì)象的操作主要是用來響應(yīng)外來消息并為其他對(duì)象提供服務(wù)的,所以它們也被稱作“外部服務(wù)”。Coad和Yourdon認(rèn)為。采用上述4種概念進(jìn)行開發(fā)的軟件系統(tǒng)可以認(rèn)為是面向?qū)ο蟮?。為此,他們把面向?qū)ο蠓椒w結(jié)為一個(gè)簡單的公式,即面向時(shí)象二對(duì)象+分類(Classification) +繼承+消息通信(Communication withmessages)。
建站流程
-
網(wǎng)站需求
-
網(wǎng)站策劃方案
-
頁面設(shè)計(jì)風(fēng)格
-
確認(rèn)交付使用
-
資料錄入優(yōu)化
-
程序設(shè)計(jì)開發(fā)
-
后續(xù)跟蹤服務(wù)
-
聯(lián)系電話
010-60259772
熱門標(biāo)簽
- 網(wǎng)站建設(shè)
- 食品網(wǎng)站建設(shè)
- 微信小程序開發(fā)
- 小程序開發(fā)
- 無錫網(wǎng)站建設(shè)
- 研究所網(wǎng)站建設(shè)
- 沈陽網(wǎng)站建設(shè)
- 廊坊網(wǎng)站建設(shè)
- 鄭州網(wǎng)站建設(shè)
- 婚紗攝影網(wǎng)站建設(shè)
- 手機(jī)端網(wǎng)站建設(shè)
- 高校網(wǎng)站制作
- 天津網(wǎng)站建設(shè)
- 教育網(wǎng)站建設(shè)
- 品牌網(wǎng)站建設(shè)
- 政府網(wǎng)站建設(shè)
- 北京網(wǎng)站建設(shè)
- 網(wǎng)站設(shè)計(jì)
- 網(wǎng)站制作
最新文章
推薦新聞
更多行業(yè)-
photoshop工具箱怎么用(1)
工具箱將Photoshop CS5中多種常用的功能以按妞的形式聚集在一...
2015-12-02 -
網(wǎng)絡(luò)計(jì)劃應(yīng)用實(shí)施注意的事項(xiàng)
我們做任何事情都需要有計(jì)劃,譬如:網(wǎng)站設(shè)計(jì),程序編程等等,我們來看應(yīng)用...
2014-11-03 -
IBM元老級(jí)前CEO逝世 曾推出首臺(tái)個(gè)人電腦
IBM元老級(jí)前CEO逝世 曾推出首臺(tái)個(gè)人電腦 19世紀(jì)80年代,約...
2011-11-08 -
自適應(yīng)網(wǎng)站有哪些優(yōu)勢(shì)特點(diǎn)?
使用CSS3的mediaqueries技術(shù),網(wǎng)頁布局寬度,操作界面,內(nèi)...
2020-10-28 -
網(wǎng)站顏色搭配及思路有哪些?
不要小瞧了色彩,其實(shí)色彩是有感情的,有溫度的,有味道的,有形狀的哦。訪...
2018-09-05 -
網(wǎng)站建設(shè)中前端設(shè)計(jì)是什么?前端設(shè)計(jì)有哪些重要性
前端設(shè)計(jì)是網(wǎng)站建設(shè)和網(wǎng)頁制作中一項(xiàng)非常重要的工作。無論如何設(shè)計(jì)頁面,編...
2020-05-29
預(yù)約專業(yè)咨詢顧問溝通!
免責(zé)聲明
非常感謝您訪問我們的網(wǎng)站。在您使用本網(wǎng)站之前,請(qǐng)您仔細(xì)閱讀本聲明的所有條款。
1、本站部分內(nèi)容來源自網(wǎng)絡(luò),涉及到的部分文章和圖片版權(quán)屬于原作者,本站轉(zhuǎn)載僅供大家學(xué)習(xí)和交流,切勿用于任何商業(yè)活動(dòng)。
2、本站不承擔(dān)用戶因使用這些資源對(duì)自己和他人造成任何形式的損失或傷害。
3、本聲明未涉及的問題參見國家有關(guān)法律法規(guī),當(dāng)本聲明與國家法律法規(guī)沖突時(shí),以國家法律法規(guī)為準(zhǔn)。
4、如果侵害了您的合法權(quán)益,請(qǐng)您及時(shí)與我們,我們會(huì)在第一時(shí)間刪除相關(guān)內(nèi)容!
聯(lián)系方式:010-60259772
電子郵件:394588593@qq.com