【StarUML】類圖



Thumbs up Thumbs up Thumbs up

  類圖是可視化地表現類的屬性和方法,以及類與類之間的關系。

  1、類

      a、類

           普通實體類,它有對應的屬性和方法:

           image

           雙擊類名,會彈出一些控制按鈕:

           image

           右邊區域,各個圖標的含義依次是:

           增加類的屬性、增加類的操作(方法)、添加模板類類型參數、添加reception、添加子類、添加父類、添加已有的接口、添加需要的接口、

           添加關聯、添加聚合、添加組合、添加端口、添加部件。

           (1) 添加屬性

                image

            (2) 修改屬性的屬性

                 屬性的屬性設置:

                 image

                 stereotype: 屬性描述,類圖上的表現是會在屬性名的前面加上<<>>,中間插入屬性描述;

                         image

                 isstatic:表明該屬性是否是靜態屬性,如果勾選了,屬性下面會出現下划線;

                          image

                 isleaf:表明該屬性是否是葉子屬性,通俗理解是否是final屬性,勾選之后,類圖不會發生變化;

                 type:表明屬性的類型,int、long等等,如果填寫,會在屬性名后面出現“:類型名”;

                          image

                 multiplicity:這個代表該類實例與其他類實例連接時所需要的數量范圍,是一個可編輯的下拉框,可以是具體數字,也可以是一個區間,比如0..1代表着是0到1個,* 代表着無數個。

                         image

                         如果填寫,會在屬性后面增加“[]”,中間插入填寫的值:

                         image

                 isReadOnly:代表該字段是否是只讀字段,一般表示屬性在對象創建的時候賦值,后續不再改變的變量,填寫之后,會在圖上增加{ReadOnly};

                         image

                 isOrdered:說明屬性是可排序的,和multiplicity聯用,代表着與其他實例連接時,該屬性已排序,在圖中表現為{ordered};

                        image

                 isUnique:說明屬性是互斥性,和multiplicity聯用,代表着與其他實例連接時,屬性對象不會重復,在途中表現為{unique};

                        image

                 defaultValue:默認值

                 isDerived:代表該屬性值是否是由自己運算出來,或者是由外界來設置,一般在編碼中表現為一個setXXX方法,暴露給外面,讓外面的對象設置該屬性;

                        在類圖中的表現為“/”,放在屬性名前面;

                       image

                 aggregation:代表屬性和類的關系,有三個選擇:

                        image

                        所代表的意思:

                        image

                        shared 代表着這個屬性對於類來說可有可無,屬性值為NULL,對象也屬於正常對象;

                        composite 代表着這個屬性值一定得存在,就像 飛機(類)和機翼(屬性),飛機離不開機翼,如果沒有機翼,飛機就不能飛了,就不叫飛機了,頂多在地上跑,一輛大號的汽車而已。

                        這個屬性設置,在途中沒有表現。

                 isID:代表這個屬性是否是這個類對象的唯一標識,在圖中的表現為{id}:

                        image

            (3) 添加方法

                 image

             (4) 修改方法的屬性

                   方法的屬性也很豐富,只描述與屬性不一樣的屬性設置:

                   image

                   raisedExceptions:表示方法拋出的異常,需要新創建一個異常類:

                             image

                            然后點擊搜索按鈕,會彈出一個對話框:

                            image

                            點擊 add,選擇剛才創建的異常類:

                            image

                            如果有多個,還可以調整順序,調整完之后,點擊close,此時在屬性設置那里會出現:

                            image

                            添加之后,類圖不會發生變化。

                     concurrency:代表這個屬性的並發性,有是三個選項:

                            image

                            代表的意思:

                           image

                           修改之后,類圖不會發生變化。

                     isQuery:代表該方法是否是查詢方法,如果是的話,在類圖上的表現是添加{query}:

                           image

                     isAbstract:標識該方法是否是抽象方法,如果選擇是,在類圖中的表現是所有的字都是斜的:

                           image

             (5) 設置方法的參數

                    選中方法,右鍵,選擇add->parameter;

                    在model explorer里會看到多了一個Parameter1:

                    image

                    選中它,修改它的兩個屬性:type(返回值的類型)、direction(設置返回值)。

                    direction設置成 return,type設置成需要的類型:

                    image

                    在類圖上的表現為:在參數括號之后出現 “:返回類型”。

                    image

             (6) 設置方法的參數

                    與設置返回值類似,但direction,調整為 in,並且name也要設置:

                   image

                   設置后的表現:
                   image

             (7) 修改屬性和方法的訪問權限

                   屬性和方法都可以通過左邊的image控制訪問權限。

                  image

                  image


              (8) 添加類描述

                   用一句話描述這個類是什么類,用來干嘛的,目的是讓讀者能清晰准確地了解這個類,在類圖的屬性里添加。

                   image

                  添加這個之后,類名上面會出現<<>>包圍的類描述。

                  image


            (9) 修改類的訪問權限

                  類的訪問權限同樣也具有四種,但是選擇了之后,在圖形上沒有任何顯示效果,但在后面做轉化的時候(轉化成java代碼)會體現出來。

                  image


    b、抽象類

        抽象類是在工具欄里是沒有的,要通過設置普通類的抽象屬性來設置。

        image

        選中之后,抽象類的類名會變成斜的。

        image


    c、final 類

        final類代表着類無法被繼承,可以通過勾選類屬性中的 isFinalSpecialization和isLeaf來表明,前者是為final類設置的,后者的意思是 是否是葉子類,也就是final類,意義是一樣的,不過推薦使用前者,后者表意沒有前者好。

        設置isFinalSpecialization之后,類圖上是沒有變化的:

        image

        設置了isleaf之后,類圖會發生變化

        image


    d、活動類

         類分為活動類和被動類,活動類表示一個類能主動啟動一個流程,而被動類是無法主動啟動,只能被調用。

         可以在類圖屬性里設置;

         image

         設置之后,會發現類圖左右邊線變成了兩條。

         image


     e、接口類

          可以使用Interface圖形。

          image

         它也能像類一樣,添加方法,添加的操作與類一致。

          image


2、類之間的關系

    a、內部類

        一個類是另一個類的內部類。

         新建兩個類;

         image

        將”機翼”類拖動到”飛機”里去;

       image

       在model explorer 里,將”機翼”拖動到”飛機里去”。

       image 

  b、繼承關系

      一個類繼承於另一個類,兩個類是父子關系;

      在圖中的表現是 兩個類用箭頭連起來;

      箭頭是空心的三角形,由子類指向父類。

      image   

   c、實現

      一個類實現一個接口;

     在途中的表現是 兩個類用箭頭連接;

     箭頭是 實線,但在工具欄里,是一個虛線空心箭頭,注意區分。

     image

   d、組合

       A類要想完成工作,必須要B、C類參與,B和C在A類中表現形式是 定義 B類和C類類型的成員變量,A類與B、C類是強關聯;

       在途中的表現形式是A的類圖分別與B、C類的類圖用箭頭連接起來;

       箭頭樣式:帶實心菱形頭的實線箭頭。

       image

       組合的數量關系是指在組合的時候,組合兩方進行一次組合各需要的數量。

       選擇箭頭,設置屬性:

       imageimage

      分別設置 end1.multiplicity 和 end2.multiplicity ,在途中的表現形式:

      image

    e、聚合

       聚合是一個特殊的關聯關系,它體現的是一個多個類可以聚合在一起,組成一個整體,比如說航母、驅逐艦、護衛艦組成一個航母戰斗群,其中航母是核心,航母與驅逐艦、護衛艦之間的關系就是聚合關系;

       聚合關系由箭頭連起來;

       箭頭樣式:帶空心菱形頭的實線箭頭。

       image

    f、依賴

      依賴是非常弱的一種關聯,A類要執行某種動作,需要B類來觸發,那么A類依賴於B類,比如說電腦要工作,依賴於人的操作,那么電腦依賴於人,但是電腦和人都是獨立存在的個體;

      依賴同樣是用箭頭連起來;

      箭頭樣式:虛線箭頭,被依賴方指向依賴方。

       image

   總結:組合、聚合、依賴,這三種關聯關系較為相似,可以按下面的特點區分開來:

   A = B + C : A與B的關系就是組合,A包含B,強關聯;

   A + B = C : A 和 B 的關系是聚合,A和B可以一起組成C,中等關聯程度;

   A * B = C ,A * D = E : A 和 B、A和D的關系是依賴關系,A要完成C,需要B的協助,A要完成E,需要D,弱關系,與聚合關系的不同在於,聚合中 A和B是C的一部分,C包含A和B;而依賴中 C不包含B、A,是A經過B的處理之后得到的。

  

學習對象:https://www.jianshu.com/p/87767f67f379

               https://www.cnblogs.com/zhigu/p/10681249.html

               https://blog.csdn.net/NasonYehfm/article/details/90394392

               https://blog.csdn.net/viggirl/article/details/8587721


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM