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