UML建模之类图&包图&对象图

类图spa

类图Class diagram经过显示出系统的类以及这些类之间的关系来表示系统。类图是静态的-它们显示出什么能够产生影响但不会告诉你何时产生影响。对象

下面是一个顾客从零售商处预约商品的模型的类图。中心的类是Order。链接它的是购买货物的Customer和Payment。Payment有三种形式:Cash,Check,或者Credit。订单包括OrderDetails(line item),每一个这种类都连着Item。继承

Class diagram

UML类的符号是一个被划分红三块的方框:类名,属性,和操做。抽象类的名字,像Payment是斜体的。类之间的关系是链接线。递归

类图有三种关系。ip

  • 关联association-表示两种类的实例间的关系。若是一个类的实例必需要用另外一个类的实例才能完成工做时就要用关联。在图中,关联用两个类之间的连线表示。
  • 聚合aggregation-当一个类属于一个容器是的一种特殊关系。聚合用一个带菱形的连线,菱形指向具备总体性质的类。在咱们的图里,Order是OrderDetails的容器。
  • 泛化generalization-一个指向以其余类做为超类的继承连线。泛化关系用一个三角形指向超类。Payment是Cash,Check和Credit的超类。

一个关联有两个尾端。每一个尾端能够有一个角色名role name来讲明关联的做用。好比,一个OrderDetail实例是一个Order实例的项目。ci

关联上的方向性navigability箭头表示该关联传递或查询的方向。OrderDetail类能够查询他的Item,但不能够反过来查询。箭头方向一样能够告诉你哪一个类拥有这个关联的实现;也就是,OrderDetail拥有Item。没有方向性的箭头的关联是双向。it

关联尾端的数字表示该关联另外一边的一个实例能够对应的数字端的实例的格数,经过这种方式表达关联的多样性multiplicity。多样性的数字能够是一个单独的数字或者是一个数字的范围。在例子中,每一个Order只有一个Customer,但一个Customer能够有任意多个Order。io

下面这个表给出了最广泛的多样性示例。table

多样性 意义
0..1 0或1个实例. n..m符号表示有n到m个实例
0..*  or  * 没有实例格数的限制(包括没有).
1 只有一个实例
1..* 最少一个实例

每一个类图包括类,关联和多样性表示。方向性和角色是为了使图示得更清楚时可选的项目。class

包和对象图

为了简单地表示出复杂的类图,能够把类组合成包packages。一个包是UML上有逻辑关系的元件的集合。下面这个图是是一个把类组合成包的一个商业模型。

dependencies关系。若是另外一个的包B改变可能会致使一个包A改变,则包A依赖包B。

Package diagram

包是用一个在上方带有小标签的矩形表示的。包名写在标签上或者在矩形里面。点化线箭头表示依赖

对象图Object diagrams用来表示类的实例。他们在解释复杂关系的细小问题时(特别是递归关系时)颇有用。

这个类图示一个大学的Department能够包括其余不少的Departments。

Recursive class diagram

这个对象图示上面类图的实例。用了不少具体的例子。

UML中实例名带有下划线。只要意思清楚,类或实例名能够在对象图中被省略。

Object diagram

每一个类图的矩形对应了一个单独的实例。实例名称中所强调的UML图表。类或实例的名称多是省略对象图表只要图的意义仍然是明确的。

 

【转】http://www.uml.org.cn/oobject/200901203.asp

相关文章
相关标签/搜索