uml基础案例与应用

分类

类图class:一组具有类似属性和共同行为事物
对象图object:一个类的实例,是具有具体属性值的具体事务
用例图use case:用户观点对系统行为的一个描述
状态图:一鼎食客,一个对象除以某一特定状态.--转换--
顺序图:基于时间的动态交互
活动图:按照时间流程等进行的动作
协作图:多功能工作.(顺序图和协作图合称交互图)
构件图:现代软件开发基于构件,使用尖括号表示
部署图:基于计算机系统的物理体系结构
其他:注释note/关键字keyword/构造型stereotype是在现有基础上改造,用书名号表示
uml2.0新图:
    组成结构图composite structure diagram
    交互纵览图interaction overview diagram
    计时图timing diagram
    有创新也有保留的包图

面向对象

抽象/继承/多态/封装.......消息传递/关联/聚集
抽象:过滤掉对象一部分特征和操作,只剩下你需要的属性和操作
集成:子类具有父类的属性和方法,又有独特的属性和操作
多态:不同类具有相同名称的操作,每个类都知道自己如何执行这个操作
封装:一个对象执行自己操作时,他对外界隐藏了操作的细节(信息隐藏/提供接口)

关系

关联

指向/互相/多(and)对一/一对多(list)/一对多(or)
关联类
链:关联的实例

多重性

一对一/一对多/一对一或多/一对零或一/一对有限间隔/一对n/一对一组
*代表多many
..代表或or(我认为写错了,..是范围)
,也代表or

限定关联

简单说就是把他人的id保存到表里

自身关联

同类父子?

继承(这里允许多继承)实线空心三角

子类=is a kind of
没有父类就是基类/根类
无子类就是叶类

多态

多态其实一般来讲是说同一个父类(接口)的不同子类之间的同名不同状态
我原来以为是子父类之间...

抽象类

没有具体的作用,但是是一类类的父类,子类可以具体实现方法,抽象类不产生实例对象

依赖虚线箭头

不同类之间的调用

聚集和组成

都构成一个整体
聚集是弱类型(可拆卸,电脑)空心菱形,聚集是这个整体和部分的关联,多对多
组成是强类型(不可分割,桌子/衣服)实心菱形,一对多

接口虚线空心三角

注意与抽象类的区别
方法中+表示公有可见,#表示受保护可见,-表示私有可见

用例 use case

需要的功能及可付出的代价的妥协
站在使用者的角度描述功能及需求
用例的复用叫做包含用例
用例是一组场景的集合

顺序图

对象用矩形框表示,带下划线的是对象名,消息用实线箭头表示,时间用垂直虚线.
顺序图里边包含了逻辑判断的所有情况

用例图

用例是一组场景的集合,每个场景是一个步骤序列
用例之间关系:包含/扩展/泛化/分组

状态图

类图/对象图表示一个系统或至少一组类/对象/用例,而状态图只是对单个对象建立模型.
展示的是一个对象所处可能状态以及状态之间的转变
顺序子状态和并发子状态

协作图

展示对象之间的交互关系和消息的传递
与顺序图语意等价,顺序图按时间顺序布图,协作图按空间组织布图
posted @ 2018-01-09 15:59  robsky  阅读(270)  评论(0编辑  收藏  举报