什么是UML?
Unified Modeling Language 统一建模语言
- 类比C++是汇编语言的上层抽象,那UML会是C++这种高级语言的抽象
- 根据需求建立代码模型,后期可以自动生成各种语言的代码
UML概念模型
下面是随手记录的一些平时作业(萌新画的不对勿喷,欢迎指正),作图软件为EA
用例图
- 根据需求来画图
- 这里的人形可以是人,也可以是接入的系统
- 这里的箭头是泛化,类似于抽象与具体
这是一个信用卡验证系统的语境,它建模了系统的参与者。其中有顾客(Customer), 分为两类:个人顾客(Individual Customer)和团体顾客(Corporate Customer)。在这个语境中,还有表示其他机构的参与者,如零售机构( Retail Institution),顾客通过在该机构刷卡,购买商品或服务;财务机构(Sponsoring Financial Institution),负责信用卡账户的结算业务。在现实世界中,后两个参与者本身就可能是一个软件密集型系统。
- EA这个软件,进去之后新建一个Model,会有向导(一开始学的时候老师让都勾选上,对于这一个用例图来说,就留一个就好了),后期不需要的目录文件啥乱七八糟的都可以删了
- 默认工具箱显示的工具是根据你当前模型下的图来给的,上图点了use case model,在用例图目录下,所以工具箱里的工具都是这个图用到的。(这也解释了为什么有时候找别的工具找不到的原因)
- 当然,如果强行作图也不是不可以,点击更多工具,选择你想要的工具本应该在的图,然后工具就有了
类图
泛化关系
- 连线直接点击这里的箭头就行,左键和右键,同样,这里空心箭头就是泛化
- 类的功能和属性,右键
关联关系
- 自身关联就是点完箭头拖到自己身上就行
- 标注啥的在线上双击弹出框内填
活动图
以泳道图为例
交互图
- 中间的实线也是通过点击旁边的箭头拖拽而得
- 右键特性可以控制实线和虚线(勾选是返回)
- 同步异步可以改变箭头形状(不勾选是返回情况下)
-
logical view用模型向导生成
-
顺序图如下生成
- 方框loop是这里的fragment工具
- 青色方框是lifeline这里(实测工具箱里的active中的object拖进来也会是这样)
状态图
- 里面的文字使用写属性的方式
- 其他还是一样,双击,右键就出来了
pos机的例子
- 这里说明,不管是什么model似乎没关系,只要能有这state machine的图就行,建图的方法是一样的
- 如果不小心把图删了,只要元素还在就好,直接把元素拖上去可以自动连接起来,只需要调整下位置和线型即可