zoukankan      html  css  js  c++  java
  • 【StarUML】类图


    Thumbs upThumbs upThumbs 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

  • 相关阅读:
    mysql 远程登陆不上
    hdu 5339 Untitled【搜索】
    SqlServer 书目
    passwordauthentication yes
    oracle 11g RAC ocfs2
    Oracle 11g RAC database on ASM, ACFS or OCFS2
    CentOS ips bonding
    Oracle 11g RAC features
    openStack 王者归来之 trivial matters
    openstack windows 2008 img
  • 原文地址:https://www.cnblogs.com/jimmyai/p/star_uml_class.html
Copyright © 2011-2022 走看看