UML定义
- 统一的建模语言
- 非专利的第三代建模和规范语言
特点
- UML是一种开发的方法
- 用于说明,可视化,构建和编写一个正在开发的面向对象的,软件密集系统的制品的开发
方式
- UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效
UML2.2中一共定义了14种图式
- 结构式图形:强调的是系统中的建模
- 静态图(类图(非常重要),对象图,包图)
- 实现图(组件图,部署图)
- 剖面图
- 复合结构图
- 行为式图形:强调系统建模时触发的事件
- 活动图
- 状态图
- 用例图(非常重要)
- 交互式图形:属于行为式的图形子集合,强调系统模型中资料流程
- 通信图
- 交互概述图(UML2.0)
- 时序图(UML2.0)(非常重要)
- 实践团(UML2.0)
- 以上是UML中比较重要的图
UML类图
- class diagram:用于表示类,接口,实例之间相互静态的关系
- 虽然名字叫类图,但类图中并不只有类,其中还包括属性,方法等
记忆技巧
UML箭头方向:子类指向父类
- 定义子类时需要extends关键字指定父类
- 子类一定是直到父类定义的,但父类不知道子类的定义
- 只有知道对方的信息时才能指向对方
- 所以箭头的方向是子类指向父类
实线-继承,虚线-实现(空心三角)
- 空心三角箭头:继承或实现
- 实线-继承,is a关系,扩展目的,不需,很结实
- 虚线-实现,虚线代表虚,无实体
实线-关联,虚线-依赖(箭头<符号)
- 实线-关联:关系稳定,实打实的关系,铁哥们
- 表示一个类对象和另一个类对象有关联
- 通常是一个类中有另一个类对象最为属性
虚线-依赖:临时用一下,若即若离,虚无缥缈,若有若无
- 表示一种使用关系,一个类需要借助另一个类来实现功能
- 一般是一个类使用另一个类作为参数使用或作为返回值
空心菱形-聚合,实行菱形-组合
- 菱形就是一个盛东西的器皿(列如盘子)
- 聚合:代表空器皿里可以放很多相同的东西,聚在一起(箭头方向所指的类)
- 组合:代表容器里已有实体结构的存在,生死与共
空心菱形-聚合
- 整体和局部的关系,两者有着独立的生命周期,是has a关系
- 弱关系
- 消极的词:弱-空
实心菱形-组合
- 整体与局部的关系,和聚合的关系相比,关系更加强烈,两者有相同的生命周期,contains-a关系
- 强关系
- 积极的词:强-满
常见的数字及含义,假设有A类和B类,数字标记在A类侧
- 0…1:0或1个实例
- 0…*: 0或多个实例
- 1…1: 1个实例
- 1: 只能有一个实例
- 1…*: 至少有一个实例
sequence diagram:时序图
是显示对象直接交互的图,这些对象是按照时间顺序排列的时序图中包括的建模元素主要有:对象,生命线,控制焦点,消息等等
- 实线+实三角 同步调用
- 实线+箭头符号 异步调用
- 虚线+箭头符号 返回
UML类图表现
- 第一行类名:类用常规表示,抽象类用斜体表示,接口在名字前面
- 第二行类的属性,第三行类的行为:+ public, - private, # pro, ~ defulte, : 后面的是属性的类型,属性的下划线代表static