<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 262,  comments - 221,  trackbacks - 0

    注:本文為IBM Developer網站UML2.X系列教程的學習筆記,原文參見:http://www.ibm.com/developerworks/cn/rational/r-uml/

    一、UML中的新元素-框架:

    在 UML 2中,框架元件用于作為許多其他的圖元件的一個基礎,但是大多數人第一次接觸框架元件的情況,是作為圖的圖形化邊界。當為圖提供圖形化邊界時,一個框架元件為圖的標簽提供一致的位置。在 UML 圖中框架元件是可選擇的。



    除了提供一個圖形化邊框之外,用于圖中的框架元件也有描述交互的重要的功能, 例如序列圖。在序列圖上一個序列接收和發送消息(又稱交互),能通過連接消息和框架元件邊界,建立模型(如圖 2 所見到)。




    對于序列圖,圖的標簽由文字“sd”開始。當使用一個框架元件封閉一個圖時,圖的標簽需要按照以下的格式:圖類型 圖名稱。

    UML 規范給圖類型提供特定的文本值。(舉例來說,sd代表序列圖,activity代表活動圖,use case代表用例圖)。


    二、UML中的序列圖:

    序列圖主要用于按照交互發生的一系列順序,顯示對象之間的這些交互。

    在項目的需求階段,分析師能通過提供一個更加正式層次的表達,把用例帶入下一層次。那種情況下,用例常常被細化為一個或者更多的序列圖。

    序列圖的主要用途之一,是把用例表達的需求,轉化為進一步、更加正式層次的精細表達。用例常常被細化為一個或者更多的序列圖。序列圖除了在設計新系統方面的用途外,它們還能用來記錄一個存在系統(稱它為“遺產”)的對象現在如何交互。

    序列圖的主要目的是定義事件序列,產生一些希望的輸出。重點不是消息本身,而是消息產生的順序;不過,大多數序列圖會表示一個系統的對象之間傳遞的什么消息,以及它們發生的順序。圖按照水平和垂直的維度傳遞信息:垂直維度從上而下表示消息/調用發生的時間序列,而且水平維度從左到右表示消息發送到的對象實例。

    1.生命線:

    生命線畫作一個方格,一條虛線從上而下,通過底部邊界的中心(圖 3)。生命線名字放置在方格里。



    UML 的生命線命名標準按照如下格式: 實體名:類名

    生命線名稱帶下劃線。當使用下劃線時,意味著序列圖中的生命線代表一個類的特定實體,不是特定種類的實體(例如,角色)。序列圖的實例名稱有下劃線,而角色名稱沒有。

    一個生命線能用來表現一個匿名的或未命名的實體。當在一個序列圖上,為一個未命名的實例建模時,生命線的名字采用和一個命名實例相同的模式;但是生命線名字的位置留下空白,而不是提供一個例圖名字。
     

    2.消息體:

    為了顯示一個對象(例如,生命線)傳遞一個消息給另外一個對象,你畫一條線指向接收對象,包括一個實心箭頭(如果是一個同步調用操作)或一個棍形箭頭(如果是一個異步訊號)。消息/方法名字放置在帶箭頭的線上面。正在被傳遞給接收對象的消息,表示接收對象的類實現的一個操作/方法。



    返回消息是可選擇的;一個返回消息畫作一個帶開放箭頭的虛線,向后指向來源的生命線,在這條虛線上面,你放置操作的返回值。為了要畫一個調用本身的對象,如你平時所作的,畫一條消息,但是不是連接它到另外的一個對象,而是你把消息連接回對象本身。





    三、UML中的約束:




    約束的符號很簡單;格式是: 【Boolean Test】

    四、UML中的新元素-組合碎片(變體方案、選擇項、循環):

    一個組合碎片用來把一套消息組合在一起,在一個序列圖中顯示條件分支。

    1.變體:

    變體用來指明在兩個或更多的消息序列之間的、互斥的選擇。一個變體的組合碎片元件使用框架來畫。單詞“alt”放置在框架的namebox里。然后較大的長方形分為 UML 2 所稱的操作元。 操作元被虛線分開。每個操作元有一個約束進行測試,而這個約束被放置在生命線頂端的操作元的左上部。 如果操作元的約束等于“true”,然后那個操作元是要執行的操作元。


    圖 8作為一個變體的組合碎片如何閱讀的例子,顯示序列從頂部開始,即bank對象獲取支票金額和帳戶結余。此時,序列圖中的變體組合碎片接管。因為約束“[balance >= amount]”,如果余額超過或等于金額,然后順序進行bank對象傳遞 addDebitTransaction 和 storePhotoOfCheck 消息給account對象。然而,如果余額不是超過或等于金額,然后順序的過程就是bank傳遞addInsuffientFundFee 和 noteReturnedCheck 消息給account對象,returnCheck 消息給它自身。因為“else”約束,當余額不大于或者等于金額時,第二個序列被調用。在變體的組合碎片中,不需要“else”約束;而如果一個操作元,在它上面沒有一個明確的約束,那么將假定“else”約束。

    2.選擇項:

    一個選擇項用來為簡單的“if then”表達式建模。(例如,如果架上的圈餅少于五個,那么另外做兩打圈餅)。

    選擇項組合碎片符號與變體組合碎片類似,除了它只有一個操作元并且永不能有“else”約束以外(它就是如此,沒有理由)。要畫選擇項組合,你畫一個框架。文字“opt”是被放置在框架的 namebox 里的文本,在框架的內容區,選擇項的約束被放置在生命線頂端上的左上角。 然后選擇項的消息序列被放在框架的內容區的其余位置內。



    注意:變體用于為if then else建模,選擇項用于為if then建模,因為只有一個分支,所以不能出現[else]

    3.循環:

    循環組合碎片表面非常類似選擇項組合碎片。你畫一個框架,在框架的 namebox 中放置文本“loop”。在框架的內容區中,一個生命線的頂部,循環約束被放置在左上角。然后循環的消息序列被放在框架內容區的其余部分中。在一個循環中,除了標準的布爾測試外,一個約束能測試二個特定的條件式。特定的約束條件式是寫作“minint = [the number]”(例如,“minint = 1”)的最小循環次數,或寫作“maxint = [the number]”(例如,“maxint = 5”)的最大循環次數。通過最小循環檢驗,循環必須運行至少指定次數,而循環執行次數不能達到約束指定的最大循環次數。



    -------------------------------------------------------------
    生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
    posted on 2008-03-25 15:15 Paul Lin 閱讀(13362) 評論(1)  編輯  收藏 所屬分類: UML


    FeedBack:
    # re: UML入門(二)-序列圖
    2008-07-26 15:53 | dante
    haohaohao  回復  更多評論
      
    <2008年3月>
    2425262728291
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    常用鏈接

    留言簿(21)

    隨筆分類

    隨筆檔案

    BlogJava熱點博客

    好友博客

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产亚洲美女精品久久久久| 亚洲高清无码在线观看| 亚洲精品97久久中文字幕无码| 国产精品免费久久久久电影网| 精品免费国产一区二区三区| 一级特黄色毛片免费看| 亚洲国产香蕉人人爽成AV片久久| 免费国产99久久久香蕉| 亚洲成人在线网站| 日韩在线免费电影| 久久亚洲AV成人无码国产电影| 日韩免费高清视频| 国产精成人品日日拍夜夜免费| 亚洲国产欧美国产综合一区 | 一个人看的在线免费视频| 亚洲综合图片小说区热久久| 久视频精品免费观看99| 羞羞漫画登录页面免费| 精品国产日韩亚洲一区| 精品亚洲永久免费精品 | 免费看一区二区三区四区| 亚洲国产精品日韩av不卡在线| 亚洲国产日韩一区高清在线| 亚洲国产精品丝袜在线观看| 免费看成人AA片无码视频羞羞网| 99免费在线视频| 亚洲A∨无码一区二区三区| 国产网站免费观看| 日本人的色道www免费一区| 亚洲av日韩综合一区久热| 国产亚洲成人久久| 免费无码又爽又高潮视频| 久久久亚洲裙底偷窥综合| 亚洲七七久久精品中文国产| 夫妻免费无码V看片| 国产成人无码免费看片软件| 2020天堂在线亚洲精品专区| 久久久久亚洲AV无码永不| 伊人婷婷综合缴情亚洲五月| 久久国产色AV免费看| 一区二区三区视频免费观看|