前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UML 图表和数据库建模指南

UML 图表和数据库建模指南

作者头像
运维开发王义杰
发布2023-08-10 16:39:10
4030
发布2023-08-10 16:39:10
举报

统一建模语言(UML)在软件开发中发挥着重要作用,在许多行业的非软件系统中也发挥着重要作用,因为它是一种直观地显示系统或流程的行为和结构的方式。UML 有助于展示应用程序结构、系统行为和其他业务流程中的潜在错误。

为什么选择UML?

UML在1990年代首次出现,这要归功于三位软件工程师——Grady Booch、Ivar Jacobson和James Rumbaugh——因为他们希望开发一种不那么混乱的方式来表示日益复杂的软件开发,同时将方法与过程分开。今天,UML 仍然是开发人员以及项目经理、企业主、技术企业家和各行各业专业人士的标准首选符号。

UML 有什么好处?

  • 简化复杂性
  • 保持沟通渠道畅通
  • 自动化软件和流程的生产
  • 帮助解决持久的体系结构问题
  • 提高工作质量
  • 降低成本并缩短上市时间

UML 图的类型

UML图有两种主要类型:结构图和行为图(在这些类别中有多个其他类别)。这些变体的存在是为了表示不同类型的人使用的多种类型的方案和关系图。

从客户和项目经理到技术作者、设计师、分析师、编码员和 QA、测试人员,每个角色都将利用特定的图表来满足他们的需求。这意味着每个布局都需要不同的重点和细节级别。目标是让 UML 直观地表达每个人都易于理解的图表。

结构图

结构图表示软件或系统的静态结构,它们还显示了不同级别的抽象和实现。这些用于帮助您可视化构成系统的各种结构,如数据库或应用程序。它们显示了组件或模块的层次结构以及它们如何相互连接和交互。这些工具提供指导,并确保系统的所有部分相对于所有其他部分按预期工作。

行为图

这里的重点是软件系统或过程的动态方面。这些图显示了系统的功能,并强调了正在建模的系统中必须发生的情况。

让我们仔细看看属于每个类别的许多不同类型的 UML 图:

1. 结构 UML 图

类图。此图是软件开发中最常见的类型,用于描述系统的逻辑和物理设计并显示其类。它看起来类似于流程图,因为类用框表示。此图提供了不同类的视觉效果以及它们如何相互关联,每个类有三个隔间:

  • 顶部:类名
  • 中间部分:类属性
  • 底部:类方法或操作

对象图。通常,此图用作仔细检查类图准确性的方法。换句话说,它在实践中会起作用吗?它显示了系统的对象及其关系,并提供了需要修复的潜在设计缺陷的更好视图。

组件图。也称为组件流程图,它显示了元素的逻辑分组及其关系。换句话说,它通过将复杂系统分解为更小的组件来提供更复杂的视图。每件作品都使用一个矩形框显示,里面写着它的名字。连接器定义不同组件之间的关系/依赖关系。

复合结构图。这很少被软件开发领域以外的任何人使用。为什么?虽然它类似于类图,但它需要更深入的研究,描述多个类的内部结构并显示它们之间的交互。除非你是开发人员,否则顶级视图可能就足够了。

部署图。此图显示了硬件(节点)和软件(项目)组件及其关系。它提供了每个软件组件部署位置的可视化表示。

封装图。这用于描述组成模型的包之间的依赖关系。主要目标是显示形成复杂系统的各种大型组件之间的关系。

剖面图。这不像图表,更像是一种语言。配置文件图通过定义自定义构造型、标记值和约束来帮助为 UML 关系图创建新的属性和语义。这些配置文件允许您为不同的平台(例如,Java 平台、企业版 (Java EE) 或 Microsoft .NET Framework)和域(例如,业务流程建模、面向服务的体系结构、医疗应用程序等)定制 UML 元模型。

2. 行为 UML 图:

活动图。这描绘了一个分步的过程,有明确的开始和结束。这是一组必须发生的活动才能达到目标。它显示了每个活动如何导致下一个活动以及它们如何连接。除了软件开发之外,这些几乎可以在任何商业环境中使用。它们也称为业务流程映射或建模。

用例图。这描述了系统做什么,但没有描述它是如何做的。用例是当“参与者”使用系统完成流程时发生的一组事件。参与者被定义为从系统外部与系统(个人、组织或应用程序)交互的任何人或任何事物。因此,用例图直观地描述了这组序列,并表示了系统的功能要求。

交互概述图。此图通常很复杂,与活动图类似,因为两者都显示活动的分步顺序。但是交互概述图是由不同的交互图组成的活动图。它们使用与活动图相同的注释(初始、最终、决策、合并、分叉和连接节点),并添加了交互、交互使用、时间约束和持续时间约束等元素。

时序图。当时序占据中心位置时,使用此UML图。也称为排序图或事件图,它不显示对象如何相互作用或相互更改。从功能上讲,它显示了对象和参与者如何沿着时间线起作用。此处的重点是事件需要多长时间以及根据持续时间约束发生的变化。时序图的主要部分包括:

  • 生命线:个人参与者
  • 状态时间线:生命线在管道中经历的不同状态
  • 持续时间约束:满足约束所需的时间
  • 时间限制:参与者需要完成某事的时间
  • 破坏发生:物体生命线结束的地方。在生命线上发生破坏事件后,不会出现其他事件。

状态机图。也称为状态图,此图适用于对象的行为复杂且细节至关重要的情况。它有助于描述一个对象(有时是运算符)的行为,以及它如何根据内部和外部事件而变化。

序列图。这个视觉上吸引人的图表不仅在设计社区中很受欢迎,它擅长展示所有类型的业务流程。它只是揭示了一个系统的结构,按时间顺序显示参与者和对象之间的消息和交互序列。序列图显示了简单的迭代和分支。它有利于多任务处理。

通信图。通信或协作图类似于序列图。但是,它强调对象之间的通信。它显示了参与交互的对象的组织,并具有更复杂的迭代和分支。

数据库模型

UML作为建模数据库的符号也越来越受欢迎。这些模型是头脑风暴、自由形式图表和想法协作的绝佳可视化工具。

虽然UML没有数据建模的规范,但它可以成为图表的有用工具,特别是因为来自数据库的数据可用于面向对象的编程。

让我们看一下您可以创建的不同类型的数据库模型:

  • 分层数据库模型。这个模型的数据是一个老式的,但是一个好东西,它以树状结构组织。树由几组组成,称为段。它使用一对多关系。数据访问也是可预测的。
  • 网络模型。此模型采用图形的形式,其中关系类型是弧形,对象类型是节点。与其他数据库模型不同,网络模型的模式不局限于格子或层次结构。
  • 面向对象的数据库模型。此模型使用对象或可重用软件元素的集合,以及相关的功能和方法。例如,多媒体数据库可能包含无法存储在关系数据库中的图像。或者超文本数据库允许链接到其他对象。
  • 关系模型。在这里,数据是使用关系或具有列和行的网格状数学结构来构建的。它基本上是一张桌子。
  • 对象关系模型。顾名思义,该模型是上述两者的组合。它支持对象、类、继承和其他面向对象的元素,但也支持数据类型、表格结构等,就像关系数据模型中一样。
  • 实体关系模型。它由实体类型(人、地点或事物)组成。它显示了它们之间可能存在的关系。通过定义实体及其属性并显示它们之间的关系,ER 图说明了数据库的逻辑结构。
  • 文档模型。它旨在存储和管理文档或半结构化数据,而不是原子数据。它有一个树结构,其中每个节点都是一个表示文档一部分的对象。
  • 实体-属性-值模型。EAV或开放模式模型,数据记录为三列:
    • 属性的值
    • 属性或参数(例如名称、描述、数据类型)
    • 实体(所描述的内容)
  • 星型架构。这是维度模型的最简单版本,其中数据按维度和事实排列。它用于商业智能和数据仓库,因为它适用于查询大数据集。

使用软件简化

无论您是创建数据库模型还是 UML 图,使用软件工具都可以简化和改进该过程。

在许多行业的软件开发和非软件系统中,使用可视化UML图可以在成功构建行为过程和结构中发挥至关重要的作用。访问下面的链接了解更多UML信息

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维开发王义杰 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么选择UML?
  • UML 有什么好处?
  • UML 图的类型
    • 结构图
      • 行为图
      • 1. 结构 UML 图
      • 2. 行为 UML 图:
      • 数据库模型
      • 使用软件简化
      相关产品与服务
      数据库
      云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档