UML快速入门

来源:互联网 发布:应用包安装软件 编辑:程序博客网 时间:2024/05/17 02:26

UML快速入门

大家好,这段时间看了一些与UML有关的书,觉的有一点心得,特意总结了一下,希望与大家分享,由于本人技术也有限有的地方讲的不是很好请大家指出,本篇文章也是交流为主,有什么意见与补充的地方大家请留言~~~~~

附:本文章中的图片可能比较小有时看不清,我已经把图片放在我的控件中有需要的朋友可以下载来看看,如果需要VSD文件的话请留下您的邮箱我也会发给您。为方便起见,以下所有类型均用Type表示。

好,客套话不说,我们进入正题。

 

以下是我用Visio2007画的一个UML图,我就利用这个图讲解UML的基本标记。

 

    

 

首先大家看动物类,该类为抽象类,在UML中抽象类的类名用斜体表示(类图第一行写类名)。该类拥有“有生命”这个属性或者说是字段(在类图的第二行用来写属性或字段),该类拥有“新陈代谢”和“繁殖”两个方法(类图第三行用于写方法)。根据常识动物要想新陈代谢就需要氧气和水,因此氧气和水与动物类呈依赖关系,依赖关系用虚线加箭头表示,箭头指向被依赖的类。用代码表示如下:

class abstract Animal

{

       public Type Metabolism( Type oxygen,,Type water)

       {

             

       }

}

接着大家看鸟这个类,该类继承于动物类,继承用实线加空心三角形表示,空心三角指向基类,代码实现如下:

class Bird:Animal

{

}

 

在鸟这个类的右边是一个翅膀类,该类与鸟的关系是组合关系,组合关系是一个强类型关系,类与类之间的耦合度比较高,用一个实心的平行四边形加实线加箭头表示,实心平行四边形指向组合成后的整体,而箭头则指向部分(翅膀是鸟的一部分)。而实线下的“1”和“2”表示一只鸟有两个翅膀。这种关系写成代码如下:

class Bird:Animal

{

       public Bird()//构造函数

       {

              Type wind=new Type()//实例化翅膀类对象

       }

}

由代码可以看出在组合关系中两个类的生命周期是相同的,也就是说两个类同生共死。而且表示部分那个类要在表示整体那个类的构造函数中被实例化。

 

接着大家在来看看聚合关系(注意与组合关系的区别),想上边的例子中的大雁和雁群就是聚合关系。大雁由雁群聚集而成,但是大雁和雁群的关系并不像翅膀和鸟的关系那么牢固,大雁是随时可以离开雁群的,而鸟可不能轻易丢了翅膀。因此,相对于组合而言聚合的耦合度会小一些(即组合是表示一种强的拥有关系,而聚合是表示一种弱的拥有关系)。聚合关系用代码表示如下:

class WideGoose:Bird//大雁类

{

}

class WideGooseGroup

{

       private WideGoose[] arrayWideGoose;

}

 

然后,大家看看企鹅这个类。从所周知企鹅是一种不会飞的鸟他的生活与气候有很大关系,因此企鹅类与气候类是需要有关联的,代码如下:

class penguinBird

{

       private Tyep weather

}

 

最后,和大家讲讲接口的表示法,在UML中接口有两者表示法,一种称做棒棒糖表示发;一种就是正规的虚线加上空心三角形,并且三角形指向接口。现在,我们分别来说这两者表示法。第一我们先来看看唐老鸭他继承于鸭子类,唐老鸭会讲人话,而讲人话就是一个接口他用类似棒棒糖的符号表示,圆圈处写上接口名。而大雁类有飞翔这个接口,飞翔这个接口表示法是第一行有<<interface>>加上接口名,而与大雁类是用虚线加上空心三角形链接的,空心三角形指向飞翔这个接口。用代码实现如下:

class WideGooseIFlying

{

}

 

interface IFlying

{

       void Fly();

}

class TangDuckDuckIlanguage

{

}

 

interface ILanguage

{

       void speak();

}

OK!这就是我要说的全部,希望对大家有所帮助! 


原创粉丝点击