本文已参与「掘力星计划」,赢取创作大礼包,挑战创作激励金。
小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
定义
UML (统-建模语言):是一种可视化的建模语言,而非程序设计语言,支持从需求分析开始的软件开发的全过程。
结构
从总体上来看,UML的结构包括构造块、规则和公共机制三个部分。
-
构造块。UML有三种基本的构造块,分别是事物( thing)、关系(relationship )和图(diagram)。事物是UML的重要组成部分,关系把事物紧密联系在- -起,图是多个相互关联的事物的集合。
-
公共机制。公共机制是指达到特定目标的公共UML方法。
-
规则。规则是构造块如何放在一起的规定。
事物
- 结构事物:模型的静态部分,如类、接口、用例、构件等;
- 行为事物:模型的动态部分,如交互、活动、状态机;
- 分组事物:模型的组织部分,如包;
- 注释事物:模型的解释部分,依附于一个元素或一-组元素之,上对其进行约束或解释的简单符号。
- 部分事物UML图形如下所示:
关系
-
依赖:--个事物的语义依赖于另一个事物的语义的变化而变化
-
关联:是一种结构关系,描述了一-组链,链是对象之间的连接。分为组合和聚合,都是部分和整体的关系,其中组合事物之间关系更强。两个类之间的关联,实际上是两个类所扮演角色的关联,因此,两个类之间可以有多个由不同角色标识的关联。
-
泛化:一般/特殊的关系, 子类和父类之间的关系
-
实现:一 个类元指定了另一个类元保证执行的契约。
图
1 用例图
用例图主要回答了两个问题:
1、是谁用软件。
2、软件的功能。从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。
2 类图
用户根据用例图抽象成类,描述类的内部结构和类与类之间的关系,是一种静态结构图。 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。
各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
3 对象图
描述的是参与交互的各个对象在交互过程中某一时刻的状态。对象图可以被看作是类图在某一时刻的实例。
4 状态图
是一种由状态、变迁、事件和活动组成的状态机,用来描述类的对象所有可能的状态以及时间发生时状态的转移条件。
5 活动图
是状态图的一种特殊情况,这些状态大都处于活动状态。本质是一种流程图,它描述了活动到活动的控制流。
交互图强调的是对象到对象的控制流,而活动图则强调的是从活动到活动的控制流。
活动图是一种表述过程基理、业务过程以及工作流的技术。
它可以用来对业务过程、工作流建模,也可以对用例实现甚至是程序实现来建模。
6 序列图-时序图
交互图的一种,描述了对象之间消息发送的先后顺序,强调时间顺序。
序列图的主要用途是把用例表达的需求,转化为进一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的序列图。同时序列图更有效地描述如何分配各个类的职责以及各类具有相应职责的原因。
7 协作图
交互图的一种,描述了收发消息的对象的组织关系,强调对象之间的合作关系。时序图按照时间顺序布图,而写作图按照空间结构布图
8 构件图
构件图是用来表示系统中构件与构件之间,类或接口与构件之间的关系图。其中,构建图之间的关系表现为依赖关系,定义的类或接口与类之间的关系表现为依赖关系或实现关系。
9 部署图
描述了系统运行时进行处理的结点以及在结点上活动的构件的配置。强调了物理设备以及之间的连接关系。
部署模型的目的:
描述一个具体应用的主要部署结构,通过对各种硬件,在硬件中的软件以及各种连接协议的显示,可以很好的描述系统是如何部署的;平衡系统运行时的计算资源分布;可以通过连接描述组织的硬件网络结构或者是嵌入式系统等具有多种硬件和软件相关的系统运行模型。