UML
绘图工具推荐
StarUML,一个轻量化的uml工具StarUML;
progresson,网页版绘图工具,功能很全,但是空间有限https://www.processon.com;
微软visio,使用最复杂,但都是矢量图,写论文很有用。
类图
- 属性语法:[可见性]属性名[:类型] [=初始值] [{属性字符串}]
- 方法语法:[可见性]方法名[(参数表)] [:返回值类型] [{属性字符串}]
- 可见性:
- 公有public:“+”,只要调用对象能访问操作所在的包,就能访问公有操作;
- 私有private:“-”,同一个类的对象才能调用私有的操作;
- 保护protect:“#”,子类对象才可以调用受保护操作;
- 包内package:“~”,同一个包内对象才能调用包内操作。
继承关系(generalization)
子类和父类,接口和子接口;
用实线空心三角箭头,从子类指向父类。
实现关系
类与接口之间的关系,一个类可以实现多个接口;
用虚线空心三角箭头,从类指向接口。
依赖关系
在一个类A中使用到另一个类B,这种使用关系具有偶然性、临时性,类B的变化会影响到类A,如学生(类A)吃饭(方法)食堂(类B);
由类A指向类B带箭头虚线表示。
关联关系
比依赖关系强,必然的、长期的;
由类A指向类B带箭头实线表示。
聚合关系
关联关系的特例,一个类作为另一个类的成员变量,如球员、教练聚合成一支球队;
空心棱形加实线。
组合关系
关联关系的特例,整体和部分不可分离,比聚合更强,如人、心脏、头;
实心棱形加实线。
用例图
由参与者、用例、边界以及他们之间关系构成的用于描述系统功能的视图。说明的是谁要使用系统以及他们使用系统做什么,帮助人们用可视化的方式理解系统的功能需求。
- 参与者:与应用程序或系统进行交互的用户、组织或外部系统,用一个小人表示;
- 用例:外部可见的系统功能,用椭圆表示;
- 子系统:系统的一部分功能。
状态图
描述一个特定对象所用可能的状态
活动图(流程图)
描述对象活动或变化流程
状态:圆角矩形
条件分支:菱形
分劈和会合:同步杆(横实线)
数据:平行四边形
时序图
描述了方法的调用过程、程序的执行流程以及方法执行结束时的返回情况。
组件图
建立系统各个组件之间的关系