




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章面向?qū)ο笈cUMLChapter
4Object-Oriented
&
UML1軟件工程4.1
面向?qū)ο蟾攀鰧?duì)象和類對(duì)象代表客觀世界中實(shí)際或抽象的事物,它是用來(lái)構(gòu)成系統(tǒng)的一個(gè)基本單位。對(duì)象由一組屬性(數(shù)據(jù))
和一組行為(操作、服務(wù)、方法構(gòu)成。類是具有相似屬性和服務(wù)的一組對(duì)象的集合。類是對(duì)象的抽象;對(duì)象是類的具體化,是類的實(shí)例。軟件工程
2軟件工程3面向?qū)ο蟮幕咎卣鞒橄蟪橄笾负雎灾黝}中與當(dāng)前目標(biāo)無(wú)關(guān)的因素,以便更充分地注意與當(dāng)前目標(biāo)相關(guān)的因素。封裝封裝可用于把操作和數(shù)據(jù)包圍起來(lái),對(duì)數(shù)據(jù)的訪問(wèn)只通過(guò)已定義的接口來(lái)完成。軟件工程4繼承繼承是父類和子類之間共享數(shù)據(jù)和方法的機(jī)制。一個(gè)子類可以繼承它的父類中的屬性和操作,子類還可以定義自己的屬性和操作。在一個(gè)面向?qū)ο笙到y(tǒng)中,子類和父類之間的繼承關(guān)系構(gòu)成了系統(tǒng)的類層次結(jié)構(gòu)。多態(tài)不同類的對(duì)象可以對(duì)同一消息作出響應(yīng),執(zhí)行不同的處理,稱為多態(tài)。軟件工程5面向?qū)ο箝_(kāi)發(fā)的優(yōu)點(diǎn)提高軟件系統(tǒng)的可復(fù)用性提高軟件系統(tǒng)的可擴(kuò)展性提高軟件系統(tǒng)的可維護(hù)性軟件工程6UML簡(jiǎn)介面向?qū)ο蟮乃枷肫鹪从?0年代末期,至80年代已出現(xiàn)了一些早期的面向?qū)ο笳Z(yǔ)言,如Smalltalk等。從
1986年開(kāi)始,面向?qū)ο蠓椒ǖ玫窖该偷陌l(fā)展,相繼誕生了一些廣為流傳的方法,如:1986年,Booch
的OOD方法;1989年,Coad
和
Yourdon
的OOA和OOD方法;1991年,James
Rumbaugh
的OMT(ObjectModeling
Technique,
對(duì)象建模技術(shù))方法;
1994年,Jacobson
的
OOSE(Object
OrientedSoftware
Enginerring,面向?qū)ο蟮能浖こ蹋┓椒?。軟件工?為了統(tǒng)一這些方法,從1994年起,由Booch、James
Rumbaugh、Jacobson
三位大師開(kāi)始研究統(tǒng)一建模語(yǔ)言
UML
(UnifiedModeling
Language)。1997年11月,UML版本作為OMG(對(duì)象管理組織)標(biāo)準(zhǔn)推出,目前最新的版本是UML
2.1。UML是面向?qū)ο筌浖_(kāi)發(fā)的圖形化語(yǔ)言。
UML已成為當(dāng)前面向?qū)ο蠹夹g(shù)領(lǐng)域內(nèi)占指導(dǎo)地位的標(biāo)準(zhǔn)建模語(yǔ)言。軟件工程84.2.1
UML的組成UML的模型元素UML定義了兩類模型元素:一類用于表示模型中的某個(gè)概念,如類、對(duì)象、構(gòu)件、用例等;另一類用于表示模型元素之間相互連接的關(guān)系,如關(guān)聯(lián)、泛化、依賴、聚集
等。UML的元模型結(jié)構(gòu)(略)軟件工程9圖和視圖圖(Diagram
):UML提供了兩大類圖—靜態(tài)圖和動(dòng)態(tài)圖,共計(jì)9種不同的圖。①靜態(tài)圖(Static
Diagram):包括用例圖、類圖、對(duì)象圖、構(gòu)件圖和部署圖。②
動(dòng)態(tài)圖(Dynamic
Diagram):包括狀態(tài)圖、時(shí)序圖、協(xié)作圖和活動(dòng)圖。視圖(View):包括用例視圖、邏輯視圖、并發(fā)視圖、構(gòu)件視圖和部署試圖。軟件工程104.2.2
UML的特點(diǎn)統(tǒng)一標(biāo)準(zhǔn);面向?qū)ο?表達(dá)能力強(qiáng)大、可視化。軟件工程114.2.3
UML的應(yīng)用UML適用于系統(tǒng)開(kāi)發(fā)的不同階段,從分析(需求規(guī)格描述)、設(shè)計(jì)、直到測(cè)試和維護(hù)。軟件工程124.3
靜態(tài)建模(
StaticModeling
)用例圖和用例模型(
Use
Case
diagram
&
Use
Case
Model
)用例模型表示滿足用戶需求的基本功能,它描述系統(tǒng)應(yīng)該做什么。用例模型由一組用例圖組成。用例圖(Use
Case
diagram)用例圖描述軟件系統(tǒng)與外部參與者(Actor,又稱
“角色”或“行為者”)之間的交互。即系統(tǒng)所提供的功能(
稱為“用例”,
Use
Case)與參與者之間的關(guān)系。用例圖從用戶的角度來(lái)描述系統(tǒng)的功能,并指出各功能的操作者。用例圖是進(jìn)行系統(tǒng)需求分析的工具。軟件工程131.組成符號(hào)①系統(tǒng)邊界(System
Boundary):用一個(gè)大矩形表示,上面標(biāo)注系統(tǒng)的名稱,內(nèi)部可包含一個(gè)或多個(gè)用例。②用例(UseCase):用一個(gè)橢圓表示,其中標(biāo)注用例的名稱。用例表示系統(tǒng)的一個(gè)功能單元。③參與者(Actor):用一個(gè)人形的符號(hào)表示。④參與者和用例之間、或用例與用例之間的關(guān)聯(lián)用直線表示。2.建立用例圖:客戶統(tǒng)計(jì)保險(xiǎn)商務(wù)系統(tǒng)簽定保險(xiǎn)單銷售統(tǒng)計(jì)圖3.27保險(xiǎn)商務(wù)系統(tǒng)的用例圖客戶軟件工程14保險(xiǎn)銷售員軟件工程153.
用例之間的關(guān)系擴(kuò)展關(guān)系(extend)描述一個(gè)用例在“基本用例”的基礎(chǔ)上,擴(kuò)展了那個(gè)用例的部分功能。用
箭頭上標(biāo)識(shí)“《extend》”來(lái)表示,箭頭指向被擴(kuò)展的用例。包含關(guān)系(include)描述一個(gè)基本用例利用另一個(gè)用例完成某個(gè)過(guò)程。用
箭頭上標(biāo)識(shí)“《include》”
來(lái)表示,箭頭指向被包含的用例。包含關(guān)系通常用在:幾個(gè)用例有共同的子功能,則把該子功能獨(dú)立出來(lái),并以包含關(guān)系來(lái)表示之。軟件工程164.3.2
類圖和對(duì)象圖類和對(duì)象模型分別由類圖和對(duì)象圖表示。1.類圖和對(duì)象圖(
Class
Diagram
and
Object
Diagram
)(1)
類圖(Class
Diagram)
:類圖表示類以及類之間的相互關(guān)系。軟件工程17類圖由劃分成3格的長(zhǎng)方形表示(長(zhǎng)式表示),下面2個(gè)格子可省略(短式表示)。圖形符號(hào)如下:①類的長(zhǎng)式表示
②類的短式表示類名可見(jiàn)性屬性名:類型……可見(jiàn)性操作名(參數(shù)表):返回類型……類名類圖中屬性和操作的可見(jiàn)性:①
+
:表示公有成員(
Public
);②
-
:表示私有成員(
Private
);③
#
:表示保護(hù)成員(
Protected
)。例:學(xué)生類學(xué)生姓名:string學(xué)號(hào):string①長(zhǎng)式表示②短式表示學(xué)生軟件工程18(2)對(duì)象圖(Object
Diagram):對(duì)象圖是類圖的實(shí)例。對(duì)象圖采用與類圖相同的圖形符號(hào),只是對(duì)象名下有下劃線,對(duì)象名后可接以冒號(hào)和類名,說(shuō)明該對(duì)象所從屬的類。例如:王平:學(xué)生姓名:王平學(xué)號(hào):020106①長(zhǎng)式表示②短式表示王平或王平:學(xué)生軟件工程19軟件工程20關(guān)聯(lián)關(guān)系
(
Association
)關(guān)聯(lián)表示兩個(gè)類之間存在的某種語(yǔ)義上的聯(lián)系。最常見(jiàn)的關(guān)聯(lián)是普通關(guān)聯(lián),兩個(gè)類之間用一條直線連接,直線上寫(xiě)上關(guān)聯(lián)名。關(guān)聯(lián)可以有方向,用小實(shí)心三角形表示。關(guān)聯(lián)的重?cái)?shù)(
multiplicity
):在關(guān)聯(lián)的兩端可寫(xiě)上重?cái)?shù),它表示該類有多少個(gè)對(duì)象可以與對(duì)方的一個(gè)對(duì)象連接。重?cái)?shù)的符號(hào)表示如下:1
表示1個(gè),重?cái)?shù)的默認(rèn)值為1;0..1
表示0個(gè)或1個(gè);1..*
表示1個(gè)或多個(gè);0..*
表示0個(gè)或多個(gè),可以簡(jiǎn)化為
*
;2..4
表示2個(gè)至4個(gè)。學(xué)生-姓名:string-學(xué)號(hào):string書(shū)-書(shū)名:string-價(jià)格:string10..*購(gòu)買屬于圖4.12軟件工程21類的關(guān)聯(lián)3.聚集(Aggregation)關(guān)系課題組聚集是一種特殊形式的關(guān)聯(lián),它表示類之間的關(guān)系是“整體與部分”
的關(guān)系。聚集用
空心菱形
表示,它畫(huà)在“整體”端。共享聚集(Shared
Aggregation)
:它的“部分”對(duì)象可以是多個(gè)任意“整體”對(duì)象的一部分。共享聚集也用
表示。如:“課題組”類與“成員”類,一個(gè)課題組由多個(gè)成員組成,一個(gè)成員可以參加多個(gè)課題組。圖示如下:.*
1..*個(gè)人圖4.20軟件共工程享聚集成員22(2)
組合聚集(
Composition
Aggregation,
又稱組裝聚集):“整體”擁有各“部分”
,“整體”與“部分”共存。如“整體”不存在了,“部分”也會(huì)隨之消失。組合聚集用實(shí)心菱形窗◆口
表示。舉例如下:顯示*區(qū)圖4.21組合聚集軟件工程外框*標(biāo)*
題234.泛化(Generalization,又稱繼承)泛化描述類之間的“一般”與“特殊”
關(guān)系。最常見(jiàn)的泛化是普通泛化。這是一種“分類”關(guān)系具有泛化關(guān)系的兩個(gè)類之間,一般類是特殊類的父類,特殊類是一般類的子類。泛化表示為一端帶空心三角形△的連線,空心三角形緊挨父類。舉例如下:交通工具船車轎車卡車客車圖4.22
軟件工普程
通泛化24軟件工程25依賴(Dependency)依賴表示兩個(gè)類之間語(yǔ)義上的依賴關(guān)系。若修改一個(gè)類X(獨(dú)立類)的定義會(huì)引起對(duì)另一個(gè)類Y(依賴類)的定義的修改,則稱類Y依賴于類X
。依賴關(guān)系表示為帶箭頭的虛線,箭頭指向獨(dú)立的類。例如,某個(gè)班級(jí)的“課程表”類依賴于這個(gè)班級(jí)的“課程”類?!罢n程”類是獨(dú)立的類,一旦課程發(fā)生變化,課程表也會(huì)發(fā)生變化?!罢n程表”類的增加和刪除操作都把“課程”作為參數(shù)。依賴關(guān)系的圖示如下:課程表增加(課程)刪除(課程)課程獨(dú)立類軟件工程26依賴類軟件工程274.4
動(dòng)態(tài)建模(Dynamic
modeling)消息(Message)對(duì)象之間的交互是通過(guò)對(duì)象間消息傳遞來(lái)完成的。一個(gè)對(duì)象通過(guò)發(fā)送消息請(qǐng)求另一個(gè)對(duì)象為其服務(wù)。當(dāng)一個(gè)消息發(fā)送給某個(gè)對(duì)象時(shí),包含要求接收對(duì)象去執(zhí)行某些活動(dòng)的信息。接收到消息的對(duì)象經(jīng)過(guò)解釋,
然后予以響應(yīng)。這種通訊機(jī)制叫做消息傳遞(Message
Passing
)。消息傳遞用箭頭表示。一條消息由3個(gè)部分組成:接收消息的對(duì)象、方法名(即函數(shù)名)和參數(shù),表示為:對(duì)象名.方法名(參數(shù))在C++中,消息傳遞相當(dāng)于函數(shù)調(diào)用。軟件工程284.4.2
狀態(tài)圖(State
Diagram)狀態(tài)圖用來(lái)描述一個(gè)特定對(duì)象的所有可能狀態(tài)及引起其狀態(tài)轉(zhuǎn)移的事件。1.狀態(tài)(State)狀態(tài)是對(duì)象的所有屬性值的抽象。比如
“電梯”類的屬性有:所在的樓層h、速度v等。設(shè)有某個(gè)“電梯”對(duì)象,若h=n、v=0,表示該電梯的狀態(tài)是“停止在第n層”;若h=n、v=正數(shù),表示該電梯的狀態(tài)是“向上移動(dòng)”,并已上升到第n層;若h=n、v=負(fù)數(shù),表示該電梯的狀態(tài)是“向下移動(dòng)”,
并已下降到第n層。狀態(tài)用“帶園角的矩形”表示,由狀態(tài)名、狀態(tài)變量和活動(dòng)3個(gè)部分組成。其中狀態(tài)變量
和活動(dòng)是任選的。如下圖所示:狀態(tài)名
狀態(tài)變量活動(dòng)軟件工程29狀態(tài)圖中的狀態(tài)有:初態(tài)、終態(tài)與中間狀態(tài)。初態(tài)和終態(tài)
圖示如下:初態(tài):用
●
表示。終態(tài):用
●
表示。2.狀態(tài)轉(zhuǎn)移(State
transfer)一個(gè)對(duì)象從一個(gè)狀態(tài)改變成另一個(gè)狀態(tài)稱為狀態(tài)轉(zhuǎn)移,用箭頭表示。在箭頭上標(biāo)出觸發(fā)轉(zhuǎn)移的事件。3.事件(Event)事件是指在某個(gè)時(shí)刻發(fā)生的且可能引發(fā)某些活動(dòng)的事情,通常指的是系統(tǒng)的外部事件。軟件工程30例:“電梯”升降狀態(tài)圖在底樓圖4.30電梯狀態(tài)圖●向上移動(dòng)向下移動(dòng)空閑上樓軟件工程31到達(dá)上樓到達(dá)到達(dá)向底樓移動(dòng)下樓超時(shí)軟件工程324.4.3
時(shí)序圖和協(xié)作圖(
Sequence
Diagram
&
Collaboration
Diagram
)1.時(shí)序圖(Sequence
Diagram,
又稱為順序圖)時(shí)序圖描述對(duì)象之間消息傳遞的時(shí)間順序。時(shí)序圖存在兩個(gè)軸:水平軸表示不同的對(duì)象,垂直軸表示時(shí)間。時(shí)序圖的圖形元素:①對(duì)象(Object):采用對(duì)象的短式標(biāo)志.對(duì)象位于時(shí)序的頂部。②生命線(Lifeline):用垂直虛線表示(對(duì)象生命的活躍期)。軟件工程33③激活期(Activate
Period):用垂直細(xì)長(zhǎng)矩形表示(接收對(duì)象收到消息時(shí),立即開(kāi)始執(zhí)行活動(dòng),對(duì)象被激活了)。④消息(Message):用箭頭表示,箭頭上標(biāo)明消息名,消息可帶有條件(用方括號(hào)表示)。消息傳遞的時(shí)間順序?yàn)椋貉卮怪狈较驈纳舷蛳峦七M(jìn)。計(jì)算機(jī)打印服務(wù)器打印機(jī)打印隊(duì)列[打印機(jī)就緒]打印(文件)[打印機(jī)忙]保存(文件)打印(文件)軟件工程34圖4.33文檔打印系統(tǒng)的時(shí)序圖軟件工程35協(xié)作圖(Collaboration
Diagram)協(xié)作圖描述相互協(xié)作的對(duì)象間的鏈接關(guān)系。(1)鏈接(Link):鏈接表示對(duì)象之間的關(guān)系。(關(guān)聯(lián)表示類之間的關(guān)系。鏈接是關(guān)聯(lián)的實(shí)例,關(guān)聯(lián)是鏈接的抽象。)消息流(
Message
Flow
):在協(xié)作圖的鏈接線上,用消息串來(lái)描述對(duì)象間的交互。協(xié)作圖的圖形元素:①對(duì)象:用對(duì)象的短式標(biāo)志。②鏈接:用直線表示。③消息:用箭頭表示。打印服務(wù)器計(jì)算機(jī)打印機(jī)打印隊(duì)列圖4.34
文檔打印系統(tǒng)的協(xié)作圖打印(文件)[打印機(jī)就緒]打印(文件)軟件工程36[打印機(jī)忙]保存(文件)4.4.4
活動(dòng)圖(Activity
Diagram
)活動(dòng)圖描述完成系統(tǒng)的某個(gè)功能(用例)所需要的一系列活動(dòng)?;顒?dòng)圖的圖形元素:①活動(dòng):用兩條平行線和兩側(cè)園弧構(gòu)成的圖框表示,框內(nèi)標(biāo)示描述動(dòng)作的語(yǔ)句。②活動(dòng)的轉(zhuǎn)移:用箭頭表示,在箭頭上可附加條件。③起始狀態(tài):用
●
表示。④結(jié)束狀態(tài):用
表示。⑤條件判定:用
表示。⑥條件:用
[條件名]
表示。軟件工程37例:“閱讀數(shù)據(jù)文件”的活動(dòng)圖讀文件屏幕顯示文件內(nèi)容屏幕顯示文件已結(jié)束[文件結(jié)束][文件未結(jié)束]軟件工程38軟件工程39動(dòng)態(tài)圖的運(yùn)用小結(jié)狀態(tài)圖:狀態(tài)圖描述跨越多個(gè)用例的單個(gè)對(duì)象的行為,而不適合描述多個(gè)對(duì)象間的合作行為。時(shí)序圖和協(xié)作圖:時(shí)序圖與協(xié)作圖適合描述多個(gè)
對(duì)象間的交互行為,它們從不同的角度描述了系統(tǒng)的行為。其中時(shí)序圖突出對(duì)象之間消息傳遞的時(shí)間順序,而協(xié)作圖強(qiáng)調(diào)一組傳遞消息的對(duì)象之間的靜態(tài)鏈接關(guān)系。如果強(qiáng)調(diào)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 股東入股合作協(xié)議是
- 寫(xiě)字樓租賃項(xiàng)目合同范本
- 小作坊工作合同范本
- 保利地塊鄭州項(xiàng)目(公寓+商業(yè)+住宅)投標(biāo)方案設(shè)計(jì)
- 租賃住房并購(gòu)合同范本
- 廠房道路維修合同范本
- 賣汽車加盟合同范例
- 養(yǎng)殖服務(wù)協(xié)議合同范本
- 合作顧問(wèn)合同范本
- 勞務(wù)合同范本小程序
- 變電站質(zhì)量驗(yàn)收及評(píng)定范圍
- 【橡膠工藝】-橡膠履帶規(guī)格
- 小學(xué)勞動(dòng)技術(shù)云教三年級(jí)下冊(cè)植物栽培種植小蔥(省一等獎(jiǎng))
- 籍貫對(duì)照表完整版
- 程式與意蘊(yùn)-中國(guó)傳統(tǒng)繪畫(huà)課件高中美術(shù)人美版(2019)美術(shù)鑒賞
- 注塑一線工資考核方案
- 二級(jí)精神病醫(yī)院評(píng)價(jià)細(xì)則
- GB/T 7251.3-2017低壓成套開(kāi)關(guān)設(shè)備和控制設(shè)備第3部分:由一般人員操作的配電板(DBO)
- 工程質(zhì)量回訪記錄
- GB/T 2572-2005纖維增強(qiáng)塑料平均線膨脹系數(shù)試驗(yàn)方法
- 維修質(zhì)量檢驗(yàn)制度
評(píng)論
0/150
提交評(píng)論