您的位置:首页 > 其它

UML2.0类关系基本概念与StarUML2操作

2016-02-25 20:22 405 查看
类很少独立存在,类之间彼此协作。为系统建模的时候,既要从问题域抽离出对象,还要描述他们的关系。

有依赖、类属、关联(聚合、组合)、实现四种关系。

转载请注明原文地址:http://blog.csdn.net/ts_dchs/article/details/50740248

1 依赖关系 - Dependency

Dependency Relationship

一个元素的变化会引起另一个的变化。(被依赖的元素Target变化会引起依赖元素Source的变化)

依赖关系还可以再细分为5种类型:

绑定(Binding)依赖

实现(Realization)依赖

使用(Usage)依赖

抽象(Abstraction)依赖

授权(Permission)依赖

虚线,括号尖,依赖指向被依赖:



2 类属关系 - Generalization (继承关系)

共同特性的元素抽象成类,通过增加内涵进一步细分。

对应的是基本元素(父类)与特殊元素(子类)的关系,

这就是多态(Polymorphism)的特性——++同一操作,用于不同对象,效果不同++。这个实现源于子类的方法可以覆盖父类的方法。

如果一个语言只支持类而不支持多态,只能说明它是基于对象的,而不是面向对象的。

编码:父类extends子类

实线,三角空心箭头,子类指向父类:



3 关联关系 - Association

两个类之间存在的某种语义的联系,一种弱联系。关联本身是松散的,因为某个场景联系在一起。不过拆开可以独立存在。

编码:成员变量存有对别的对象的引用。声明之后用构造函数或者成员方法赋值。

实线,可以没有箭头。



关联关系可以用四种基本修饰:名字(Name),角色(Role),阶元(Multiplicity),聚合(Agrregation)。

4 聚合关系 - Agrregation

是一种特殊的关联关系。他们之间的联系是整体、部分的关系。整体对部分是依赖的。

是概念上的关系,没有联系整体与部分的生命周期。

一个部分可以被多个整体共享。比如一个墙和两个房间。

编码:关联和聚合在语法没法区分,只能从语义区分。

实线,菱形空心:



5 组合关系 - Composition

组合是聚合的变种,加强了整体与部分有一致的生命周期。

部分不能共享,整体负责Parts的创建和破坏。整体销毁,部分也销毁。

编码:类中的(私有)成员类。在产生对象的时候一起产生。用构造函数自己new出来。

实线,菱形实心

典型例子是一个窗体:



6 实现关系 - Realize

常被用于接口和实现接口的类的关系。

接口是操作的集合,实现了定义和实现的分离。

编码:Java中声明interface,再类声明implements

软件中是用圆圈代表interface,而且上述线型会转化为如图的线



虚线,空心三角



这可以通过右键Icon形式的Interface通过修改Format来自动实现decoration或者label的添加。不用认为方式添加。

7 关联关系的修饰

四种:

名字(Name)

角色(Role)

阶元(Multiplicity)

聚合(Agrregation)。

Role:关系中的类,扮演的角色。

在starUML2:在属性的end.name的位置设置。加号是自动带的,代表public,减号private。



Multiplicity:多少个对象参与关联。类似ER图中的数量关系

编码:用一个list做参数?

StarUML2:可以双击name来选择,也可以填写end.multiplicity属性。



有时候,关联本身带有一些信息,不能与二者之间的任何一方合并,需要独立存在,那么就可以用Association Classes表示。

比如,雇佣关系的例子中,可以抽象出关联类-Job

编码:声明一个类代表关系,通过关系类建立两个类的联系。

StarUML2:Calss(Advanced)用Association Class链接一个class和一个关系。



如果有多个关联类,可以抽象出一个父类,大家集成之后在成为各自的关联类。

Navigation,导航:关联关系可以有方向。表明单方向,否则双向。

常见的单向关联有账号和密码,想让账号可以找到密码,但不希望密码找到账号。

编码:通过让账号(源)含有对密码(目标)的引用实现。

StarUML2:有单独的,Directed Association。



notification

source: 资料源于网络。个人所学有限,若有错误和不足还请不吝赐教,我会及时更正。Terrence Zhou.

http://blog.csdn.net/ts_dchs

转载请注明原址
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  uml