




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
軟件工程導(dǎo)論第1頁,課件共27頁,創(chuàng)作于2023年2月面向?qū)ο蟮拈_發(fā)方法第一節(jié)面向?qū)ο蟾攀龅诙?jié)面向?qū)ο蟮幕靖拍畹谌?jié)面向?qū)ο蠓治龅谒墓?jié)面向?qū)ο笤O(shè)計(jì)第五節(jié)面向?qū)ο髮?shí)現(xiàn)第2頁,課件共27頁,創(chuàng)作于2023年2月第一節(jié)面向?qū)ο蟾攀鲆?、發(fā)展概述面向?qū)ο蟛⒎鞘且粋€(gè)新的概念,實(shí)際上它已有30多年的歷史。尋其根源可追溯到60年代的挪威,當(dāng)時(shí)挪威計(jì)算中心的KristenNygaard和Ole-JohanDahl開發(fā)了一種稱作Simula67的語言。Simula67首次引入了類、協(xié)同程序和子類的概念,這很象今天的面向?qū)ο笳Z言。70年代中期,XeroxPaloAlto研究中心的研究人員設(shè)計(jì)了Smalltalk語言,該語言的每個(gè)元素都被當(dāng)作一個(gè)對(duì)象來實(shí)現(xiàn),其程序設(shè)計(jì)環(huán)境及相關(guān)的各個(gè)方面都是面向?qū)ο蟮?。?頁,課件共27頁,創(chuàng)作于2023年2月第一節(jié)面向?qū)ο蟾攀龅?,面向?qū)ο蟮耐茝V很慢。例如:Samlltalk的成果直到1981年8月因Byte雜志的介紹才為外界所知,許多軟件開發(fā)人員了解Samlltalk時(shí),都把它看作是一個(gè)窗口系統(tǒng),而不是程序設(shè)計(jì)技術(shù)的一次革命。80年代,C成為很受歡迎的程序設(shè)計(jì)語言,它不僅可用在微機(jī)上,還可用在多種結(jié)構(gòu)的系統(tǒng)和環(huán)境中。80年代早期,AT&T貝爾實(shí)驗(yàn)室的BjarneStroustrup把C語言擴(kuò)展為支持面向?qū)ο蟪绦蛟O(shè)計(jì)的C++。在C++中,程序員可以在其熟悉的語言環(huán)境下學(xué)習(xí)掌握面向?qū)ο蟮某绦蛟O(shè)計(jì)技術(shù),而不必去探究一種新的語言和環(huán)境。第4頁,課件共27頁,創(chuàng)作于2023年2月第一節(jié)面向?qū)ο蟾攀鲎?0年代以來,軟件與硬件之間的差距至少有兩代處理器之多,并且這種差距還在增大。當(dāng)軟件系統(tǒng)變得更加復(fù)雜時(shí),常規(guī)軟件工具、技術(shù)和概念已不足以應(yīng)付,從而使軟件開發(fā)者陷入了困境。但面向?qū)ο蟮姆椒軌蚩刂栖浖膹?fù)雜性,從而促進(jìn)了面向?qū)ο蟮陌l(fā)展,掀起了一股“面向?qū)ο蟆睙?。?頁,課件共27頁,創(chuàng)作于2023年2月第一節(jié)面向?qū)ο蟾攀龆?、研究領(lǐng)域目前國內(nèi)外關(guān)于面向?qū)ο蟮难芯款I(lǐng)域主要在以下幾個(gè)方面:1.理論:包括方法、面向?qū)ο笤O(shè)計(jì)的本質(zhì)以及語義模型的研究。2.語言:包括現(xiàn)有面向?qū)ο蟮某绦蛟O(shè)計(jì)語言的研究、設(shè)計(jì)新的面向?qū)ο蟮某绦蛘Z言,將面向?qū)ο蟮脑O(shè)計(jì)思想引入其它語言(如Ada,Prolog,Lisp,C,Pascal,F(xiàn)oxpro等)3.實(shí)現(xiàn):包括體系結(jié)構(gòu)的支撐、編譯與解釋、其它特殊技術(shù)等。4.環(huán)境:包括面向?qū)ο蟮能浖_發(fā)環(huán)境的設(shè)計(jì)與實(shí)現(xiàn)。第6頁,課件共27頁,創(chuàng)作于2023年2月第一節(jié)面向?qū)ο蟾攀?.重用:為了實(shí)現(xiàn)重用,需要研究對(duì)象的規(guī)格說明等。6.原型:面向?qū)ο蟮脑O(shè)計(jì)方法如何用于實(shí)現(xiàn)快速原型。7.應(yīng)用:將面向?qū)ο蟮脑O(shè)計(jì)方法用于商業(yè)、教育及科學(xué)等實(shí)際問題的處理中。8.其它方面:將面向?qū)ο蟮脑O(shè)計(jì)方法用到數(shù)據(jù)庫、操作系統(tǒng)、知識(shí)工程、人工智能、自然語言處理等其它領(lǐng)域。第7頁,課件共27頁,創(chuàng)作于2023年2月第二節(jié)面向?qū)ο蟮幕靖拍钜弧?duì)象1.定義對(duì)象是和有數(shù)據(jù)及可對(duì)這些數(shù)據(jù)施加的操作結(jié)合在一起所構(gòu)成的獨(dú)立單位的總稱,是具有一定知識(shí)和處理能力的獨(dú)立個(gè)體。它可以是具體的物理實(shí)體,如一個(gè)文件;也可是是人為抽象概念的,如多任務(wù)操作系統(tǒng)中的調(diào)度策略。從面向?qū)ο蟪绦蛟O(shè)計(jì)的角度看:對(duì)象是具有相同狀態(tài)的一組操作的集合。從信息模擬的角度看:對(duì)象是對(duì)問題域中某個(gè)東西的抽象,這種抽象反映了系統(tǒng)保存有關(guān)這個(gè)東西的信息和與它交互的能力,即對(duì)象是對(duì)屬性值和操作的封裝。第8頁,課件共27頁,創(chuàng)作于2023年2月第二節(jié)面向?qū)ο蟮幕靖拍顝男问交嵌瓤矗簩?duì)象::=<ID,MS,DS,MI>其中:ID是對(duì)象的標(biāo)識(shí)或名字,MS是對(duì)象中的數(shù)據(jù)集合,DS是對(duì)象中的數(shù)據(jù)結(jié)構(gòu),MI是對(duì)象受理的消息名集合。第9頁,課件共27頁,創(chuàng)作于2023年2月第二節(jié)面向?qū)ο蟮幕靖拍?.特點(diǎn)標(biāo)識(shí)唯一性:指對(duì)象是可區(qū)分的,并且由對(duì)象的內(nèi)在本質(zhì)來區(qū)分,而不是通過描述來區(qū)分。分類性:指可以將具有相同數(shù)據(jù)結(jié)構(gòu)(屬性)和行為(操作)的對(duì)象抽象成類。多態(tài)性:指同一個(gè)操作可以是不同對(duì)象的行為。封閉性:從外面看只能看到對(duì)象的外部特性,即能夠受理哪些信息,具有哪些處理能力;對(duì)象的內(nèi)部,即處理能力的實(shí)行和內(nèi)部狀態(tài),對(duì)外是不可見的。從外面不能直接使用對(duì)象的處理能力,也不能直接修改其內(nèi)部狀態(tài),對(duì)象的內(nèi)部狀態(tài)只能由其自身改變。第10頁,課件共27頁,創(chuàng)作于2023年2月第二節(jié)面向?qū)ο蟮幕靖拍顒?dòng)態(tài)產(chǎn)生性:對(duì)象是在系統(tǒng)執(zhí)行過程中根據(jù)需要而動(dòng)態(tài)產(chǎn)生的。一定的“智力”性:對(duì)象具有一定的“智力”,表現(xiàn)在能夠解釋傳來的信息,理解由消息帶來的要求,并獨(dú)立第11頁,課件共27頁,創(chuàng)作于2023年2月第二節(jié)面向?qū)ο蟮幕靖拍疃?、?.定義類是對(duì)象類的略寫,是對(duì)象的抽象,是一種對(duì)象模型,它描述了屬于該對(duì)象類型的所有對(duì)象的性質(zhì)。例如:Integer是一個(gè)整數(shù)類,它描述了所有整數(shù)的性質(zhì)。2.實(shí)現(xiàn)類是關(guān)于對(duì)象性質(zhì)的描述,包括外部特性和內(nèi)部實(shí)現(xiàn)兩個(gè)方面。類通過描述消息模式及其相應(yīng)的處理能力定義類的外部屬性,通過描述內(nèi)部狀態(tài)的表現(xiàn)形式及固有處理能力的實(shí)現(xiàn)定義類的內(nèi)部實(shí)現(xiàn)。第12頁,課件共27頁,創(chuàng)作于2023年2月類的實(shí)現(xiàn)圖示消息模式1:處理能力1
……消息模式n:處理能力n消息模式1
處理能力1的實(shí)現(xiàn)
……消息模式n
處理能力n的實(shí)現(xiàn)內(nèi)部狀態(tài)的表現(xiàn)形式外部特性內(nèi)部實(shí)現(xiàn)第13頁,課件共27頁,創(chuàng)作于2023年2月第二節(jié)面向?qū)ο蟮幕靖拍?.父類、子類、超類父類:一個(gè)類的上層是父類。子類:一個(gè)類的下層是子類。超類:如果C2是C1的子類,C3是C2的子類,則C1是C3的超類。4.描述類名
屬性、方法等
第14頁,課件共27頁,創(chuàng)作于2023年2月第二節(jié)面向?qū)ο蟮幕靖拍钊?、?shí)例實(shí)例是某個(gè)具體類所描述的一個(gè)具體對(duì)象。例如:“張三”、“李四”是類“中國人”的實(shí)例。對(duì)象既可以是一個(gè)具體的對(duì)象,也可以泛指一般的對(duì)象;而實(shí)例只能是一個(gè)具體的對(duì)象。第15頁,課件共27頁,創(chuàng)作于2023年2月第二節(jié)面向?qū)ο蟮幕靖拍钏?、消息消息是用來?qǐng)求對(duì)象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。通常一個(gè)消息由三部分組成:接收消息的對(duì)象消息標(biāo)識(shí)符(即消息名)零個(gè)或多個(gè)變?cè)纾篗yCircle.Show(Green)MyCircle是接收消息的對(duì)象的名字,Show是消息名,Green是消息的變?cè)?。?6頁,課件共27頁,創(chuàng)作于2023年2月第二節(jié)面向?qū)ο蟮幕靖拍钊绾我髮?duì)象完成一定的處理動(dòng)作?對(duì)象間如何進(jìn)行聯(lián)系?所有這一切都只能通過消息傳遞來實(shí)現(xiàn)。傳遞消息的對(duì)象稱為發(fā)送者,接受消息的對(duì)象稱為接受者。消息中只包含傳遞者的要求,它告訴接受者需要哪些處理,但并不指示接受者應(yīng)該怎樣完成這些處理。消息完全由接受者解釋,接受者獨(dú)立決定采用什么方式完成所需的處理,發(fā)送者對(duì)接受者不起任何控制作用。一個(gè)對(duì)象能夠接受不同形式、不同內(nèi)容的多個(gè)消息;相同形式的消息可以送往不同的對(duì)象,不同的對(duì)象對(duì)于形式不同的消息可以有不同的解釋,能夠做出不同的反映。一個(gè)對(duì)象可以同時(shí)往多個(gè)對(duì)象傳遞信息,兩個(gè)對(duì)象也可以同時(shí)向某個(gè)對(duì)象傳遞消息。第17頁,課件共27頁,創(chuàng)作于2023年2月第二節(jié)面向?qū)ο蟮幕靖拍钗?、屬性屬性是類中?duì)象所具有的數(shù)據(jù)值。如對(duì)象Person的屬性有姓名、年齡、體重等。不同對(duì)象的同一屬性可以具有相同或不同的屬性值。如張三的年齡為19,李四的年齡為20。張三、李四是兩個(gè)不同的對(duì)象,他們共同屬性“年齡”的值不同。屬性值應(yīng)該指的是純粹的數(shù)據(jù)值,而不能指對(duì)象。屬性表示在類圖中的第二部分。每個(gè)屬性名后均可附加一些說明,諸如類型和缺省值之類。第18頁,課件共27頁,創(chuàng)作于2023年2月第二節(jié)面向?qū)ο蟮幕靖拍盍⒉僮骱头椒▽?duì)象所能執(zhí)行的操作稱為方法,也就是類中所定義的服務(wù)。方法描述了對(duì)象執(zhí)行操作的算法、響應(yīng)消息的操作。每個(gè)操作都有一目標(biāo)對(duì)象作為其隱含參數(shù),操作的行為取決于其目標(biāo)對(duì)象所歸屬的類。對(duì)象“知道”其所歸屬的類,所以能正確地實(shí)現(xiàn)該操作。同一操作可適用于不同的類。操作的多態(tài)性指的是在不同的類中,同一操作的形式不同。第19頁,課件共27頁,創(chuàng)作于2023年2月第二節(jié)面向?qū)ο蟮幕靖拍钇摺⒗^承性廣義地說,繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義它們。在面向?qū)ο笾?,繼承是子類自動(dòng)地共享基類中定義的數(shù)據(jù)和方法的機(jī)制。父類:類的上層子類:類的下層第20頁,課件共27頁,創(chuàng)作于2023年2月第二節(jié)面向?qū)ο蟮幕靖拍預(yù)的操作A的變量類A類AA的實(shí)例變量A的實(shí)例a1從A繼承特性B的操作B的變量類B:A的子類類B繼承來的A的實(shí)例變量B的實(shí)例變量B的實(shí)例b1實(shí)現(xiàn)繼承機(jī)制的原理第21頁,課件共27頁,創(chuàng)作于2023年2月第二節(jié)面向?qū)ο蟮幕靖拍罾^承具有傳遞性如果類C繼承類B,類B繼承類A,則類C繼承類A。單繼承與多繼承單繼承:一個(gè)類只允許有一個(gè)父類,即類等級(jí)為樹形結(jié)構(gòu)。多繼承:一個(gè)類允許有多個(gè)父類第22頁,課件共27頁,創(chuàng)作于2023年2月第二節(jié)面向?qū)ο蟮幕靖拍罾^承性的優(yōu)點(diǎn)共享程序代碼和數(shù)據(jù)結(jié)構(gòu),大大減少程序中的冗余信息,提高軟件的可重用性。便于軟件修改維護(hù)。當(dāng)需要擴(kuò)充原有的功能時(shí),派生類的方法可以調(diào)用其基類的方法,并在此基礎(chǔ)上增加必要的程序代碼;當(dāng)需要完全改變?cè)械乃惴〞r(shí),可以在派生類中實(shí)現(xiàn)一個(gè)與基類方法同名而算法不同的方法;當(dāng)需要增加新的功能時(shí),可以在派生類中實(shí)現(xiàn)一個(gè)新的方法。“站在巨人的肩頭上”。用戶在開發(fā)新系統(tǒng)時(shí)不必從零開始,可以繼承原有相似功能或者從類庫中選取需要的類,再派生新類。第23頁,課件共27頁,創(chuàng)作于2023年2月第二節(jié)面向?qū)ο蟮幕靖拍畎?、多態(tài)性對(duì)象根據(jù)所接受的消息而做出動(dòng)作,同樣的消息為不同的對(duì)象接受時(shí)可導(dǎo)致完全不同的行動(dòng),該現(xiàn)象稱為多態(tài)性。利用多態(tài)性,用戶能夠發(fā)送一般形式的消息,而將所有的實(shí)現(xiàn)細(xì)節(jié)都留給接受消息的對(duì)象。優(yōu)點(diǎn):多態(tài)性機(jī)制增加了面向?qū)ο筌浖到y(tǒng)的靈活性,進(jìn)一步減少了信息冗余。顯著提高軟件的可重用性和可擴(kuò)展性。第24頁,課件共27頁,創(chuàng)作于2023年2月第二節(jié)面向?qū)ο蟮幕靖拍罹拧⒅剌d函數(shù)重載是指在同一作用域內(nèi)的若干個(gè)參數(shù)特征不同的函數(shù)可以使用相同的函數(shù)名字。運(yùn)算符重載是指同一個(gè)運(yùn)算符可以施加于不同類型的操作數(shù)上面。優(yōu)點(diǎn):重載進(jìn)一步提高了面向?qū)ο笙到y(tǒng)的靈活性和可讀性。第25頁,課件共27頁,創(chuàng)作于2023年2月第二節(jié)面向?qū)ο蟮幕靖?/p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國外熱式回轉(zhuǎn)窯數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國可可杯封口機(jī)數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國半波調(diào)速開關(guān)數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國保險(xiǎn)套數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國4寸單把面盆龍頭連去水?dāng)?shù)據(jù)監(jiān)測研究報(bào)告
- 2025年中國船舶用蓄電池市場調(diào)查研究報(bào)告
- 2025年中國筒子架總成市場調(diào)查研究報(bào)告
- 2025年中國真空感應(yīng)電爐市場調(diào)查研究報(bào)告
- 溫泉度假村旅行社合作合同范本
- 公司解散股東協(xié)議書范本
- 三晉卓越聯(lián)盟·山西省2024-2025學(xué)年度高三9月質(zhì)量檢測+語文試卷
- 《那一刻我長大了》習(xí)作課件
- 教科版小學(xué)科學(xué)六年級(jí)上冊(cè)期末考試試卷(含答案)
- 父母買房在子女名下協(xié)議書范本
- DBJ15 31-2016建筑地基基礎(chǔ)設(shè)計(jì)規(guī)范(廣東省標(biāo)準(zhǔn))
- 高危新生兒管理專家共識(shí)解讀
- 《紡織服裝材料》課件-0緒論
- 盤扣式卸料平臺(tái)施工方案
- 繪本故事在小學(xué)道德與法治課堂中的有效教學(xué)策略分析
- 2024核桃樹承包合同
- 保險(xiǎn)授權(quán)書格式模板
評(píng)論
0/150
提交評(píng)論