类图的关系:
1、关联(修饰:名称:描述关系的性质;角色:靠近他一端的类对另外端的类的呈现的职责)
1、普通关联
两个对象有自己的属性和行为,把连接看作是一个类的实例,这个类为关联类
2、聚合
整体 / 部分(空心菱形箭头表示)
3、组合(实心菱形箭头表示)
2、依赖:一种使用关系,带箭头的虚线表示
3、泛化:描述类和类的继承关系,空心三角形箭头表示
4、实现:描述类元之间的语义关系,用虚线三角形表示,类实现了接口
类图用来描述系统的静态部分
构成:
Classes
Interfaces
Collaborations
Dependency , Generalization and Association relationships
Packages or Subsystems ( for grouping )
类图深入讨论
可见性
共有 public: +
保护 protected: #
私有 private: -
包 package: ~
范围
每个实例有自己的属性和方法
静态成员:对一个类的所有实例共享一个成员
static:静态成员
抽象类
不能实例化
多重性
属性
操作
模板类
实用类
包图
包的作用:逻辑上把一个复杂的图模块化,组织源代码
包的图幅
包中的元素:类,接口,构件,用例,其他包,如果包被撤销,其中的元素也被撤销了
包和包之间的关系
泛化
细化
依赖(常用):如果两个包中任意两个类有依赖关系,则两个包之间也有依赖关系
常见问题:
1、避免循环依赖产生
2、测试时可以以包为测试单位
3、尽量把概念和语义上接近的元素包含在同一个包里
4、找出包内可以在包外访问的元素,标记为公共的,其余都标记为受保护或者私有
对象图
描述一个系统在某个具体时刻的静态结构(类图描述所有可能的情况)
元素:对象,连接,包