什么是 UML?
UML全称是:Unified Modeling Language 又称统一建模语言或标准建模语言。
UML 是 OMG 在1997年1月提出了创建由对象管理组和 UML1.0 规范草案;
UML 是一种为面向对象开发系统的产品进行说明、可视化、和编制文档的标准语言;
UML 作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现;
UML 是不同于其他常见的编程语言,如 C + +,Java中,COBOL 等,它是一种绘画语言,用来做软件蓝图;
UML 不是一种编程语言,但工具可用于生成各种语言的代码中使用 UML 图;
UML 可以用来建模非软件系统的处理流程,以及像在一个制造单元等.
UML 基本元素
- 三个基本模块:事务,关系,图。
- 四种事务
- 结构事务:类,接口,协作,用例,活动类,组件,节点。
- 行为事务:交互,状态机。
- 分组事务:包
- 注释事务:注释。
- 四种关系
- 依赖
- 关联
- 实现
- 泛化
- 十种图
- 用例图
- 类图
- 时序图
- 包图
- 部署图
- 活动图
- 状态图
- 对象图
- 协作图
- 组件图
本篇主要介绍上述1、2、3三种
用例图
用例图由角色,用例和它们之间的关系组成。
小人儿代表角色
用例使用椭圆来表示,椭圆里边写上用例的名称
容器用正方形、或者竖起来的椭圆表示
举个栗子
系统叫做 「购物系统」
有注册账号、登录系统、库存管理的用例(这里只列举几个用例,其它用例省略);
参与者有顾客和管理员;
顾客关联到了注册账号和登录系统的用例;
管理员关联到了登录系统和库存管理的用例!
时序图
- 对象
- 生命线
- 活动条
- 消息
- 控制流
- 顺序
- 分支
- 循环
对应的图形表示
举个栗子
可以看到,每个对象都有它们的生命线(虚线);
- 一开始用户给类型为GUI(界面)的Login对象发送一个登录信息 「 login(userName,passWord)」 ;
- Login这个对象接收到了就会产生活动条,这时候Login这个界面会给类型为Controller的loginController发送登录信息「 login(userName,passWord)」 ;
- 此时loginController接收到信息产生活动条,这时候loginController去找类型为DB的UserDao,给它发送了一个获取用户密码的信息「getUserPassword(userName)」;
- UserDao接收到信息后产生活动条,返回用户的密码;
- 此时loginController接收到信息(用户的密码 userPassword),loginController此刻将信息发送给自己,通过verify去校验密码并且用result接收结果;
- 校验就产生了分支控制流,当resul为true的时候loginController会发送success给Login,当result为false的时候,loginController会发送failure给Login;
- 最后Login最后给用户发送messag信息。
类图
类图(Class Diagram)是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。
类名、属性、方法在一个矩形中,分为上中下
数据类型表示形式->名字 : 类型
- private的时候在前方用 - 表示
- public的时候在前方用 + 表示
- protected的时候在前方用 # 表示
关联关系,用实线表示,例如A关联B
依赖关系,用虚线表示,例如A依赖B
继承关系,用一个△ + 一条实线表示,例如A继承B
依赖关系,用过一个△ + 一条虚线表示,例如A实现B
组合关系,用一个 ♦ + 一条虚线表示,例如A组合B
聚合关系,用一个 ◇ + 一条虚线表示,例如A组合B
聚合:表示两个对象之间是整体和部分的弱关系,部分的生命周期可以超越整体。如电脑和鼠标。
组合:表示两个对象之间是整体和部分的强关系,部分的生命周期不能超越整体,或者说不能脱离整体而存在。组合关系的“部分”,是不能在整体之间进行共享的。