




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、UML實(shí)踐-用例圖、順序圖、狀態(tài)圖、類(lèi)圖、包圖、協(xié)作圖2009-01-20 作者:Randy Miller 來(lái)源:網(wǎng)絡(luò)面向?qū)ο蟮膯?wèn)題的處理的關(guān)鍵是建模問(wèn)題。建模可以把在復(fù)雜世界的許多重要的細(xì)節(jié)給抽象出。許多建模工具封裝了UML(也就是Unified Modeling Language),這篇課程的目的是展示出UML的精彩之處。 UML中有九種建模的圖標(biāo),即:· 用例圖 · 類(lèi)圖 · 對(duì)象圖 · 順序圖 · 協(xié)作圖 · 狀態(tài)圖 · 活動(dòng)圖 · 組件圖 · 配置圖 本課程中的某些部分包含了這些圖的細(xì)節(jié)信息的頁(yè)
2、面鏈接。而且每個(gè)部分都有一個(gè)小問(wèn)題,測(cè)試一下你對(duì)這個(gè)部分的理解。為什么UML很重要?為了回答這個(gè)問(wèn)題,我們看看建筑行業(yè)。設(shè)計(jì)師設(shè)計(jì)出房子。施工人員使用這個(gè)設(shè)計(jì)來(lái)建造房子。建筑越復(fù)雜,設(shè)計(jì)師和施工人員之間的交流就越重要。藍(lán)圖就成為了這個(gè)行業(yè)中的設(shè)計(jì)師和施工人員的必修課。寫(xiě)軟件就好像建造建筑物一樣。系統(tǒng)越復(fù)雜,參與編寫(xiě)與配置軟件的人員之間的交流也就越重要。在過(guò)去十年里UML就成為分析師,設(shè)計(jì)師和程序員之間的“建筑藍(lán)圖”?,F(xiàn)在它已經(jīng)成為了軟件行業(yè)的一部分了。UML提供了分析師,設(shè)計(jì)師和程序員之間在軟件設(shè)計(jì)時(shí)的通用語(yǔ)言。UML被應(yīng)用到面向?qū)ο蟮膯?wèn)題的解決上。想要學(xué)習(xí)UML必須熟悉面向?qū)ο蠼鉀Q問(wèn)題的根本
3、原則都是從模型的建造開(kāi)始的。一個(gè)模型model就是根本問(wèn)題的抽象。域domain就是問(wèn)題所處的真實(shí)世界。模型是由對(duì)象objects組成的,它們之間通過(guò)相互發(fā)送消息messages來(lái)相互作用的。記住把一個(gè)對(duì)象想象成“活著的”。對(duì)象有他們知道的事(屬性attributes)和他們可以做的事(行為或操作behaviors or operations)。對(duì)象的屬性的值決定了它的狀態(tài)state。類(lèi)Classes是對(duì)象的“藍(lán)圖”。一個(gè)類(lèi)在一個(gè)單獨(dú)的實(shí)體中封裝了屬性(數(shù)據(jù))和行為(方法或函數(shù))。對(duì)象是類(lèi)的實(shí)例instances。用例圖用例圖Use case diagrams描述了作為一個(gè)外部的觀察者的視角對(duì)
4、系統(tǒng)的印象。強(qiáng)調(diào)這個(gè)系統(tǒng)是什么而不是這個(gè)系統(tǒng)怎么工作。用例圖與情節(jié)緊緊相關(guān)的。情節(jié)scenario是指當(dāng)某個(gè)人與系統(tǒng)進(jìn)行互動(dòng)時(shí)發(fā)生的情況。下面是一個(gè)醫(yī)院門(mén)診部的情節(jié)?!耙粋€(gè)病人打電話給門(mén)診部預(yù)約一年一次的身體檢查。接待員找出在預(yù)約記錄本上找出最近的沒(méi)有預(yù)約過(guò)的時(shí)間,并記上那個(gè)時(shí)間的預(yù)約記錄?!庇美齍se case是為了完成一個(gè)工作或者達(dá)到一個(gè)目的的一系列情節(jié)的總和。角色actor是發(fā)動(dòng)與這個(gè)工作有關(guān)的事件的人或者事情。角色簡(jiǎn)單的扮演著人或者對(duì)象的作用。下面的圖是一個(gè)門(mén)診部Make Appointment用例。角色是病人。角色與用例的聯(lián)系是通訊聯(lián)系communication associatio
5、n(或簡(jiǎn)稱(chēng)通訊communication)角色是人狀的圖標(biāo),用例是一個(gè)橢圓,通訊是連接角色和用例的線。一個(gè)用例圖是角色,用例,和它們之間的聯(lián)系的集合。我們已經(jīng)把Make Appointment作為一個(gè)含有四個(gè)角色和四個(gè)用例的圖的一部分。注意一個(gè)單獨(dú)的用例可以有多個(gè)角色。用例圖在三個(gè)領(lǐng)域很有作用。· 決定特征(需求)。當(dāng)系統(tǒng)已經(jīng)分析好并且設(shè)計(jì)成型時(shí),新的用例產(chǎn)生新的需求 · 客戶(hù)通訊。使用用例圖很容易表示開(kāi)發(fā)者與客戶(hù)之間的聯(lián)系。 · 產(chǎn)生測(cè)試用例。一個(gè)用例的情節(jié)可能產(chǎn)生這些情節(jié)的一批測(cè)試用例。 類(lèi)圖類(lèi)圖Class diagram通過(guò)顯示出系統(tǒng)的類(lèi)以及這些類(lèi)之間的關(guān)系
6、來(lái)表示系統(tǒng)。類(lèi)圖是靜態(tài)的它們顯示出什么可以產(chǎn)生影響但不會(huì)告訴你什么時(shí)候產(chǎn)生影響。下面是一個(gè)顧客從零售商處預(yù)定商品的模型的類(lèi)圖。中心的類(lèi)是Order。連接它的是購(gòu)買(mǎi)貨物的Customer和Payment。Payment有三種形式:Cash,Check,或者Credit。訂單包括OrderDetails(line item),每個(gè)這種類(lèi)都連著Item。UML類(lèi)的符號(hào)是一個(gè)被劃分成三塊的方框:類(lèi)名,屬性,和操作。抽象類(lèi)的名字,像Payment是斜體的。類(lèi)之間的關(guān)系是連接線。類(lèi)圖有三種關(guān)系。· 關(guān)聯(lián)association表示兩種類(lèi)的實(shí)例間的關(guān)系。如果一個(gè)類(lèi)的實(shí)例必須要用另一個(gè)類(lèi)的實(shí)例才能完成
7、工作時(shí)就要用關(guān)聯(lián)。在圖中,關(guān)聯(lián)用兩個(gè)類(lèi)之間的連線表示。 · 聚合aggregation當(dāng)一個(gè)類(lèi)屬于一個(gè)容器是的一種特殊關(guān)系。聚合用一個(gè)帶菱形的連線,菱形指向具有整體性質(zhì)的類(lèi)。在我們的圖里,Order是OrderDetails的容器。 · 泛化generalization一個(gè)指向以其他類(lèi)作為超類(lèi)的繼承連線。泛化關(guān)系用一個(gè)三角形指向超類(lèi)。Payment是Cash,Check和Credit的超類(lèi)。 一個(gè)關(guān)聯(lián)有兩個(gè)尾端。每個(gè)尾端可以有一個(gè)角色名role name來(lái)說(shuō)明關(guān)聯(lián)的作用。比如,一個(gè)OrderDetail實(shí)例是一個(gè)Order實(shí)例的項(xiàng)目。關(guān)聯(lián)上的方向性navigability箭
8、頭表示該關(guān)聯(lián)傳遞或查詢(xún)的方向。OrderDetail類(lèi)可以查詢(xún)他的Item,但不可以反過(guò)來(lái)查詢(xún)。箭頭方向同樣可以告訴你哪個(gè)類(lèi)擁有這個(gè)關(guān)聯(lián)的實(shí)現(xiàn);也就是,OrderDetail擁有Item。沒(méi)有方向性的箭頭的關(guān)聯(lián)是雙向。關(guān)聯(lián)尾端的數(shù)字表示該關(guān)聯(lián)另一邊的一個(gè)實(shí)例可以對(duì)應(yīng)的數(shù)字端的實(shí)例的格數(shù),通過(guò)這種方式表達(dá)關(guān)聯(lián)的多樣性multiplicity。多樣性的數(shù)字可以是一個(gè)單獨(dú)的數(shù)字或者是一個(gè)數(shù)字的范圍。在例子中,每個(gè)Order只有一個(gè)Customer,但一個(gè)Customer可以有任意多個(gè)Order。下面這個(gè)表給出了最普遍的多樣性示例。多樣性意義0.10或1個(gè)實(shí)例. n.m符號(hào)表示有n到m個(gè)實(shí)例0.* &
9、#160;or *沒(méi)有實(shí)例格數(shù)的限制(包括沒(méi)有).1只有一個(gè)實(shí)例1.*最少一個(gè)實(shí)例每個(gè)類(lèi)圖包括類(lèi),關(guān)聯(lián)和多樣性表示。方向性和角色是為了使圖示得更清楚時(shí)可選的項(xiàng)目。包和對(duì)象圖為了簡(jiǎn)單地表示出復(fù)雜的類(lèi)圖,可以把類(lèi)組合成包packages。一個(gè)包是UML上有邏輯關(guān)系的元件的集合。下面這個(gè)圖是是一個(gè)把類(lèi)組合成包的一個(gè)商業(yè)模型。dependencies關(guān)系。如果另一個(gè)的包B改變可能會(huì)導(dǎo)致一個(gè)包A改變,則包A依賴(lài)包B。包是用一個(gè)在上方帶有小標(biāo)簽的矩形表示的。包名寫(xiě)在標(biāo)簽上或者在矩形里面。點(diǎn)化線箭頭表示依賴(lài)對(duì)象圖Object diagrams用來(lái)表示類(lèi)的實(shí)例。他們?cè)诮忉審?fù)雜關(guān)系的細(xì)小問(wèn)題時(shí)(特別
10、是遞歸關(guān)系時(shí))很有用。這個(gè)類(lèi)圖示一個(gè)大學(xué)的Department可以包括其他很多的Departments。這個(gè)對(duì)象圖示上面類(lèi)圖的實(shí)例。用了很多具體的例子。UML中實(shí)例名帶有下劃線。只要意思清楚,類(lèi)或?qū)嵗梢栽趯?duì)象圖中被省略。每個(gè)類(lèi)圖的矩形對(duì)應(yīng)了一個(gè)單獨(dú)的實(shí)例。實(shí)例名稱(chēng)中所強(qiáng)調(diào)的UML圖表。類(lèi)或?qū)嵗拿Q(chēng)可能是省略對(duì)象圖表只要圖的意義仍然是明確的。順序圖類(lèi)圖和對(duì)象圖是靜態(tài)模型的視圖。交互圖是動(dòng)態(tài)的。他們描述了對(duì)象間的交互作用。順序圖將交互關(guān)系表示為一個(gè)二維圖??v向是時(shí)間軸,時(shí)間沿豎線向下延伸。橫向軸代表了在協(xié)作中各獨(dú)立對(duì)象的類(lèi)元角色。類(lèi)元角色用生命線表示。當(dāng)對(duì)象存在時(shí),角色用一條虛線表示,當(dāng)對(duì)象
11、的過(guò)程處于激活狀態(tài)時(shí),生命線是一個(gè)雙道線。消息用從一個(gè)對(duì)象的生命線到另一個(gè)對(duì)象生命線的箭頭表示。箭頭以時(shí)間順序在圖中從上到下排列。協(xié)作圖協(xié)作圖也是互動(dòng)的圖表。他們像序列圖一樣也傳遞相同的信息,但他們不關(guān)心什么時(shí)候消息被傳遞,只關(guān)心對(duì)象的角色。在序列圖中,對(duì)象的角色放在上面而消息則是連接線。對(duì)象角色矩形上標(biāo)有類(lèi)或?qū)ο竺ɑ蛘叨加校?。?lèi)名前面有個(gè)冒號(hào)(:)。協(xié)作圖的每個(gè)消息都有一個(gè)序列號(hào)。頂層消息的數(shù)字是1。同一個(gè)等級(jí)的消息(也就是同一個(gè)調(diào)用中的消息)有同樣的數(shù)字前綴,再根據(jù)他們出現(xiàn)的順序增加一個(gè)后綴1,2等等。狀態(tài)圖對(duì)象擁有行為和狀態(tài)。對(duì)象的狀態(tài)是由對(duì)象當(dāng)前的行動(dòng)和條件決定的。狀態(tài)圖statec
12、hart diagram顯示出了對(duì)象可能的狀態(tài)以及由狀態(tài)改變而導(dǎo)致的轉(zhuǎn)移。我們的模型例圖建立了一個(gè)銀行的在線登錄系統(tǒng)。登錄過(guò)程包括輸入合法的密碼和個(gè)人賬號(hào),再提交給系統(tǒng)驗(yàn)證信息。登錄系統(tǒng)可以被劃分為四種不重疊的狀態(tài):Getting SSN, Getting PIN, Validating, 以及 Rejecting。每個(gè)狀態(tài)都有一套完整的轉(zhuǎn)移transitions來(lái)決定狀態(tài)的順序。狀態(tài)是用圓角矩形來(lái)表示的。轉(zhuǎn)移則是使用帶箭頭的連線表示。觸發(fā)轉(zhuǎn)移的事件或者條件寫(xiě)在箭頭的旁邊。我們的圖上有兩個(gè)自轉(zhuǎn)移。一個(gè)是在Getting SSN,另一個(gè)則在上Getting PIN。初始狀態(tài)(黑色圓圈)是開(kāi)始動(dòng)作
13、的虛擬開(kāi)始。結(jié)束狀態(tài)也是動(dòng)作的虛擬結(jié)束。事件或條件觸發(fā)動(dòng)作時(shí)用(/動(dòng)作)表示。當(dāng)進(jìn)入Validating狀態(tài)時(shí),對(duì)象并不等外部事件觸發(fā)轉(zhuǎn)移。取而代之,它產(chǎn)生一個(gè)動(dòng)作。動(dòng)作的結(jié)果決定了下一步的狀態(tài)?;顒?dòng)圖活動(dòng)圖activity diagram是一個(gè)很特別的流程圖?;顒?dòng)圖和狀態(tài)圖之間是有關(guān)系的。狀態(tài)圖把焦點(diǎn)集中在過(guò)程中的對(duì)象身上,而活動(dòng)圖則集中在一個(gè)單獨(dú)過(guò)程動(dòng)作流程?;顒?dòng)圖告訴了我們活動(dòng)之間的依賴(lài)關(guān)系。對(duì)我們的例子來(lái)說(shuō),我們使用如下的過(guò)程?!巴ㄟ^(guò)ATM來(lái)取錢(qián)?!边@個(gè)活動(dòng)有三個(gè)類(lèi)Customer, ATM和 Bank。整個(gè)過(guò)程從黑色圓圈開(kāi)始到黑白的同心圓結(jié)束?;顒?dòng)用圓角矩形表示?;顒?dòng)圖可以被分解成許多對(duì)象泳道swimlanes ,可以決定哪些對(duì)象負(fù)責(zé)那些活動(dòng)。每個(gè)活動(dòng)都有一個(gè)單獨(dú)的轉(zhuǎn)移transition連接這其他的活動(dòng)。轉(zhuǎn)移可能分支branch成兩個(gè)以上的互斥的轉(zhuǎn)移。保護(hù)表達(dá)式(在中)表示轉(zhuǎn)移是從一個(gè)分支中引出的。分支以及分支結(jié)束時(shí)的合并
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 營(yíng)運(yùn)車(chē)輛買(mǎi)賣(mài)合同協(xié)議
- 8《安全記心上》第2課時(shí) 教學(xué)設(shè)計(jì)-2023-2024學(xué)年道德與法治三年級(jí)上冊(cè)統(tǒng)編版
- 信息技術(shù)(財(cái)經(jīng)商貿(mào)類(lèi)) 試卷 教學(xué)檢測(cè)二
- 3《公民意味著什么》(第1課時(shí))(教學(xué)設(shè)計(jì))2024-2025學(xué)年統(tǒng)編版道德與法治六年級(jí)上冊(cè)
- 勞動(dòng)合同樣本
- 3 我們班他們班(教學(xué)設(shè)計(jì))2024-2025學(xué)年統(tǒng)編版道德與法治四年級(jí)上冊(cè)
- 14健康過(guò)冬天(教學(xué)設(shè)計(jì))-部編版道德與法治一年級(jí)上冊(cè)
- 6-1《老子》四章(教學(xué)設(shè)計(jì))高二語(yǔ)文同步高效課堂(統(tǒng)編版 選擇性必修上冊(cè))
- 12 盤(pán)古開(kāi)天地 教學(xué)設(shè)計(jì)-2024-2025學(xué)年語(yǔ)文四年級(jí)上冊(cè)統(tǒng)編版
- 20《肥皂泡》教學(xué)設(shè)計(jì)-2023-2024學(xué)年統(tǒng)編版語(yǔ)文三年級(jí)下冊(cè)
- 甘草種植技術(shù)課件
- 冀教版英語(yǔ)九年級(jí)Unit 5 單詞短語(yǔ)預(yù)習(xí)復(fù)習(xí)單
- 公司安全生產(chǎn)監(jiān)督管理辦法
- 鋼筋工工藝與實(shí)習(xí)(第二版)課件匯總?cè)珪?shū)電子教案完整版課件最全幻燈片(最新)課件電子教案幻燈片
- 煤礦從業(yè)人員考試題庫(kù)全答案(word版)
- 洞頂回填技術(shù)交底
- 最簡(jiǎn)易的帕累托圖制作方法簡(jiǎn)介PPT通用課件
- 城市軌道交通應(yīng)急處理課程標(biāo)準(zhǔn)
- 初二下分式混合計(jì)算練習(xí)1(附答案)
- (完整版)振幅調(diào)制與解調(diào)習(xí)題及其解答
- 抗震支架施工安裝合同
評(píng)論
0/150
提交評(píng)論