UML 类图. 对象图. 接口图. 用例图 .包,参与者. 依赖关系. 泛化/继承关系. 关联关系 .聚合/聚集关系. 实现关系 组合关系。
结构元素
结构元素包括,类,对象,接口,用例,参与者。
类图
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_symdIFRk8fvJuZBgGRu-E09ZU-AMiu8kH_OD_S1AtDt6m-tSaaIhPU9jZVx_eG8zKYDvwAsF-xR38QLahVqUmzcqz_sZq1f9nKo8TMYi4Xp4Y_rdox1OKlWfZkttYiuA=s0-d)
类图图示
类图是UML中最基本的元素了吧?根据OO的思想“天下一切皆对象”,而类是对象的抽象。
左侧图示为一个类图。顶端“ClassName”表示类名
中间部分为该类的属性,其中分别表示为可访问性,属性名,以及属性的数据类型。
第三部分为该类的方法,包括方法的可访问性,方法名,方法的参数以及方法的返回值。
需要说明的是:
“#”表示protected
“+”表示Public
“-”表示private
“i”表示internal
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_ugouJzGs2awW9nHZKhTEtNq5V9H0xkTrDOzvlvAWW7DY7STkF4tMpXWUgK948_NOMDeHPH5Ovs0JlNoAKD42o_957IV_y2AIXyzSs-I3SzZiSE7X69kRU8LG48r0w=s0-d)
对象图图示
对象图
右侧图示为一对象图,该对象为类className类的一个实例对象
该图第一部分说明了该对象为className的一个实例,第二部分指定了该实例的属性值。该图指定的是一个特殊的实例的对象,如果要代表className的所有的对象可省略掉对象名,即为“:ClassName”。
接口
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vJegBvvIsfCQgBLxzyz57VCzghlFe7Ci1rC_GYa904nfTNG63R20M6pPb4dP1Dby3q_V5DPgYuoYoH3yOAvTEzplX0xERuH5R-cffX36-w8usrg47Fj9O75yqQA_eSE01psQ=s0-d)
类图图示
左图为一个比较简单的接口事例图示。与类图差不多,该图示分为三部分,第一部分为接口名,为了更明确的标明其“接口”的身份通常以“I”开头。第二部分为属性,第三部分为方法。
用例与参与者
下图为一简单的用例视图。小人表示参与者,而椭圆表示的是用例。
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sLkHP5TNNai7Q2TFG7kfXVHjQuZbbY9uBtKzAwdhTRZE52_nULOdj5aJwM1GGpDNJ9l5vYXZvvQ71ATwoYYDm-pPewglY6uBxnHBp0dk9SqvxU1AzlqpTTVdweBB51=s0-d)
用例与参与者图示
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vVh8VAfLYc3FsD0TDMvh9XwPStG_kNenlCy2kat2VnqMYrp0S3G34o5PCQAMan_gLsqkWmoYYM0Gi2UXDjxCqOe9BGGXMAEsivKn85hTb0x3P03zRKukx-yXBYhWl2vq3E=s0-d)
包图图示
包
右侧图示为一包图,该图示为一名称为Utility的工具包。
包用来组织类,被包含在包里的类一般通过如Utility::StrUtility的形式来反应该类的路径。
关系
关系元素包括了聚集,组成,实现,继承,依赖,关联等。
关联
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vT6QVkoxzdWX8SVGS7lzmkxDrW0SgID4fSyAR8vLC4Uj39ALAlQTdhisAcK33wDN7PgF7hwozZodFkwEjKIOv0gBG8o6bZSASIWlSJdE0FKhBfKxOAQNzaoJXI6UNmyPXD9A=s0-d)
关联图示
关联是类之间的联系,如篮球队员与球队之间的关联(下图所示)。其中,关联两边的"employee"和“employer”标示了两者之间的关系,而数字表示两者的关系的限制,是关联两者之间的多重性。通常有“*”(表示所有,不限),“1”(表示有且仅有一个),“0...”(表示0个或者多个),“0,1”(表示0个或者一个),“n...m”(表示n到m个都可以),“m...*”(表示至少m个)。
在关联中有一种叫“限定关联”,还有一种谓之自身关联。另外,对象之间的关联就没那么复杂,只是将类的关联实例化而已。
依赖
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_uv23oqI2bD5NXoTxSZ21sop8_HSimSmWykg2lfx8TbxwKLJx-Qsio6XblQdDWyy-rZOfYSeuc54EqtSPofeFbjoBnsWXRNSYbfj8u4Z0gPX4Le1OOibr4yoJDc5p9q=s0-d)
依赖图示
依赖是表示一个类中使用了另外一个类,最常用的依赖是在类A的方法中使用了类B,那么A依赖B。如上图所示。
继承
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_t-rf8EIWeSlyY8SofkqaQ6M9_zZ68XtF8-Fy6qUiWFpHX5szU8YAsQGaaN6rsj7IJSeoxa6n9p9uFTOnNOGoBioNd_ONy-sVQqLeMrKEddwZXl7LrogemQooAe0yvQuw=s0-d)
继承图示
这里的继承是指子类对父类的关系。理解面向对象的各位对继承应该不陌生。啥也不说,看看图好了。
继承使用空心箭头表示继承的方向,用实线连接。
实现
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vCpkeUXRRw0lpP6bev73-lkDwdNX9gYKsnQNcormaITv34tE7dOI7PYYd84IJCd59bDcdfv-CyUGkrZmrb4Gs8GKfQaNJ_7HtKMXW4eWWk8CaEeeh78X2KfI-C7hPJkwA=s0-d)
实现图示
实现指的是类对接口的实现。接口实现的表示与继承的表示差不多,只是将实线变为了虚线。
聚集
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_upaJEV4aJQYMpDWXlU5zzrLj1mJM0T50jeVh5PteLW4L2c5o7x9DawtjIgVeuZLzMQGecV_btnfWNIpTDB3wZJET_1NMQoOdaXL5flA-vKyL-LwWYCajIGr8EF7TFK=s0-d)
聚集图示
一个类可能有几个部分类聚集在一起而成。如:电脑主机由CPU,主板,光驱....等组成。类与类之间是“整体-部分”的关系。
组合
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_v0k7PV7F0BR1h-0xcoOPHiokUpXzBNNubouph0248mUlXg7UKYrTIfjakMmEEzKh34laOamzFcmRDHK-An0C4olH1DtLjtwM0rdfi_ZbZwnJLJDHugUl3yHBEDs3-HnNaT=s0-d)
组成图示
组成是强类型的聚集,每个部分体只能属于一个整体。如桌子由桌腿和桌面组成。
----------------------------------------------------------------------------------------------------------------------------------
以上为UML的基本元素的一些表示法,主要目的是供查阅。
沒有留言:
張貼留言