Learning Traces...

--Great Love involves great effort
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

[转]UML(Unified Modeling Language)统一建模语言--类图详解

Posted on 2010-04-27 10:33  suyang  阅读(354)  评论(0编辑  收藏  举报
类图是面向对象系统建模中最常见的图,类图显示了一组类、接口、协作以及它们之间的关系。类图用于对系统的静态设计视图建模。 在UML中类以矩形表示,具有名称、属性、操作、和关系等描述。接下来我们将全面的对类里面的每个元素的表现作出详细的介绍。
  • 类:
    • 在UML中类以一个矩形表示,类的名称用一个字符串表示。
    • 抽象类通过将类名改为斜体字表示。
    • 不能继承的类(叶子类,封闭类)通过在类名下面增加 leaf 特性说明。
  • 属性:
    • 属性在类下面的栏中列出,可以仅显示属性名。
    • 静态属性通过在属性名下加下划线表示。
    • 属性其他特征完整语法: [可见性] 属性名 [':'类型] [多重性] ['='初始值] [{特性串]}]
    • 不能重写属性通过在特性串中增加 leaf 特性说明。
  • 操作:
    • 属性在类下面的第二栏中列出,可以仅显示操作名。
    • 静态操作与静态属性同样通过在名称下加下划线表示。
    • 抽象操作与抽象类同样通过斜体字表示。
    • 操作特征完整语法: [可见性] 操作名 [([方向] 参数名 ':' 参数类型 ['=' 默认值])] [':' 返回类型] [{特征串}]
    • 不能重写的操作与属性一样使用特征串中增加 leaf 表示。
  • 可见性:
    • 可见性通过在属性或方法名称前增加特定的符号表示。公共的(+)私有的的(-)受保护的(#)包内的(~)
接下来我们一起来研究一下类之间的关系。
  • 依赖(dependency)是一种使用关系,他描述一个事物的规约变化可能影响到使用它的另一个事物。个人认为在参数或者方法体中使用 到另外的类就是对该类有依赖的关系。use a
  • 泛化(dependency)用于描述子类到父类之间的关系。 Is a kind of
  • 关联(association)是一种结构关系,他描述一个对象与另一个对象相联系。 Has a
    • 双向关联(association)通过A对象可以找到B对象,B对象同样可以找到A对象的关联为双向关联。
    • 单向关联(direction-association)通过A对象可以找到B对象,但通过B对象不能找到A对象的关联为单向关 联。
    • 聚合(aggreation)A对象是B对象的一个组成部份,但A对象同时可能是C对象的组成部分这种关联为聚合。
    • 组合(composition)A对象是B对象的一个组成部份,除非B对象将A对象转交给其他对象,否则A对象只能是B对象的组 成部分,这种关联为组合。
[转自:http://www.cnblogs.com/fenglin1985/archive/2010/04/10/1709209.html]