4种事物
结构事物通常是静态的,描述概念或物理元素。类、接口、协作、用例、主动类、构件、制品、结点
行为事物通常师动态的,描述跨越时间和空间的行为。交互、状态机、活动
分组事物是UML中的组织部分,最重要的分组是包,其他事物可以放进包里。分组事物存粹是概念上的东西,不会实际存在于代码中
注释事物是UML模型中的解释部分。注解是一个依附于一个元素或者一组元素之上,约束或解释的符号
4种关系
依赖关系表示一个对象发生变化会影响到另一个事物。类A要完成某个功能必须引用类B,则类A依赖类B。对象A依赖于B体现在代码上就是对象B是对象A可调用的一个对象,作为B的局部变量,或者对象B方法临时要用到的参数。
关联关系描述了一组链,描述整体和部分的结构关系。可标注重复度和角色,如1对多和多对多。聚合指整体和部分的生命周期不同步,组合的话整体和部分生命周期同步
泛化关系表示子对象可替代父对象,子对象共享父对象的结构和行为,父对象有子对象的共同特征。举例子就是动物对象泛化了猫猫对象和人类对象。用实线空心箭头来表达
实现关系表示其中一个类元指定由另一个类元保证执行的契约。两种情况,接口和实现它的类或构件之间,或者是用例和实现它的协作之间。用虚线空心箭头来表达
9种图:对象图、用例图、序列图、通信图、状态图、活动图、组件图、部署图
类图包含类、接口、协作、依赖、泛化和关联关系。
对象图展现某一时刻一组对象之间的关系,强调实例的静态快照。
用例图展现了一组用例、参与者以及他们的关系,多了拓展关系和包含关系,泛化关系也有。
包含关系可以理解为B用例构成A用例的一部分,执行A用例时必定执行B用例,B用例是A用例的子集。如删除图书前必定要执行查询图书。表述为一个虚线箭头 +《include》 注意include没有s
拓展关系可以理解为一种可选的用例拓展了基本用例,比如银行取钱可以打印凭据,可以打印也可以选择不打印 这属于特殊或可选情况。表述为一个虚线箭头 +《extend》 注意extend没有s
9种图
序列图描述以时间顺序组织对象的之间的交互活动,对象发起者通常放在左边,对象有生命线,指的是对象实例存在的时间,控制焦点是一个瘦长的矩形表示执行动作经历的时间段。要调用其他对象的方法,那么就是对其他对象发送一条消息,被箭头指向的对象需要实现箭头上有的方法。
通信图通信图将交互对象作为图的顶点然后把连接这些对象的链表示为弧,用对象发送的消息修饰这些链。通信图有顺序号,用于表示消息的发送顺序。通信图和序列图是同构的,可以相互转换。
状态图由状态、转换、事件、活动组成。状态有初态和终态,用两种不同的图形表示,一张状态图只能有一个初态,终态可以没有也可以有多个。entry、exit、do是三种标准事件,entry和exit都是立即执行,只有do是可以中断的。事件与监护条件,当遇到触发条件,当监护条件为真时,才可以发生状态转换。当监护事件不存在时,只要上一个状态所有活动执行完了以后自动发生转换
活动图活动图是一种特殊的状态图,展现从一个活动到另一个活动的流程。有分支和分叉,分支是通过条件判定决定走那条路,而分叉是并发流,最终会在一个同步块汇合
构件图展现一组构件之间的依赖关系,属于静态视图,通常把构件映射为多个类、接口或协作,构件之间用供需接口连接,半圆表示需接口,圆形表示供接口
部署图也是一种静态视图,描述了软件部署时硬件与软件的空间关系,节点是一个拥有算力的计算机硬件,《artifact》表示运行在硬件上的软件制品
静态建模:类图、对象图、用例图;动态建模:序列图、通信图、状态图、活动图;交互图:序列图、通信图