UML及軟件建模_第1頁(yè)
UML及軟件建模_第2頁(yè)
UML及軟件建模_第3頁(yè)
UML及軟件建模_第4頁(yè)
UML及軟件建模_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

1、Page 1UMLUML及軟件建模及軟件建模主講人主講人 :李 唯Page 2第一章第一章 理解面向?qū)ο罄斫饷嫦驅(qū)ο?n如何理解面向?qū)ο笏季S方式如何理解面向?qū)ο笏季S方式 n一些面向?qū)ο蟮母拍钜恍┟嫦驅(qū)ο蟮母拍頽對(duì)象如何與其他對(duì)象關(guān)聯(lián)對(duì)象如何與其他對(duì)象關(guān)聯(lián) Page 3對(duì)象(對(duì)象(object),無(wú)論是具體的還是抽象的,遍布于我們的周圍,它),無(wú)論是具體的還是抽象的,遍布于我們的周圍,它們組成了整個(gè)世界。程序通常也要模擬現(xiàn)實(shí)世界中的對(duì)象。們組成了整個(gè)世界。程序通常也要模擬現(xiàn)實(shí)世界中的對(duì)象。首先最重要的,對(duì)象是一個(gè)類(種類)的實(shí)例。例如你和我都是首先最重要的,對(duì)象是一個(gè)類(種類)的實(shí)例。例如你和我

2、都是Person這這個(gè)類的實(shí)例,那么其中,你和我就是對(duì)象,而個(gè)類的實(shí)例,那么其中,你和我就是對(duì)象,而Person則是一個(gè)類。對(duì)象是則是一個(gè)類。對(duì)象是系統(tǒng)中用來(lái)描述客觀事務(wù)的一個(gè)實(shí)體,具有自身的結(jié)構(gòu)(系統(tǒng)中用來(lái)描述客觀事務(wù)的一個(gè)實(shí)體,具有自身的結(jié)構(gòu)(Structure),),也就是說(shuō),它具有也就是說(shuō),它具有屬性屬性(特性特性)和和行為行為。對(duì)象的行為包括它所能執(zhí)行的操。對(duì)象的行為包括它所能執(zhí)行的操作。屬性和操作合起來(lái)被稱為特征。作。屬性和操作合起來(lái)被稱為特征。如何理解面向?qū)ο笏季S方式如何理解面向?qū)ο笏季S方式? ?對(duì)象只描述客觀事物本質(zhì)的、與系統(tǒng)目標(biāo)有關(guān)的特征,而不考慮那些非本對(duì)象只描述客觀事物本

3、質(zhì)的、與系統(tǒng)目標(biāo)有關(guān)的特征,而不考慮那些非本質(zhì)的、與系統(tǒng)目標(biāo)無(wú)關(guān)的特征。質(zhì)的、與系統(tǒng)目標(biāo)無(wú)關(guān)的特征。Page 4類(類(ClassClass)是具有相同的屬性和方法的一組對(duì)象的集合,它為屬于該類的全)是具有相同的屬性和方法的一組對(duì)象的集合,它為屬于該類的全部對(duì)象提供了統(tǒng)一的對(duì)象描述。部對(duì)象提供了統(tǒng)一的對(duì)象描述。同類對(duì)象具有相同的屬性和方法,是指它們的定義形式相同,而不是說(shuō)每個(gè)對(duì)象的屬性值同類對(duì)象具有相同的屬性和方法,是指它們的定義形式相同,而不是說(shuō)每個(gè)對(duì)象的屬性值相同。相同。讓我們?cè)贂?huì)到洗衣機(jī)的例子。如果指定洗衣機(jī)類具有讓我們?cè)贂?huì)到洗衣機(jī)的例子。如果指定洗衣機(jī)類具有 brandNamebran

4、dNamemodelNamemodelNameserialNameserialName和和capacitycapacity等屬性,還有等屬性,還有acceptClothes()acceptClothes()acceptDetergent()acceptDetergent()turnOnturnOn() ()和和turnoff()turnoff()等操作等操作的話,你就有了制造的話,你就有了制造WashingMachinaWashingMachina類新實(shí)例的機(jī)制。也就是說(shuō),可以基類新實(shí)例的機(jī)制。也就是說(shuō),可以基于洗衣機(jī)這個(gè)類創(chuàng)建新的對(duì)象。于洗衣機(jī)這個(gè)類創(chuàng)建新的對(duì)象。記住面向?qū)ο蟮哪繕?biāo)是開(kāi)發(fā)出能

5、夠反映現(xiàn)實(shí)世界某個(gè)特定片段的軟件(或者說(shuō)記住面向?qū)ο蟮哪繕?biāo)是開(kāi)發(fā)出能夠反映現(xiàn)實(shí)世界某個(gè)特定片段的軟件(或者說(shuō)是是“建模建?!保?。你考慮到的屬性和行為越多,你所建立的模型就越符合實(shí)際。)。你考慮到的屬性和行為越多,你所建立的模型就越符合實(shí)際。在洗衣機(jī)的例子中,如果你在洗衣機(jī)類中包括在洗衣機(jī)的例子中,如果你在洗衣機(jī)類中包括drumVolumedrumVolume( (洗滌缸容量洗滌缸容量) )trap(水閥)(水閥)motormotor(馬達(dá))(馬達(dá))motorSpeedmotorSpeed( (馬達(dá)轉(zhuǎn)速馬達(dá)轉(zhuǎn)速) )等屬性的話,洗等屬性的話,洗衣機(jī)模型就更精確。衣機(jī)模型就更精確。在面向?qū)ο蟮氖澜?/p>

6、里,類除了起到分類的作用外,類還是用來(lái)創(chuàng)建對(duì)象的模板在面向?qū)ο蟮氖澜缋?,類除了起到分類的作用外,類還是用來(lái)創(chuàng)建對(duì)象的模板。如可以把類看成是加工小甜餅的模子,你可以用來(lái)壓出新的小甜餅對(duì)象。如可以把類看成是加工小甜餅的模子,你可以用來(lái)壓出新的小甜餅對(duì)象。Page 5一些面向?qū)ο蟮母拍钜恍┟嫦驅(qū)ο蟮母拍蠲嫦驅(qū)ο筮€包含對(duì)象的其它方面,這些方面包括面向?qū)ο筮€包含對(duì)象的其它方面,這些方面包括抽象(抽象(abstraction)繼承(繼承(inheritance)多態(tài)(多態(tài)(polymorphism)封裝(封裝(encapsulation)其他三種重要面向?qū)ο蟾拍钍瞧渌N重要面向?qū)ο蟾拍钍窍鬟f消息傳遞

7、(message sending)關(guān)聯(lián)(關(guān)聯(lián)(association)聚集(聚集(aggregation)Page 6抽象抽象的意思就是過(guò)濾掉對(duì)象的一部分特性和操作直到只剩下你所需要的的意思就是過(guò)濾掉對(duì)象的一部分特性和操作直到只剩下你所需要的屬性和操作。屬性和操作。抽象是人類認(rèn)識(shí)問(wèn)題的最基本手段之一。抽象是人類認(rèn)識(shí)問(wèn)題的最基本手段之一。在面向?qū)ο蠓椒ㄖ械某橄?,是在面向?qū)ο蠓椒ㄖ械某橄?,是指?duì)具體的問(wèn)題(對(duì)象)進(jìn)行概括,抽出一類對(duì)象的公共性質(zhì)并加以描指對(duì)具體的問(wèn)題(對(duì)象)進(jìn)行概括,抽出一類對(duì)象的公共性質(zhì)并加以描述的過(guò)程。述的過(guò)程。例如你的洗衣機(jī)包括什么,不包括什么,在做出這樣的決策后所保留的例如

8、你的洗衣機(jī)包括什么,不包括什么,在做出這樣的決策后所保留的部分就是對(duì)洗衣機(jī)的抽象。部分就是對(duì)洗衣機(jī)的抽象。一些權(quán)威人士認(rèn)為抽象對(duì)于建模者來(lái)說(shuō)是最重要的技術(shù),也就是說(shuō)要搞一些權(quán)威人士認(rèn)為抽象對(duì)于建模者來(lái)說(shuō)是最重要的技術(shù),也就是說(shuō)要搞清楚什么應(yīng)該納入模型中,什么應(yīng)該舍去。清楚什么應(yīng)該納入模型中,什么應(yīng)該舍去。 一般來(lái)講,對(duì)一個(gè)問(wèn)題的抽象應(yīng)該包括兩個(gè)方面:一般來(lái)講,對(duì)一個(gè)問(wèn)題的抽象應(yīng)該包括兩個(gè)方面:1、數(shù)據(jù)抽象:描述某類對(duì)象的屬性或狀態(tài),也就是此類對(duì)象區(qū)別于彼、數(shù)據(jù)抽象:描述某類對(duì)象的屬性或狀態(tài),也就是此類對(duì)象區(qū)別于彼類對(duì)象的特征。類對(duì)象的特征。2、行為抽象、行為抽象(功能抽象):描述的是某類對(duì)象的

9、共同行為或功能特征(功能抽象):描述的是某類對(duì)象的共同行為或功能特征。抽象(抽象(abstractionabstraction)Page 7繼承繼承 (inheritance)每個(gè)消費(fèi)類電子產(chǎn)品的子類(手機(jī)每個(gè)消費(fèi)類電子產(chǎn)品的子類(手機(jī)電視機(jī)電視機(jī)電子詞典等等)都繼承了電子詞典等等)都繼承了消費(fèi)類電子產(chǎn)品的特征,在面向?qū)ο蟾拍钪?,這種超類消費(fèi)類電子產(chǎn)品消費(fèi)類電子產(chǎn)品的特征,在面向?qū)ο蟾拍钪?,這種超類消費(fèi)類電子產(chǎn)品與其子類的關(guān)系就是繼承。注意每個(gè)子類都增加了自己的屬性和操作。與其子類的關(guān)系就是繼承。注意每個(gè)子類都增加了自己的屬性和操作。利用繼承,子類可以繼承父類的屬性和方法,在一些文獻(xiàn)里,往往把

10、子利用繼承,子類可以繼承父類的屬性和方法,在一些文獻(xiàn)里,往往把子類類/ /父類稱作特殊類父類稱作特殊類/ /一般類、子類一般類、子類/ /超類、派生類超類、派生類/ /基類?;?。繼承增加了軟件重用的機(jī)會(huì),可以降低軟件的開(kāi)發(fā)和維護(hù)費(fèi)用,而繼承是繼承增加了軟件重用的機(jī)會(huì),可以降低軟件的開(kāi)發(fā)和維護(hù)費(fèi)用,而繼承是OOOO技術(shù)和非技術(shù)和非OOOO技術(shù)的一個(gè)很明顯的區(qū)別。技術(shù)的一個(gè)很明顯的區(qū)別。利用繼承可以開(kāi)發(fā)更貼近現(xiàn)實(shí)的模型,使得模型更簡(jiǎn)潔。利用繼承可以開(kāi)發(fā)更貼近現(xiàn)實(shí)的模型,使得模型更簡(jiǎn)潔。繼承的另一個(gè)好處是可以保證類之間的一致性,父類可以為所有的子類定繼承的另一個(gè)好處是可以保證類之間的一致性,父類可

11、以為所有的子類定制規(guī)則。制規(guī)則。Page 8單繼承和多繼承單繼承和多繼承n單繼承:子類只從一個(gè)父類繼承單繼承:子類只從一個(gè)父類繼承n多繼承:子類只從一個(gè)父類繼承多繼承:子類只從一個(gè)父類繼承交通工具交通工具水上交通水上交通工具工具陸地交通陸地交通工具工具水陸兩用交水陸兩用交通工具通工具陸地交通陸地交通工具工具水上交通水上交通工具工具單繼承單繼承多繼承多繼承Page 9多態(tài)性多態(tài)性 (polymorphism)n有時(shí)不同的類具有相同名稱的操作。在面向?qū)ο笾?,每個(gè)類都能夠自己有時(shí)不同的類具有相同名稱的操作。在面向?qū)ο笾?,每個(gè)類都能夠自己“知道知道” 如何執(zhí)行自己的打開(kāi)操作,這就叫做多態(tài)性如何執(zhí)行自己

12、的打開(kāi)操作,這就叫做多態(tài)性。n在面向在面向?qū)ο蟮氖澜缋铮鄳B(tài)是對(duì)人類思維方式的一種直接模擬,是指一個(gè)實(shí)體對(duì)象的世界里,多態(tài)是對(duì)人類思維方式的一種直接模擬,是指一個(gè)實(shí)體 在不同的上下文條件下具有不同的意義或用法能力。在不同的上下文條件下具有不同的意義或用法能力。例如你可以例如你可以 打開(kāi)一扇門(mén)打開(kāi)一扇門(mén) 打開(kāi)一扇窗打開(kāi)一扇窗打開(kāi)報(bào)紙打開(kāi)報(bào)紙打開(kāi)一件禮物打開(kāi)一件禮物打開(kāi)銀行帳號(hào)打開(kāi)銀行帳號(hào)甚至打甚至打 開(kāi)一段對(duì)開(kāi)一段對(duì) 話。話。Page 10 封封 裝裝 (encapsulation)封裝:把對(duì)象的屬性和方法結(jié)合成一個(gè)獨(dú)立的系統(tǒng)單位,并盡封裝:把對(duì)象的屬性和方法結(jié)合成一個(gè)獨(dú)立的系統(tǒng)單位,并盡可能地

13、隱藏對(duì)象的內(nèi)部細(xì)節(jié)??赡艿仉[藏對(duì)象的內(nèi)部細(xì)節(jié)。當(dāng)一個(gè)對(duì)象執(zhí)行自己的操作時(shí),它對(duì)外界隱藏了操作的細(xì)節(jié)。當(dāng)一個(gè)對(duì)象執(zhí)行自己的操作時(shí),它對(duì)外界隱藏了操作的細(xì)節(jié)。封裝使一個(gè)對(duì)象形成兩個(gè)部分:接口部分和實(shí)現(xiàn)部分。對(duì)于用封裝使一個(gè)對(duì)象形成兩個(gè)部分:接口部分和實(shí)現(xiàn)部分。對(duì)于用戶來(lái)說(shuō),接口部分是可見(jiàn)的,而實(shí)現(xiàn)部分是不可見(jiàn)的戶來(lái)說(shuō),接口部分是可見(jiàn)的,而實(shí)現(xiàn)部分是不可見(jiàn)的封裝提供了兩種保護(hù):封裝提供了兩種保護(hù):首先,封裝可以保護(hù)對(duì)象,防止用戶直接存取對(duì)象的內(nèi)部細(xì)節(jié);首先,封裝可以保護(hù)對(duì)象,防止用戶直接存取對(duì)象的內(nèi)部細(xì)節(jié);其次,封裝也保護(hù)了客戶端,防止對(duì)象實(shí)現(xiàn)部分的變化可能會(huì)產(chǎn)其次,封裝也保護(hù)了客戶端,防止對(duì)象實(shí)現(xiàn)

14、部分的變化可能會(huì)產(chǎn)生的副作用,即實(shí)現(xiàn)部分的改變不會(huì)影響到相應(yīng)的客戶端的改變生的副作用,即實(shí)現(xiàn)部分的改變不會(huì)影響到相應(yīng)的客戶端的改變Page 11消息傳遞消息傳遞(message sending)(message sending)面向?qū)ο蠓椒ǖ囊粋€(gè)原則就是通過(guò)消息進(jìn)行對(duì)象之間的通信,一個(gè)對(duì)象發(fā)送一個(gè)面向?qū)ο蠓椒ǖ囊粋€(gè)原則就是通過(guò)消息進(jìn)行對(duì)象之間的通信,一個(gè)對(duì)象發(fā)送一個(gè)操作消息(或請(qǐng)求)給令一個(gè)對(duì)象,接收消息的對(duì)象就執(zhí)行這個(gè)操作。操作消息(或請(qǐng)求)給令一個(gè)對(duì)象,接收消息的對(duì)象就執(zhí)行這個(gè)操作。消息(消息(Message):就是向?qū)ο蟀l(fā)出的服務(wù)請(qǐng)求,它包括了提供服務(wù)的對(duì)象標(biāo)識(shí)):就是向?qū)ο蟀l(fā)出的服務(wù)請(qǐng)

15、求,它包括了提供服務(wù)的對(duì)象標(biāo)識(shí)、服務(wù)(方法)標(biāo)識(shí)、輸入信息和回答信息等。、服務(wù)(方法)標(biāo)識(shí)、輸入信息和回答信息等。大家往往把消息等同于函數(shù)調(diào)用,事實(shí)上兩者之間存在區(qū)別。消息可以包括同步大家往往把消息等同于函數(shù)調(diào)用,事實(shí)上兩者之間存在區(qū)別。消息可以包括同步消息和異步消息,如果消息是異步的,則一個(gè)對(duì)象發(fā)送消息后,就繼續(xù)自己的活消息和異步消息,如果消息是異步的,則一個(gè)對(duì)象發(fā)送消息后,就繼續(xù)自己的活動(dòng),不等消息接收者返回控制,而函數(shù)調(diào)用往往是同步的,消息的發(fā)送者要等待動(dòng),不等消息接收者返回控制,而函數(shù)調(diào)用往往是同步的,消息的發(fā)送者要等待接收者返回值。接收者返回值。Page 12關(guān)聯(lián)(關(guān)聯(lián)( associationassociation )關(guān)聯(lián):對(duì)象之間以某種方式發(fā)生聯(lián)系。關(guān)聯(lián):對(duì)象之間以某種方式發(fā)生聯(lián)系。多向關(guān)聯(lián)多向關(guān)聯(lián)單向關(guān)聯(lián)單向關(guān)聯(lián)多種方式的關(guān)聯(lián)多種方式的關(guān)聯(lián)一個(gè)類和其它的多個(gè)類關(guān)聯(lián)一個(gè)類和其它的多個(gè)類關(guān)聯(lián)多重性(多重性

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論