![活動(dòng)圖與狀態(tài)圖_第1頁(yè)](http://file4.renrendoc.com/view11/M02/3A/31/wKhkGWVqfoKAPUXOAAEz6qZxCjU598.jpg)
![活動(dòng)圖與狀態(tài)圖_第2頁(yè)](http://file4.renrendoc.com/view11/M02/3A/31/wKhkGWVqfoKAPUXOAAEz6qZxCjU5982.jpg)
![活動(dòng)圖與狀態(tài)圖_第3頁(yè)](http://file4.renrendoc.com/view11/M02/3A/31/wKhkGWVqfoKAPUXOAAEz6qZxCjU5983.jpg)
![活動(dòng)圖與狀態(tài)圖_第4頁(yè)](http://file4.renrendoc.com/view11/M02/3A/31/wKhkGWVqfoKAPUXOAAEz6qZxCjU5984.jpg)
![活動(dòng)圖與狀態(tài)圖_第5頁(yè)](http://file4.renrendoc.com/view11/M02/3A/31/wKhkGWVqfoKAPUXOAAEz6qZxCjU5985.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第10章?tīng)顟B(tài)圖與活動(dòng)圖10.1動(dòng)態(tài)建模概述10.2狀態(tài)圖10.3活動(dòng)圖10.4活動(dòng)圖與狀態(tài)圖的比較10.1動(dòng)態(tài)建模概述1.狀態(tài)圖與活動(dòng)圖在系統(tǒng)建模中的位置
在UML軟件開(kāi)發(fā)過(guò)程中,是通過(guò)建立業(yè)務(wù)用例模型對(duì)系統(tǒng)進(jìn)行需求分析的,對(duì)于某些重要的用例采用活動(dòng)圖來(lái)配合描述用例具體實(shí)現(xiàn)的流程,在系統(tǒng)分析階段也經(jīng)常用活動(dòng)圖來(lái)進(jìn)一步深入描述用例圖的具體功能實(shí)現(xiàn)流程。 在系統(tǒng)分析與系統(tǒng)設(shè)計(jì)階段都涉及到對(duì)象類的動(dòng)態(tài)建模。對(duì)象的動(dòng)態(tài)模型是描述系統(tǒng)的動(dòng)態(tài)行為的,分為狀態(tài)模型和交互模型。 在UML中,用狀態(tài)圖和活動(dòng)圖為狀態(tài)模型建模,用順序圖和合作圖為交互模型建模。需求分析系統(tǒng)分析實(shí)現(xiàn)測(cè)試部署系統(tǒng)設(shè)計(jì)用例建模對(duì)象類建模對(duì)象交互模型:順序圖/協(xié)作圖對(duì)象狀態(tài)模型:狀態(tài)圖/活動(dòng)圖活動(dòng)圖10.1動(dòng)態(tài)建模概述1.狀態(tài)圖與活動(dòng)圖在系統(tǒng)建模中的位置 在系統(tǒng)分析系統(tǒng)階段用狀態(tài)圖和活動(dòng)圖為對(duì)象動(dòng)態(tài)模型中的狀態(tài)模型建模。 在系統(tǒng)設(shè)計(jì)階段階段對(duì)已經(jīng)建立的對(duì)象動(dòng)態(tài)模型〔狀態(tài)圖、活動(dòng)圖、順序圖和協(xié)作圖〕采用迭代式的方式進(jìn)一步細(xì)化和完善。需求分析系統(tǒng)分析實(shí)現(xiàn)測(cè)試部署系統(tǒng)設(shè)計(jì)用例建模對(duì)象類建模對(duì)象交互模型:順序圖/協(xié)作圖對(duì)象狀態(tài)模型:狀態(tài)圖/活動(dòng)圖活動(dòng)圖10.1動(dòng)態(tài)建模概述 2.系統(tǒng)設(shè)計(jì)做什么? 在UML的面向?qū)ο箝_(kāi)發(fā)過(guò)程,系統(tǒng)設(shè)計(jì)是在系統(tǒng)分析的根底上,對(duì)系統(tǒng)分析階段建立的對(duì)象靜態(tài)模型、對(duì)象的動(dòng)態(tài)模型的進(jìn)一步細(xì)化,是對(duì)這些模型的更加詳細(xì)的設(shè)計(jì)、補(bǔ)充和完善。 系統(tǒng)設(shè)計(jì)時(shí),從類中導(dǎo)出對(duì)象,關(guān)注對(duì)象的關(guān)系、行為和對(duì)象間的通信是如何實(shí)現(xiàn)的。對(duì)每個(gè)類的屬性和操作出更詳細(xì)的設(shè)計(jì),并設(shè)計(jì)相關(guān)聯(lián)類間的消息規(guī)約。參加接口類對(duì)象,建立更完整的對(duì)象的靜態(tài)、動(dòng)態(tài)模型。 系統(tǒng)設(shè)計(jì)包括系統(tǒng)對(duì)象設(shè)計(jì)、系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)和系統(tǒng)設(shè)計(jì)的優(yōu)化和審查。 〔需求分析的用例模型反映系統(tǒng)能做什么?系統(tǒng)分析的對(duì)象類建模是關(guān)心系統(tǒng)對(duì)誰(shuí)做的問(wèn)題,而系統(tǒng)設(shè)計(jì)的動(dòng)態(tài)建模是解決系統(tǒng)如何做的?!?0.1動(dòng)態(tài)建模概述
3.順序圖做什么? 順序圖〔SequenceDiagram〕描述了對(duì)象之間傳送消息的時(shí)間順序,它用來(lái)表示用例中的行為順序,當(dāng)執(zhí)行一個(gè)用例行為時(shí),順序圖中的每條消息對(duì)應(yīng)了一個(gè)類操作中引起轉(zhuǎn)換的觸發(fā)事件。1)確認(rèn)和豐富一個(gè)使用語(yǔ)境的邏輯表達(dá)。一個(gè)系統(tǒng)的使用情境就是系統(tǒng)潛在的使用方式的描述,也就是它的名稱所要描述的。一個(gè)使用情境的邏輯可能是一個(gè)用例的一局部,或是一條控制流。2)細(xì)化用例的表達(dá)。我們前面已經(jīng)提到,序列圖的主要用途之一,就是把用例表達(dá)的需求,轉(zhuǎn)化為進(jìn)一步、更加正式層次的精細(xì)表達(dá)。用例常常被細(xì)化為一個(gè)或者更多的序列圖。3)有效地描述如何分配各個(gè)類的職責(zé)以及各類具有相應(yīng)職責(zé)的原因。我們可以根據(jù)對(duì)象之間的交互關(guān)系來(lái)定義類的職責(zé),各個(gè)類之間的交互關(guān)系構(gòu)成一個(gè)特定的用例。10.1動(dòng)態(tài)建模概述
4.協(xié)作圖做什么? 協(xié)作圖〔CollaborationDiagram〕是順序圖之外的另一種表示交互的方法。主要描述協(xié)作對(duì)象間的交互和鏈接,強(qiáng)調(diào)的是對(duì)象結(jié)構(gòu)相關(guān)的信息。順序圖和協(xié)作圖都描述交互,但是順序圖強(qiáng)調(diào)的是時(shí)間,而協(xié)作圖強(qiáng)調(diào)的是空間。1〕通過(guò)描繪對(duì)象之間消息的傳遞情況來(lái)反映具體的使用語(yǔ)境的邏輯表達(dá)。一個(gè)使用情境的邏輯可能是一個(gè)用例的一局部,或是一條控制流。這和序列圖的作用類似。2〕顯示對(duì)象及其交互關(guān)系的空間組織結(jié)構(gòu)。協(xié)作圖顯示了在交互過(guò)程中各個(gè)對(duì)象之間的組織交互關(guān)系以及對(duì)象彼此之間的鏈接。與序列圖不同,協(xié)作圖顯示的是對(duì)象之間的關(guān)系,并不側(cè)重交互的順序,它沒(méi)有將時(shí)間作為一個(gè)單獨(dú)的維度,而是使用序列號(hào)來(lái)確定消息及并發(fā)線程的順序。3〕表現(xiàn)一個(gè)類操作的實(shí)現(xiàn)。協(xié)作圖可以說(shuō)明類操作中使用到的參數(shù)、局部變量以及返回值等。當(dāng)使用協(xié)作圖表現(xiàn)一個(gè)系統(tǒng)行為時(shí),消息編號(hào)對(duì)應(yīng)了程序中嵌套調(diào)用結(jié)構(gòu)和信號(hào)傳遞過(guò)程。10.1動(dòng)態(tài)建模概述5.狀態(tài)圖做什么? 狀態(tài)圖〔StateDiagram〕主要用來(lái)描述對(duì)象、子系統(tǒng)、系統(tǒng)的生命周期。通過(guò)狀態(tài)圖可以表現(xiàn)系統(tǒng)中一個(gè)對(duì)象所具有的各種狀態(tài)和這個(gè)對(duì)象從一種狀態(tài)到另一種狀態(tài)的轉(zhuǎn)換〔遷移〕,以及影響對(duì)象這些狀態(tài)的事件〔如收到消息、時(shí)間已到、報(bào)錯(cuò)、條件為真〕等。它主要描述某個(gè)對(duì)象從一個(gè)狀態(tài)到另一個(gè)狀態(tài)變化遷移的控制流。10.1動(dòng)態(tài)建模概述
6.活動(dòng)圖做什么? 活動(dòng)圖〔ActivityDiagram〕主要用于描述系統(tǒng)中對(duì)象的一個(gè)活動(dòng)到另一個(gè)活動(dòng)的控制流、一個(gè)事務(wù)的活動(dòng)序列、工作的流程和并發(fā)的處理能力。 需求分析中的活動(dòng)圖主要用來(lái)配合描述某個(gè)重要的用例,用圖型的方式對(duì)用例的具體實(shí)現(xiàn)的過(guò)程進(jìn)行描述,這樣比文字的描述更直觀、更準(zhǔn)確地說(shuō)明用例的功能,在系統(tǒng)分析與設(shè)計(jì)過(guò)程中,經(jīng)常用活動(dòng)圖進(jìn)一步深入描述用例圖的具體實(shí)現(xiàn)流程。 系統(tǒng)設(shè)計(jì)中的活動(dòng)圖對(duì)系統(tǒng)的業(yè)務(wù)工作流、操作建模,它描述業(yè)務(wù)流中從一個(gè)活動(dòng)到另一個(gè)活動(dòng)的控制流。它描述活動(dòng)的序列,用來(lái)分析和驗(yàn)證用例,理解工作流程,描述復(fù)雜過(guò)程的算法,并具支持帶條件的行為和并發(fā)行的多程建模。10.2狀態(tài)圖10.2.1狀態(tài)圖概述10.2.2狀態(tài)圖的組成10.2.3狀態(tài)圖創(chuàng)立案例10.2.1狀態(tài)圖概述
狀態(tài)圖〔StatechartDiagram〕是軟件系統(tǒng)進(jìn)行面向?qū)ο蠓治龅囊环N常用工具,它通過(guò)建立對(duì)象、子系統(tǒng)、系統(tǒng)的生命周期模型〔狀態(tài)〕來(lái)描述對(duì)象、子系統(tǒng)隨時(shí)間變化的動(dòng)態(tài)行為。 狀態(tài)圖詳細(xì)說(shuō)明了一個(gè)對(duì)象生命周期內(nèi)的可能的狀態(tài)序列,狀態(tài)允許發(fā)生的遷移,會(huì)引起遷移發(fā)生的事件,以及為了響應(yīng)事件而執(zhí)行的行為。10.2.1狀態(tài)概述 并不是對(duì)所有的對(duì)象都創(chuàng)立狀態(tài)圖,只有當(dāng)行為的改變和狀態(tài)有關(guān)時(shí)才創(chuàng)立狀態(tài)圖。 如圖書(shū)管理系統(tǒng)中的圖書(shū)〔相關(guān):新書(shū)、在架、預(yù)訂、借出、注銷〕和讀者帳號(hào)〔有效、掛失、失效〕可以創(chuàng)立其狀態(tài)圖,而圖書(shū)管理員帳號(hào)那么沒(méi)有必要建立狀態(tài)圖。 與類圖、對(duì)象圖和用例圖不同,狀態(tài)圖只能對(duì)單個(gè)對(duì)象建立模型,而類圖、對(duì)象圖和用例圖可以對(duì)一個(gè)系統(tǒng)或一組類建立模型。10.2.1狀態(tài)概述 狀態(tài)圖清晰地描述了狀態(tài)之間的轉(zhuǎn)換順序,通過(guò)狀態(tài)的轉(zhuǎn)換順序可以清晰看出事件的執(zhí)行順序。 清晰的事件順序有利于程序員在開(kāi)發(fā)程序時(shí)防止出現(xiàn)事件錯(cuò)序的情況。 狀態(tài)圖清晰地描述了狀態(tài)轉(zhuǎn)換時(shí)所必須觸發(fā)的事件、監(jiān)護(hù)條件和動(dòng)作等影響轉(zhuǎn)換的因素。 狀態(tài)圖通過(guò)判定可以更好地描述工作流因?yàn)椴煌臈l件發(fā)生的分支。10.2.2狀態(tài)圖的組成狀態(tài)圖由狀態(tài)、轉(zhuǎn)換、事件、活動(dòng)和動(dòng)作5局部組成:1狀態(tài)指的是對(duì)象在其生命周期中的一種狀況,處于某個(gè)特定狀態(tài)中的對(duì)象必然會(huì)滿足某些條件、執(zhí)行某些動(dòng)作或者是等待某些事件。一個(gè)狀態(tài)的生命周期是一個(gè)有限的時(shí)間階段。2轉(zhuǎn)換指的是兩個(gè)不同狀態(tài)之間的一種關(guān)系,說(shuō)明對(duì)象將在第一個(gè)狀態(tài)中執(zhí)行一定的動(dòng)作,并且在滿足某個(gè)特定條件下由某個(gè)事件觸發(fā)進(jìn)入第二個(gè)狀態(tài)。3事件指的是發(fā)生在時(shí)間和空間上的對(duì)狀態(tài)機(jī)來(lái)講有意義的那些事情。事件通常會(huì)引起狀態(tài)的變遷,促使?fàn)顟B(tài)機(jī)從一種狀態(tài)切換到另一種狀態(tài),如信號(hào)、對(duì)象額度創(chuàng)立和銷毀等。4活動(dòng)指的是狀態(tài)機(jī)中進(jìn)行的非原子操作。5動(dòng)作指的是狀態(tài)機(jī)中可以執(zhí)行的那些原子操作,所謂原子操作指的是它們?cè)谶\(yùn)行的過(guò)程中不能被其他消息所中斷,必須一直執(zhí)行下去,最終導(dǎo)致?tīng)顟B(tài)的變更或者返回一個(gè)值。10.2.2狀態(tài)圖組成1.起點(diǎn)和終點(diǎn)〔起始狀態(tài)與終止?fàn)顟B(tài),特殊狀態(tài)節(jié)點(diǎn)〕起點(diǎn)代表狀態(tài)圖的一個(gè)初始狀態(tài),此狀態(tài)代表狀態(tài)圖的起始位置。起點(diǎn)只能作為轉(zhuǎn)換的源,而不是作為轉(zhuǎn)換的目標(biāo)。起點(diǎn)在一個(gè)狀態(tài)圖中只允許有一個(gè)。終點(diǎn)代表狀態(tài)圖的最后狀態(tài),此狀態(tài)代表狀態(tài)圖的終止位置。終點(diǎn)只能作為轉(zhuǎn)換的目標(biāo),而不是作為轉(zhuǎn)換的源。終點(diǎn)在一個(gè)狀態(tài)圖中可以有一個(gè)或多個(gè),表示一個(gè)活動(dòng)圖的最后和終結(jié)狀態(tài)。10.2.2狀態(tài)圖組成2.狀態(tài) 狀態(tài)是指在對(duì)象的生命期中的一個(gè)條件或狀況,在此期間對(duì)象將滿足某些條件、執(zhí)行某些活動(dòng)或等待某些事件。
10.2.2狀態(tài)圖組成理解狀態(tài)的特征——狀態(tài)是一個(gè)時(shí)間段:在員工下班回家的過(guò)程中,經(jīng)歷的狀態(tài)包括:到下班時(shí)間了,收拾東西準(zhǔn)備回家〔不考慮加班〕;開(kāi)始等待電梯;乘坐電梯下樓;乘坐電梯到達(dá)樓下;〔發(fā)現(xiàn)沒(méi)帶家里鑰匙,上樓拿〕乘坐電梯上樓;去公交車站等車;乘公共汽車去菜場(chǎng);買菜;回到家。10.2.2狀態(tài)圖組成理解狀態(tài)的特征:〔1〕進(jìn)入/退出動(dòng)作:對(duì)象本身的一個(gè)操作。如果在電梯里是一個(gè)狀態(tài)的話,那員工進(jìn)電梯和出電梯就是狀態(tài)“在電梯里〞的進(jìn)入/退出動(dòng)作。〔2〕內(nèi)部轉(zhuǎn)換:例如員工在去等電梯的時(shí)候發(fā)現(xiàn)鑰匙沒(méi)帶,此時(shí)我們不用在“等電梯〞以后,而是在“準(zhǔn)備回家〞的狀態(tài)中就去拿鑰匙了。雖然整體的狀態(tài)沒(méi)有發(fā)生變化,但對(duì)于對(duì)象本身來(lái)說(shuō),前后是不一樣的,一個(gè)是有鑰匙,一個(gè)是沒(méi)有鑰匙?!?〕子狀態(tài):如果需要進(jìn)一步描述員工對(duì)象在電梯里聊天、打等狀態(tài)時(shí),這些狀態(tài)就是該對(duì)象的“在電梯里〞狀態(tài)的子狀態(tài)。〔4〕延遲事件:現(xiàn)在不立即產(chǎn)生的事件,該事件是在一段時(shí)間以后才產(chǎn)生的事件。員工必須等待到達(dá)17:50的時(shí)候,才能下班。10.2.2狀態(tài)圖組成狀態(tài)圖符的三個(gè)組成局部:狀態(tài)名、狀態(tài)變量、事件。一個(gè)狀態(tài)一般包含三個(gè)局部,如下圖。第事件一局部為狀態(tài)的名稱,如空閑、已付、移動(dòng)、在菜場(chǎng)等。第二局部為可選的狀態(tài)變量的變量名和變量值。屬性〔變量〕指的是狀態(tài)圖中類的屬性。第三局部為可選的活動(dòng)表,列出有關(guān)的事件和活動(dòng)。10.2.2狀態(tài)圖組成3.事件事件是在某個(gè)時(shí)刻發(fā)生的事情,一個(gè)事件是一次激發(fā)的產(chǎn)生,激發(fā)可以觸發(fā)一個(gè)狀態(tài)轉(zhuǎn)換。“事件〞指的是發(fā)生的且引起某些動(dòng)作執(zhí)行的事情,即事件表示在某一特定的時(shí)間或空間出現(xiàn)的能夠引發(fā)狀態(tài)改變的運(yùn)動(dòng)變化。 事件是一個(gè)時(shí)間點(diǎn),事件種類如下。10.2.2狀態(tài)圖組成事件是一個(gè)時(shí)間點(diǎn):在員工下班回家的過(guò)程中,發(fā)生的事件包括:到下班時(shí)間了,收拾東西準(zhǔn)備回家〔不考慮加班〕;開(kāi)始等待電梯;電梯到達(dá)梯上;乘坐電梯到達(dá)樓下;〔發(fā)現(xiàn)沒(méi)帶家里鑰匙,上樓拿〕乘坐電梯上樓;去公交車站等車;乘坐的公共汽車到了〔〕乘公共汽車去菜場(chǎng);買菜;回到家。10.2.2狀態(tài)圖組成事件的種類: 事件可以分成明確或隱含的幾種,主要包括:狀態(tài)內(nèi)部的事件、消息事件和時(shí)間事件等。狀態(tài)內(nèi)部的事件〔又稱為動(dòng)作Activety〕: 主要有入口事件、出口事件和DO事件等。10.2.2狀態(tài)圖組成消息——信號(hào)事件和調(diào)用事件。調(diào)用事件:一個(gè)對(duì)象調(diào)用另一個(gè)對(duì)象的操作,標(biāo)在遷移線上,調(diào)用事件后,引起狀態(tài)遷移。如,補(bǔ)辦借書(shū)證〔帳號(hào)〕,調(diào)用后,帳號(hào)由掛失狀態(tài)遷移到有效狀態(tài)。信號(hào)事件:由發(fā)出信號(hào)事件和接收信號(hào)事件構(gòu)成。發(fā)出信號(hào)事件接收信號(hào)事件10.2.2狀態(tài)圖組成時(shí)間事件: 由after事件、when事件和defer事件。其中aftert事件和when事件后跟有動(dòng)作。10.2.2狀態(tài)圖組成4.遷移〔轉(zhuǎn)換〕——狀態(tài)的改變轉(zhuǎn)換表示當(dāng)一個(gè)特定事件發(fā)生或者某些條件滿足時(shí),一個(gè)源狀態(tài)下的對(duì)象完成一定的動(dòng)作后將發(fā)生狀態(tài)轉(zhuǎn)變,轉(zhuǎn)向另一個(gè)稱之為目標(biāo)狀態(tài)的狀態(tài)。當(dāng)發(fā)生轉(zhuǎn)換時(shí),轉(zhuǎn)換進(jìn)入的狀態(tài)為活動(dòng)狀態(tài),轉(zhuǎn)換離開(kāi)的狀態(tài)變?yōu)榉腔顒?dòng)狀態(tài)。10.2.2狀態(tài)圖組成遷移的特征:10.2.2狀態(tài)圖組成監(jiān)護(hù)條件:轉(zhuǎn)換可能具有一個(gè)監(jiān)護(hù)條件,監(jiān)護(hù)條件是一個(gè)布爾表達(dá)式,它是觸發(fā)轉(zhuǎn)換必須滿足的條件。10.2.2狀態(tài)圖組成觸發(fā)器事件: 觸發(fā)器事件就是能夠引起狀態(tài)轉(zhuǎn)換的事件。如果此事件有參數(shù),那么這些參數(shù)可以被轉(zhuǎn)換所用,也可以被監(jiān)護(hù)條件和動(dòng)作的表達(dá)式所用。動(dòng)作: 動(dòng)作〔Action〕通常是一個(gè)簡(jiǎn)短的計(jì)算處理過(guò)程或一組可執(zhí)行語(yǔ)句。動(dòng)作也可以是一個(gè)動(dòng)作序列,即一系列簡(jiǎn)單的動(dòng)作。 動(dòng)作有兩種情況:附加到相應(yīng)的遷移線上或?qū)?yīng)的狀態(tài)框內(nèi)。10.2.2狀態(tài)圖組成外部轉(zhuǎn)換:外部轉(zhuǎn)換是一種改變狀態(tài)的轉(zhuǎn)換,也是最普通最常見(jiàn)的一種轉(zhuǎn)換。在UML中,它用從源狀態(tài)到目標(biāo)狀態(tài)的帶箭頭的線段表示,其他屬性以文字串附加在箭頭旁。10.2.2狀態(tài)圖組成內(nèi)部轉(zhuǎn)換只有源狀態(tài),沒(méi)有目標(biāo)狀態(tài),不會(huì)激發(fā)入口和出口動(dòng)作,因此內(nèi)部轉(zhuǎn)換激發(fā)的結(jié)果不改變本來(lái)的狀態(tài)。如果一個(gè)內(nèi)部轉(zhuǎn)換帶有動(dòng)作,它也要被執(zhí)行。內(nèi)部轉(zhuǎn)換常用于對(duì)不改變狀態(tài)的插入動(dòng)作建立模型。要注意的是內(nèi)部轉(zhuǎn)換的激發(fā)可能會(huì)掩蓋使用相同事件的外部轉(zhuǎn)換。內(nèi)部轉(zhuǎn)換的表示法與入口動(dòng)作和出口動(dòng)作的表示法很相似。他們的區(qū)別主要在于入口和出口動(dòng)作使用了保存字“entry〞和“exit〞,其它局部?jī)烧叩谋硎痉ㄏ嗤?。判定例如無(wú)判定例如10.2.2狀態(tài)圖組成5.判定判定用來(lái)表示一個(gè)事件依據(jù)不同的監(jiān)護(hù)條件有不同的影響。在實(shí)際建模的過(guò)程中,如果遇到需要使用判定的情況,通常用監(jiān)護(hù)條件來(lái)覆蓋每種可能,使得一個(gè)事件的發(fā)生能保證觸發(fā)一個(gè)轉(zhuǎn)換。10.2.2狀態(tài)圖組成6.分叉與集合同步條是為了說(shuō)明并發(fā)工作流的分支與集合。狀態(tài)圖和活動(dòng)圖中都可能用到同步。在UML中,同步用一條線段來(lái)表示。10.2.3狀態(tài)圖創(chuàng)立案例 在UML中,交互模型描述假設(shè)于對(duì)象共同協(xié)作完成一項(xiàng)作,而狀態(tài)圖那么是描述一個(gè)對(duì)象穿越假設(shè)干用例的行為。建立狀態(tài)圖模型的建模步驟如下:1〕確定狀態(tài)圖的主體,它可以是一個(gè)系統(tǒng)、一個(gè)用例、一個(gè)對(duì)象;2〕確定主體的生存期的各種穩(wěn)定的狀態(tài)及順序;3〕確定狀態(tài)遷移的事件;4〕附加上必要的動(dòng)作,把動(dòng)作附加到相應(yīng)的遷移線上或?qū)?yīng)的狀態(tài)框內(nèi);5〕審核狀態(tài)圖,確認(rèn)所有狀態(tài)在事件觸發(fā)下都可到達(dá)、死鎖狀態(tài)〔無(wú)遷移〕。
10.2.3狀態(tài)圖創(chuàng)立案例
——進(jìn)銷存管理系統(tǒng)中“產(chǎn)品〞的狀態(tài)圖1.確定狀態(tài)圖的主體 要?jiǎng)?chuàng)立狀態(tài)圖,首先要標(biāo)識(shí)出哪些實(shí)體需要使用狀態(tài)圖進(jìn)一步建模。雖然我們可以為每一個(gè)類、操作、包或用例創(chuàng)立狀態(tài)圖,但是這樣做勢(shì)必浪費(fèi)很多的精力。一般來(lái)說(shuō),不需要給所有的類都創(chuàng)立狀態(tài)圖,只有具有重要?jiǎng)討B(tài)行為的類才需要。從另一個(gè)角度看,狀態(tài)圖應(yīng)該用于復(fù)雜的實(shí)體,而不必用于具有復(fù)雜行為的實(shí)體。使用活動(dòng)圖可能會(huì)更加適合那些有復(fù)雜行為的實(shí)體。具有清晰、有序的狀態(tài)實(shí)體最適合使用狀態(tài)圖進(jìn)一步建模。對(duì)于產(chǎn)品出入倉(cāng)庫(kù)來(lái)說(shuō),需要建模的實(shí)體就是產(chǎn)品。
10.2.3狀態(tài)圖創(chuàng)立案例
——進(jìn)銷存管理系統(tǒng)中“產(chǎn)品〞的狀態(tài)圖2.確定狀態(tài)圖中實(shí)體的狀態(tài)
對(duì)于一個(gè)入庫(kù)的產(chǎn)品來(lái)說(shuō),它的狀態(tài)主要包括:
(1)未入庫(kù)狀態(tài)
(2)入庫(kù)狀態(tài)
(3)被排除狀態(tài)
(4)銷售出庫(kù)狀態(tài)
10.2.3狀態(tài)圖創(chuàng)立案例
——進(jìn)銷存管理系統(tǒng)中“產(chǎn)品〞的狀態(tài)圖3.創(chuàng)立相關(guān)事件完成狀態(tài)圖當(dāng)確定了需要建模的實(shí)體,并找出了實(shí)體的初始狀態(tài)和終止?fàn)顟B(tài)以及其他相關(guān)狀態(tài)后,就可以著手創(chuàng)立狀態(tài)圖。首先,我們要找出相關(guān)的事件和轉(zhuǎn)換。對(duì)于企業(yè)的產(chǎn)品來(lái)說(shuō),剛被生產(chǎn)出來(lái)的產(chǎn)品可以通過(guò)倉(cāng)庫(kù)管理員添加成為入庫(kù)的產(chǎn)品。當(dāng)入庫(kù)產(chǎn)品被出售,產(chǎn)品品處于被銷售狀態(tài)。當(dāng)產(chǎn)品由于過(guò)期、損壞等因素造成的不合格時(shí),產(chǎn)品會(huì)被剔除。根據(jù)產(chǎn)品的各種狀態(tài)以及轉(zhuǎn)換規(guī)那么。10.2.3狀態(tài)圖創(chuàng)立案例
——網(wǎng)上商城中“商品〞的狀態(tài)圖1.商品對(duì)象2.狀態(tài)序列3.轉(zhuǎn)換事件及活動(dòng)。10.2.3狀態(tài)圖創(chuàng)立案例
——圖書(shū)管理系統(tǒng)的圖書(shū)狀態(tài)圖1.圖書(shū)對(duì)象2.狀態(tài)序列3.轉(zhuǎn)換事件及活動(dòng)。10.2.3狀態(tài)圖創(chuàng)立案例
——員工下班回家狀態(tài)圖(1)確定狀態(tài)對(duì)象:?jiǎn)T工。〔2〕添加狀態(tài)選擇狀態(tài)圖繪圖工具欄上的相應(yīng)按鈕,在繪圖區(qū)域中單擊鼠標(biāo)左鍵,就可以繪制狀態(tài)。10.2.3狀態(tài)圖創(chuàng)立案例
——員工下班回家狀態(tài)圖
〔3〕添加狀態(tài)之間添加狀態(tài)轉(zhuǎn)換單擊狀態(tài)圖繪制工具欄上的按鈕,在狀態(tài)之間添加轉(zhuǎn)換,由此得到的員式下班回家的狀態(tài)圖及其狀態(tài)轉(zhuǎn)換10.2.3狀態(tài)圖創(chuàng)立案例
——員工下班回家狀態(tài)圖〔4〕設(shè)置狀態(tài)轉(zhuǎn)移事件在不同的狀態(tài)之間進(jìn)行轉(zhuǎn)換時(shí),需要指定從一種狀態(tài)轉(zhuǎn)換到另一種狀態(tài)的事件。10.2.3狀態(tài)圖創(chuàng)立案例
——員工下班回家狀態(tài)圖〔5〕添加活動(dòng)在繪制狀態(tài)圖時(shí),一般情況下需要指定狀態(tài)的活動(dòng)。右鍵單擊對(duì)應(yīng)的狀態(tài)〔如:等待電梯〕,翻開(kāi)狀態(tài)屬性設(shè)置對(duì)話框,選擇【Actions】選項(xiàng)卡,右鍵單擊中間空白區(qū)域,選擇【Insert】菜單,完成活動(dòng)的添加。10.2.3狀態(tài)圖創(chuàng)立案例
——員工下班回家狀態(tài)圖〔6〕調(diào)整大小和位置遵循美觀、實(shí)用的原那么,調(diào)整狀態(tài)圖的大小和位置,得到的員工下班回家的狀態(tài)圖。課堂實(shí)踐1閱讀如下圖的學(xué)生選課系統(tǒng)中的課程狀態(tài)圖,試著對(duì)不同狀態(tài)間的轉(zhuǎn)換進(jìn)行描述?!?〕maxstudents表示選修某一門課程的最多人數(shù)?!?〕students表示選修了某一門課程的人數(shù)?!?〕afterthisterm表示學(xué)期結(jié)束10.3活動(dòng)圖10.3活動(dòng)圖活動(dòng)圖〔ActivityDiagram〕主要用于描述系統(tǒng)中對(duì)象的一個(gè)活動(dòng)到另一個(gè)活動(dòng)的控制流、一個(gè)事務(wù)的活動(dòng)序列、工作的流程和并發(fā)的處理能力。 需求分析中的活動(dòng)圖主要用來(lái)配合描述某個(gè)重要的用例,用圖型的方式對(duì)用例的具體實(shí)現(xiàn)的過(guò)程進(jìn)行描述,這樣比文字的描述更直觀、更準(zhǔn)確地說(shuō)明用例的功能,在系統(tǒng)分析與設(shè)計(jì)過(guò)程中,經(jīng)常用活動(dòng)圖進(jìn)一步深入描述用例圖的具體實(shí)現(xiàn)流程。 系統(tǒng)設(shè)計(jì)中的活動(dòng)圖對(duì)系統(tǒng)的業(yè)務(wù)工作流、操作建模,它描述業(yè)務(wù)流中從一個(gè)活動(dòng)到另一個(gè)活動(dòng)的控制流。它描述活動(dòng)的序列,用來(lái)分析和驗(yàn)證用例,理解工作流程,描述復(fù)雜過(guò)程的算法,并具支持帶條件的行為和并發(fā)行的多程建模。10.3.1活動(dòng)圖概述活動(dòng)圖的作用:*描述一個(gè)操作執(zhí)行過(guò)程中所完成的工作,說(shuō)明角色、工作流、組織和對(duì)象是如何工作的。*活動(dòng)圖對(duì)用例描述尤其有用,它可建模用例的工作流、顯示用例內(nèi)部和用例之間的路徑。*顯示如何執(zhí)行一組相關(guān)的動(dòng)作,以及這些動(dòng)作如何影響它們周圍的對(duì)象。*活動(dòng)圖可以畫(huà)出工作流用以描述業(yè)務(wù),有利于與領(lǐng)域?qū)<疫M(jìn)行交流。通過(guò)活動(dòng)圖可以明確業(yè)務(wù)處理操作是如何進(jìn)行的,以及可能產(chǎn)生的變化。*描述復(fù)雜過(guò)程的算法,在這種情況下使用的活動(dòng)圖和傳統(tǒng)的程序流程圖的功能是相似的。活動(dòng)圖與常用的程序流程圖相似,它們的主要區(qū)別在于程序流程圖一般用來(lái)表示串行過(guò)程,而活動(dòng)圖那么可以用來(lái)表示并行過(guò)程。10.3.1活動(dòng)圖概述10.3.2活動(dòng)圖組成1.動(dòng)作狀態(tài)動(dòng)作狀態(tài)是指執(zhí)行原子的、不可中斷的動(dòng)作,并在此動(dòng)作完成后轉(zhuǎn)換到另一個(gè)狀態(tài)。動(dòng)作狀態(tài)有如下特點(diǎn):動(dòng)作狀態(tài)是原子的,它是構(gòu)造活動(dòng)圖的最小單位,無(wú)法分解為更小的局部;動(dòng)作狀態(tài)是不可中斷的,它一旦運(yùn)行就不能中斷,一直運(yùn)行到結(jié)束;動(dòng)作狀態(tài)是瞬時(shí)的行為,它所占用的處理時(shí)間極短,有時(shí)甚至可以忽略;動(dòng)作狀態(tài)有入轉(zhuǎn)換,入轉(zhuǎn)換可以是動(dòng)作流,也可以是對(duì)象流。動(dòng)作狀態(tài)至少有一條出轉(zhuǎn)換,這條轉(zhuǎn)換以內(nèi)部動(dòng)作的完成為起點(diǎn),與外部事件無(wú)關(guān);動(dòng)作狀態(tài)與狀態(tài)圖中的狀態(tài)不同,它不能有入口動(dòng)作和出口動(dòng)作,也不能有內(nèi)部轉(zhuǎn)移;動(dòng)作狀態(tài)允許多處出現(xiàn)在同一活動(dòng)圖中。10.3.2活動(dòng)圖組成
2.活動(dòng)狀態(tài)活動(dòng)狀態(tài)是非原子性的,用來(lái)表示一個(gè)具有子結(jié)構(gòu)的純粹計(jì)算的執(zhí)行?;顒?dòng)狀態(tài)有如下特點(diǎn):活動(dòng)狀態(tài)可以分解成其他子活動(dòng)或動(dòng)作狀態(tài),由于它是一組不可中斷的動(dòng)作或操作的組合,所以可以被中斷;活動(dòng)狀態(tài)的內(nèi)部活動(dòng)可以用另一個(gè)活動(dòng)圖來(lái)表示;活動(dòng)狀態(tài)可以有入口動(dòng)作和出口動(dòng)作,也可以有內(nèi)部轉(zhuǎn)移;動(dòng)作狀態(tài)是活動(dòng)狀態(tài)的一個(gè)特例,如果某一個(gè)活動(dòng)狀態(tài)只包括一個(gè)動(dòng)作,那么它就是一個(gè)動(dòng)作狀態(tài)。
10.3.2活動(dòng)圖組成3.動(dòng)作流:動(dòng)作流是指所有動(dòng)作狀態(tài)之間的轉(zhuǎn)換。4.分支與合并分支是軟件系統(tǒng)流程中很常見(jiàn)的一種邏輯,它一般用來(lái)表示對(duì)象所具有的條件行為,每一局部都有單獨(dú)的監(jiān)護(hù)條件和不同的結(jié)果。合并包括兩個(gè)帶條件的入轉(zhuǎn)換和一個(gè)出轉(zhuǎn)換〔即兩個(gè)入口和一個(gè)出口〕,用來(lái)表示從對(duì)應(yīng)的分支開(kāi)始的條件行為的結(jié)束。10.3.2活動(dòng)圖組成5.分叉與集合〔結(jié)合〕活動(dòng)圖顯求了如何協(xié)調(diào)多個(gè)事件,當(dāng)執(zhí)行活動(dòng)時(shí),有可能并行使用這些事件。 考慮一對(duì)夫妻的餐館就餐活動(dòng),如右圖,僅當(dāng)兩盤(pán)菜都做好后才會(huì)提供這套便餐。
10.3.2活動(dòng)圖組成
5.分叉與集合 分叉用于將動(dòng)作流分為兩個(gè)或多個(gè)并發(fā)運(yùn)行的分支集合那么用于將不同的分支會(huì)聚一起集合有多個(gè)入轉(zhuǎn)換和一個(gè)出轉(zhuǎn)換,出轉(zhuǎn)換開(kāi)始于所有并行活動(dòng)都完成時(shí)?;顒?dòng)圖主要用于為有多個(gè)活動(dòng)并行執(zhí)行的業(yè)務(wù)建模10.3.2活動(dòng)圖組成6.泳道為了對(duì)活動(dòng)的職責(zé)進(jìn)行組織而在活動(dòng)圖中將活動(dòng)狀態(tài)分為不同的組,稱為泳道〔Swimlane〕。每個(gè)泳道代表特定含義的狀態(tài)職責(zé)局部。泳道顯示了對(duì)象對(duì)系統(tǒng)所做的奉獻(xiàn)。帶泳道活動(dòng)圖的特點(diǎn):
----泳道顯示了對(duì)象對(duì)系統(tǒng)所做的奉獻(xiàn)。10.3.2活動(dòng)圖組成7.對(duì)象流 對(duì)象可以在活動(dòng)圖中顯示,表示動(dòng)作狀態(tài)或者活動(dòng)狀態(tài)與對(duì)象之間的依賴關(guān)系。 對(duì)象可以作為動(dòng)作的輸入或輸出,或簡(jiǎn)單地表示指定動(dòng)作對(duì)對(duì)象的影響。
10.3.2活動(dòng)圖組成在活動(dòng)圖中,對(duì)象流描述了動(dòng)作狀態(tài)或者活動(dòng)狀態(tài)與對(duì)象之間的關(guān)系,表示了動(dòng)作使用對(duì)象以及動(dòng)作對(duì)對(duì)象的影響對(duì)象用矩形符號(hào)來(lái)表示,在矩形的內(nèi)部有對(duì)象名或類名。對(duì)象流用帶有箭頭的虛線表示。活動(dòng)圖中的對(duì)象流活動(dòng)圖中參加對(duì)象流更能顯示系統(tǒng)的交互:在活動(dòng)圖中添加對(duì)象及對(duì)象流:步驟:工具——CREATE——OBJECT10.3.2活動(dòng)圖組成
8.組合活動(dòng)在UML的活動(dòng)圖中,一個(gè)大的活動(dòng)可以分為假設(shè)干個(gè)動(dòng)作或子活動(dòng),這些動(dòng)作或子活動(dòng)本身又可以組成一個(gè)活動(dòng)圖。10.3.3活動(dòng)圖創(chuàng)立案例活動(dòng)圖建模步驟:(1)確定對(duì)象:找出負(fù)責(zé)實(shí)現(xiàn)工作流的主體對(duì)象。 對(duì)象主要參考與業(yè)務(wù)工作流相關(guān)的用例中的參與者。 為重要的對(duì)象分配一條泳道。(2)確定范圍:明確起始狀態(tài)和終止?fàn)顟B(tài)。(3)確定主要活動(dòng)序列:建模主要用例路徑。(4)處理遷移:分支狀態(tài)遷移,并發(fā)與同步〔分叉與結(jié)合〕遷移。(5)確定工作流中涉及的重要對(duì)象:添加對(duì)象流。活動(dòng)圖的創(chuàng)立例如:用戶購(gòu)物活動(dòng)圖10.3.3活動(dòng)圖創(chuàng)立案例
——電子商城用戶購(gòu)物活動(dòng)圖1.標(biāo)識(shí)活動(dòng)圖的用例用戶購(gòu)物活動(dòng)中要涉及多個(gè)用例,完成工作流的主要對(duì)象是購(gòu)物用戶如圖。活動(dòng)圖的創(chuàng)立例如:用戶購(gòu)物活動(dòng)圖10.3.3活動(dòng)圖創(chuàng)立案例
——電子商城用戶購(gòu)物活動(dòng)圖2.建模用例的路徑用戶登錄,首先選擇要查看商品信息,…,最后退出系統(tǒng)?;顒?dòng)圖的創(chuàng)立例如:用戶購(gòu)物活動(dòng)圖10.3.3活動(dòng)圖創(chuàng)立案例
——電子商城用戶購(gòu)物活動(dòng)圖3.創(chuàng)立活動(dòng)圖 在創(chuàng)立活動(dòng)圖的過(guò)程中,需要注意如下問(wèn)題: 考慮用例其他可能的工作流情況,如執(zhí)行過(guò)程中可能出現(xiàn)的錯(cuò)誤或是可能執(zhí)行其他活動(dòng)。 使用泳道細(xì)化活動(dòng)圖。 按照時(shí)間順序自上而下的排列泳道內(nèi)的動(dòng)作或者狀態(tài)。 使用并發(fā)時(shí),不要漏掉任何的分支,尤其是當(dāng)分支比較多的時(shí)候。10.3.3活動(dòng)圖創(chuàng)立案例
——電子商城用戶前臺(tái)購(gòu)物活動(dòng)圖4.在Rose中繪制活動(dòng)圖〔1〕創(chuàng)立活動(dòng)圖包圖〔起點(diǎn)的問(wèn)題〕〔2〕創(chuàng)立新的活動(dòng)圖 單擊“LogicalView〞節(jié)點(diǎn),選擇【New】【ActivityDiagram】,輸入新的活動(dòng)圖的名稱〔如:前臺(tái)購(gòu)物〕10.3.3活動(dòng)圖創(chuàng)立案例
——電子商城用戶前臺(tái)購(gòu)物活動(dòng)圖
〔3〕添加購(gòu)物用戶活動(dòng)圖的起點(diǎn)和終點(diǎn)。〔4〕添加動(dòng)作狀態(tài)或活動(dòng)狀態(tài)。根本操作方式同狀態(tài)圖。〔5〕增加分支與合并。購(gòu)物用戶通過(guò)網(wǎng)上系統(tǒng)進(jìn)行購(gòu)物時(shí),如果沒(méi)有登錄系統(tǒng),那么需要進(jìn)行登錄才能完成商品的購(gòu)置操作。10.3.3活動(dòng)圖創(chuàng)立案例
——電子商城用戶購(gòu)物活動(dòng)圖
〔6〕增加分叉與集合。購(gòu)物用戶進(jìn)入網(wǎng)上系統(tǒng)后,在未登錄狀態(tài)下可以搜索并查看商品,并查詢商品的詳細(xì)情況。用戶登錄系統(tǒng)后,既可以查看商品信息,購(gòu)置商品,也可以修改個(gè)人信息和查看個(gè)人信息。因此,查看并購(gòu)置商品和修改/查看個(gè)人信息屬于并行流?;顒?dòng)圖的創(chuàng)立例如:教師查看、修改學(xué)生信息10.3.3活動(dòng)圖創(chuàng)立案例
——教師管理學(xué)生信息活動(dòng)圖1.標(biāo)識(shí)活動(dòng)圖的用例對(duì)于“教師查看、修改學(xué)生信息〞來(lái)說(shuō),它的參與者是教師,教師在查看、修改學(xué)生信息的活動(dòng)中有以下3個(gè)用例: 登錄; 查詢學(xué)生信息; 修改學(xué)生信息?;顒?dòng)圖的創(chuàng)立例如10.3.3活動(dòng)圖創(chuàng)立案例
——教師管理學(xué)生信息活動(dòng)圖2.建模用例的路徑 教師登錄后,首先選擇要查看哪位同學(xué)的信息,查看之后修改該學(xué)生的信息,修改完成后保存修改正的信息,最后退出系統(tǒng)。10.3.3活動(dòng)圖創(chuàng)立案例
——教師管理學(xué)生信息活動(dòng)圖3.創(chuàng)立活動(dòng)圖 在創(chuàng)立活動(dòng)圖的過(guò)程中,需要注意如下問(wèn)題: 考慮用例其他可能的工作流情況,如執(zhí)行過(guò)程中可能出現(xiàn)的錯(cuò)誤或是可能執(zhí)行其他活動(dòng)。 使用泳道細(xì)化活動(dòng)圖。 按照時(shí)間順序自上而下的排
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 代理業(yè)務(wù)客戶關(guān)系維護(hù)策略考核試卷
- 會(huì)計(jì)學(xué)原理復(fù)習(xí)題含答案
- 健身房公共設(shè)施管理考核試卷
- 化學(xué)品泄漏事故應(yīng)急預(yù)案的制定與實(shí)施考核試卷
- 現(xiàn)代辦公環(huán)境下如何進(jìn)行職業(yè)規(guī)劃
- 塑料加工過(guò)程中的安全操作規(guī)程考核試卷
- 建筑幕墻聲學(xué)設(shè)計(jì)考核試卷
- 焊工中級(jí)測(cè)試題(含參考答案)
- 寵物飼養(yǎng)員銷售技巧與營(yíng)銷策略考核試卷
- 物聯(lián)網(wǎng)在科技館的應(yīng)用與發(fā)展前景探討
- 自卸車司機(jī)實(shí)操培訓(xùn)考核表
- 教師個(gè)人基本信息登記表
- 2022年江蘇對(duì)口單招市場(chǎng)營(yíng)銷試卷剖析
- 法律職業(yè)倫理(第二版)完整版教學(xué)課件全書(shū)電子講義(最新)
- ESD測(cè)試作業(yè)指導(dǎo)書(shū)-防靜電手環(huán)
- 高一(4)班分科后第一次班會(huì)課件ppt課件(PPT 29頁(yè))
- 春季開(kāi)學(xué)安全第一課PPT、中小學(xué)開(kāi)學(xué)第一課教育培訓(xùn)主題班會(huì)PPT模板
- JJG30-2012通用卡尺檢定規(guī)程
- 部編版人教版二年級(jí)上冊(cè)語(yǔ)文教材分析
- APR版制作流程
- 《C++程序設(shè)計(jì)》完整教案
評(píng)論
0/150
提交評(píng)論