《UML狀態(tài)圖活動圖畫法和基礎(chǔ)課件》由會員分享,可在線閱讀,更多相關(guān)《UML狀態(tài)圖活動圖畫法和基礎(chǔ)課件(42頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,*,復(fù)習(xí):順序圖、協(xié)作圖,順序圖,(sequence diagram):,用來描述為了完成確定事務(wù),對象之間按照時間消息交互的順序關(guān)系。,對象,消息,生命線,激發(fā),協(xié)作,圖,(collaboration diagram):,用來描述為了完成確定事務(wù),各對象之間消息聯(lián)系的結(jié)構(gòu)關(guān)系。,對象,消息,狀態(tài)圖,活動圖,1.1,什么是狀態(tài)圖,1.2,狀態(tài)圖的要素,1.3,狀態(tài)圖的作用,1,狀態(tài)圖,面向?qū)ο蠓椒ㄔ谶M(jìn)行系統(tǒng)分析時,與傳統(tǒng)方法的需求分析一樣,有時應(yīng)分析對象的狀態(tài),畫出狀態(tài)圖,才能正確地認(rèn)識對象的行為并定義
2、它的服務(wù)。,并不是所有的類都需要畫狀態(tài)圖,,有明確意義的狀態(tài),在不同狀態(tài)下行為有所不同的類才需要畫狀態(tài)圖,1.1,什么是狀態(tài)圖,1.,狀態(tài)圖的概念,狀態(tài)圖,(,statechart,diagram):,用來描述一個特定的對象所有可能的狀態(tài),以及由于各種事件的發(fā)生而引起的狀態(tài)之間的轉(zhuǎn)移和變化。,狀態(tài)圖的例子,:,一個機(jī)器,的狀態(tài)圖,:,一個發(fā)貨單,的狀態(tài)圖,:,1.2,狀態(tài)圖的要素,橢圓或圓角矩形:表示對象的一種狀態(tài),橢圓內(nèi)部填寫狀態(tài)名,箭頭:表示從箭頭出發(fā)的狀態(tài)可以轉(zhuǎn)換到箭頭指向的狀態(tài),事件:引起狀態(tài)轉(zhuǎn)換的原因。事件名可在箭頭線上方標(biāo)出,條件:事件名后加方括號,括號內(nèi)寫狀態(tài)轉(zhuǎn)換條件,實心圓:初
3、始狀態(tài),內(nèi)部實心的同心圓:最終狀態(tài),開始狀態(tài),事件,狀態(tài),結(jié)束狀態(tài),貨品發(fā)貨的狀態(tài)圖,1,狀態(tài),1.,狀態(tài)的概念,狀態(tài),(state):,是指對象在其生命周期中,滿足某些條件、執(zhí)行某些活動、或等待某些事件時的一個狀況。,狀態(tài)指的是對象的狀態(tài)。例如,:,發(fā)票,(,對象,),被支付,(,狀態(tài),),小車,(,對象,),正在停著,(,狀態(tài),),發(fā)動機(jī),(,對象,),正在工作,(,狀態(tài),),電燈,(,對象,),開著,(,狀態(tài),),1,狀態(tài),2.,狀態(tài)的表示和要素,狀態(tài)的表示:用圓角的矩形框表示狀態(tài)。,狀態(tài)的要素:包括狀態(tài)名,進(jìn)入、退出、內(nèi)部轉(zhuǎn)移的動作,子狀態(tài)等。,狀態(tài)名,進(jìn)入動作,退出動作,內(nèi)部轉(zhuǎn)移動作
4、,1,狀態(tài),3.,狀態(tài)的類型,初始狀態(tài),中間狀態(tài),結(jié)束狀態(tài),組合狀態(tài)和子狀態(tài),子狀態(tài),:被嵌套在另外一個狀態(tài)中的狀態(tài)。,組合狀態(tài),:含有子狀態(tài)的狀態(tài)。組合狀態(tài)也可以有初態(tài)和終態(tài)。,組合狀態(tài),子狀態(tài),并發(fā)狀態(tài),并發(fā)狀態(tài),:指一個對象在同一時刻可以處在多種狀態(tài)。,付款確認(rèn),已確認(rèn),并發(fā)中的同步:并發(fā)狀態(tài)之間需要通信,或具有確定的時序關(guān)系,稱為并發(fā)中的同步。,2,轉(zhuǎn)移,1.,轉(zhuǎn)移的概念,轉(zhuǎn)移,(transition):,是一個狀態(tài)向另外一個狀態(tài)的轉(zhuǎn)換。對象處在源狀態(tài)時,發(fā)生一個事件,如果條件滿足,則執(zhí)行相應(yīng)的動作,對象由源狀態(tài)轉(zhuǎn)移到目標(biāo)狀態(tài)。,轉(zhuǎn)移用箭頭表示,如果沒有標(biāo)注事件,則本轉(zhuǎn)移為自動轉(zhuǎn)移。,
5、轉(zhuǎn)移,2,轉(zhuǎn)移,2.,轉(zhuǎn)移的類型,自轉(zhuǎn)移,:,源狀態(tài)和目標(biāo)狀態(tài)為同一狀態(tài)的轉(zhuǎn)移。,自轉(zhuǎn)移,自動轉(zhuǎn)移,:,一個 狀態(tài)根據(jù)本狀態(tài)的有關(guān)情況,自動觸發(fā)進(jìn)入目標(biāo)狀態(tài),在轉(zhuǎn)移上沒有事件。,自動轉(zhuǎn)移,條件轉(zhuǎn)移,:,通過分支判斷所確定的轉(zhuǎn)移。,條件轉(zhuǎn)移,3,事件,1.,事件的概念,事件,(event):,是指在確定的時間和位置所發(fā)生的對對象起作用的事情。事件的發(fā)生將引起一些動作,使對象發(fā)生狀態(tài)的轉(zhuǎn)移。,動作:,動作是對象類中一個操作的執(zhí)行,動作具有中間性和不可中斷特性。,2,.,事件的描述,事件名稱,參數(shù)表,字符串,常為接收對象類中的一個操作。,事件的形式參數(shù),可以省略,3.,事件的類型,調(diào)用事件:,是表示
6、對操作的調(diào)度。,事件,變化事件:,因滿足某種條件而引起的事件,變化條件用,when,表示。,事件,時間事件:,滿足某一時間表達(dá)式而引起的事件,時間事件用,after,when,表示。,事件,1.3,狀態(tài)圖的作用,狀態(tài)圖,:,用來描述一個對象在其生命周期中所表現(xiàn)出來的狀態(tài)和行為。,當(dāng)在系統(tǒng)建模過程中需要描述某個事物或?qū)ο蟮牟煌瑺顟B(tài),以及狀態(tài)之間轉(zhuǎn)移的事件和動作時,用狀態(tài)圖。,但狀態(tài)圖并不是對每一個對象都需要的。,實例,1,:,圖書館中“圖書”的狀態(tài)圖,教學(xué)進(jìn)程,實例,2,:,一個電子鐘的狀態(tài)圖,教學(xué)進(jìn)程,2.1,什么是活動圖,2.2,活動圖的要素,2.3,活動圖的用途,2.4,狀態(tài)圖與活動圖的比
7、較,2,活動圖,2.1,什么是活動圖,1.,活動圖的概念,活動圖,(activity diagram),是,UML,的動態(tài)視圖之一,用來描述事物或?qū)ο蟮幕顒幼兓鞒獭?2.2,活動圖的要素,活動,活動流,匯合,分劈,泳道,1,活動,活動,(Action):,是活動圖主要結(jié)點,用兩邊為弧的條形框表示,中間填活動名。,活動分為簡單活動和復(fù)合活動。,簡單活動:不能再分解的活動;,復(fù)合活動:可以再分解的復(fù)雜活動。,簡單活動,復(fù)合活動,2,活動流,活動流,(,ActionFlow,):,描述活動之間的有向關(guān)系,反映一個活動向另外一個活動之間的轉(zhuǎn)移。用帶箭頭的實線表示。,活動流,3,分支,分支,:,表示活
8、動流的分叉和合并。表示從一個活動按照某種條件轉(zhuǎn)移到幾個不同的活動。,分叉,合并,4,分劈和匯合,分劈和匯合,:,表示并發(fā)的同步行為,用同步桿表示。,分劈,匯合,5,泳道,泳道,(,swimlane,),:,是活動圖中的區(qū)域劃分,每一個泳道代表一個責(zé)任區(qū)域。一個泳道中包括一組相關(guān)活動。,泳道,6,對象流,對象流,:,反映活動與對象之間的依賴關(guān)系,表示對象對活動的作用或活動對對象的影響,用依賴關(guān)系表示。,對象流,例子:,表現(xiàn)軟件開發(fā)過程的活動圖,2.3,活動圖的用途,活動圖具有廣泛地用途,在軟件建模中,活動圖可以用來,:,1.,描述工作流,工作流,:,也被稱為業(yè)務(wù)流程,屬于業(yè)務(wù)活動的過程,可以用活動圖來描述。,2.,描述工程組織過程,各種工程組織過程,管理過程均可以用活動來描述。,3.,描述算法流程,1.,描述工作流,訂貨處理活動圖,2.,描述工程組織過程,建筑工程過程活動圖,3.,描述算法流程,實例,1,:,找飲料的活動圖,教學(xué)進(jìn)程,實例,2,:,銷售處理過程的活動圖,教學(xué)進(jìn)程,描述對象不同,狀態(tài)圖:描述對象狀態(tài)及狀態(tài)之間的轉(zhuǎn)移;,活動圖:描述從活動到活動的控制流。,使用場合不同,狀態(tài)圖:描述對象在其生命期中的行為狀態(tài)變化;,活動圖:描述過程的流程變化。,2.4,狀態(tài)圖與活動圖的比較,