UML 基础知识
[ Unified Modeling Language ]
所有的模型都不甚完备 , 有些模型却有些用处 。
任何领域中的任何系统 , 都需要首先对其进行抽象 。 抽象就是指建立一个模型 , 对系统在 视图 、行为 、参与的实体 和 流程等方面提供概念上的描述。
用例图 : 指系统和其中某个参与者之间的一次交互过程 。用例可以表示哪些参与者要做什么 。参与者可以是一个用户或者外部系统等需要与系统产生交互的对象 。
每个用例用椭圆表示 , 其中包含了用例的名称 , 参与到操作中的操作者和参与者。
泛化关系 : 一种参与者和用例之间的关系 , 是通过一条不带箭头的直线表示 。表示关系相连的两个部分之间存在某种程度的交互。
包含关系 : 通过一条连接两个用例的有向直线表示 , 用来给出箭头开始一端的用例包含了箭头结束一端的用例。(线段为虚线且箭头不封闭)
扩展关系 : 表示某个用例扩展了另外一个用例的行为 。 箭头不封闭 , 从右到左 , 箭头结束端(左)扩展了箭头开始端(右) , 虚线 。
扩展表示一种可选的依赖关系 , 它要传递的消息是某个用例可选地用来修饰并扩展另一个用例 。
类图 :
上 : 类名 如果类名需要指定命名空间 , 则在命名空间后面加双冒号 , 如 System.Data::ClassName
中 : 类的属性 , 字段
下 : 类的方法
访问修饰符的表示 : + (公有) 、 - (私有) 、 # (受保护)
若在属性或操作中使用了斜体 , 那么该成员即为虚成员 , 而带有下划线的成员则是静态成员 。
操作 : 方法参数方向前缀的含义 : In(输入参数) 、 Out (输出参数[ c# 的 out ]) 、 Inout(输入和输出参数[ c# 的 ref ])
关联 : 表示类型之间存在着关系 。
关联中包含了两种特别的类型 : 聚合 和 组合
聚合 : 指定了两个对象之间的 "整体/部分" 关系 。也就是一个 has-a 的关系。在图形上用一条带有空心菱形的线段表示 , 空心菱形指向容器类型 。
组合 : 指一个对象完全拥有了被包含的对象 。若将包含对象销毁 , 被包含对象也将完全销毁 。在图形上用一条带有实心菱形的线段表示 , 实心菱形指向容器类型 。
继承 : 用一条带有空心三角形的线段表示 , 空心三角形指向了父类型 。
依赖 : 指一个类型需要依靠另一个类型才能实现 。若修改了某个类型会影响到另一个类型 。在图形上用一个带有开放箭头的虚线表示 , 箭头方向是被依赖的类型 。