一、UML 介绍
Unified Modeling Language(UML),又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。UML规范用来描述建模的概念有,类(对象的)、对象、关联、职责、行为、接口、用例、包、顺序、协作,以及转态。常见的可视化的程序设计语言工具包括Visual Basic、Visual C++、Delphi等。
UML的目标是以面向对象图的方式来描述任何类型的系统,具有很宽的应用领域。其中最常用的是建立软件系统的模型,但它同样可以用于描述非软件领域的系统,如机械系统、企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。总之,UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建模。
UML标准并没有定义一种标准的开发过程,但它比较适用于 迭代式 的开发过程,是为支持大部分现存的面向对象开发过程而设计的。
此外,UML适用于系统开发过程中从需求规格描述到系统完成后测试的不同阶段。
- 在需求分析阶段,可以用用例来捕获用户需求。通过用例建模,描述对系统感兴趣的外部角色及其对系统(用例)的功能要求。
- 分析阶段主要关心问题域中的主要概念(如抽象、类和对象等)和机制,需要识别这些类以及它们相互间的关系,并用UML类图来描述。为实现用例,类之间需要协作,这可以用UML动态模型来描述。
- 在分析阶段,只对问题域的对象(现实世界的概念)建模,而不考虑定义软件系统中技术细节的类(如处理用户接口、数据库、通信和并行性等问题的类)。
- 这些技术细节将在设计阶段引入,因此设计阶段为构造阶段提供更详细的规格说明。
UML是统一建模语言,是一种可视化的面向对象建模语言,是一种用来对真实世界物理进行建模的标准标记,用图形方式表现典型的面向对象系统的整个结构。它的作用域不局限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
UML的概念包括了UML语义(Semantics)和UML表示符(Notation)两个部分。UML语义定义了静态模型和动态模型。结构模型强调系统的对象结构,入对象的类、接口、属性和关系;行为模型关注的是系统对象的行为动作,如对象的方法、交互、协作和状态。UML表示符为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。重要内容由9种图来定义,包括用例图、类图、对象图、状态图、构件图、部署图、协作图、交互序列图、活动图。
二、UML 构成
三、UML 特点
(1)UML统一了各种方法对不同类型的系统、不同开发阶段以及不同内部概念的不同观点,从而有效地消除了各种建模语言之间不必要的差异,它实际上是一种通用的建模语言。
(2)UML建模能力比其他面向对象建模方法更强。它不仅适合于一般系统的开发,而且对并行、分布式系统的建模尤为适宜。
(3)UML是一种建模语言,而不是一个开发过程。
四、UML2.0有14图
在面向对象开发方法中,用UML表示软件体系架构,用到的5个视图是:用例视图、逻辑视图、进程视图、构件视图和部署视图。
UML提供了如下9种图来对系统建模:
- 用例图(Use Case Diagram)
- 类图(Class Diagram)
- 对象(Object Diagram)
- 构件图(Component Diagram)
- 部署图(Deployment Diagram)
- 状态图(State Diagram)
- 序列图(Sequence Diagram)
- 通信图(Communication Diagram)
- 活动图(Activity Diagram)
- 定时图(Timing diagram)
- 组合结构图(composite structure diagram)
- 制品图(Artifact diagram)
- 包图(Package diagram)
- 交互概览图(Interaction overview diagram):
1、用例图(Use Case Diagram)
用例图表示一个系统中所有的用例与所有外部参与者的交互,展现一组用例、参与者(一种特殊的类)及它们之间的关系,它描述了系统与外部系统及用户之间的交互。
描述角色以及角色与用例之间的连接关系。说明的是谁要使用系统,以及他们使用该系统可以做些什么。一个用例图包含了多个模型元素,如系统、参与者和用例,并且显示了这些元素之间的各种关系。
用例图给出系统的静态用例视图。这些图在对系统的行为进行组织和建模时是非常重要的。
主要的作用有三个:
(1)获取需求;
(2)指导测试;
(3)还可在整个过程中的其它工作流起到指导作用。
2、类图(Class Diagram)
类图描述了类、接口、协作以及它们之间的关系。
在面向对象系统的建模中所建立的最常见的图就是类图。类图给出了系统的静态设计视图。包含主动类的类图给出了系统的静态进程视图。
类图是一种模型类型,确切的说,是一种静态模型类型。
3、对象图(Object Diagram)
描述了类图某一时刻的实际例子,描述了这个时刻对象与对象间的关系。
和类图一样,这些图给出系统的静态设计视图或静态进程视图,但它们是从真实案例或原型案例的角度建立的。
4、构件图(Component Diagram)
构件图描述一个封装的类和它的接口、 端口,以及由内嵌的构件和连接件构成的内部结构。构件图用于表示系统的静态设计实现视图。对于由小的部件构建大的系统来说,构件图是很重要的。构件图是类图的变体。
5、部署图(Deployment Diagram)
部署图是用来建模系统的物理部署。例如计算机和设备,以及它们之间是如何连接的。部署图的使用者是开发人员、系统集成人员和测试人员。
部署图给出了架构的静态部署视图
6、状态图(State Diagram)
状态图(state diagram):展现一个状态机,它由状态、转移、事件和活动组成。状态图展现了对象的动态视图。它对于接口、类或协作的行为建模尤为重要,而且它强调事件导致的对象行为,这非常有助于对反应式系统建模。
依然是静态设计视图或静态进程视图。
7、顺序图(序列图)(Sequence Diagram)
顺序图(序列图)可以根据对象间如何交互来展示系统的行为。
顺序图(序列图)用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。可为一个协作建模。
顺序图(序列图)用来描述对象之间动态的交互关系来实现一个用例,序列图着重体现对象间消息传递的时间顺序。
8、通信图(协作图)(Communication Diagram)
通信图,又叫协作图(在UML1.X版本中,通信图称为协作图(ollaboration diagram)),它和序列图相似,显示对象间的动态合作关系。
可以看成是类图和顺序图的交集,协作图建模对象或者角色,以及它们彼此之间是如何通信的。
如果强调时间和顺序,则使用序列图;如果强调上下级关系,则选择协作图。
这两种图(序列图、通信图)合称为 交互图。强调的是对象之间的组织关系。
9、活动图(Activity Diagram)
活动图将进程或其他计算结构展示为计算内部一步步的控制流和数据流。
活动图专注于系统的动态视图。它对系统的功能建模和业务流程建模特别重要,并强调对象间的控制流程。
10、定时图(timing diagram)
定时图是一种交互图,它展现了消息跨越不同对象或角色的实际时间,而不仅仅只是关心消息的相对顺序。
11、组合结构图(composite structure diagram)
组合结构图描述结构化类(例如,构件或类)的内部结构,包括结构化类与系统其余部分的交互点。组合结构图用于画出结构化类的内部内容。
12、制品图(Artifact diagram)
制品图描述计算机中一个系统的物理结构。制品包括文件、数据库和类似的物理比特集合。制品图通常与部署图一起使用。制品也给出了它们实现的类和构件。
13、包图(Package diagram)
包图描述由模型本身分解而成的组织单元,以及它们之间的依赖关系。
14、交互概览图(Interaction overview diagram):
交互概览图是活动图和顺序图的混合物。
转载/参考:
什么是UML,UML类图:https://blog.csdn.net/qq_40138785/article/details/81065979
希赛教育的试题:https://www.educity.cn/