2.1-軟件工程導(dǎo)論ppt課件_第1頁
2.1-軟件工程導(dǎo)論ppt課件_第2頁
2.1-軟件工程導(dǎo)論ppt課件_第3頁
2.1-軟件工程導(dǎo)論ppt課件_第4頁
2.1-軟件工程導(dǎo)論ppt課件_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、軟件工程導(dǎo)論主講教師 吳開軍面向?qū)ο蟮拈_發(fā)方法 第一節(jié) 面向?qū)ο蟾攀?第二節(jié) 面向?qū)ο蟮幕靖拍?第三節(jié) 面向?qū)ο蠓治?第四節(jié) 面向?qū)ο笤O(shè)計(jì) 第五節(jié) 面向?qū)ο髮?shí)現(xiàn)第一節(jié) 面向?qū)ο蟾攀鲆?、發(fā)展概述面向?qū)ο蟛⒎鞘且粋€(gè)新的概念,實(shí)際上它已有30多年的歷史。尋其根源可追溯到60年代的挪威,當(dāng)時(shí)挪威計(jì)算中心的Kristen Nygaard和Ole-Johan Dahl開發(fā)了一種稱作Simula67的語言。Simula67首次引入了類、協(xié)同程序和子類的概念,這很象今天的面向?qū)ο笳Z言。70年代中期,Xerox Palo Alto研究中心的研究人員設(shè)計(jì)了Smalltalk語言,該語言的每個(gè)元素都被當(dāng)作一個(gè)對象

2、來實(shí)現(xiàn),其程序設(shè)計(jì)環(huán)境及相關(guān)的各個(gè)方面都是面向?qū)ο蟮?。第一?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)室的Bjarne Stroustrup把C語言擴(kuò)展為支持面向?qū)ο蟪绦蛟O(shè)計(jì)的C+。在C+中,程序員可以在其熟悉的語言環(huán)境下學(xué)習(xí)掌握面向?qū)ο蟮某绦蛟O(shè)計(jì)技術(shù),而不必去探究一種新的語言和環(huán)境。第

3、一節(jié) 面向?qū)ο蟾攀?自90年代以來,軟件與硬件之間的差距至少有兩代處理器之多,并且這種差距還在增大。當(dāng)軟件系統(tǒng)變得更加復(fù)雜時(shí),常規(guī)軟件工具、技術(shù)和概念已不足以應(yīng)付,從而使軟件開發(fā)者陷入了困境。但面向?qū)ο蟮姆椒軌蚩刂栖浖膹?fù)雜性,從而促進(jìn)了面向?qū)ο蟮陌l(fā)展,掀起了一股“面向?qū)ο鬅帷5谝还?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

4、.實(shí)現(xiàn):包括體系結(jié)構(gòu)的支撐、編譯與解釋、其它特殊技術(shù)等。4.環(huán)境:包括面向?qū)ο蟮能浖_發(fā)環(huán)境的設(shè)計(jì)與實(shí)現(xiàn)。第一節(jié) 面向?qū)ο蟾攀?.重用:為了實(shí)現(xiàn)重用,需要研究對象的規(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)、知識工程、人工智能、自然語言處理等其它領(lǐng)域。第二節(jié) 面向?qū)ο蟮幕靖拍钜?、對?.定義對象是和有數(shù)據(jù)及可對這些數(shù)據(jù)施加的操作結(jié)合在一起所構(gòu)成的獨(dú)立單位的總稱,是具有一定知識和處理能力的獨(dú)立個(gè)體。它可以是具體的物理實(shí)體,如一個(gè)文件;也可是是人為抽象概

5、念的,如多任務(wù)操作系統(tǒng)中的調(diào)度策略。從面向?qū)ο蟪绦蛟O(shè)計(jì)的角度看:對象是具有相同狀態(tài)的一組操作的集合。從信息模擬的角度看:對象是對問題域中某個(gè)東西的抽象,這種抽象反映了系統(tǒng)保存有關(guān)這個(gè)東西的信息和與它交互的能力,即對象是對屬性值和操作的封裝。第二節(jié) 面向?qū)ο蟮幕靖拍?從形式化角度看: 對象:= 其中:ID是對象的標(biāo)識或名字,MS是對象中的數(shù)據(jù)集合,DS是對象中的數(shù)據(jù)結(jié)構(gòu),MI是對象受理的消息名集合。第二節(jié) 面向?qū)ο蟮幕靖拍?.特點(diǎn)標(biāo)識唯一性:指對象是可區(qū)分的,并且由對象的內(nèi)在本質(zhì)來區(qū)分,而不是通過描述來區(qū)分。分類性:指可以將具有相同數(shù)據(jù)結(jié)構(gòu)屬性和行為操作的對象抽象成類。多態(tài)性:指同一個(gè)操作可

6、以是不同對象的行為。封閉性:從外面看只能看到對象的外部特性,即能夠受理哪些信息,具有哪些處理能力;對象的內(nèi)部,即處理能力的實(shí)行和內(nèi)部狀態(tài),對外是不可見的。從外面不能直接使用對象的處理能力,也不能直接修改其內(nèi)部狀態(tài),對象的內(nèi)部狀態(tài)只能由其自身改變。第二節(jié) 面向?qū)ο蟮幕靖拍?動態(tài)產(chǎn)生性:對象是在系統(tǒng)執(zhí)行過程中根據(jù)需要而動態(tài)產(chǎn)生的。 一定的“智力性:對象具有一定的“智力”,表現(xiàn)在能夠解釋傳來的信息,理解由消息帶來的要求,并獨(dú)立第二節(jié) 面向?qū)ο蟮幕靖拍疃?、?.定義類是對象類的略寫,是對象的抽象,是一種對象模型,它描述了屬于該對象類型的所有對象的性質(zhì)。例如:Integer是一個(gè)整數(shù)類,它描述了所有

7、整數(shù)的性質(zhì)。2.實(shí)現(xiàn)類是關(guān)于對象性質(zhì)的描述,包括外部特性和內(nèi)部實(shí)現(xiàn)兩個(gè)方面。類通過描述消息模式及其相應(yīng)的處理能力定義類的外部屬性,通過描述內(nèi)部狀態(tài)的表現(xiàn)形式及固有處理能力的實(shí)現(xiàn)定義類的內(nèi)部實(shí)現(xiàn)。類的實(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)第二節(jié) 面向?qū)ο蟮幕靖拍?.父類、子類、超類父類:一個(gè)類的上層是父類。子類:一個(gè)類的下層是子類。超類:如果C2是C1的子類,C3是C2的子類,則C1是C3的超類。4.描繪類名屬性、方法等第二節(jié) 面向?qū)ο蟮幕靖拍钊?、?shí)例實(shí)例是某個(gè)具體類所描述的一個(gè)具體對象。

8、例如:“張三”、“李四是類“中國人的實(shí)例。對象既可以是一個(gè)具體的對象,也可以泛指一般的對象;而實(shí)例只能是一個(gè)具體的對象。第二節(jié) 面向?qū)ο蟮幕靖拍钏摹⑾⑾⑹怯脕碚埱髮ο髨?zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。通常一個(gè)消息由三部分組成:接收消息的對象消息標(biāo)識符即消息名)零個(gè)或多個(gè)變元例如:MyCircle.Show(Green)MyCircle是接收消息的對象的名字,Show是消息名,Green是消息的變元。第二節(jié) 面向?qū)ο蟮幕靖拍?如何要求對象完成一定的處理動作?對象間如何進(jìn)行聯(lián)系?所有這一切都只能通過消息傳遞來實(shí)現(xiàn)。 傳遞消息的對象稱為發(fā)送者,接受消息的對象稱為接受者

9、。消息中只包含傳遞者的要求,它告訴接受者需要哪些處理,但并不指示接受者應(yīng)該怎樣完成這些處理。消息完全由接受者解釋,接受者獨(dú)立決定采用什么方式完成所需的處理,發(fā)送者對接受者不起任何控制作用。一個(gè)對象能夠接受不同形式、不同內(nèi)容的多個(gè)消息;相同形式的消息可以送往不同的對象,不同的對象對于形式不同的消息可以有不同的解釋,能夠做出不同的反映。一個(gè)對象可以同時(shí)往多個(gè)對象傳遞信息,兩個(gè)對象也可以同時(shí)向某個(gè)對象傳遞消息。第二節(jié) 面向?qū)ο蟮幕靖拍钗濉傩詫傩允穷愔袑ο笏哂械臄?shù)據(jù)值。如對象Person的屬性有姓名、年齡、體重等。不同對象的同一屬性可以具有相同或不同的屬性值。如張三的年齡為19,李四的年齡為20

10、。張三、李四是兩個(gè)不同的對象,他們共同屬性“年齡的值不同。屬性值應(yīng)該指的是純粹的數(shù)據(jù)值,而不能指對象。屬性表示在類圖中的第二部分。每個(gè)屬性名后均可附加一些說明,諸如類型和缺省值之類。第二節(jié) 面向?qū)ο蟮幕靖拍盍⒉僮骱头椒▽ο笏軋?zhí)行的操作稱為方法,也就是類中所定義的服務(wù)。方法描述了對象執(zhí)行操作的算法、響應(yīng)消息的操作。每個(gè)操作都有一目標(biāo)對象作為其隱含參數(shù),操作的行為取決于其目標(biāo)對象所歸屬的類。對象“曉得其所歸屬的類,所以能正確地實(shí)現(xiàn)該操作。同一操作可適用于不同的類。操作的多態(tài)性指的是在不同的類中,同一操作的形式不同。第二節(jié) 面向?qū)ο蟮幕靖拍钇?、繼承性廣義地說,繼承是指能夠直接獲得已有的性質(zhì)和

11、特征,而不必重復(fù)定義它們。在面向?qū)ο笾校^承是子類自動地共享基類中定義的數(shù)據(jù)和方法的機(jī)制。父類:類的上層子類:類的下層第二節(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ī)制的原理第二節(jié) 面向?qū)ο蟮幕靖拍?繼承具有傳遞性 如果類C繼承類B,類B繼承類A,則類C繼承類A。 單繼承與多繼承 單繼承:一個(gè)類只允許有一個(gè)父類,即類等級為樹形結(jié)構(gòu)。 多繼承:一個(gè)類允許有多個(gè)父類第二節(jié) 面向?qū)ο蟮幕靖拍?繼承性的優(yōu)點(diǎn) 共享程序代碼和數(shù)據(jù)結(jié)構(gòu),大大減少程序中的冗余信息,提高軟件的可重用

12、性。 便于軟件修改維護(hù)。當(dāng)需要擴(kuò)充原有的功能時(shí),派生類的方法可以調(diào)用其基類的方法,并在此基礎(chǔ)上增加必要的程序代碼;當(dāng)需要完全改變原有的算法時(shí),可以在派生類中實(shí)現(xiàn)一個(gè)與基類方法同名而算法不同的方法;當(dāng)需要增加新的功能時(shí),可以在派生類中實(shí)現(xiàn)一個(gè)新的方法。 “站在巨人的肩頭上”。用戶在開發(fā)新系統(tǒng)時(shí)不必從零開始,可以繼承原有相似功能或者從類庫中選取需要的類,再派生新類。第二節(jié) 面向?qū)ο蟮幕靖拍畎?、多態(tài)性對象根據(jù)所接受的消息而做出動作,同樣的消息為不同的對象接受時(shí)可導(dǎo)致完全不同的行動,該現(xiàn)象稱為多態(tài)性。利用多態(tài)性,用戶能夠發(fā)送一般形式的消息,而將所有的實(shí)現(xiàn)細(xì)節(jié)都留給接受消息的對象。優(yōu)點(diǎn):多態(tài)性機(jī)制增加了面向?qū)ο筌浖到y(tǒng)的靈活性,進(jìn)一步減少了信息冗余。顯著提高軟件的可重用性和可擴(kuò)展性。第二節(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)的靈活性和可讀性

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論