统一建模语言(UML)在软件开发中发挥着重要作用,在许多行业的非软件系统中也发挥着重要作用,因为它是一种直观地显示系统或流程的行为和结构的方式。UML 有助于展示应用程序结构、系统行为和其他业务流程中的潜在错误。
UML在1990年代首次出现,这要归功于三位软件工程师——Grady Booch、Ivar Jacobson和James Rumbaugh——因为他们希望开发一种不那么混乱的方式来表示日益复杂的软件开发,同时将方法与过程分开。今天,UML 仍然是开发人员以及项目经理、企业主、技术企业家和各行各业专业人士的标准首选符号。
UML图有两种主要类型:结构图和行为图(在这些类别中有多个其他类别)。这些变体的存在是为了表示不同类型的人使用的多种类型的方案和关系图。
从客户和项目经理到技术作者、设计师、分析师、编码员和 QA、测试人员,每个角色都将利用特定的图表来满足他们的需求。这意味着每个布局都需要不同的重点和细节级别。目标是让 UML 直观地表达每个人都易于理解的图表。
结构图表示软件或系统的静态结构,它们还显示了不同级别的抽象和实现。这些用于帮助您可视化构成系统的各种结构,如数据库或应用程序。它们显示了组件或模块的层次结构以及它们如何相互连接和交互。这些工具提供指导,并确保系统的所有部分相对于所有其他部分按预期工作。
这里的重点是软件系统或过程的动态方面。这些图显示了系统的功能,并强调了正在建模的系统中必须发生的情况。
让我们仔细看看属于每个类别的许多不同类型的 UML 图:
类图。此图是软件开发中最常见的类型,用于描述系统的逻辑和物理设计并显示其类。它看起来类似于流程图,因为类用框表示。此图提供了不同类的视觉效果以及它们如何相互关联,每个类有三个隔间:
对象图。通常,此图用作仔细检查类图准确性的方法。换句话说,它在实践中会起作用吗?它显示了系统的对象及其关系,并提供了需要修复的潜在设计缺陷的更好视图。
组件图。也称为组件流程图,它显示了元素的逻辑分组及其关系。换句话说,它通过将复杂系统分解为更小的组件来提供更复杂的视图。每件作品都使用一个矩形框显示,里面写着它的名字。连接器定义不同组件之间的关系/依赖关系。
复合结构图。这很少被软件开发领域以外的任何人使用。为什么?虽然它类似于类图,但它需要更深入的研究,描述多个类的内部结构并显示它们之间的交互。除非你是开发人员,否则顶级视图可能就足够了。
部署图。此图显示了硬件(节点)和软件(项目)组件及其关系。它提供了每个软件组件部署位置的可视化表示。
封装图。这用于描述组成模型的包之间的依赖关系。主要目标是显示形成复杂系统的各种大型组件之间的关系。
剖面图。这不像图表,更像是一种语言。配置文件图通过定义自定义构造型、标记值和约束来帮助为 UML 关系图创建新的属性和语义。这些配置文件允许您为不同的平台(例如,Java 平台、企业版 (Java EE) 或 Microsoft .NET Framework)和域(例如,业务流程建模、面向服务的体系结构、医疗应用程序等)定制 UML 元模型。
活动图。这描绘了一个分步的过程,有明确的开始和结束。这是一组必须发生的活动才能达到目标。它显示了每个活动如何导致下一个活动以及它们如何连接。除了软件开发之外,这些几乎可以在任何商业环境中使用。它们也称为业务流程映射或建模。
用例图。这描述了系统做什么,但没有描述它是如何做的。用例是当“参与者”使用系统完成流程时发生的一组事件。参与者被定义为从系统外部与系统(个人、组织或应用程序)交互的任何人或任何事物。因此,用例图直观地描述了这组序列,并表示了系统的功能要求。
交互概述图。此图通常很复杂,与活动图类似,因为两者都显示活动的分步顺序。但是交互概述图是由不同的交互图组成的活动图。它们使用与活动图相同的注释(初始、最终、决策、合并、分叉和连接节点),并添加了交互、交互使用、时间约束和持续时间约束等元素。
时序图。当时序占据中心位置时,使用此UML图。也称为排序图或事件图,它不显示对象如何相互作用或相互更改。从功能上讲,它显示了对象和参与者如何沿着时间线起作用。此处的重点是事件需要多长时间以及根据持续时间约束发生的变化。时序图的主要部分包括:
状态机图。也称为状态图,此图适用于对象的行为复杂且细节至关重要的情况。它有助于描述一个对象(有时是运算符)的行为,以及它如何根据内部和外部事件而变化。
序列图。这个视觉上吸引人的图表不仅在设计社区中很受欢迎,它擅长展示所有类型的业务流程。它只是揭示了一个系统的结构,按时间顺序显示参与者和对象之间的消息和交互序列。序列图显示了简单的迭代和分支。它有利于多任务处理。
通信图。通信或协作图类似于序列图。但是,它强调对象之间的通信。它显示了参与交互的对象的组织,并具有更复杂的迭代和分支。
UML作为建模数据库的符号也越来越受欢迎。这些模型是头脑风暴、自由形式图表和想法协作的绝佳可视化工具。
虽然UML没有数据建模的规范,但它可以成为图表的有用工具,特别是因为来自数据库的数据可用于面向对象的编程。
让我们看一下您可以创建的不同类型的数据库模型:
无论您是创建数据库模型还是 UML 图,使用软件工具都可以简化和改进该过程。
在许多行业的软件开发和非软件系统中,使用可视化UML图可以在成功构建行为过程和结构中发挥至关重要的作用。访问下面的链接了解更多UML信息