图形化表达方法

流程类

业务与管理

流程图

流程图,是表示算法、工作流或流程的一种框图表示,它以不同类型的框代表不同种类的活动,每两个活动之间则以箭头连接。

泳道图

泳道图是一种流程图,它通过将流程的不同部分按"泳道"分配给不同的执行主体或部门来展示业务流程的执行情况。

泳道图是在流程图的基础上增加了部分分工和阶段划分这两个维度,有助于阅图人理解流程中个人的工作范围和过程执行的阶段。

泳道图的组成元素
  1. 泳池:泳池是泳道图的外部框架,泳道、流程都包含于泳池内。

  2. 泳道:泳池里可以创建多个泳道。

  3. 流程:实际的业务流程。

  4. 角色(负责人、部门或信息系统):通过部门或者责任来区分,明确每个部门/人/信息系统负责完成的任务环节。如:销售前-销售中-销售后。

  5. 阶段:通过任务阶段来区分,明确明个阶段需要处理的任务环节。阶段维度可以视情况添加。

BPMN

BPMN(业务流程建模符号)是一种用于业务流程建模的图形化标准,它提供了一套直观、易懂的符号和语法,使得业务流程可以被清晰地表示和理解。

韦恩图

韦恩图作为一种强大的可视化工具,能够清晰地展示不同集合之间的关系,包含,相交,相离等关系。

甘特图

甘特图又被称为横道图、条状图,是项目管理中常用的图表类型,通过时间刻度(横轴)和细分事项(纵轴)来表示出项目的顺序与持续时间,能够直观地展示项目进度、任务分配和时间安排。

甘特图三要素
任务

任务的分解与定义,要考虑任务名称、任务描述、任务的优先级和工作量等,要显示不同任务之间的依赖关系。

时间

横轴表示时间,通过横向条形图展示任务的开始和结束日期,重要的项目节点(里程碑)可以用特殊符号标记,并根据进度实时更新。

资源

包括人员、资金、设备和材料等,可以显示每个任务的负责人或团队。

软件与系统设计

UML

随着软件带来的价值增加,寻找自动化软件生产技术,来提高软件质量,减少成本和提高开发效率。自动化生产软件技术包含有组件化,可视化编程,模式和框架。

同时,也在寻找管理复杂系统的技术。特别是,需要解决反复出现的体系结构问题,例如物理分布、并发性、安全性、负载平衡和容错。统一建模语言(UML)被设计用来解决这些需求。

统一建模语言(UML)是一种通用的可视化建模语言,旨在提供一种标准的方法来可视化系统的设计。

UML是开发面向对象软件和软件开发过程中非常重要的组成部分。使用UML可以帮助项目团队进行交流,探索潜在的设计,并验证软件的体系结构设计。

UML为许多类型的图提供了一种标准符号,这些图可以大致分为三大类:行为图、交互图和结构图。

类图

类图是一种静态结构图,通过显示系统的类、它们的属性、操作(或方法)以及类之间的关系来描述系统的结构。

类符号

一个class包含三部分:

  1. class名
  • 类的名称出现在第一个分区中。
  1. class属性
  • 属性显示在第二个分区中。
  • 属性类型显示在冒号之后。
  • 属性映射到代码中的成员变量(数据成员)。
  1. class操作
  • 操作显示在第三个分区中。它们是类提供的服务。
  • 方法的返回数据类型显示在方法名末尾的冒号之后。
  • 方法参数数据类型显示在参数名称后面的冒号后面。
  • 操作映射到代码中的类方法。
关系
实例化层次关系

关联

一个类的对象和另一个类的对象存在连接,一个类的属性指向另一个类(或多个)实例。

例如:汽车和司机,一辆车对应一个特定的司机,一个司机可以驾驶多辆车。

聚合

聚合关系是更加具体的一种关联关系,它是"has a"的关联关系。它是一种代表部分整体关系的关联。表示类的整体和部分之间的关系,成员对象是整体对象的一部分,但成员对象可以独立于整体对象而存在。

组合

组合关系是一种更强的聚合关系,其中聚合控制其聚合元素的生命周期。整体与部分的关系,但整体与部分不能分离。组合关系表示类的整体和部分之间的关系,整体和部分具有一致的生命周期。一旦整体对象不存在,部分对象也就不存在了,它们都将在同一生命中死去。

聚合关系与组合关系对比

组合关系

  1. 表示整体部分的关系,如发动机是汽车的一部分。

  2. 当容器被销毁时,容器内的内容也会被销毁,如大学和它包含的院系。

聚合关系

  1. 表示整体与部分的关系,如软件与数据库的关系,软件包含数据库,数据库也可以被其他软件使用。

  2. 当容器被销毁时,容器内的内容通常不会被销毁,如教授有学生;当教授离开大学时,学生们并没有随教授一起离开。

因此,聚合关系通常是"目录"包含,以区别于组合的"物理"包含。

汽车有一个发动机,发动机是汽车的一部分。发动机不能作为单独的部件存在,不能从汽车上分离出来。

一个池塘有0个或多个鸭子,而一个鸭子至多有一个池塘(一次)。鸭子可以独立于池塘而存在,例如它可以生活在湖泊附近。当我们摧毁一个池塘时,我们通常不会杀死所有的鸭子。

类层次关系

继承

继承,用于描述父类和子类之间的关系。

在继承关系中,子类继承父类的所有函数,父类拥有所有的属性、方法和子类。子类除了包含与父类相同的特性,还包含自己的特性。

Student类和Professor类继承了Person类。

实现

实现(Implementation)主要用于指定interface与实现class之间的关系。

interface(包括abstract class)是方法的集合。类中的方法实现接口声明的所有方法。

如:汽车和船都是交通工具,交通工具只是一种移动工具的抽象概念,船和船实现了具体的移动功能。

通用层次关系

依赖

依赖关系可以是一种较弱的绑定形式,表明一个类依赖于另一个类,因为它在某个时间点使用了另一个类。如果独立类是依赖类的方法的参数变量或局部变量,则一个类依赖于另一个类。有时两个类之间的关系非常弱。它们根本不是用成员变量实现的。相反,它们可以作为成员函数参数实现的。

依赖关系是一个"使用"关系。一个特定事物的改变可能会影响其他使用它的事物,并且当需要表明一个事物使用另一个事物时使用依赖项。这辆车依靠汽油。如果没有汽油,汽车将无法行驶。

类图例子
组件图
组件和模块的区别

模块和组件都是封装特定功能一个集合。模块是一个逻辑组织集合,用于管理代码的逻辑,把一个复杂系统代码组装成一个个模块,使代码逻辑清晰,易于维护扩展与复用。如财务模块,人力模块。组件是一个物理上的组织集合,顾名思义,软件系统组件是系统的一个完整独立的部件。

例如,在下面的图中,我们展示了一组模块,其中每个模块嵌入了一组类:

在上图中,尽管类被分成多个模块,但它们并没有按照下面的截图进行物理分离。

例如,我们在应用服务器上部署了两个物理组件,

  1. MyWeb.war是Web层上的物理封装。
  2. MyEJB.jar是业务层上的物理封装。
软件抽象粒度层次结构

抽象的软件粒度层次如下:

想象一下,如果只是使用基本数据开发软件系统,代码是很难维护和阅读的。将小的、简单的、功能有限的、目的抽象的东西组合成更大的、更复杂的、功能更强的、目的更明确的东西。将软件系统不同层次抽象出来使开发更容易,更快,更简单和更安全。

组件图

组件图用于对系统的物理方面进行建模,组件图本质是类图一种变形。与类图不同的是,组件图关注的是系统的组件,对一个系统的静态实现视图建模。

组件图把系统分解成不同层次的子功能。每个组件是整个系统的职责明确的特定功能,并且与外部交互。

上面的例子展示了一个较大组件的内部组件:

  • 数据(帐户和检查ID)通过右侧的端口流入组件,并被转换为内部组件可以使用的格式。右边的接口被称为必需的接口,它表示组件执行其职责所需的服务。
  • 然后,数据通过各种连接传递到其他几个组件,然后在左侧的端口输出。左边的那些接口被称为提供的接口,它表示要由展示组件交付的服务。
  • 重要的是要注意,内部组件被一个大的"盒子"包围着,这个"盒子"可以是整个系统本身(在这种情况下,右上角不会有组件符号),也可以是整个系统的子系统或组件(在这种情况下,"盒子"是组件本身)。

组件图的基本概念

在UML 2中,一个组件被绘制成一个矩形,其中有垂直堆叠的可选分隔。在UML 2中,组件的高级抽象视图可以建模为:

  1. 包含组件名称的矩形
  2. 带有组件图标的矩形
  3. 带有组件文本和(或)图标的矩形

接口

下面的例子展示了两种类型的组件接口: 提供的接口:在末端有一个圆圈,表示组件提供的接口。 需要的接口: 在末端有一个半圈,表示组件需要的接口。

端口

端口在组件矩形图边缘线的正方形表示。端口通常用于帮助公开组件所需和提供的接口。

组件间关系

组件图由组件,接口,组件间的关系组成。 组件间关系有:继承,聚合,组合,实现,关联等关系。

例子

对源码建模

  1. 把源码文件作为组件
  2. 对源码文件依赖关系建模

对物理数据库建模

  1. 类操作数据库,类表示数据库的逻辑结构
  2. 把逻辑设计转为物理设计
  3. 把数据库表作为组件
  4. 建立数据库组件图
活动图

活动图表示一个工作流程。

使用场景
  1. 为用例之间/用例内部的工作流建模
  2. 为实现一个用例或操作对象的复杂工作流进行建模
序列图
使用场景
  1. 实现一个用例或一个操作之间的交互
  2. 系统的用户和系统,系统和其他系统,或是子系统之间的更高层次的交互
例子

酒店预订

用例场景建模

架构图

架构图是一种用于可视化展示软件、系统、应用程序、网络等体系结构的图表或图形。它通过图形化的方式,形象地展示体系结构中各个组成部分以及它们之间的关系,为系统提供了直观、全面的视图。可以帮助不同角色(如开发者、运维人员、产品经理等)从不同角度(如业务、技术、功能、数据等)理解和分析系统。

在互联网行业中,架构图作为一种重要的工具,用于可视化展示软件、系统、应用程序等的体系结构及其组成部分之间的关系。

技术架构图

关注焦点:技术架构图关注于系统所使用的技术栈、技术组件以及它们之间的集成方式。

作用:为技术团队提供系统技术实现的概览,帮助团队成员了解系统的技术架构和技术选型。

部署架构图

关注焦点:部署架构图关注系统如何被部署到物理机器和网络环境中,包括硬件、软件、网络设备等资源的配置和布局。

作用:为系统管理员和运维人员提供系统的部署方案,帮助他们理解系统的物理布局和部署要求。

数据架构图

关注焦点:数据架构图关注系统中数据的存储方案,包括数据模型、数据存储格式、数据传递、数据复制、数据同步等策略。

作用:为数据库管理员和开发人员提供数据管理和数据处理的指导,帮助他们理解系统的数据结构和数据流动方式。

业务架构图

关注焦点:业务架构图关注的是组织的业务目标、流程和策略,它描述了组织的业务模型、价值链、业务流程和业务规则等。

作用:帮助业务分析师、产品经理和高级管理人员理解组织的业务运作方式,为业务决策提供支持。

产品架构图

关注焦点:产品架构图依附于主体业务,由业务决定产品功能与走向。它是对主体产品的设计与规划,可包含已实现和规划中的产品内容。

作用:帮助产品团队审视自身产品的定位和走向,及时定位问题并进行调整,更好地进行产品设计与规划。

应用架构图

关注焦点:应用架构图在八大架构图中起到了呈上启下的作用,它承接了业务模式和产品功能的实现落地,也向下指导了技术模块的设计与展开。

作用:帮助开发人员和架构师理解应用系统的整体结构和各个技术组件的集成方式。

功能架构图

关注焦点:功能架构图是从宏观到微观的一种体现,展现了产品的功能体系。

作用:帮助开发人员和测试人员了解产品的功能实现逻辑和模块划分,以及各功能模块之间的相互关系。

信息架构图

关注焦点:信息架构图关注于系统或产品中信息的组织结构和呈现方式,包括信息的分类、标签、导航等。

作用:帮助用户体验设计师和信息架构师优化产品的信息结构和用户界面,提升用户体验。

数据分析

对比图

对比图,通过图形化的方式直观地展示两个或多个数据集之间的差异、相似性或变化趋势。

柱状图

特点:最适合展示不同类别间的数量对比,通过不同高度的柱子直观展示数据的差异。

适用场景:销售数据对比、市场份额分析、考试成绩比较等。

折线图

特点:擅长描绘数据随时间或其他连续变量的变化趋势,通过连线的起伏展示数据的变化。

适用场景:股票价格走势、气温变化、项目进度追踪等。

饼图

特点:用于展示各部分占总体的比例,通过不同大小的扇形区域表示各部分占比。环形图也是饼图的一种。

适用场景:市场份额分布、预算分配、用户构成分析等。

气泡图

特点:以气泡形状为主,可以与坐标系结合,展示多个变量之间的相关性、集中度及数值差异,帮助用户发现数据间的关系和趋势。

适用场景:产品销量分析、国家人口寿命对比等。

雷达图

雷达图,也被称为蜘蛛图或极坐标图,是一种用于显示多变量数据的图表类型。它以一个中心点为基准,向外辐射出多条数据系列的轴线,每条轴线代表一个变量,通过各轴的长度和角度来展示数据的分布和趋势。雷达图能够将多个维度的数据映射到坐标轴上,这些坐标轴都从同一个圆心出发,最后回到圆周上,形成一个闭合的多边形区域,从而直观地反映对象在多个维度上的表现。

特点:用于多维度数据比较,通过从中心向外辐射的轴和连接各数据点的多边形展示数据的均衡性。

适用场景:员工绩效评估、产品特性对比、服务质量评估等。

脑图类

思维导图

思维导图是一种通过将核心概念居于中央,并由此扩展出其他相关信息的图形工具。适合整理复杂的信息,通过简化和视觉化的形式帮助大脑更好地理解和记忆。

例子

英语语法中涉及的知识点众多,包含动词形式、名词修饰、从句等多个部分,若没有清晰的逻辑和体系,很容易在学习过程中产生混乱。思维导图通过将这些零散的知识点串联成一个有机的整体,帮助学习者系统化地进行学习,并在大脑中建立语法知识的框架。

写好一篇毕业论文是一个系统而复杂的过程,需要周密考虑,慎重落笔,在动笔之前要做好充分的准备。具体它涉及到多个方面,包括选题、研究方法、数据收集与分析、论文结构、写作风格、引用与参考文献等,深入分析如何写好一篇毕业论文。

时间轴

时间轴是一种用于展示事件进程的思维导图类型,通常由一系列日期和事件组成,每个事件都用一个节点表示。通过绘制时间轴,我们可以更好地了解事件的发展历程,并发现其中的规律和趋势。

项目管理时间轴

阶梯型时间轴

S型时间轴

组织结构图

组织结构图是一种用于展示组织结构的思维导图类型。

生产型企业经营组织结构图

蜂窝型组织结构图

鱼骨图

鱼骨图是一种常用的思维导图类型,顾名思义长得像鱼的骨架,头尾间用粗线连接,有如脊椎骨一样。鱼骨图通常由一个中心主题和多个分支组成,每个分支代表一个与主题相关的因素或原因。鱼骨图具有简洁实用、深入直观的特点,通过绘制鱼骨图,我们可以更好地理解问题的本质,并找到解决问题的最佳方法。

常用的鱼骨图有原因型鱼骨图(鱼头在右)对策型鱼骨图(鱼头在左) 两种,用来分析问题和解决问题。

原因型鱼骨图

对策型鱼骨图

鱼骨图相比普通思维导图,结构更清晰,在面对固定的场景时更能发挥出自己独特的作用。

用户异常分析鱼骨图

如何减肥鱼骨图

参考文献:

  1. 数据分析对比图表-雷达图全面指南
  2. 深入理解 BPMN:流程管理的强大工具
  3. Class diagram
  4. What are the six types of relationships in UML class diagrams? - Visual Paradigm Blog
  5. What is Class Diagram?
  6. Is there a difference between a component and a module
  7. Main Concepts in Software Architecture | 01
  8. What is Component Diagram?
  9. What is Sequence Diagram?
  10. Unified Modeling Language
相关推荐
柳杉1 天前
Three.js × Blender:从建模到 Web 3D 的完整工作流深度解析
前端·javascript·数据可视化
小李的便利店1 天前
系统架构设计师-案例分析-软件系统设计
系统架构·uml·软件项目管理
Highcharts.js2 天前
在React中使用图表库时,优先选择组件化方案可以降低开发复杂度
前端·javascript·react.js·数据可视化·highcharts
hssfscv2 天前
软件设计师 试题三 面向对象——UML事物、关系、图
笔记·学习·uml
数据科学小丫2 天前
Power BI 使用
数据分析·数据可视化·powerbi
极光代码工作室2 天前
基于Hadoop的日志数据分析系统设计
大数据·hadoop·python·数据分析·数据可视化
一颗烂土豆5 天前
拒绝 rem 计算!Vue3 大屏适配,我用 vfit 一行代码搞定
vue.js·响应式设计·数据可视化
技术民工之路5 天前
Gephi网络(图)分析与可视化工具
大数据·数据可视化
爱学习的程序媛7 天前
【Web前端】蚂蚁AntV:企业级数据可视化全栈方案
前端·信息可视化·前端框架·web·数据可视化
数字冰雹7 天前
数字孪生携手AIGC:一个指令,一座智慧城市的全景智能即刻生成
人工智能·ai·aigc·智慧城市·数字孪生·数据可视化