本问提示: 本文图片全部是打乱的,并不是对应的 ,如果想要查看正确的 完整的资源 请下载 绑定的资源 进行查看
UML
1.UML概述
2.画图工具
-
IBM - Rational Rose. Sybase - Power Designer. 韩国 - StarUML (SU). MS - Visio. 枫叶云 (www.fynote.com). draw.io
*这里我是用的是 draw.io* **详情可看https://blog.csdn.net/sunyctf/article/details/131432972**
3.常见的UML图___类图
(1)什么是类图?
用于描述系统中的类(对象)本身的组成和类(对象)之间的各种静态关系。
类之间的关系: 依赖、泛化(继承)、实现、关联、聚合与组合
(2)类在UML中的表示
-
-- 名称部分(Name)在顶端存放
-
-- 属性部分(Attribute)在中间存放属性 , 属性类型(AttributeType) , 初始值(initialValue);
-
-- 方法部分 (Operation)底部存放操作 , 参数表(arg:ArgumentType), 返回值(ReturnType);
(3)实例图说明
(4)属性部分****
(4-1)属性语法
【可见性】 属性名 【:类型】【=初始值】【{属性字符串}】;
-
----- 注意:【】中的内容可有可无; ----- 属性字符串用来指定关于属性的其他信息 , 不一定是属性值 , 如果希望添加一个属性定义规则, 但是没有地方添加 , 可以写在属性字符串中;
(4-2)可见性
属性的可见性只有公有(public +) , 私有 (private - ) , 受保护 (protected # ) , UML中不存在默认 , 如果没有显示任何符号 , 就是表示没有定义该属性;
-
----- 共有: 用 ‘ + ’ 表示 , 可以在该类的外部使用 查看该属性 ----- 私有: 用 ‘ - ’ 表示 , 不可以从外部访问该类属性及方法 ----- 保护: 用 ‘ # ’ 表示, 常与泛化一起使用;
(5)方法部分
(5-1)方法语法
【可见性】方法名【(参数表)】【:返回类型】【{属性字符串}】
-
----- 注意:【】中的内容可有可无; ----- :如果有多个参数列表的话 用 ‘ , ’ (逗号)分割
(5-2)可见性
方法的可见性只有公有(public +) , 私有 (private - ) , 受保护 (protected # ) , 包内公有(package ~ ); 如果没有显示任何符号 , 就是表示没有定义该属性;
-
----- 共有: 用 ‘ + ’ 表示 , 可以在该类的外部使用 查看该属性 ----- 私有: 用 ‘ - ’ 表示 , 不可以从外部访问该类属性及方法 ----- 保护: 用 ‘ # ’ 表示, 常与泛化一起使用; ----- 包内: 用 ‘ ~ ’ 表示, 同一个包内的对象才可以调用包内共有操作
4.类图__类与类之间的关系
(1)继承关系(泛化关系 Generalization)
a) 语义:
-
类和子类的关系 , 接口与子接口的关系 一个类(称为子类, 子接口) 继承另一个类(称为父类 , 父接口)的功能 并可以增加自己的新功能
b) 语法: extends c) 符号: 一条带有空心三角箭头的实线 , 从子类指向父类 , 或者子接口指向父接口。
(2)实现关系
a) 语义:
-
类和接口之间的关系; 一个类可以实现多个接口,实现所有接口的功能; 体现了规范和分离的原则
b) 语法:implement c) 符号: 实现使用的是一条带空心箭头的虚线表示, 从类指向实现接口。
(这里临时改变一下使用的工具软件 改为Microsoft visio)
(3)依赖关系
a) 语义:一个A类使用到了B类 , 但是这种使用关系是具有偶然性的 , 临时性的,非常弱,但是B类的变化会影响到A类
b) 语法: B类为A类方法的参数 (或者局部变量)存在
c) 符号:
i. 由类A指向B的带箭头虚线表示
(4) 关联关系
a) 比依赖关系强 , 必然的 , 长期的 , 强烈的;
(及一个类 存在的形式是在另一个类的属性中存在)
举例: 顾客 ----> 订单 ----> 商品
b) 语法:B类作为成员变量形成存在于A类中
c) 符号:
由A类指向B类的带箭头实线表示
(5) 聚合关系
a) 语义:
-
关联关系的一种特例 (一个类作为另一个类的成员变量) 整体和部分的关系 整体部分可以分离 整体的生命周期和部分生命周期不同 , has - a的关系 计算机与cpu , 公司与员工 , 班级与学生的关系
b) 语法:同关联关系 c) 符号: 空心菱形加实线 **(6)组合关系** a) 语义: 关联关系的一种特例; 整体和不得分的关系 , 整体和部分不可分离 , 比聚合关系更强 , contains-a的关系 整体的生命周期和 部分的生命周期相同; 人与四肢的关系 b) 语法:同关联关系 c) 符号: 实心菱形加实线
用例图
一、用例图概要
-
★用例图是被称为参与者的外部用户所能观察到的系统功能的模型图
-
★用例图列出系统中的用例和系统外的参与者,并显示哪个参与者参与了哪个用例的执行(或称为发起了哪个用例)
-
★用例图多用于静态建模阶段(主要是业务建模和需求建模)
二、用例图中的事物及解释
三、用例图中的关系及解释
四、举例说明
(一)参与者之间的泛化关系
(二)用例之间扩展和包含关系
(三)航空售票的用例图
状态图
一、状态图概要
★说明对象在它的生命期中响应事件所经历的状态序列,以及它们对那些事件
的响应。
★状态图用于揭示Actor、类、子系统和组件的复杂特性。为实时系统建模。
二、状态图的组成
★状态——对象的状态是指在这个对象的生命期中的一个条件或状况,在此期间对象将
满足某些条件、执行某些活动,或等待某些事件。
★转移——转移是由一种状态到另一种状态的迁移。这种转移由被建模实体内部或外部
事件触发。对一个类来说,转移通常是调用了一个可以引起状态发生重要变化的操作的
结果。
三、状态图中的事物及解释在这里插入图片描述
四、状态的可选活动表在这里插入图片描述
活动图
一、活动图概要
★描述系统的动态行为。
★包含活动状态(ActionState),活动状态是指业务用例的一个执行步骤或一个操作,不是普通对象的状态。
★活动图适合描述在没有外部事件触发的情况下的系统内部的逻辑执行过程;否则,状态图更容易描述。
★类似于传统意义上的流程图。
★活动图主要用于:业务建模时,用于详述业务用例,描述一项业务的执行过程; 设计时,描述操作的流程。
二、活动图事物
三、活动图关系
四、活动图实例 (一)一般的活动图
(二)带泳道的活动图
顺序图
一、顺序图概要
★顺序图用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或状态机中引起转换的事件。
★顺序图展示对象之间的交互,这些交互是指在场景或用例的事件流中发生的。 顺序图属于动态建模。
★顺序图的重点在消息序列上,也就是说,描述消息是如何在对象间发送和接收的。表示了对象之间传送消息的时间顺序。
★浏览顺序图的方法是:从上到下查看对象间交换的消息。
二、顺序图中的事物及解释
三、顺序图与用例图和类图的关系
四、顺序图例子
(一)简单例子
(二)复杂例子
构件图
一、构件图概要
构件图用于静态建模,是表示构件类型的组织以及各种构件之间依赖关系的图。
构件图通过对构件间依赖关系的描述来估计对系统构件的修改给系统可能带来的影响。
二、构件图中的事物及解释
三、构件图中的关系及解释
四、构件图例子
部署图
一、部署图概要
部署图用于静态建模,是表示运行时过程节点结构、构件实例及其对象结构的图。如果含有依赖关系的构件实例放置在不同节点上,部署视图可以展示出执行过程中的瓶颈。部署图的两种表现形式:实例层部署图和描述层部署图(会在后面的实例中给出)。
二、部署图中的事物及解释
三、部署图中的关系及解释
四、部署图例子
五、关于部署图与构件图
★部署图与构件图相同的构成元素:
构件、接口、构件实例、构件向外提供服务、构件要求外部提供的服务。
★部署图与构件图的关系: 部署图表现构件实例; 构件图表现构件类型的定义。
部署图偏向于描述构件在节点中运行时的状态,描述了构件运行的环境;
构件图偏向于描述构件之间相互依赖支持的基本关系。
案例分析
机票预订系统
系统概述
1.绘制用例图
2.绘制类图
3.绘制顺序图