UML学习笔记

1.UML概述

1.1 UML简介

     UML (Unified Modeling Language)统一建模语言,图形化的语言表示

为面向对象软件设计提供统一的、标准的、可视化的建模语言。

UML的定义包括UML语义和UML表示法两个部分。

  (1) UML语义:UML对语义的描述使开发者能在语义上取得一致认识,消除了因人而异的表达方法所造成的影响。

  (2) UML表示法:UML表示法定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。

1.2 UML模型图的构成

    事物(Things):UML模型中最基本的构成元素,是具有代表性的成分的抽象

     关系(Relationships):关系把事物紧密联系在一起

     图(Diagrams ):图是事物和关系的可视化表示

1.3 UML事物

 UML包含4种事物:构件事物 行为事物  分组事物  注释事物

1.3.1 构件事物: UML模型的静态部分,描述概念或物理元素它包括以下几种:

类:具有相同属性相同操作 相同关系相同语义的对象的描述

接口:描述元素的外部可见行为,即服务集合的定义说明

协作:描述了一组事物间的相互作用的集合

用例:代表一个系统或系统的一部分行为,是一组动作序列的集合

构件:系统中物理存在,可替换的部件

节点:运行时存在的物理元素

        另外,参与者、信号应用、文档库、页表等都是上述基本事物的变体

1.3.2 行为事物:UML模型图的动态部分,描述跨越空间和时间的行为

交互:实现某功能的一组构件事物之间的消息的集合,涉及消息、动作序列、链接状态机:描述事物或交互在生命周期内响应事件所经历的状态序列

1.3.3 分组事物: UML模型图的组织部分,描述事物的组织结构

最重要的是组

1.3.4 注释事物: UML模型的解释部分,用来对模型中的元素进行说明,解释

注解:对元素进行约束或解释的简单符号

 

1.4 UML关系

1.4.1依赖

   依赖(dependency)是两个事物之间的语义关系,其中一个事物(独立事物)发生变化,会影响到另一个事物(依赖事物)的语义

1.4.2关联

   关联(association)是一种结构关系,它指明一个事物的对象与另一个事物的对象间的联系

1.4.3泛化

泛化(generalization)是一种特殊/一般的关系。也可以看作是常说的继承关系

表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。

1.4.4实现

实现(realization)是类元之间的语义关系,其中的一个类元指定了由另一个类元保证执行的契约

 

通过http://staruml.io/ 去下载我们的starUML工作

 

1.5 UML图及特征(9种)

1.5.1 用例图( Use Case Diagram )

描述一组用例、参与者以及它们之间的关系,用例图是描述角色以及角色与用例之间的连接关系。说明的是谁要使用系统,以及他们使用该系统可以做些什么。

说白了,用例图就是描述用户能够通过系统进行什么样的操作,能够获得什么样的结果,即系统的外在表现。

步骤1:打开工具  选择empty  Project

第二步:在最右边untitled   右健 add Model  添加好之后重命名 UseCase1

第三步:在UseCase1 右健 add Digram 添加 Use Case Diagram

 

 

 

1.5.2 类图(Class Diagram)

类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)

创建步骤与用例图步骤一样:

 

 

如果导出 java实体

  1. 需要以model profile 中设置 添加 java
  2. 直接在空白名右健,会一个java选项 选择 导入code项
  3. 或者在tools中 有一项java 选项 选择 导入code项

1.5.3  对象图( Object Diagram )

描述一组对象之间的关系,是具有具体属性值和行为的一个具体事物,其是类图中所建事物实例的静态快照,其与类图的主要区别是一个是抽象的,而对象图是具体的。使用极少。

与类图创建方法一样,创建对象选择Object

 

1.5.4  顺序图(Sequence Diagram)

顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互   

顺序图的一个用途是用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或引起状态转换的触发事件

 

之后项目的最左端如下:

select :选中某个元素
object:对象
Stimulus:对象与对象间消息
SelfStimulus:对象间自调用的消息
Combined Fragment:结合片段,比如循环片段等,分支片段
Interaction Operand: 交互操作
Frame : 框架,主题(图最外面的边界)

 

 

最终版本

1.5.5  协作图(Collaboration Diagram)

协作图描述对象间的协作关系,协作图跟顺序图 相似,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及它们之间的关系.

协作图的一个用途是表示一个类操作的实现

1.5.6  状态图(StateChart Diagram)

状态图是一个类对象所可能经历的所有历程的模型图。状态图由对象的各个状态和连接这些状态的转换组成

1.5.7 活动图(Activity Diagram)

活动图是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动

活动图描述了一组顺序的或并发的活动

 

1.5.8 构件图 组件图(Component Diagram)

构件图为系统的构件建模型—构件即构造应用的软件单元—还包括各构件之间的依赖关系,以便通过这些依赖关系来估计对系统构件的修改给系统可能带来的影响

1.5.9  部署图(Deployment Diagram)

部署视图描述位于节点实例上的运行构件实例的安排。节点是一组运行资源,如计算机、设备或存储器。这个视图允许评估分配结果和资源分配

 

1.6 UML类图关系

1.6.1 继承

指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性;
【箭头指向】:带三角箭头的实线,箭头指向父类

1.6.2实现

指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;在Java中此类关系通过关键字implements明确标识,在设计时一般没有争议性;

【箭头指向】:带三角箭头的虚线,箭头指向接口

1.6.3依赖

可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常弱的,但是B类的变化会影响到A;比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类B作为参数被类A在某个method方法中使用

【代码表现】:局部变量、方法的参数或者对静态方法的调用;

【箭头及指向】:带箭头的虚线,指向被使用者

1.6.4关联

是一种拥有的关系它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子

关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头

【箭头及指向】:带普通箭头(或实心三角形箭头)的实心线,指向被拥有者

 

上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。

上图为自身关联:

1.6.5聚合

是整体与部分的关系且部分可以离开整体而单独存在如车和轮胎是整体和部分的关系轮胎离开车仍然可以存在.

聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

箭头及指向】:带空心菱形的实心线,菱形指向整体

1.6.6组合

是整体与部分的关系但部分不能离开整体而单独存在. 如公司和部门是整体和部分的关系没有公司就不存在部门.

       组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期

【箭头及指向】:带实心菱形的实线,菱形指向整体

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值