UML用例图
用例图有以下东东:
用例
参与者
关联
系统边界
用例使用椭圆来表示,椭圆里边写上用例的名称:
这里的用例可以理解为一个动作或行为,或者一个对象。
参与者用一个小人儿,在小人儿下面写上参与者名称,例如学生:
关联用一条线表示:
把很多个用例放到一个大的矩形框里。
时序图
时序图里面包括以下内容:
1.对象
2.生命线
3.活动条
4.消息
5.控制流(包括顺序,分支,循环)
对象在矩形里边,左边是对象名称,右边是对象类型,下方还有一条线.
用虚线代表的是对象的生命线:
活动条是一个竖着的矩形,当接收到消息的时候,这个对象就会有活动条:
消息用一根箭头,箭头上面写上消息信息,例如一个登录方法
login(userName,passWord):
控制流有3种,普通就是按照顺序的一个流程,还有分支就相当于if else:
矩形里面有一条虚线,左上角用ALT表示,当C为true的时候,就执行虚线上方的内容,当C为false的时候就执行虚线下方的内容。
循环控制流:
左上角有LOOP表示循环,当C为true的时候,就循环执行方框里边的内容
可以看到,每个对象都有它们的生命线(虚线);
1. 一开始用户给类型为GUI(界面)的Login对象发送一个登录信息 「 login(userName,passWord)」 ;
2. Login这个对象接收到了就会产生活动条,这时候Login这个界面会给类型为Controller的loginController发送登录信息「 login(userName,passWord)」 ;
3. 此时loginController接收到信息产生活动条,这时候loginController去找类型为DB的UserDao,给它发送了一个获取用户密码的信息「getUserPassword(userName)」;
4. UserDao接收到信息后产生活动条,返回用户的密码;
5. 此时loginController接收到信息(用户的密码 userPassword),loginController此刻将信息发送给自己,通过verify去校验密码并且用result接收结果;
6. 校验就产生了分支控制流,当resul为true的时候loginController会发送success给Login,当result为false的时候,loginController会发送failure给Login;
7. 最后Login最后给用户发送messag信息。
类图
类图有以下几个东西:
1.类名
2.属性
3.方法
4.可见性
5.数据类型
6.关联关系
7.依赖关系
8.继承/实现关系
9.组合/聚合关系
类名,属性,方法在一个矩形中,分为上中下:
类名,属性,方法在一个矩形中,分为上中下:
可见性:
private的时候在前方用-表示
public的时候在前方用+表示
protected的时候在前方用#表示
数据类型:
数据类型表现形式: 名字:类型
例如:
userName和passWord这两个属性是protected修饰的,数据类型都是String;login()和register()这两个方法是public修饰的,数据类型都是boolean;
关联关系,用实现表示,例如A关联B:
依赖关系,用虚线表示,例如A依赖B:
继承关系,用一个△+一条实线表示,,例如A继承B:
依赖关系,用一个△+一条虚线表示,例如A实现B:
组合关系:用一个♦+一条虚线表示,例如A组合B:
聚合关系,用一个◇ + 一条虚线表示,例如A组合B:
聚合:表示两个对象之间和整体和部分的弱关系,部分的生命周期可以超越整体。如电脑和鼠标。
组合:表示两个对象之间是整体和部分的强关系,部分的生命周期不能超越整体,或者说不能脱离整体而存在,组合关系的部分,是不能在整体之间进行共享的。
类图举例子:
可以看到,有User类,Customer类,Role类,Payment类,aliPay类,wechatPay类 。
其中Customer继承User,User类的userName和passWord这两个属性是protected修饰的,数据类型是String;login()和register()这两个方法是public修饰的,数据类型都是boolean;