l 依赖(Dependency,虚线与尖角,箭头指向被依赖的一端):意思是一个事物影响另外一个事物。用通俗的话来说,我用了什么就是依赖于什么。用编程的角度去理解,就是指A对B里的方法或数据有调用,但它们之间没有存在继承、实现接口的关系。“低耦合,高内聚”当中的“耦合”就是依赖。
l 关联(Association,无箭头实线):例如A与B关联,从数据库角度来说,就是一对多、一对一、多对多的关系描述。从代码角度,就是两者间不存在调用
l 泛化(Generalization,实线与实边三角形,箭头指向父类):相当于继承(代码extends), A、B的泛化有C,用通俗的话来说,就是C具有A、B的相同部分。在编程角度就是把普通事物的不断抽象化就是泛化
l 实现:(Realization,虚线与实边三角形,箭头指向接口)在编程角度,就是类似接口的实现。
l 用例,用通俗的话来说,就是该系统能做些什么操作
l 用例图,就是有参与者与各类用例(操作)的关系,看看谁能用A操作,谁能用B操作
l 顺序图,就是描述参与者之间的交互流程。用通俗的话来说,通过该图,你可以读到的信息就是,A通过怎样的操作提交信息给自己或者其他人,自己或者其他人又通过怎样的操作反馈信息。例如:你去银行取钱这件事,在顺序图上的表述,就是你通过取钱这样的操作提交了信息给银行的工作人员,工作人员通过核对你的账户和取钱这样的操作来反馈了信息给你。注意,这图的操作来自于用例图。
l 协作图与顺序图差不多,顺序图与协作图的区别理解:
顺序图类似我们生活中“排队”、计算机术语中的“串行”或者“栈”的概念,就是在一步只能执行该图的一个操作。
协作图类似我们生活中“两人三足”游戏、计算机术语中的“并行”的概念,就是在完成一步需要一方或者多方执行一个或者多个操作。
l 类图,就是代码层面上的类与方法的设计。容易理解一点的话,可以这样理解,类就是对以上顺序图、协作图的操作进行分析归类,方法就是各种操作。
l 活动图,就是对类图中的类的方法,也就是对顺序图、协作图的操作,进行内部流程分析。
l 状态图,就是对参与者在操作过程涉及到的静态事物(如网页页面、卡、文件等)的状态罗列。然后通过每种状态与顺序图、协作图的操作进行对接。
l 扩展机制:(知道UML的一些通用扩展机制的话,你就用,不知道就不要用)
n Stereotype(版型),相当于对类图中的类进行再次分类
n Tagged Value(标记值),就是用一个标记来方便你对你设计的图进行区分的参考
n Constraint(约束),就是在对你设计的图的特别内容进行特殊描述的时候使用。例如User类里面的user变量,我要它是私有的。