![第12章UML建模語言_第1頁](http://file4.renrendoc.com/view9/M03/35/2D/wKhkGWdWZbeAaqG1AADEUH2L1kA034.jpg)
![第12章UML建模語言_第2頁](http://file4.renrendoc.com/view9/M03/35/2D/wKhkGWdWZbeAaqG1AADEUH2L1kA0342.jpg)
![第12章UML建模語言_第3頁](http://file4.renrendoc.com/view9/M03/35/2D/wKhkGWdWZbeAaqG1AADEUH2L1kA0343.jpg)
![第12章UML建模語言_第4頁](http://file4.renrendoc.com/view9/M03/35/2D/wKhkGWdWZbeAaqG1AADEUH2L1kA0344.jpg)
![第12章UML建模語言_第5頁](http://file4.renrendoc.com/view9/M03/35/2D/wKhkGWdWZbeAaqG1AADEUH2L1kA0345.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
系統(tǒng)分析與設(shè)計(shèjì)
共七十五頁UnifiedModelingLanguage(UML)UML概要軟件界第一個統(tǒng)一建模語言UML由OMG與1997年11月批準(zhǔn)為標(biāo)準(zhǔn)建模語言。UML建立在當(dāng)今國際上最有代表性的三種(sānzhǒnɡ)面向?qū)ο蠓椒ǎ˙ooch方法,OMT方法,OOSE方法)的基礎(chǔ)之上。UML是一種建模語言而不是一種方法,UML本身是獨立于過程的。共七十五頁UnifiedModelingLanguage(UML)共七十五頁面向?qū)ο笫且环N思想方法RUP是Rational公司定義的統(tǒng)一軟件過程知識庫產(chǎn)品。UML是面向?qū)ο笏枷氲慕y(tǒng)一表達(dá)語言。ROSE是Rational公司開發(fā)的運用UML和RUP的CASE工具。UnifiedModelingLanguage(UML)共七十五頁注意:UML不是可視化程序設(shè)計語言,而是標(biāo)準(zhǔn)的圖形化建模語言;不是工具或知識庫的規(guī)格說明,而是建模語言規(guī)格說明;不是過程,也不是方法;但允許任何一種過程或者方法使用它。與具體實現(xiàn)(shíxiàn)無關(guān),可應(yīng)用于任何語言平臺和工具平臺;與具體過程無關(guān),可應(yīng)用于任何軟件開發(fā)過程;UnifiedModelingLanguage(UML)共七十五頁
一般而言,我們可以從以下幾種常用的視角來描述一個系統(tǒng):系統(tǒng)的使用實例:從系統(tǒng)外部的操作者的角度描述系統(tǒng)的功能。系統(tǒng)的邏輯結(jié)構(gòu):描述系統(tǒng)內(nèi)部的靜態(tài)結(jié)構(gòu)和動態(tài)行為,即從內(nèi)部描述如何設(shè)計實現(xiàn)系統(tǒng)功能。系統(tǒng)的構(gòu)成:描述系統(tǒng)由哪些程序組件所組成。系統(tǒng)的并發(fā)性:描述系統(tǒng)的并發(fā)性,強調(diào)并發(fā)系統(tǒng)中存在的各種通信和同步問題。系統(tǒng)的配置(pèizhì):描述系統(tǒng)的軟件和各種硬件設(shè)備之間的配置(pèizhì)關(guān)系。UnifiedModelingLanguage(UML)共七十五頁場景設(shè)計(shèjì)視圖實現(xiàn)(shíxiàn)視圖進(jìn)程視圖實施視圖描述設(shè)計的對象模型,關(guān)注軟件抽象功能性需求描述設(shè)計的并發(fā)和同步等特性,關(guān)注系統(tǒng)非功能性需求描述軟件和硬件的映射問題,關(guān)注系統(tǒng)非功能性需求(性能、可靠性等)關(guān)注軟件代碼的靜態(tài)組織與管理對系統(tǒng)中的重要活動的抽象,使四個視圖有機地聯(lián)系起來軟件體系架構(gòu)的:“4+1”視圖邏輯視圖物理視圖UnifiedModelingLanguage(UML)共七十五頁靜態(tài)(jìngtài)圖實現(xiàn)(shíxiàn)圖行為圖交互圖包圖UnifiedModelingLanguage(UML)共七十五頁UML圖符常見(chánɡjiàn)模型元素
共七十五頁UMLUseCaseDiagrams(用例圖)用例圖描述系統(tǒng)外部的執(zhí)行者與系統(tǒng)的用例之間的某種聯(lián)系。所謂用例是指對系統(tǒng)提供的功能(或稱系統(tǒng)的用途)的一種描述;執(zhí)行者是那些可能使用這些用例的人或外部系統(tǒng);用例和執(zhí)行者之間的聯(lián)系描述了“誰使用哪個用例”。一個用例是用戶(yònghù)與計算機之間為達(dá)到某個目的的一次典型交互作用:用例描述了用戶提出的一些可見的需求;用例可大可?。挥美龑?yīng)一個具體的用戶目標(biāo)用例圖著重于從系統(tǒng)外部執(zhí)行者的角度來描述系統(tǒng)需要提供哪些功能,并且指明了這些功能的執(zhí)行者是誰;用例圖在UML方法中占有十分重要的地位,人們甚至稱UML是一種用例圖驅(qū)動的開發(fā)方法。共七十五頁用例分析的一個好處是它能夠展現(xiàn)出系統(tǒng)和外部世界之間的邊界(biānjiè)。參與者是典型的系統(tǒng)外部實體,而用例是典型的屬于系統(tǒng)內(nèi)部。系統(tǒng)的邊界(biānjiè)用一個矩形來代表,里面寫上系統(tǒng)的名字。系統(tǒng)的用例裝入矩形之內(nèi)。UMLUseCaseDiagrams(用例圖)共七十五頁用例圖中的圖符:使用:由用例A連向用例B,表示用例A中使用了用例B中的行為或功能。
擴展:由用例A連向用例B,表示用例B描述了一項基本需求,而用例A則描述了該基本需求的特殊情況。
注釋體:對UML實體進(jìn)行文字描述注釋連接(liánjiē):將注釋體與要描述的實體連接(liánjiē),說明該注釋體是針對該實體進(jìn)行的描述。?擴展?擴展用例被擴展用例?使用?使用用例抽象用例UMLUseCaseDiagrams(用例圖)共七十五頁設(shè)置(shèzhì)邊界風(fēng)險(fēngxiǎn)分析交易估計進(jìn)行交易超越邊界更新帳目評價貿(mào)易經(jīng)理營銷人員記帳系統(tǒng)銷售人員?使用??使用??擴展?UMLUseCaseDiagrams(用例圖)共七十五頁用例建模步驟:1.獲取執(zhí)行者:誰使用系統(tǒng)的主要功能(主要使用者)?誰需要系統(tǒng)支持他們的日常工作?誰來維護(hù)、管理系統(tǒng)使其能正常工作(輔助使用者)?系統(tǒng)需要控制哪些硬件?系統(tǒng)需要與其他哪些系統(tǒng)交互?對系統(tǒng)產(chǎn)生的結(jié)果感興趣的是哪些人?2.獲取用例:執(zhí)行者要求系統(tǒng)提供哪些功能?執(zhí)行者需要讀、產(chǎn)生、刪除、修改或存儲系統(tǒng)中的信息有哪些類型?必須提醒執(zhí)行者的系統(tǒng)事件有哪些?執(zhí)行者必須提醒系統(tǒng)事件有哪些?怎樣把這些事件表示成用例中的功能?3.構(gòu)造(gòuzào)用例模型圖4.記錄用例描述UMLUseCaseDiagrams(用例圖)共七十五頁UMLClassDiagrams(類圖)靜態(tài)模型在面向?qū)ο蟮慕<夹g(shù)中,類、對象和它們之間的關(guān)系是最基本的建模元素。對于一個想要描述的系統(tǒng),其類模型、對象模型以及它們之間的關(guān)系揭示了系統(tǒng)的結(jié)構(gòu)。類圖類圖描述了系統(tǒng)中的類及其相互之間的各種(ɡèzhǒnɡ)關(guān)系,其本質(zhì)反映了系統(tǒng)中包含的各種(ɡèzhǒnɡ)對象的類型以及對象間的各種(ɡèzhǒnɡ)靜態(tài)關(guān)系(關(guān)聯(lián),子類型)。類圖中的圖符:其中第一欄是類的名,第二欄是類的屬性,第三欄是類的操作。操作(服務(wù))屬性類名共七十五頁WashingMachinebrandNamemodeNameserialNumberaddClothes(C:String)removeClothes(C:string)turnON():Boolean屬性——是類的一個特性,它描敘了類的對象(也就是類的實例)所具有的一系列特性值。一個類可以具有零個到多個屬性。屬性名列表放在類名之下,并且和類名之間用分隔號隔開。UML中屬性的語法格式:可見性屬性名:類型名=初值{性質(zhì)串}可見性(可訪問性)包括三種:公有(gōngyǒu)的(+)私有的(—)保護(hù)的(#)如果未聲明可見性,則表示該屬性的可見性尚未定義。注意,沒有默認(rèn)的可見性。類圖舉例(jǔlì)UMLClassDiagrams(類圖)共七十五頁WashingMachinebrandNamemodeNameserialNumberaddClothes(C:String)removeClothes(C:string)turnON():Boolean操作——是類能夠做的事情或者你(或者另一個類)能對類做的事情。操作名列表要放在屬性名列表之下,兩者之間用分隔線隔開。UML中操作的語法格式:可見性操作名(參數(shù)表):返回值類型(lèixíng){性質(zhì)串}可見性定義方法與屬性相同。參數(shù)表語法:參數(shù)名:類型名=默認(rèn)值當(dāng)參數(shù)的調(diào)用者未提供實在參數(shù)時,該參數(shù)使用默認(rèn)值。類圖舉例(jǔlì)UMLClassDiagrams(類圖)共七十五頁類與類的關(guān)系——關(guān)聯(lián)(guānlián)關(guān)系(1)普通關(guān)聯(lián)UMLClassDiagrams(類圖)共七十五頁類與類的關(guān)系(guānxì)——關(guān)聯(lián)關(guān)系UMLClassDiagrams(類圖)共七十五頁類與類的關(guān)系——聚合關(guān)系(1)組成聚合:用于表示類的對象之間的關(guān)系:整體擁有各部分,部分與整體共存(gòngcún),如整體不存在了,部分也會隨之消失。UMLClassDiagrams(類圖)共七十五頁類與類的關(guān)系(guānxì)——聚合關(guān)系(2)共享聚合:用于表示類的對象之間的關(guān)系是整體與部分的關(guān)系。UMLClassDiagrams(類圖)共七十五頁類與類的關(guān)系——泛化關(guān)系抽象類:沒有具體對象的類抽象類通常作為父類,用于描述其他子類的公共屬性和行為。抽象類表示:在類名下方附加一個標(biāo)記值{abstract}抽象類通常都具有抽象操作。抽象操作僅用來指定該類的所有子類應(yīng)具有哪些(nǎxiē)行為。抽象操作的表示:在操作標(biāo)記后面跟隨一個性質(zhì)串{abstract}UMLClassDiagrams(類圖)交通工具{abstract}Drive(){abstract}汽車Drive()輪船Drive()驅(qū)動車輪轉(zhuǎn)動轉(zhuǎn)動螺旋槳共七十五頁訂單DateReceivedisPrepaidnumber:Stringprce:MoneyDispatch()close()訂單項Quantity:Integerprice:MoneyisSatisfied:Boolean1*項客戶NameaddressCreditRating():String團(tuán)體客戶ContactNamecreditRatingcreditLimitRemind()billforMonth(Intrger)雇員產(chǎn)品個人客戶CreditCard#{creditRating()=“poor”}銷售代表1*0..11**UMLClassDiagrams(類圖)共七十五頁UMLObjectDiagrams(對象(duìxiàng)圖)對象圖對象圖是類圖的一種變形。除了在對象名下面要加下劃線以外,對象圖中所使用的符號與類圖基本相同。對象圖是類圖的一種實例化。一張對象圖表示的是與其對應(yīng)的類圖的一個具體實例,即系統(tǒng)在某一時期或者某一特定時刻可能存在的具體對象實例以及它們相互之間的具體關(guān)系。對象圖并不象類圖那樣具有重要的地位,但是利用它可以幫助我們通過具體的實例分析,更具體直觀地了解復(fù)雜系統(tǒng)類圖的豐富內(nèi)涵。對象圖還常常被用作協(xié)作(xiézuò)圖的一部分,用以展示一組對象實例之間的動態(tài)協(xié)作(xiézuò)關(guān)系。共七十五頁類的屬性在該類的每個對象中都有具體值。對象名首寫字母小寫,后面根一個冒號,冒號后面是該對象所屬的類名,并且整個(zhěnggè)名字要帶下劃線。myWasher:WashingMachinebrandName=“海爾”modeName=“小神童(shéntóng)”serialNumber=“GL0214”UMLObjectDiagrams(對象圖)對象圖舉例共七十五頁作者計算機名字:String內(nèi)存:Ineger名字:String年齡:Integer0..1Uses1..*類圖小王:作者小王的工作PC:計算機名字=“王小影”年齡=32小王的工作PC:計算機名字=“CompaqX”內(nèi)存=32名字=“Dell486”內(nèi)存=64對象圖UMLObjectDiagrams(對象(duìxiàng)圖)共七十五頁對象\類圖建立步驟:1〉研究分析問題領(lǐng)域,確定系統(tǒng)的需求。2〉發(fā)現(xiàn)對象和類,明確他們的含義(hányì)和責(zé)任,確定屬性和操作。3〉發(fā)現(xiàn)類之間的靜態(tài)聯(lián)系。著重分析找出類之間的一般和特殊關(guān)系,部分與整體關(guān)系,研究類的繼承性和多態(tài)性,把類之間的靜態(tài)聯(lián)系用關(guān)聯(lián)、泛化、聚合、組合、依賴等聯(lián)系表達(dá)出來。4〉設(shè)計類與聯(lián)系。調(diào)整和細(xì)化已得到的對象類和類之間的聯(lián)系,解決諸如命名沖突、功能重復(fù)等問題。5〉繪制對象類圖并編制相應(yīng)的說明。
UMLObjectDiagrams(對象(duìxiàng)圖)共七十五頁對象\類圖案例講解——ATM系統(tǒng)某銀行擬開發(fā)一個自動取款機系統(tǒng),它是由自動取款機、中央計算機、分行計算機和柜員終端組成的網(wǎng)絡(luò)系統(tǒng)。ATM和中央計算機由總行投資購買。總行擁有多臺ATM機,分別設(shè)在全市各主要街道上。分行負(fù)責(zé)提供分行計算機和柜員終端。柜員終端設(shè)在分行營業(yè)廳以及分行下屬的各儲蓄所內(nèi)。該系統(tǒng)的軟件開發(fā)成本由各個分行分?jǐn)?。銀行柜員使用柜員終端處理儲戶提交的儲蓄事務(wù)。儲戶可以用現(xiàn)金或者支票向自己擁有的某個帳戶內(nèi)存款或者開新帳戶。儲戶也可以從自己的賬戶中取款。通常,一個儲戶可能擁有多個帳戶。柜員負(fù)責(zé)把儲戶提交的存款或者取款事務(wù)輸進(jìn)柜員終端,接收儲戶交來的現(xiàn)金或者支票,或者付給儲戶現(xiàn)金。柜員終端與相應(yīng)(xiāngyīng)的分行計算機通信,分行計算機具體處理針對某個帳戶的事務(wù)并且維護(hù)賬戶。
UMLObjectDiagrams(對象(duìxiàng)圖)共七十五頁對象\類圖案例講解——ATM系統(tǒng)1.分析業(yè)務(wù)領(lǐng)域術(shù)語(shùyǔ),作為類和對象的初步候選者。某銀行擬開發(fā)一個自動取款機系統(tǒng),它是由自動取款機、中央計算機、分行計算機和柜員終端組成的網(wǎng)絡(luò)系統(tǒng)。ATM和中央計算機由總行投資購買??傂袚碛卸嗯_ATM機,分別設(shè)在全市各主要街道上。分行負(fù)責(zé)提供分行計算機和柜員終端。柜員終端設(shè)在分行營業(yè)廳以及分行下屬的各儲蓄所內(nèi)。該系統(tǒng)的軟件開發(fā)成本由各個分行分?jǐn)?。銀行柜員使用柜員終端處理儲戶提交的儲蓄事務(wù)。儲戶可以用現(xiàn)金或者支票向自己擁有的某個帳戶內(nèi)存款或者開新帳戶。儲戶也可以從自己的賬戶中取款。通常,一個儲戶可能擁有多個帳戶。柜員負(fù)責(zé)把儲戶提交的存款或者取款事務(wù)輸進(jìn)柜員終端,接收儲戶交來的現(xiàn)金或者支票,或者付給儲戶現(xiàn)金。柜員終端與相應(yīng)的分行計算機通信,分行計算機具體處理針對某個帳戶的事務(wù)并且維護(hù)賬戶。
UMLObjectDiagrams(對象(duìxiàng)圖)共七十五頁對象\類圖案例講解——ATM系統(tǒng)2.篩選出正確的類和對象,去掉冗余、無關(guān)、籠統(tǒng)、屬性、操作、實現(xiàn)。某銀行擬開發(fā)一個自動取款機系統(tǒng)(籠統(tǒng)),它是由自動取款機、中央計算機、分行計算機和柜員終端組成的網(wǎng)絡(luò)(籠統(tǒng))系統(tǒng)。ATM和中央計算機由總行投資購買。總行擁有多臺ATM機,分別設(shè)在全市(無關(guān))各主要街道(無關(guān))上。分行負(fù)責(zé)提供分行計算機和柜員終端。柜員終端設(shè)在分行營業(yè)廳(無關(guān))以及分行下屬的各儲蓄所(無關(guān))內(nèi)。該系統(tǒng)的軟件(籠統(tǒng))開發(fā)成本(無關(guān))由各個分行分?jǐn)?。銀行柜員使用柜員終端處理用戶(冗余)提交的儲蓄事務(wù)。儲戶可以用現(xiàn)金(屬性)或者支票(zhībiào)(屬性)向自己擁有的某個帳戶內(nèi)存款或者開新帳戶。用戶也可以從自己的賬戶中取款。通常,一個用戶可能擁有多個帳戶。柜員負(fù)責(zé)把儲戶提交的存款或者取款事務(wù)輸進(jìn)柜員終端,接收儲戶交來的現(xiàn)金或者支票,或者付給儲戶現(xiàn)金。柜員終端與相應(yīng)的分行計算機通信,分行計算機具體處理針對某個帳戶的事務(wù)并且維護(hù)賬戶。
UMLObjectDiagrams(對象(duìxiàng)圖)共七十五頁對象\類圖案例講解——ATM系統(tǒng)3.確定關(guān)聯(lián)。某銀行擬開發(fā)一個自動取款機系統(tǒng),它是由自動取款機、中央計算機、分行計算機和柜員(ɡuìyuán)終端組成的網(wǎng)絡(luò)系統(tǒng)。ATM和中央計算機由總行投資購買??傂袚碛卸嗯_ATM機,分別(ATM)設(shè)在全市各主要街道上。分行負(fù)責(zé)提供分行計算機和柜員終端。柜員終端設(shè)在分行營業(yè)廳以及分行下屬的各儲蓄所內(nèi)。該系統(tǒng)的軟件開發(fā)成本由各個分行分?jǐn)偅ㄜ浖_發(fā)成本)。銀行柜員使用柜員終端處理儲戶提交的儲蓄事務(wù)。儲戶可以用現(xiàn)金或者支票向自己擁有的某個帳戶內(nèi)存款或者開新帳戶。儲戶也可以從自己的賬戶中取款。通常,一個儲戶可能擁有多個帳戶。柜員負(fù)責(zé)把儲戶提交的存款或者取款事務(wù)輸進(jìn)柜員終端,接收儲戶交來的現(xiàn)金或者支票,或者付給儲戶現(xiàn)金。柜員終端與相應(yīng)的分行計算機通信,分行計算機具體處理針對某個帳戶的事務(wù)并且(分行計算機)維護(hù)賬戶。
UMLObjectDiagrams(對象(duìxiàng)圖)共七十五頁對象\類圖案例講解——ATM系統(tǒng)4.分析并篩選候選關(guān)聯(lián)。去掉:已經(jīng)刪除的類之間的關(guān)聯(lián);與問題無關(guān)或需要在實現(xiàn)階段考慮的事件;三元關(guān)聯(lián);派生關(guān)聯(lián)。某銀行擬開發(fā)一個自動取款機系統(tǒng),它是由自動取款機、中央計算機、分行計算機和柜員終端組成(zǔchénɡ)的網(wǎng)絡(luò)系統(tǒng)。ATM和中央計算機由總行投資購買??傂袚碛卸嗯_ATM機(總行擁有中央計算機;ATM機與中央計算機通信),分別(ATM)設(shè)在全市各主要街道上。分行負(fù)責(zé)提供分行計算機和柜員終端。柜員終端設(shè)在分行營業(yè)廳以及分行下屬的各儲蓄所內(nèi)。該系統(tǒng)的軟件開發(fā)成本由各個分行分?jǐn)偅ㄜ浖_發(fā)成本)。銀行柜員使用柜員終端處理儲戶提交的儲蓄事務(wù)(柜員輸入事務(wù);事務(wù)修改帳戶)。儲戶可以用現(xiàn)金或者支票向自己擁有的某個帳戶內(nèi)存款或者開新帳戶。儲戶也可以從自己的賬戶中取款。通常,一個儲戶可能擁有多個帳戶。柜員負(fù)責(zé)把儲戶提交的存款或者取款事務(wù)輸進(jìn)柜員終端,接收儲戶交來的現(xiàn)金或者支票,或者付給儲戶現(xiàn)金。柜員終端與相應(yīng)的分行計算機通信,分行計算機具體處理針對某個帳戶的事務(wù)(分行處理事務(wù);事務(wù)修改帳戶)并且(分行計算機)維護(hù)賬戶。
UMLObjectDiagrams(對象(duìxiàng)圖)共七十五頁對象\類圖案例講解——ATM系統(tǒng)5.ATM機初始(chūshǐ)類圖草圖
UMLObjectDiagrams(對象(duìxiàng)圖)總行柜員終端分行計算機ATM中央計算機儲戶帳戶分行柜員事務(wù)柜員6.進(jìn)一步修改,并確定屬性和操作(略)共七十五頁UMLPackages(包圖)包圖包是一種(yīzhǒnɡ)分組機制,表示一個類圖集合。包圖所顯示的是類的包以及這些包之間的依賴關(guān)系。如果兩個包中的任意兩個類之間存在依賴關(guān)系,則這兩個包之間存在依賴關(guān)系。包的依賴是不傳遞的。何時使用包圖?在大項目中,包圖是一種重要工具;依賴產(chǎn)生耦合,應(yīng)該盡量將依賴性減少到最低程度;包的概念對測試也是特別有用的。Package共七十五頁UMLPackages(包圖)包圖建立步驟:1〉分析系統(tǒng)模型元素(通常是類),把概念上或語義上相近的模型元素納入一個包。注意可以從類的功能的相關(guān)性來確定納入包中的類。分析對象類的功能相關(guān)性:如果一個類的行為和/或結(jié)構(gòu)的變更要求另一個相應(yīng)的變更,則這兩個類是功能相關(guān)。如果刪除一個類后,另一個類便變成是多余的,則這兩個類是功能相關(guān)的,這說明該剩余的類只為那個被刪除的類所使用(shǐyòng),他們之間有依賴關(guān)系。如果兩個類之間大量的頻繁交互或通信,則這兩個類是功能相關(guān)的。如果兩個類之間有一般/特殊關(guān)系,則這兩個類是功能相關(guān)的。如果一個類激發(fā)創(chuàng)建另一個類的對象,則這兩個類是功能相關(guān)的。如果兩個類不涉及同一個外部參與者,則這兩個類不應(yīng)放在同一個包中。一個包應(yīng)當(dāng)具有高內(nèi)聚性,包中的類應(yīng)該是功能相關(guān)的。2〉對于每一個包,標(biāo)出其模型元素的可視性:公共、保護(hù)或私有。3〉確定包與包之間的依賴關(guān)系,特別是輸入依賴。4〉確定包與包之間的泛化關(guān)系,確定包元素的多態(tài)性和重載。5〉繪制包圖。共七十五頁UMLPackages(包圖)訂單獲取界面訂單獲取應(yīng)用AWT郵件發(fā)送清單界面郵件發(fā)送清單應(yīng)用訂單顧客共七十五頁UMLStatechartDiagrams(狀態(tài)圖)狀態(tài)圖狀態(tài)(zhuàngtài)圖是對類的一種補充描述,它展示了此類對象所具有的可能的狀態(tài)(zhuàngtài)以及某些事件發(fā)生時其狀態(tài)(zhuàngtài)的轉(zhuǎn)移情況。在狀態(tài)圖中,狀態(tài)由圓角矩形表示。狀態(tài)的改變稱作轉(zhuǎn)移,狀態(tài)轉(zhuǎn)移由箭頭表示,箭頭旁可以標(biāo)出轉(zhuǎn)移發(fā)生的條件。狀態(tài)轉(zhuǎn)移可以伴隨有某個動作,它表明當(dāng)轉(zhuǎn)移發(fā)生時系統(tǒng)要做什么。狀態(tài)圖針對單個對象建立模型。狀態(tài)之間怎樣轉(zhuǎn)換?狀態(tài)圖中兩個狀態(tài)之間帶箭頭的連線稱為狀態(tài)轉(zhuǎn)換,箭頭指明了轉(zhuǎn)換方向。狀態(tài)轉(zhuǎn)換通常是由事件觸發(fā)的,在這種情況下應(yīng)在表示狀態(tài)轉(zhuǎn)換的箭頭線上標(biāo)出觸發(fā)轉(zhuǎn)換的事件表達(dá)式。如果在箭頭線上未標(biāo)明事件,則表示在源狀態(tài)的內(nèi)部活動執(zhí)行完之后自動觸發(fā)轉(zhuǎn)換。共七十五頁UMLStatechartDiagrams(狀態(tài)圖)狀態(tài)圖基本(jīběn)符號:初態(tài)——用實心(shíxīn)圓表示;終態(tài)——用一對同心圓(內(nèi)圓為實心圓)表示;中間狀態(tài)——用圓角矩形表示;分成上、中、下3個部分。上面部分為狀態(tài)的名稱,這部分是必須有的;中間部分為狀態(tài)變量的名字和值,這部分是可選的;下面部分是活動表,這部分也是可選的。共七十五頁活動表的語法格式如下:事件名(參數(shù)表)/動作表達(dá)式“事件名”可以(kěyǐ)是任何事件的名稱。在活動表中經(jīng)常使用下述3種標(biāo)準(zhǔn)事件:entry,exit和do。entry事件指定進(jìn)入該狀態(tài)的動作exit事件指定退出該狀態(tài)的動作do事件則指定在該狀態(tài)下的動作。需要時可以為事件指定參數(shù)表。活動表中的動作表達(dá)式描述應(yīng)做的具體動作。UMLStatechartDiagrams(狀態(tài)圖)共七十五頁事件表達(dá)式的語法如下:事件說明[守衛(wèi)條件]/動作表達(dá)式事件說明的語法為:事件名(參數(shù)表)。守衛(wèi)條件是一個布爾表達(dá)式。如果同時使用事件說明和守衛(wèi)條件,則當(dāng)且僅當(dāng)事件發(fā)生且布爾表達(dá)式為真時,狀態(tài)轉(zhuǎn)換才發(fā)生。如果只有守衛(wèi)條件沒有事件說明,則只要守衛(wèi)條件為真狀態(tài)轉(zhuǎn)換就發(fā)生。動作表達(dá)式是一個過程(guòchéng)表達(dá)式,當(dāng)狀態(tài)轉(zhuǎn)換開始時執(zhí)行該表達(dá)式。UMLStatechartDiagrams(狀態(tài)圖)共七十五頁UMLStatechartDiagrams(狀態(tài)圖)下降狀態(tài)在第一層上升狀態(tài)向第一層下降空閑狀態(tài)上升到達(dá)到達(dá)上升超時下降到達(dá)第一層共七十五頁課堂練習(xí):根據(jù)(gēnjù)下列陳述繪制狀態(tài)圖復(fù)印機的工作過程大致如下:未接到復(fù)印命令時處于閑置狀態(tài),一旦接到復(fù)印命令則進(jìn)入復(fù)印狀態(tài),完成一個復(fù)印命令規(guī)定的工作后又回到閑置狀態(tài),等待下一個復(fù)印命令;如果執(zhí)行復(fù)印命令時發(fā)現(xiàn)沒紙,則進(jìn)入缺紙狀態(tài),發(fā)出警告,等待裝紙,裝滿紙后進(jìn)入閑置狀態(tài),準(zhǔn)備接收復(fù)印命令;如果復(fù)印時發(fā)生卡紙故障,則進(jìn)入卡紙狀態(tài),發(fā)出警告等待維修人員來排除故障,故障排除后回到閑置狀態(tài)。請用狀態(tài)轉(zhuǎn)換圖描繪復(fù)印機的行為。UMLStatechartDiagrams(狀態(tài)圖)共七十五頁建立狀態(tài)圖的步驟:1〉確定狀態(tài)機的上下文,它可以是一個類、子系統(tǒng)或整個系統(tǒng)。2〉選擇初始狀態(tài)和終結(jié)狀態(tài)。
注意:一張狀態(tài)圖中只能有一個初態(tài),而終態(tài)可以有0個或者多個。3〉發(fā)現(xiàn)對象的各種狀態(tài)。4〉確定狀態(tài)可能發(fā)生的裝移。注意從一個狀態(tài)可能轉(zhuǎn)移到哪些狀態(tài),對象的哪些行為可引起狀態(tài)的轉(zhuǎn)移并找出觸發(fā)(chùfā)狀態(tài)轉(zhuǎn)移的事件。5〉找出觸發(fā)狀態(tài)轉(zhuǎn)移的事件。6〉繪制狀態(tài)圖。7〉細(xì)化狀態(tài)中的可選項(狀態(tài)變量/活動表等)。UMLStatechartDiagrams(狀態(tài)圖)共七十五頁UMLSequenceDiagrams(順序(shùnxù)圖)順序圖順序圖描述了對象之間動態(tài)的交互關(guān)系,著重體現(xiàn)對象間消息傳遞的時間順序。順序圖由一組對象構(gòu)成,每個對象分別帶有一條豎線,稱作對象的生命線,它代表時間軸,時間沿豎線向下延伸。順序圖描述了這些對象隨著時間的推移相互之間交換消息(xiāoxi)的過程。消息(xiāoxi)用從一條垂直的對象生命線指向另一個對象的生命線的水平箭頭表示。圖中還可以根據(jù)需要增加有關(guān)時間的說明和其他注釋。共七十五頁UMLSequenceDiagrams(順序(shùnxù)圖)順序(shùnxù)圖符號:Name2激活:表示該對象正在執(zhí)行某個操作。激活矩形的長度表示激活的持續(xù)時間。調(diào)用消息和返回消息的符號異步消息的符號:Name1對象的生命線對象之間相互發(fā)送的消息共七十五頁UMLSequenceDiagrams(順序(shùnxù)圖):計算機:打印服務(wù)程序(chéngxù):打印隊列:打印機打印文件[打印機空閑]打印文件[打印機忙]保存文件共七十五頁順序圖的建立步驟1〉找出參與交互的對象角色,把他們橫向排列在順序圖的頂部,最重要的對象安置在最左邊,交互密切的對象盡可能相鄰。在交互中創(chuàng)建的對象在垂直方向應(yīng)安置在其被創(chuàng)建的時間點處。2〉對每一個(yīɡè)對象設(shè)置一條垂直的向下的生命線。3〉從初始化交互的信息開始,自頂向下在對象的生命線之間安置信息。注意用箭頭的形式區(qū)別同步消息和異步消息。4〉在生命線上繪出對象的激活期。5〉根據(jù)消息之間的關(guān)系,確定循環(huán)結(jié)構(gòu)及循環(huán)參數(shù)和出口條件。UMLSequenceDiagrams(順序(shùnxù)圖)共七十五頁UMLCollaborationDiagrams(協(xié)作(xiézuò)圖)協(xié)作圖與順序圖作用相同,協(xié)作圖也是用來描述系統(tǒng)中對象之間的動態(tài)協(xié)作關(guān)系。協(xié)作圖側(cè)重于描述各個對象之間存在的消息收發(fā)關(guān)系(交互關(guān)系),而不專門突出這些消息發(fā)送的時間順序。在協(xié)作圖中,對象同樣是用一個對象圖符來表示,箭頭表示消息發(fā)送的方向(fāngxiàng),而消息執(zhí)行的順序則由消息的編號來表明。協(xié)作圖是對象的擴展,協(xié)作圖除了展示出對象之間的關(guān)聯(lián),還顯示出對象之間的消息傳遞。通常在協(xié)作圖中省略掉關(guān)聯(lián)的名字。順序圖可以轉(zhuǎn)換成等價的協(xié)作圖,反之亦然。共七十五頁UMLCollaborationDiagrams(協(xié)作(xiézuò)圖)協(xié)作(xiézuò)圖符號:Class1:Class3:Class21:add()1:modify()1:update()關(guān)聯(lián)線附近的箭頭線表示對象之間傳遞的消息,箭頭指向消息接收對象。消息名稱和消息序號附在箭頭線附近。消息的一般含義是觸發(fā)接收消息的對象執(zhí)行它的一個操作。在協(xié)作圖中,在消息名前面加上消息的序號,它代表該消息在消息序列中的順序。消息名和序號之間用冒號隔開。共七十五頁UMLCollaborationDiagrams(協(xié)作(xiézuò)圖):計算機:打印(dǎyìn)隊列:打印服務(wù)程序:打印機1.打印文件3.保存文件[打印機忙]2.打印文件[打印機空閑]共七十五頁UMLCollaborationDiagrams(協(xié)作(xiézuò)圖)協(xié)作圖協(xié)作圖的布局方法能更清楚地表示出交互對象的整體組織。順序圖突出執(zhí)行的時序,能更方便地看出事情發(fā)生的次序。如果要描述在一個用例中的幾個對象協(xié)同工作的行為,交互圖是一種有力(yǒulì)的工具。交互圖擅長顯示對象之間的合作關(guān)系,盡管它并不對這些對象的行為進(jìn)行精確的定義。如果想要描述跨越多個用例的單個對象的行為,應(yīng)當(dāng)使用狀態(tài)圖;如果想要描述跨越多個用例或多個線程的多個對象的復(fù)雜行為,則需考慮使用活動圖。共七十五頁UMLCollaborationDiagrams(協(xié)作(xiézuò)圖)繪制協(xié)作圖的步驟:1〉找出參與交互的對象角色,把他們作為圖形的節(jié)點置在協(xié)作圖中。最重要的對象安置在圖的中央,與他有直接交互的對象安置在鄰近。2〉設(shè)置對象的初始性質(zhì)。3〉說明對象之間的鏈接。首先給出對象之間的關(guān)聯(lián)連接,然后給出其它連接。4〉從初始化交互的消息開始,在鏈接上安置相應(yīng)的消息,給出消息的序號。5〉處理(chǔlǐ)一些特殊情況,如循環(huán)、自調(diào)用、回調(diào)、多對象等。共七十五頁UMLActivityDiagrams(活動(huódòng)圖)活動圖活動圖描述系統(tǒng)中各種活動的執(zhí)行順序,通常用于描述一個(yīɡè)操作中所要進(jìn)行的各項活動的執(zhí)行流程。活動圖也常被用來描述一個用例的處理流程,或者某種交互流程?;顒訄D由一些活動組成,圖中同時包括了對這些活動的說明。當(dāng)一個活動執(zhí)行完畢之后,控制將沿著控制轉(zhuǎn)移箭頭轉(zhuǎn)向下一個活動?;顒訄D中還可以方便地描述控制轉(zhuǎn)移的條件以及并行執(zhí)行等要求?;顒訝顟B(tài)表示成帶有圓形邊線的矩形,它含有活動的描述(普通的狀態(tài)盒為直邊圓角)。簡單的完成轉(zhuǎn)換用箭頭表示。和狀態(tài)圖相似,活動圖也有起點和終點符號,表示法和狀態(tài)圖一樣。共七十五頁UMLActivityDiagrams(活動(huódòng)圖)加水到容器中將咖啡放到過濾器中點燃咖啡爐取出咖啡杯把過濾器放到咖啡爐上沖調(diào)咖啡倒咖啡找飲料取一聽可口可樂喝飲料人[找到可口可樂][沒有可口可樂][沒有咖啡][找到咖啡]熄滅咖啡爐共七十五頁UMLActivityDiagrams(活動(huódòng)圖)共七十五頁UMLActivityDiagrams(活動(huódòng)圖)共七十五頁UMLActivityDiagrams(活動(huódòng)圖)活動圖活動圖最適合支持描述并行行為,這使之成為支持工作流建模的最好工具?;顒訄D最大的缺點是很難清楚地描述動作與對象之間的關(guān)系。對于(duìyú)以下情況可以使用活動圖:(1)分析用例;(2)理解牽涉多個用例的工作流;在下列情況下,一般不要使用活動圖:(1)顯示對象間合作;(2)顯示對象在其生命周期內(nèi)的運轉(zhuǎn)情況。共七十五頁活動圖建立步驟:1〉找出負(fù)責(zé)實現(xiàn)(shíxiàn)工作流的業(yè)務(wù)對象。這些對象可以是現(xiàn)實業(yè)務(wù)領(lǐng)域中的實體,也可以是一種抽象的概念或事物。為每一個重要的業(yè)務(wù)對象建立一條泳道。2〉確定工作流的初始狀態(tài)和終結(jié)狀態(tài),明確工作流的邊界。3〉從工作流的初始狀態(tài)開始,找出隨時間而發(fā)生的活動和動作,把他們表示成活動狀態(tài)或動作狀態(tài)。4〉對于復(fù)雜的動作或多次重復(fù)出現(xiàn)的一組動作,可以把他們組成一個活動狀態(tài),并且用另外一個活動圖來展開表示。5〉給出連接活動和動作的轉(zhuǎn)移(動作流)。首先處理順序動作流,然后處理條件分支。最后處理分支和結(jié)合。6〉在活動圖中給出與工作流有關(guān)的重要對象,并用虛箭線把他們與活動狀態(tài)或動作狀態(tài)相連接。UMLActivityDiagrams(活動(huódòng)圖)共七十五頁UMLComponentDiagrams(組件(zǔjiàn)圖)組件圖組件圖描述軟件組件以及它們之間的依賴關(guān)系,從而便于人們分析和發(fā)現(xiàn)當(dāng)修改某個組件時可能對那些組件產(chǎn)生影響,以便對它們做相應(yīng)的修改或更新(gēngxīn)。組件可以是源代碼組件、二進(jìn)制目標(biāo)碼組件、可執(zhí)行組件或文檔組件。組件用一邊有兩個小矩形的一個長方形表示,它可以用實線與代表組件接口的圓圈相連。組件圖表示了組件之間的依賴關(guān)系。每個組件實現(xiàn)(支持)一些接口,并使用另一些接口。如果組件間的依賴關(guān)系與接口有關(guān),那么組件可以被具有同樣接口的其他組件替代。
共七十五頁UMLComponentDiagrams(組件(zǔjiàn)圖)
Whnd.cpp:
窗口(chuāngkǒu)處理器
Graphic.dll:圖形庫
Comhnd.cpp:
命令處理器
Main.cpp:主類
Whnd.obj:
窗口處理器
Comhnd.obj:
命令處理器
Main.obj:主類
client.exe:
客戶程序共七十五頁UMLComponentDiagrams(組件(zǔjiàn)圖)共七十五頁UMLComponentDiagrams(組件(zǔjiàn)圖)
繪制組件圖的步驟:1〉確定組件。首先要分解系統(tǒng),考慮有關(guān)系統(tǒng)的組成管理、軟件的重用核物理節(jié)點的配置等因素,把關(guān)系密切的可執(zhí)行程序和對象庫分別歸入組件,找出相應(yīng)的對象類、接口等模型元素。
2〉對組件加上必要的構(gòu)造型??梢允褂胾ml的標(biāo)準(zhǔn)構(gòu)造型《executable》、《library》、《table》、《file》、《document》,或自定義新的構(gòu)造型,說明組件的性質(zhì)。
3〉確定組件之間的聯(lián)系。最常見的組件之間的聯(lián)系是通過(tōngguò)接口依賴。一個組件使用某個接口,另一個組件實現(xiàn)該接口。
4〉必要時把組件組織成包。組件和對象、協(xié)作等模型元素一樣可以組織成包。
5〉繪制組件圖。共七十五頁UMLDeploymentDiagrams(配置圖)配置圖配置圖描述系統(tǒng)中硬件和軟件的物理配置情況和系統(tǒng)體系結(jié)構(gòu)。在配置圖中,用節(jié)點表示實際的物理設(shè)備,如計算機和各種外部設(shè)備等,并根據(jù)它們(tāmen)之間的連接關(guān)系,將相應(yīng)的結(jié)點連接起來,并說明其連接方式。在節(jié)點里面,說明分配給該結(jié)點上運行的可執(zhí)行組件或?qū)ο?,從而說明哪些軟件單元被分配在哪些結(jié)點上運行。共七十五頁UMLDeploymentDiagrams(配置圖)客戶(kèhù)A:個人電腦PC客戶(kèhù)B:個人電腦PC數(shù)據(jù)庫服務(wù)器:VAX服務(wù)器:02?TCP/IP協(xié)議??TCP/IP?協(xié)議?DecNet協(xié)議?共七十五頁UMLDeploymentDiagrams(配置圖)共七十五頁配置圖建立步驟:
1〉確定節(jié)點。注意:標(biāo)示系統(tǒng)中的硬件設(shè)備,包括大型主機、服務(wù)器、前端機、網(wǎng)絡(luò)設(shè)備、輸入/輸出設(shè)備等。一個處理機是一個節(jié)點,它具有處理功能(gōngnéng),能夠執(zhí)行一個組件;一個設(shè)備也是一個節(jié)點,它沒有處理功能(gōngnéng),但它是系統(tǒng)和現(xiàn)實世界的接口。
2〉對節(jié)點加上必要的構(gòu)造型??梢允褂胾ml的標(biāo)準(zhǔn)構(gòu)造型或自定義新的構(gòu)造型,說明節(jié)點的性質(zhì)。
3〉確定聯(lián)系。這是關(guān)鍵步驟。配置圖中的聯(lián)系包括節(jié)點與節(jié)點之間的聯(lián)系,節(jié)點與組件之間的聯(lián)系,組件與組件之間的聯(lián)系。把系統(tǒng)的組件如可執(zhí)行程序,動態(tài)連接庫等分配到節(jié)點上,并確定節(jié)點與節(jié)點之間,節(jié)點與組件之間,組件與組件之間的聯(lián)系,以及他們的性質(zhì)。
4〉繪制配置圖。UMLDeploymentDiagrams(配置圖)共七十五頁基于(jīyú)UML的系統(tǒng)開發(fā)過程基于UML的系統(tǒng)開發(fā)過程——
快速應(yīng)用工程指導(dǎo)原則(GuidelinesforRapidAPPLicationEngineering,GRAPPLE)1.需求收集(shōují)2.分析3.設(shè)計4.實現(xiàn)5.部署共七十五頁基于UML的系統(tǒng)開發(fā)過程1.需求收集了解業(yè)務(wù)過程,形成描述業(yè)務(wù)過程的活動圖。進(jìn)行領(lǐng)域分析,了解客戶領(lǐng)域中的主要實體,構(gòu)造高層類圖。識別協(xié)作系統(tǒng),建立初步的部署圖。發(fā)現(xiàn)系統(tǒng)需求,通過聯(lián)合(liánhé)應(yīng)用開發(fā)計劃,細(xì)化類圖。會議的工作產(chǎn)品是包圖。包代表了一個系統(tǒng)功能的高層領(lǐng)域。將結(jié)果提交給客戶。需求分析的結(jié)果提交給客戶,認(rèn)可后繼續(xù)?;?jīyú)UML的系統(tǒng)開發(fā)過程共七十五頁基于UML的系統(tǒng)開發(fā)過程2.分析理解系統(tǒng)用法,進(jìn)行高層用例分析。工作產(chǎn)品是用例圖,涵蓋了用例與參與者和用例之間的包含、擴展關(guān)系。充實用例,分析每個用例中的步驟序列。工作產(chǎn)品是對每個用例步驟的用例描述。細(xì)化類圖,在類圖中加入關(guān)聯(lián)名、抽象類、多重性、泛化和聚
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 七年級道德與法治上冊第二單元 友誼的天空第四課友誼與成長同行第2框深深淺淺話友誼聽課評課記錄(新人教版)
- 湘教版數(shù)學(xué)九年級上冊《小結(jié)練習(xí)》聽評課記錄
- 小學(xué)二年級上冊數(shù)學(xué)口算檢測試卷
- 五年級下學(xué)期班主任班級工作總結(jié)
- 蘇教版小學(xué)四年級上冊數(shù)學(xué)口算題
- 蘇教版五年級數(shù)學(xué)上冊期末復(fù)習(xí)口算練習(xí)題一
- 云南省食用菌產(chǎn)品買賣合同范本
- 湘教版數(shù)學(xué)七年級上冊第3章小結(jié)與復(fù)習(xí)聽評課記錄
- 店長聘用協(xié)議書范本
- 深圳房地產(chǎn)出租合同范本
- 《榜樣9》觀后感心得體會二
- 《西安交通大學(xué)》課件
- 天津市部分區(qū)2024-2025學(xué)年九年級(上)期末物理試卷(含答案)
- 小學(xué)二年級數(shù)學(xué)計算題共4165題
- 一氧化碳中毒培訓(xùn)
- 初二上冊好的數(shù)學(xué)試卷
- 保潔服務(wù)質(zhì)量與服務(wù)意識的培訓(xùn)
- 廣東省潮州市2024-2025學(xué)年九年級上學(xué)期期末道德與法治試卷(含答案)
- 突發(fā)公共衛(wèi)生事件衛(wèi)生應(yīng)急
- 部編版2024-2025學(xué)年三年級上冊語文期末測試卷(含答案)
- 《景觀設(shè)計》課件
評論
0/150
提交評論