UML统一建模语言

UML概述

  • 统一建模语言(Unified Modeling Language,简称UML)是一种用于软件系统建模的图形化语言
  • 包含了一系列的图表、符号和规则 ,用于描述软件系统的结构、行为和交互。可以用UML来表示软件设计和开发过程中的需求分析、系统设计、模块设计、实现和测试等工作。
  • UML是由Object Management Group(OMG)提出的标准化的建模语言,目的是为软件开发人员提供可视化的通用语言,使得开发人员在软件开发过程中能够更好地协同工作,提高软件的质量和可维护性。
  • 软考(系统架构设计师)中,UML统一建模语言是面向对象的需求分析的重要工具。

UML主要组成部分

uml2.0

UML组成部分

  • uml包含静态图和动态图两类,静态图主要用于描述系统的结构,动态图主要用于描述系统的行为
  • 顺序、通信、定时、交互概览图又统称为交互图

用例图:系统与外部参与的的交互
顺序图:时间循序
定时图:强调实际时间

类图

  • 是描述类、接口、协同以及他们之间关系的图,用来显示系统中这些概念的静态结构。
  • 组成元素:类(属性、方法)、关系(实现= 泛化 > 组合 > 聚合 > 关联 > 依赖)、多重度

多重度

多重度
1: 一个对象
0…:0个或多个对象
1…
: 至少对应一个
*:对应多个对象

关系

关系说明
类图参考文章

关系类型关系描述图形标识方向举例
泛化一般与特殊的关系,是一种继承关系带三角箭头的实线箭头指向父类动物-老虎
实现类与接口的关系带三角箭头的虚线箭头指向接口Iuser-VIPuser
组合整体与部分的关系,部分不能离开整体而单独存在带实心菱形的实线菱形指向整体公司-部门
聚合整体与部分的关系,部分可以离开整体而单独存在带空心菱形的实心线菱形指向整体汽车-轮胎
关联是一种拥有的关系,它使一个类知道另一个类的属性和方法带普通箭头的实心线(双向可以没有箭头)指向被拥有者老师-学生-课程
依赖一种使用的关系,即一个类的实现需要另一个类的协助带箭头的虚线指向被使用者人-电脑

泛化示例
组合示例
聚合
关联关系示例
依赖示例
组合使用示例-bian元模型关系

类图中不同关系的java代码示例

uml类图的关系对应的java代码实现

  • 泛化:子类继承父类
//鸟类继承动物类
Public class Bird extend Animal{
  
}
  • 实现:类实现接口
//大雁实现飞翔接口
Public class WideGoose impment IFly{
  
}
  • 组合:整体-部分,contains a, 整体类有一个部分类(可能是list多个)的属性,并且生命周期相同(在整体类构造方法中,构造部分类)
//在鸟Bird类中,初始化时,实例化翅膀Wing,他们之间生命周期一样
Public class Bird{
    private Wing wing;
    Public Bird(){
        wing=New Wing();
}
  • 聚合:整体-部分,has a,部分是整体的成员变量,部分类可以作为整体类构造方法的入参(二者可独立存在)
//大雁作为成员变量传入雁群类
Public class WideGooseAggregate{
    List<WideGoose> wideGooses
	public WideGooseAggregate(List<WideGoose> wideGooses) {
		this.wideGooses = wideGooses;
	}
}
  • 关联:拥有,被关联类作为关联类的成员变量。一个类的对象作为另一个类的成员变量传入或者返回值。一个类作为另一个类方法里的局部变量
    1. 一个类的对象作为另一个类的成员变量传入或者返回值
//企鹅类引用气候对象
Public class Penguin {
  private Climate climate;
}
	2. 一个类作为另一个类方法里的局部变量
//气候类企鹅类方法里的局部变量
Public class Penguin {
  public void print(){
     Climate climate;
  }
}
  • 依赖:使用,一个类可以使用另一个类,一个类的对象作为另一个类的方法参数传入
//氧气类作为动物类中某个方法的参数
Public class Animal {
   Public Metabolism(Oxygen oxygen) {
             
      }
}

顺序图

顺序图参考文章

  • 描述对象间基于时间的动态交互
  • 顺序图有四部分:参与者(Actor)或对象(Object)、生命线(Lift Line) 、激活期 和 消息
    顺序图的组成部分
    顺序图举例

用例图

  • 描述一组参与者、用例和他们的关系
  • 关系:
    • 包含(include):做某事前必须先做什么事,通常是抽象出的多个用例的公共部分
    • 扩展(extend):有可能做也可能不做
    • 泛化:抽象与具体的关系
  • 参与者:人、组织、系统、时间、温度等
    用例图
    用例规约
    用例关系

协作图(通信图)

  • 交互图的一种,强调对象间的消息收发关系
    协作图

状态图

  • 对类图的补充,展现此类对象具有的可能状态,以及某些事件发生时其状态转移情况。
  • 状态(节点上的内容)、事件(线上的内容)
    状态图

活动图

  • 一种特殊的状态图。
  • 描述一个操作中要进行的各项活动的执行流程,也通常用来描述一个用例的处理流程或某种交互流程
  • 活动图节点是动作,状态图节点是状态
    活动图

定时图

  • 交互过程中真实的时间信息、时间段
    定时图

构件图、包图

构件图、包图

部署图

  • 包含软硬件的映射关系、通信协议等
    部署图
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值