2、UML
统一建模语言,无关平台和语言,是一个工具集
- 构造块:事物、关系、图 事物:
- 结构事物:最静态的部分,包括:类、接口、协作、用例、活动类、构件和节点
- 行为事物:代表时间和空间上的动作。包括消息、动作次序、连接
- 分组事物:看成一个盒子,如:包、构件
- 注释事物:UML 模型的解释部分。描述、说明和标注模型的元素
- 规则: 范围、可见性、完整性、执行
- 公共机制:规格说明、修饰、公共分类、拓展机制
静态图(结构图)
类图:描述一组类、接口、协作和它们之间的关系
- 类名,方法名,属性名
- 多重度(类似一对一、一对多、多对多)
- 1:表示一个集合中的一个对象对应另一个集合中的一个对象
- 0..*:表示一个集合中的一个对象对应另一个集合中的 0 个或多个对象
- 1..*:表示一个集合中的一个对象对应另一个集合中的 1 个或多个对象(至少对应一个)
- *:表示一个集合中的一个对象对应另一个集合中的多个的对象
- 关系
- 依赖关系:一个事物发生变化影响另一个事物(虚线箭头,箭头指向父类)
- 关联关系:描述了一组链,链是对象之间的连接(线)
- 聚合关系:整体与部分生命周期不同(类似显卡和主机的关系)(实线空菱形,菱形指向整体)
- 组合关系:整体与部分生命周期相同(类似)(实线实菱形,菱形指向整体)
- 实现关系:接口与类之间的关系
- 泛化(继承)关系:特殊/一般关系(实线空箭头,箭头指向父类)
对象图【是类的实体】
描述一组对象及它们之间的关系,描述了在类图中所建立的事物实例的快照
构件图:一个封装的类和它的接口
描述一个封装的类和它的接口、端口,以及由内嵌的构件和连接件构成的内部结构。构件图用于表示系统的静态设计实现视图。对于由小的部件构建大的系统来说,构件图时很重要的,构件图是类图的变体。
包图:由模型本身分解而成的组织单元,以及它们之间的依赖关系
包的基本思想是把共同工作的元素放到一个文件夹中。例:多个类或构件组成了一个子系统,就可以将它们放到一个包中。
部署图:软硬件之间映射
描述对运行时的处理节点及在其中生存的构件的配置。部署图给出了架构的静态部署视图,通常一个节点包含一个或多个部署图

制品图:系统的物理结构
组合结构图
动态图(行为/交互图)
用例图:系统与外部参与者的交互(用例、参与者与它们之间的关系)

- 用户角度描述系统功能
- 参与者是外部触发因素
- 用例是功能单元
【用例模型】建立流程
第一步:识别参与者【参与者:用户、组织、外部系统、时间】
第二步:合并需求获得用例
第三步:细化用例描述
第四步:调整【优化】用例模型(可选) 【关系包括:
- 包含关系【include】: 从多个用例中提取公共行为,提取出来的公共用例为抽象用例,而原始用例成为基本用例、
- 扩展关系【extend】: 一个用例明显的混合了两种或两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例氛围一个基本用力和一个或多个可拓展用例、
- 泛化关系(父子关系)【generalize】:当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。子用例继承了父用例所有的机构、行为和关系 】
顺序(序列)图:强调按时间顺序
强调对象之间消息发送的顺序

消息
- 同步消息
- 异步消息
- 简单消息
- 返回消息
序列片段
- 循环:如果满足“循环条件”,则重复执行本框中的内容
- 条件分支:满足条件 1,则执行条件 1 对应的内容,满足条件 2,则执行条件 2 对应的内容
- 可选分支:如果条件满足,则执行框中内容,否则跳过不执行

通信图:(协作图)
强调对象之间存在消息收发关系,不突出时间顺序
状态图(考得多)
对类描述的补充。用于展现此类对象所具有的可能的状态,以及某些时间发生时其状态转移情况

活动图
是一种特殊的状态图。活动图描述一个操作中要进行的各项活动的执行流程。同时,也常被用来描述一个用例的处理流程或者某种交互流程。
活动图将进程或其他计算结构展示为计算内部一步步的控制流和数据流。
还有泳道活动图,对逻辑梳理有帮助
类似程序流程图(面向结构化的),活动图支持展示并行行为(两条黑线之间)

定时图
也叫计时图,用于展示交互过程中的真实时间信息,具体描述对象状态变化的时间点以及维持特定状态的时间段。

- 交互概览图