zoukankan      html  css  js  c++  java
  • UML

    UML-(Unified Modeling Language)统一建模语言

    1.介绍

    UML 可以帮助我们做软件的需求分析和软件设计,它能够直观、形象、严谨地描述出业务概念、业务流程、客户需求。UML是一种基于面向对象的可视化的通用建模语言。它提供一组具有明确定义的图形符号,可以建立清晰的模型便于交流,同时所有的开发人员都可以无歧义地理解这个模型。

    UML是一种富有表达力的语言,可以描述开发所需要的各种视图,并以此为基础组建系统。

    2.分类

    2.1UML定义了5类,10种模型图

    五种图定义:

    1.用例图:从用户角度描述系统功能,并指各功能的操作者。

    2.静态图:包括类图,包图,对象图。

    类图:描述系统中类的静态结构

    包图:是包和类组成的,表示包与包之间的关系,包图描述系统的分层结构

    对象图:是类图的实例

    3.行为图:描述系统动态模型和对象组成的交换关系。包括状态图和活动图

    活动图:描述了业务实现用例的工作流程

    状态图:是描述状态到状态控制流,常用于动态特性建模

    4.交互图:描述对象之间的交互关系

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

    合作图:描述对象之间的协助关系

    5.实现图:

    配置图:定义系统中软硬件的物理体系结构

    2.2 UML 大致可以分为两类:结构型和行为型

    UML.png

    图片来自 火球UML大战

    3.各种图

    3.1用例图

    用例图表达的是什么角色(Actor)能够做什么事情(use case).

    简单例子:

    注意:扩展箭头执行被扩展对象。

    Untitled.png

    图片来自:火球UML大战

    3.2 类图

    类图描述系统中类的静态结构。不仅定义系统中的类,类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作),帮助人们简化对系统的理解。

    类图中的“类”与面向对象语言中的“类”的概念是对应的,是对现实世界中的事物的抽象。

    UML支持的可见性标志:(+Public)(-private) (#protected) (~package)

    Untitled.png

    3.2.1 关联关系

    关联关系(Association)关系式类与类之间最常用的一种关系,他是一种结构化关系,用于表示对象与另一个类对象之间有联系。如班级和学生。用实线连接有关联关系的两个类。

    3.2.2“ 包含”关系

    有两种表示法,一种是空心菱形,一种是实心菱形。 实心菱形更强烈,关系更紧密。

    空心菱形的中文术语标准说法是聚合(Aggregation),实心菱形组合(Composition)。

    汽车和发动机是聚合。 杯子和杯柄是组合。

    关系为“has a ”。 整体和部分之间的关系。

    具有组合关系的两个类,他们的生命周期是一致的。

    菱形指向顶端

    3.2.3 泛化关系

    在面向对象中一般称为继承关系,存在于父类于子类、父接口与子接口之间。

    箭头指向父类

    3.2.4 依赖关系(实现)

    依赖关系体现在某个类的方法使用另一个类的对象作为参数。 之间的关系为“使用”。

    依赖关系使用一条带箭头的虚线表示,如A----->B(A依赖于B).


    一个好的例子:

    Untitled.png

    图片来自: http://www.360doc.com/content/13/0304/13/10504424_269223190.shtml

    3.3 活动图

    活动图描述系统的动态行为。

    每个活动指的是一个执行步骤或者一个操作。

    活动图描述的是系统内部的逻辑执行过程。

    Untitled.png

    Untitled.png

    图片来自:火龙果软件

    Untitled.png

    图片来自:火龙果软件

    3.4 顺序图

    顺序图是用来表示用例中的行为顺序。

    顺序图包含了四个元素:对象(Object)、声明线(Lifeline)、消息(Message)和激活(Activation)

    对象带下划线, 传递消息是实线实体箭头,返回消息是虚线

    消息体:实心箭头(同步调用操作) ; 棍型箭头(异步操作)

    <1> 点餐

    Untitled.png

    图片来自:火球UML大战

    顺序图的循环及分值结构:

    loop:循环,在满足循环条件的前提下,不断地重复做某些事情。

    alt : alternative的缩写,条件分分支,根据不同的条件选择不同的分支。

    opt : optional 的缩写,可选分支,满足一定条件则执行该分支,否则就跳过。

    Untitled.png

    图片来自:火球UML大战

    参考资料:

    《火球UML大战》

    https://blog.csdn.net/lovelion/article/details/7838679

    https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-class-diagram/

  • 相关阅读:
    记ByteCTF中的Node题
    Hooks中的useState
    IntersectionObserver对象
    Service Worker的应用
    使用 SpringBoot 构建一个RESTful API
    创业和技术有什么相通的“底层逻辑”?
    SpringBoot Profiles 多环境配置及切换
    SpringBoot Logback 日志配置
    应用分层和领域模型规约
    SpringBoot 整合 MyBatis,实现 CRUD 示例
  • 原文地址:https://www.cnblogs.com/-Tiger/p/7737321.html
Copyright © 2011-2022 走看看