UML学习笔记

来源:互联网 发布:sql字段前加内容 db2 编辑:程序博客网 时间:2024/06/05 22:57

什么是UML
1,图形化语言
2,需求,构建,配置开发软件阶段

进一步认识UML
1,用于面向对象
2,开发人员、用户、维护人员沟通用
3,UML表示一个骨架、框架,开发的过程也可以描述
4,UML是一种语言
5,不同的图形代表不同的意思,如椭圆就是用例
6,UML的核心就是抽象

UML中常用的元素
1,方的,有属性方法的集合
2,接口,接口是一个圆?
3,用例,系统的一个功能
4,节点,一个状态或者一个动作一个判断
5,组件,随时插拔的样子
6,包,用于归类
7,注释
8,行为事物,主要是四种关系,依赖、继承、实现、关联

UML四种关系

关联 对象之间有联系(强) 实线实箭头
依赖 有联系(弱) 虚线实箭头
泛化 继承 实线空箭头
实现 连接接口 虚线空箭头

依赖是最弱的一种关系,耦合最低的,双向依赖耦合高了,依赖比喻:动物依赖水,汽车依赖汽油等
画图:两个类 动物 虚线实箭头》 水,被依赖的类作为局部变量

//如下关系都是动物类的依赖public class Animal{    public void get(){       Water.get();    }    public void get2(){        Water w = null;    }    public Water get3(){        return null;    }    public void get3(Water w){    }}

关联,has的关系,分为雁群和大雁(聚合),大雁和翅膀(组合),大雁不能没有翅膀
画图:大雁 实线实箭头》 翅膀

//这个是聚合关系,跟依赖有什么区别?成员变量?public class YanQun{    private DaYan dayan;    public void get(DaYan dayan){        this.dayan = dayan;    }}//这个是组合public class DaYan{    private ChiBang chibang;    private DaYan(){        chibang = new ChiBang();    }}public class ChiBang{}

看不出来聚合与组合有什么区别,都是类成员属性,还有与依赖的区别在那里?都是包含了类

泛化,就是继承,在父类基础上拓展,鸟类、鱼类、人类
画图: 麻雀 实线空箭头》 鸟类

//类的继承public class Bird{}public class Maque extends Bird{}//接口继承interface BaseDao{}interface UserDao extends BaseDao{ }

实现,就是实现接口,一个类可以实现多个接口
画图:鸟类 虚线空箭头》 圆圈

interface Fly{}interface Eat{}class Bird implements Fly,Eat{}

UML九种图
用例图、时序图、流程图、

用例图:需求分析,可视化的方式理解功能
画图:管理员 》椭圆(添加功能)
管理员 》 椭圆(删除功能)

普通用户 》 椭圆(登陆功能)

用例有包含功能,有拓展功能

类图
学会使用类图关系,继承、依赖、实现

对象图
圆矩形表示
对象运行时的状态,好知道对象消息传递,很少提到,很少用,在UML书中
冒号: 后面说明的是哪一个类,类中调用的方法可以看出来类与类的包含关系。

状态图
构成的部分,states transitions event actions
构成的部分,状态、状态之间的关系、引起状态的变化、状态变化过程中执行的操作
exit entry do 状态变化过程中执行的操作
提交、付款、发货是引起状态的变化

提交 付款 发货 确认收货
圆圈(下单) -》 圆方形(未付款)-》圆方形(已付款,未发货)-》圆方形(已发货)-》圆方形(已收货)-》圆圈(结束)
exit/添加物流信息 exit/付款给卖家

时序图
对象方法调用的流程和细节
时序图的元素,角色、对象、生命周期、激活期(真正对象使用的时间),消息(对象方法调用)

矩形是激活期,虚线是生命周期
查看顺序,从左到右,从上到下。
这里写图片描述
完整的时序图:
这里写图片描述
协作图
协作图三要素 角色(动作发起者)、对象(类的实例)、消息(对象方法之间的操作)
与时序图对立,协作图是空间描述对象之间的关系,时序图是时间上的描述
时间空间的对立
时序图可以直接生成协作图
这里写图片描述
活动图
用例图的一种细化,帮助开发者理解业务,描述的是一个动作
活动图元素:活动节点、转移、判断节点、泳道?
状态图描绘一个对象的状态,重点是结果,活动图描述状态的转换的过程或者是原因
活动图是描述状态发生变化的原因和条件
这里写图片描述

组件图
反应代码的物理结构,包之间的关系,源码与动态库之间的关系,jar包 等结构。
当架构图,如何划分模块,和其他模块有什么关系。
生成架构,强调的是软件的一个整体描述,各个模块之间的关系
component view 选项
这里写图片描述

配置图
配置图元素,处理器(服务器)、设备
配置图和组件图的区别:配置图有硬件,以一个服务器为单位,组件图全是软件结构。
这里写图片描述

0 0
原创粉丝点击