1.用例图
用例图主要用于描述系统的功能需求和用户与系统之间的交互。通过用例图,我们可以清晰地了解系统的整体运作流程以及各个参与者之间的关系。
首先,用例图对于系统的需求分析非常有帮助。通过识别和描述系统中的不同用例(功能),我们可以更好地理解系统需要实现哪些功能,并且能够将这些功能与不同的用户或参与者关联起来。这有助于开发人员在项目初期确定功能范围,并与客户或用户进行有效的沟通和协商。
其次,用例图可以帮助开发人员识别系统中的边界和界面。通过定义和展示不同的用例以及它们之间的关系,我们可以理清系统内外部的参与者,明确各个参与者与系统之间的交互方式和界面要求。这有助于确保系统与外部环境的良好集成,并促进系统与用户之间的顺畅交互。
此外,用例图还可以用作验证系统设计的工具。通过对用例图进行分析,开发人员可以评估系统是否满足用户需求,是否覆盖了所有重要的功能和使用情景。通过对用例图进行反复迭代和修改,可以逐步完善系统设计,提高系统的质量和用户体验。
2.类图
类图用于描述系统中的类、对象、它们之间的关系和属性
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。
各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
2.1.泛化
泛化是一种继承关系,表示一般与特殊的关系,它指定了子类如何继承父类的所有特征和行为。
2.2.实现
实现是一种类与接口的关系,表示类是接口所有特征和行为的实现。
2.3.关联
关联是一种拥有的关系,它使一个类知道另一个类的属性和方法;关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
2.4.聚合
聚合是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。
聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。
2.5.组合
组合是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。
组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生
2.6.依赖
依赖是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.
3.对象图
对象图是UML中的一种结构性图表,它表示了一个系统中的对象实例、它们之间的关系以及对象的属性和方法。对象图可以用于描述系统的运行时状态,用来详细描述从类图中定义的类的实例或对象。
对象图由对象(对象名称,对象属性)和关联等元素组成。对象图是在特定时间点上对系统进行建模的,因此它们可以显示系统的静态快照。对象图显示了一组对象实例和它们之间的关系,其中每个对象都具有自己的状态,如属性值,以及使用的方法。对象图还可以显示对象实例的动态行为,如消息流和方法调用顺序。
在对象图中,对象由矩形表示,并标有对象名称以及它所包含的属性和方法。关系由直线表示,可以表示对象之间的关联、聚合、组合、继承等关系。可以通过使用不同的符号和箭头类型来表示这些关系。
4.状态图
状态图是UML中的一种行为图,它用于描述对象或系统在其整个生命周期中所经历的各种状态及其转移条件和动作。状态图可以帮助我们更好地理解和描述系统或对象在不同状态下的行为和交互。
在状态图中,对象或系统被建模为一个状态机,它由状态(State)、转移(Transition)、动作(Action)和事件(Event)等元素组成。状态指对象或系统处于的状态,转移则表示对象或系统从一个状态转移到另一个状态,动作则指在特定状态下执行的操作,而事件则触发了状态之间的转移。
状态图的状态可以使用矩形来表示,每个状态都有一个名称和可能的内部活动。状态之间的转移可以使用箭头来表示,箭头上可以标注转移的条件、触发事件以及执行的动作。其中,状态之间的转移可以是自身循环转移、直接转移或间接转移等不同类型。
状态图通常用于描述复杂系统或对象的行为,例如电子设备、网络协议、业务流程等。通过状态图,开发人员可以清楚地了解系统或对象在不同状态下的行为,并定义适当的状态转移和动作,以实现预期的系统或对象行为。
5.活动图
活动图是UML中的一种行为图,用于描述系统中的活动、操作或业务流程。它可以描述一个系统、过程或操作的各个阶段以及活动之间的顺序关系和控制流程。
在活动图中,活动被表示为矩形框,矩形框中包含了活动的名称和执行该活动的对象。活动之间的控制流通过箭头表示,箭头指向下一个活动或者条件判断。活动图还可以包含分支(Decision)、合并(Merge)、分叉(Fork)、汇合(Join)等控制流程节点,用于描述不同分支或会合点之间的控制流程。
6.时序图
时序图通常用于描述系统中对象之间的交互行为,特别适合描述对象之间的时序关系和消息传递。它可以帮助开发人员更好地理解系统中对象之间的交互过程,从而更好地设计和实现系统。
7.协作图
协作图用于描述系统中对象之间的协作关系和消息传递。它展示了对象之间的协作结构,以及它们之间的消息传递和交互方式。
在协作图中,对象被表示为参与者,并通过连接线和消息箭头来描述对象之间的交互关系。连接线表示对象之间的关联关系,消息箭头表示消息的传递方向和内容。通过协作图,可以清晰地展示对象之间的协作关系和消息传递方式,从而帮助开发人员更好地理解系统中对象之间的协作过程。
协作图通常用于描述系统中对象的协作关系和消息传递方式,特别适合展示对象之间的结构和协作方式。它可以帮助开发人员更好地理解系统中对象之间的交互和信息传递,从而更好地设计和实现系统。
8.构件图
构件图是用来表示系统中构件与构件之间,类或接口与构件之间的关系图。其中,构建图之间的关系表现为依赖关系,定义的类或接口与类之间的关系表现为依赖关系或实现关系。
构件图也叫组件图,由组件、接口和组件之间联系构成,描述的是在软件系统中遵从并实现一组接口的物理的、可替换的软件模块。
组件图 = 构件(Component)+接口(Interface)+关系(Relationship)+端口(Port)+连接器(Connector)
9.部署图
部署图又叫配置图,是用来建模系统的物理部署。
部署图由节点以及节点之间的关系组成。
部署图描述的是系统运行时的结构,展示了硬件的配置及其软件如何部署到网络结构中。
部署图通常用来帮助理解分布式系统,一个系统模型只有一个部署图。
部署图用于可视化的软件组件部署的系统中的物理组件的拓扑结构。