UML_面向?qū)ο竽P?PowerDesigner)_第1頁(yè)
UML_面向?qū)ο竽P?PowerDesigner)_第2頁(yè)
UML_面向?qū)ο竽P?PowerDesigner)_第3頁(yè)
UML_面向?qū)ο竽P?PowerDesigner)_第4頁(yè)
UML_面向?qū)ο竽P?PowerDesigner)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、UML教案PowerDesigner 面向?qū)ο竽P蛯?shí)戰(zhàn)項(xiàng)目訓(xùn)練教案1UML示例11.面向?qū)ο竽P?2.動(dòng)態(tài)模型19授課教師:李祥課時(shí):90分鐘1. 面向?qū)ο竽P兔嫦驅(qū)ο竽P褪抢肬ML(統(tǒng)一建模語(yǔ)言)的圖形來(lái)描述系統(tǒng)結(jié)構(gòu)的模型,它從不同角度實(shí)現(xiàn)系統(tǒng)的工作狀態(tài)。這些圖形有助于用戶(hù),管理人員,系統(tǒng)分析人員,開(kāi)發(fā)人員,測(cè)試人員和其他人員之間進(jìn)行信息交流。1) 選擇File-New Mode命令或者單擊工具欄中的New Mode圖標(biāo),彈出New Mode窗口2) 在左側(cè)是Mode type欄中選擇Object-Oriented Model(面向?qū)ο竽P停┻x項(xiàng),在右側(cè)輸入模型名稱(chēng),語(yǔ)言,如下圖所示:注:

2、靜態(tài)圖包括:用例圖(Use Case Diagram)、類(lèi)圖(Class Diagram)、對(duì)象圖(Object Diagram)、組件圖(Component Diagram)和部署圖(Deployment Diagram)。動(dòng)態(tài)圖包括:狀態(tài)圖(Statechart Diagram)、順序圖(Sequence Diagram)、協(xié)作圖(Collaboration Diagram)和活動(dòng)圖(Activity Diagram)。a) Class Diagram:類(lèi)圖b) Object Diagram:對(duì)象圖類(lèi)圖和對(duì)象圖:用來(lái)定義類(lèi)和對(duì)象以及它們的屬性和操作。c) User Case Diagram

3、:用例圖主要用來(lái)描述系統(tǒng)的外部行為;d) Sequence Diagram:順序圖顯示對(duì)象之間的動(dòng)態(tài)合作關(guān)系,它強(qiáng)調(diào)對(duì)象之間消息發(fā)送的順序,同時(shí)顯示對(duì)象之間的交互。e) Component Diagram:組件圖f) Deployment Diagram:部署圖組件圖和部署圖:描述實(shí)現(xiàn)系統(tǒng)的元素組織和系統(tǒng)環(huán)境元素的配置。g) Statechart Diagram:狀態(tài)圖描述類(lèi)的對(duì)象所有可能的狀態(tài)以及事件發(fā)生時(shí)狀態(tài)的轉(zhuǎn)移條件h) Activity Diagram:活動(dòng)圖描述滿(mǎn)足用例要求所要進(jìn)行的活動(dòng)以及活動(dòng)間的約束關(guān)系,有利于識(shí)別并行活動(dòng)。i) Collaboration Diagram:協(xié)作圖

4、強(qiáng)調(diào)對(duì)象間的動(dòng)態(tài)協(xié)作關(guān)系j) Composite Structure Diagram:復(fù)合結(jié)構(gòu)模型3) 單擊“確定”按鈕,進(jìn)入OOM設(shè)計(jì)工作區(qū)。在該工作區(qū)中可以定義OOM的屬性和操作,也可以設(shè)計(jì)各種UML的圖形。4) 選擇Model-Model Properties命令,顯示如下圖所示的OOM的Model Properties窗口5) 定義完畢后單擊“確定”按鈕。然后選擇File-Save As命令,以PubinfoSys.OOM這個(gè)名稱(chēng)將所定義的模型存盤(pán)。6) 設(shè)置模型的選擇。選擇Tools-Model Options命令,打開(kāi)Model Options(模型選項(xiàng))窗口。如下圖7) 單擊Se

5、t As Default按鈕,設(shè)置為默認(rèn)選項(xiàng),然后單擊OK按鈕。n 用例圖通常用來(lái)定義系統(tǒng)的高層次草圖,它從用戶(hù)角度描述了應(yīng)用的系統(tǒng)功能,指出了各個(gè)功能的外部操作者。用于系統(tǒng)需求分析階段,進(jìn)行系統(tǒng)需求和功能設(shè)計(jì),它包含執(zhí)行者和用例兩個(gè)要素。執(zhí)行者指用戶(hù)在系統(tǒng)中的角色,用例是用戶(hù)與計(jì)算機(jī)的一次交互。用例圖主要用來(lái)描述每個(gè)用例將有哪些執(zhí)行者進(jìn)行參與。u 定義用例用例是外部可見(jiàn)的一個(gè)系統(tǒng)功能單元,這些功能由系統(tǒng)單元提供,通過(guò)一系列單元與一個(gè)或多個(gè)參與者之間交換的消息表達(dá)。1) 定義用例圖l 右鍵單擊“新增”->Use Case Diagraml 選擇定義4個(gè)用例,如下圖所示l 選中第一個(gè)用例雙

6、擊,打開(kāi)Use Case Properties(用例屬性)窗口,將Name屬性修改為“查找”,將Code屬性修改為Search,如下圖所示:l 得用同樣的方法,修改其他3個(gè)用例屬性如圖:l 單擊“執(zhí)行者”圖標(biāo)定義3個(gè)執(zhí)行者,如下圖:l 選中第一個(gè)執(zhí)行者并雙擊,打開(kāi)Actor Properties窗口,將Name屬性修改為“顧客”,將Code屬性修改為Buyer,如圖:l 利用同樣的方法,修改其他兩個(gè)執(zhí)行者的屬性l 定義執(zhí)行者和用例之間的關(guān)系。單擊“關(guān)系”圖標(biāo),再單擊執(zhí)行者“顧客”并手動(dòng)鼠標(biāo)至用例“查找”,釋放鼠標(biāo),這時(shí)在執(zhí)行者和用例之間建立了關(guān)系。雙擊該關(guān)系,打開(kāi)Association Pro

7、perties窗口,將Name屬性修改為“查詢(xún)商品”,將Code屬性修改為SearchProduct。l 按照上一步的方法,在其他執(zhí)行者和用例之間建立關(guān)系。l 定義完成后的用例圖如下圖:注:如果關(guān)系上不顯示注釋?zhuān)瑒t需要修改顯示參數(shù)設(shè)置,單擊“工具(Tools)”->“顯示參數(shù)設(shè)置(Display Preferences)”,把Name前的勾選上,如下圖l2)u 定義角色角色描述了與系統(tǒng)相互作用的一組用戶(hù),最明顯的角色是系統(tǒng)中的人,但也可能是系統(tǒng)本身。u 定義關(guān)聯(lián)用例除了與其參與者發(fā)生關(guān)聯(lián)外,還可以參與系統(tǒng)中的多個(gè)關(guān)系,允許定義的關(guān)聯(lián)有關(guān)聯(lián),擴(kuò)展,用例泛化,包括。un 類(lèi)圖描述類(lèi)與類(lèi)之間的

8、靜態(tài)關(guān)系,并不能描述對(duì)象的所有細(xì)節(jié)。其中包括一系列的包,類(lèi),接口和它們之間的關(guān)系。類(lèi)圖是定義其他圖的基礎(chǔ)。u 創(chuàng)建(Class)類(lèi)1) 選擇File-New Model命令,打開(kāi)New Model窗口。在窗口左側(cè)的Model type欄選擇Object-Oriented Model選項(xiàng),在右側(cè)的First diagram下拉列表框中選擇Class Diagram選項(xiàng),在Object language下拉框中選擇Java選項(xiàng),如下圖:2) 在類(lèi)圖工作區(qū)中單擊Palette工具欄中的Class圖標(biāo),創(chuàng)建一個(gè)類(lèi),雙擊類(lèi)圖的圖形符號(hào),打開(kāi)Class Properties窗口。3) 選擇Detail選項(xiàng)

9、卡,可以定義類(lèi)的更多屬性。4) 選擇Attribute選項(xiàng)卡,可以為類(lèi)增加屬性。單擊Add a Row圖標(biāo),增加屬性,也可以單擊Add Attributes圖標(biāo)打開(kāi)Selection窗口列表模型中其他類(lèi)的屬性,選擇需要的屬性,然后單擊“OK”按鈕即可。5) 選擇Operations選項(xiàng)卡,單擊Add Operation圖標(biāo),打開(kāi)Selection窗口,從中可以選擇該模型中其他類(lèi)包含的操作。選擇完畢后,單擊“OK”按鈕,所選的操作即可增加到當(dāng)前類(lèi)上。6) 選擇Inner Classifies選項(xiàng)卡,可以為該類(lèi)定義內(nèi)部類(lèi)。內(nèi)部類(lèi)是PowerDesigner的一個(gè)分類(lèi)器,在UML中分類(lèi)器是一個(gè)包含有

10、屬性和操作等的模型元素。定義完畢后可以通過(guò)Preview選項(xiàng)卡觀察當(dāng)前類(lèi)或接口所包含的內(nèi)部類(lèi)代碼,如下圖所示:7) 除了以上屬性外,還可以定義Associations,Identifies等屬性。屬性定義完畢后創(chuàng)建的內(nèi)容如下圖:注:第四部分為創(chuàng)建的Inner Classifies(內(nèi)部類(lèi))u 創(chuàng)建聯(lián)系(關(guān)系)在類(lèi)圖中,聯(lián)系有關(guān)聯(lián)(association)、依賴(lài)(dependency)、泛化(generalization)和實(shí)現(xiàn)聯(lián)系(realization)、聚合(aggregation)、成分(composition)、(Require Link)、(Inner Link)。l General

11、ization:泛化、一般化,圖標(biāo)為表示的是類(lèi)與類(lèi)之間的繼承關(guān)系、接口與接口之間的繼承關(guān)系、類(lèi)與接口之間的實(shí)現(xiàn)關(guān)系。如果體現(xiàn)到j(luò)ava語(yǔ)言中,那就是反應(yīng)extends和implements關(guān)鍵字。l Association:關(guān)聯(lián)關(guān)系(一般關(guān)系)關(guān)聯(lián)關(guān)系描述的是類(lèi)與類(lèi)之間的連接,他表示一個(gè)類(lèi)知道另一個(gè)類(lèi)的屬性和方法。關(guān)聯(lián)關(guān)系可以是單向的或者雙向的。在Java語(yǔ)言中,單向的關(guān)聯(lián)關(guān)系是通過(guò)以實(shí)例變量的方式持有被關(guān)聯(lián)對(duì)象的引用來(lái)實(shí)現(xiàn)的。一般來(lái)說(shuō)是不建議使用雙向的關(guān)聯(lián)關(guān)系的。下面介紹單向的關(guān)聯(lián)關(guān)系:上面的類(lèi)圖表現(xiàn)的是訂單和訂單明細(xì)之間的關(guān)系。Items中有一個(gè)實(shí)例變量類(lèi)型是Order。每個(gè)連接都會(huì)有兩個(gè)

12、端點(diǎn),上面的Items和Order就是端點(diǎn),且每個(gè)端點(diǎn)都可以有(optional),一個(gè)基數(shù)(multiplicity),表示這個(gè)類(lèi)可以有幾個(gè)實(shí)例。這個(gè)類(lèi)似于數(shù)據(jù)庫(kù)中的1:n、m:n這些關(guān)系。我們可以給上面的例子加上基數(shù):上面表示的是訂單與訂單明細(xì)之間是1對(duì)多的關(guān)系。l Aggregation:聚合關(guān)系聚合關(guān)系是關(guān)聯(lián)關(guān)系的一部分,是非常強(qiáng)的關(guān)聯(lián)關(guān)系。表示has-a的關(guān)系,是一種不穩(wěn)定的包含關(guān)系。聚合關(guān)系表現(xiàn)的更多的是整體與部分的關(guān)系。較強(qiáng)于一般關(guān)聯(lián),有整體與局部的關(guān)系,并且沒(méi)有整體,局部也可單獨(dú)存在。如公司和員工的關(guān)系,公司包含員工,但如果公司倒閉,員工依然可以換公司。在類(lèi)圖中使用空心的菱形表

13、示,菱形從局部指向整體。例如汽車(chē)和車(chē)門(mén)、發(fā)動(dòng)機(jī)之間的關(guān)系。如下圖:與關(guān)聯(lián)關(guān)系一樣,聚合關(guān)系也是通過(guò)實(shí)例變量實(shí)現(xiàn)的。單純從語(yǔ)法的角度基本上無(wú)法判斷出關(guān)聯(lián)關(guān)系和聚合關(guān)系。l Composition:組合關(guān)系(合成關(guān)系)組合關(guān)系同樣也是關(guān)聯(lián)關(guān)系中的一種,這種關(guān)系是比聚合關(guān)系更加強(qiáng)的關(guān)系。我們前面提到,聚合關(guān)系表現(xiàn)的是整體與部分之間的關(guān)系,組合關(guān)系是在聚合關(guān)系的基礎(chǔ)上,表示不可分割的整體與部分之間的關(guān)系。也就是說(shuō)表示整體的對(duì)象需要負(fù)責(zé)表示部分的對(duì)象的生命周期?!按碚w的對(duì)象負(fù)責(zé)保持代表部分的對(duì)象的存活,在一些情況下負(fù)責(zé)將代表部分的對(duì)象湮滅掉。代表整體的對(duì)象某些時(shí)候可以將代表部分的對(duì)象傳遞給另外一個(gè)對(duì)

14、象,并由它負(fù)責(zé)代表部分的對(duì)象的生命周期。換言之,代表部分的對(duì)象同一時(shí)刻只能與一個(gè)對(duì)象構(gòu)成組合關(guān)系。并且由后者排他的負(fù)責(zé)其生命周期?!盝ava與模式我們以人和手臂的關(guān)系舉例,組合關(guān)系的類(lèi)圖如下:聚合和組合的區(qū)別:這兩個(gè)比較難理解,重點(diǎn)說(shuō)一下。聚合和組合的區(qū)別在于:a) 聚合關(guān)系是“has-a”關(guān)系,組合關(guān)系是“contains-a”關(guān)系;b) 聚合關(guān)系表示整體與部分的關(guān)系比較弱,而組合比較強(qiáng);c) 聚合關(guān)系中代表部分事物的對(duì)象與代表聚合事物的對(duì)象的生存期無(wú)關(guān),一旦刪除了聚合對(duì)象不一定就刪除了代表部分事物的對(duì)象。組合中一旦刪除了組合對(duì)象,同時(shí)也就刪除了代表部分事物的對(duì)象。l Dependency:

15、依賴(lài)關(guān)系依賴(lài)關(guān)系表示一個(gè)類(lèi)依賴(lài)于另一個(gè)類(lèi)的定義。依賴(lài)關(guān)系是單方向的。人吃蘋(píng)果,那么人依賴(lài)蘋(píng)果。類(lèi)圖如下:一般來(lái)說(shuō),被依賴(lài)的對(duì)象往往是以局部變量、方法參數(shù)的形式存在于對(duì)象中,與關(guān)聯(lián)關(guān)系不同,它不會(huì)以成員變量的形式存在于對(duì)象中。這一點(diǎn)值得注意。另外,每個(gè)依賴(lài)都有一個(gè)名稱(chēng)。上面這個(gè)依賴(lài)關(guān)系的名稱(chēng)就是eats。注:如果上面的依賴(lài)關(guān)系名稱(chēng)不顯示出來(lái),則單擊菜單“工具”->顯示參數(shù)設(shè)置,出現(xiàn)如下圖所示,將“顯示名稱(chēng)”前的勾選上。u 創(chuàng)建包為了簡(jiǎn)單地表示出復(fù)雜的類(lèi)圖,可以把類(lèi)組合成包packages。一個(gè)包是UML上有邏輯關(guān)系的元件的集合。下面這個(gè)圖是一個(gè)把類(lèi)組合成包的一個(gè)商業(yè)模型。Dependenc

16、ies關(guān)系。如果另一個(gè)包B改變可能會(huì)導(dǎo)致一個(gè)包A改變,則包A依賴(lài)包B。u 生成java的源代碼如下圖所示類(lèi)圖,生成java源代碼:1) 在類(lèi)圖中選擇Language-Generate Java Code命令,打開(kāi)Generation窗口,顯示模型中包含的類(lèi)。2) 在Selection選項(xiàng)卡的Classes選項(xiàng)卡中選擇類(lèi),在Directory欄中輸入Java源代碼的目標(biāo)路徑。3) 在Options選項(xiàng)卡中定義Java生成選項(xiàng)。4) 在Task選項(xiàng)卡中定義Java生成任務(wù)選項(xiàng),如下圖所示:5) 單擊“確定”按鈕,開(kāi)始生成java源文件,生成完成顯示Generated Files窗口。6) 選擇一個(gè)

17、源文件,單擊Edit按鈕,將在文本編輯器中顯示該文件的內(nèi)容,如下圖:u 根據(jù)Java代碼生成類(lèi)圖1) 在類(lèi)圖中選擇語(yǔ)言(Language)->Generate Java Code命令,打開(kāi)Generation窗口,顯示模型中包含的類(lèi)。2) 在Selection選項(xiàng)卡的Classes選項(xiàng)卡中選擇類(lèi),在Directory欄中輸入Java源代碼的目標(biāo)路徑。勾選“check model”,選中后,在生成java代碼時(shí)會(huì)有一定的語(yǔ)法檢查,比如某類(lèi)實(shí)現(xiàn)了某接口,但未實(shí)現(xiàn)接口的方法,它會(huì)提示。3) 在Options選項(xiàng)卡中定義java生成選項(xiàng)。注:a) ANT:Generate Ant build x

18、ml fileb) Java:Generate object ids as JavaDoc tags顯示一些相關(guān)注釋信息c)4) 在Tasks選項(xiàng)卡中定義java生成任務(wù)選項(xiàng),如下圖所示:5) 單擊“確定”按鈕,開(kāi)始生成java源文件,生成完成顯示Generated Files窗口。注:如果報(bào)以下錯(cuò),請(qǐng)檢查:如果是接口里有屬性是否有賦初始值,類(lèi)似下圖:改正后,如下圖所示:6) 選擇一個(gè)源文件,單擊“Edit”按鈕,將在文本編輯器中顯示該文件的內(nèi)容。如下圖所示:注:生成后查看代碼文件,所有的屬性都沒(méi)有g(shù)et和set方法,要想生成這兩個(gè)方法,就要自己動(dòng)手修改PowerDesigner的代碼生成模板

19、,可以選擇Language菜單下的“Edit Current Object Language”,在彈出的窗口中修改代碼模板:7)u 根據(jù)java代碼生成類(lèi)圖1) 選擇File->Reverse Engineer-Object Lanaguage彈出如下圖所示:2) 在Object Language欄中選擇java,單擊“確定”按鈕進(jìn)入如下界面:3) 點(diǎn)擊Add,添加java文件,再單擊“確定”按鈕即可生成相應(yīng)的java類(lèi)圖(在Reverse Engineer欄中還可以選擇java字節(jié)碼文件或文件目錄),如下圖所示:4)5)un2. 動(dòng)態(tài)模型動(dòng)態(tài)圖包括:狀態(tài)圖(Statechart Dia

20、gram)、順序圖(Sequence Diagram)、協(xié)作圖(Collaboration Diagram)和活動(dòng)圖(Activity Diagram)。n 創(chuàng)建動(dòng)態(tài)模型u 狀態(tài)圖1) 選擇File-New Model命令,打開(kāi)New Model窗口。在窗口左側(cè)的Model type欄選擇Object-Oriented Model選項(xiàng),在右側(cè)的First diagram下拉列表框中選擇Statechart Diagram選項(xiàng),在Object language下拉框中選擇Java選項(xiàng),如下圖:2) 在狀態(tài)圖工作區(qū)中單擊Palette工具欄中的State圖標(biāo),雙擊狀態(tài)圖的圖形符號(hào),打開(kāi)State

21、Properties窗口3) 在狀態(tài)圖工作區(qū)中單擊Palette工具欄中的Transition圖標(biāo),將各個(gè)狀態(tài)之間連接起來(lái),雙擊Transition連接線(xiàn),打開(kāi)Transition Properties窗口注:當(dāng)?shù)卿浭r(shí)再返回到登錄。4) 最后單擊“確定”,如下圖:u 順序圖(序列圖)描述系統(tǒng)如何實(shí)際完成在User Case圖中定義的功能??梢援?huà)出對(duì)象(類(lèi)的實(shí)例)之間交互時(shí)產(chǎn)生的時(shí)序關(guān)系。它一方面描述了一次交互,交互中涉及類(lèi)圖中的類(lèi),另一方面細(xì)化了用例的描述。序列圖有角色(Actor)、對(duì)象(Object)、消息(Message)和激活期(Activation)幾個(gè)要素。消息類(lèi)型有:l Message:消息l Self Message:遞歸消息l Call Message:帶有激活期的消息l Self Call Message:帶有激活期的遞歸消息l Return Message:返回消息l Self Return Message:遞歸返回消息創(chuàng)建序列圖:1) 右鍵“新增”->“Sequence Diagram”2) 單擊Palette工具欄的Object圖標(biāo),在空白區(qū)單擊鼠標(biāo),出現(xiàn)對(duì)象符號(hào)如下圖:3) 在設(shè)計(jì)區(qū)空白區(qū)域右擊,鼠標(biāo)指針變?yōu)榧^形狀,雙擊對(duì)象符號(hào),彈出Actor Properties窗口,在Name文本框中輸入“呼

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論