• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    解析UML的動態建模機制(1)

    發布: 2007-5-25 11:35 | 作者: 51CMM | 來源: 互連網 | 查看: 44次 | 進入軟件測試論壇討論

    領測軟件測試網
    消息


    面向對象技術中,對象間的交互是通過對象間消息的傳遞來完成的。在UML的四個動態模型中均用到消息這個概念。通常,當一個對象調用另一個對象中的操作時,即完成了一次消息傳遞。當操作執行后,控制便返回到調用者。對象通過相互間的通信(消息傳遞)進行合作,并在其生命周期中根據通信的結果不斷改變自身的狀態。

    在UML中,消息的圖形表示是用帶有箭頭的線段將消息的發送者和接收者聯系起來,箭頭的類型表示消息的類型,如圖1所示。

     


    UML定義的消息類型有三種:

    · 簡單消息(Simple Message) 表示簡單的控制流。用于描述控制如何在對象間進行傳遞,而不考慮通信的細節。

    · 同步消息(Synchronous Message) 表示嵌套的控制流。操作的調用是一種典型的同步消息。調用者發出消息后必須等待消息返回,只有當處理消息的操作執行完畢后,調用者才可繼續執行自己的操作。

    · 異步消息(Asynchronous Message) 表示異步控制流。當調用者發出消息后不用等待消息的返回即可繼續執行自己的操作。異步消息主要用于描述實時系統中的并發行為。

    狀態圖


    狀態圖(State Diagram)用來描述一個特定對象的所有可能狀態及其引起狀態轉移的事件。大多數面向對象技術都用狀態圖表示單個對象在其生命周期中的行為。一個狀態圖包括一系列的狀態以及狀態之間的轉移。

    狀態

    所有對象都具有狀態,狀態是對象執行了一系列活動的結果。當某個事件發生后,對象的狀態將發生變化。狀態圖中定義的狀態有:初態、終態、中間狀態、復合狀態。其中,初態是狀態圖的起始點,而終態則是狀態圖的終點。一個狀態圖只能有一個初態,而終態則可以有多個。

    中間狀態包括兩個區域:名字域和內部轉移域,如圖2所示。圖中內部轉移域是可選的,其中所列的動作將在對象處于該狀態時執行,且該動作的執行并不改變對象的狀態。

     


    一個狀態可以進一步地細化為多個子狀態,我們將可以進一步細化的狀態稱作復合狀態。子狀態之間有"或關系"和"與關系"兩種關系;蜿P系(如圖3)說明在某一時刻僅可到達一個子狀態。例如,一個處于行駛狀態的汽車,在"行駛"這個復合狀態中有向前和向后兩個不同的子狀態,在某一時刻汽車要么向前,要么向后。與關系( 如圖4)說明復合狀態中在某一時刻可同時到達多個子狀態(稱為并發子狀態)。具有并發子狀態的狀態圖稱為并發狀態圖。



     


    轉移

    狀態圖中狀態之間帶箭頭的連線被稱為轉移。狀態的變遷通常是由事件觸發的,此時應在轉移上標出觸發轉移的事件表達式。如果轉移上未標明事件,則表示在源狀態的內部活動執行完畢后自動觸發轉移。

    順序圖


    順序圖(Sequence Diagram)用來描述對象之間動態的交互關系,著重體現對象間消息傳遞的時間順序。順序圖存在兩個軸:水平軸表示不同的對象,垂直軸表示時間。順序圖中的對象用一個帶有垂直虛線的矩形框表示,并標有對象名和類名。垂直虛線是對象的生命線,用于表示在某段時間內對象是存在的。對象間的通信通過在對象的生命線間畫消息來表示。消息的箭頭指明消息的類型。

    順序圖中的消息可以是信號(Signal)、操作調用或類似于C++中的RPC(RemoteProce dure Calls)和Java中的RMI(Remote Method Invocation)。當收到消息時,接收對象立即開始執行活動,即對象被激活了。通過在對象生命線上顯示一個細長矩形框來表示激活。

    消息可以用消息名及參數來標識。消息也可帶有順序號,但較少使用。消息還可帶有條件表達式,表示分支或決定是否發送消息。如果用于表示分支,則每個分支是相互排斥的,即在某一時刻僅可發送分支中的一個消息。

    在順序圖的左邊可以有說明信息,用于說明消息發送的時刻、描述動作的執行情況以及約束信息等。一個典型的例子就是用于說明一個消息是重復發送的。另外,可以定義兩個消息間的時間限制。

    一個對象可以通過發送消息來創建另一個對象,當一個對象被刪除或自我刪除時,該對象用"X"標識。

    另外,在很多算法中,遞歸是一種很重要的技術。當一個操作直接或間接調用自身時,即發生了遞歸。產生遞歸的消息總是同步消息,返回消息應是一個簡單消息。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>