梦想还是要有的,万一忘了咋办?

0%

UML

Unified Modeling Language(UML)又称作统一建模语言或标准建模语言,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格到构造和配置。

分类

  • 静态模型(系统结构)
    用例图、类图、对象图、构件图、部署图
  • 动态模型(系统行为)
    状态图、活动图、序列图、协作图

四种事务

结构事务

名词、静态部分、物理元素。
结构事务

行为事务

动词、动态部分、行为。
行为事务

分组事务

包。
分组事务

注释事务

注解。

注释事务

用例图

  • 用例图是指由参与者(Actor)、用例(Use Case),边界以及他们之间的关系构成的用于描述系统功能的视图。
  • 用例图(User Case)是外部用户(被称为参与者)所能观察到的系统功能模型图。
  • 用例图是系统蓝图,用于需求分析阶段。
  • 用例图呈现了一些参与者,一些用例,以及他们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。

用例图

关系

包含(include)关系

基用例并非一个完整的用例,必须和子用例一起使用才够完整,子用例也必然被执行。include关系在用例图中使用带箭头的虚线表示,箭头从基用例指向子用例。

包含关系

扩展(extend)关系

基用例是一个完整的用例,extend关系在用例图中使用带箭头的虚线表示(在线上标注<>),箭头从子用例指向基用例。

扩展关系

类图

类图(class diagram)展现了一组对象、接口、协作和它们之间的关系。类图是静态视图。
类图包括:类、接口、协作、依赖、泛化、关联关系

类的分类

  • 实体类
    永久存储、数据库表记录
  • 控制类
    执行逻辑
  • 边界类
    用户、系统交互:界面类,

类之间关系

类之间关系

依赖(Dependency)

  • 使用关系(use a) 避免双向依赖
  • A依赖B,B改变会影响A
  • 虚线箭头表示,依赖的一方指向被依赖的一方。

泛化(Generalization)

  • 是(is a)
  • 继承关系的反关系
  • 父类:基类、超类 是子类的泛化,子类:派生类。
  • 实线+空心三角形

关联(Association)

  • 拥有的关系(has a),一个类知道另一个类的属性、方法。
  • 双向无箭头
  • 单向关联:有一个箭头
  • 自关联
  • 多重关联
    • 1..1 A类1个对象与B类一个对象有关系。
    • 0..* A类1个对象与B类0或多个对象有关系。
    • 1..* A类1个对象与B类1个或多个对象有关系。
    • 0..1 A类1个对象与B类0个或1个对象有关系。
    • m..n A类1个对象与B类最少m个最多n个对象有关系(m≤n)。

聚合(Aggregation)

  • has a 关系
  • 整体与部分之间是可分离的
  • 带空心菱形+直线+箭头 表示。

组合(Composition)

  • contains-a ,也称为 强聚合
  • 整体、部分不可分离。
  • 实心菱形+直线+箭头表示。

实现(Realization)

  • 用来规定接口和实现接口的类或者构建结构的关系。
  • 接口时操作的集合。
  • 接口之间存在继承、依赖关系。
  • 类、接口存在实现关系。
  • 空心三角+虚线表示。

对象图

维度 类图 对象图
信息 3部分:类名、属性、操作 2部分:对象名称、对象属性
名称 只有类名 对象名:类名
属性 所有属性 属性当前值
操作 列出操作 不包含操作
关系 关联连接,关联中使用名称、角色、约束定义 对象使用链进行连接,包含名称、角色
关系数目 必须说明参与关联的对象数目 对象代表单独实体,链都是1对1的,不涉及多重性

对象图

交互图

序列图(时序图)

描述消息在对象之间如何发送和接收的。
构成:对象、生命线、控制焦点、消息
作用:展示对象间的交互时序。

通信图(协作图)

描述了该协作所有对象组成的网络结构及相互发送消息的整体行为。
构成:对象、消息、链(是关联的实例、是对象间发送消息的路径)、顺序号。
作用:显示了对象及其交互关系的组织结构、表现了一个类的操作实现。


通信方式

交互概览图

强调控制流的交互图

计时图

适合嵌入式系统建模的交互图

状态图

描述一个特定对象的所有可能的状态,及由于各种事件的发生引起的状态间的转移和变化。
动态建模。

活动图

动态建模。活动图描述行为的动作、状态图描述行为的结果。

构件图(组件图)

复用,构件类型:

  • 部署构件:dll文件、exe文件、com+对象、CORBA对象、EJB、动态Web和数据库表等。
  • 工作产品构件:源代码文件、数据文件等
  • 执行构件:系统执行后得到的构件。

    教材图:

组合结构图

部署图

  • 显示系统中软件、硬件的物理架构。

包图

  • 在Uml中用类似于文件夹的符号表示的模型元素的组合。包图是一种维护和描述系统总体结构的模型的重要建模工具,通过对包中各个包以及包之间关系的描述,展现出系统的模块与模块之间的依赖关系。
  • 作用:描述需求,设计的高阶概况;反应系统的高层架构,模块化分解;组织源码的方式;
  • 一个包图可以由任何一种uml图组成,通常为用例图、类图。
  • 包被描述成文件,可以用于uml任何一种图上。
  • 包图知识把某些类放在一个包中,因此可以看出是类图的一种。