其他分享
首页 > 其他分享> > UML建模

UML建模

作者:互联网

软件工程中的各种图

70%项目的失败不是由于技术原因导致的,而是由管理不善导致的。

UML(Unified Modeling Language,统一建模语言)是一种基于面向对象的可视化语言。

它采用一组形象化的图形(如类图)符号作为建模的语言。使用这些符号可以形象的描述系统的各个方面。UML是通过建立图形之间的各种关系(如类之间的关系)来描述模型。

UML图形一共有十种,分为静态模型图和动态模型图。其中静态模型图主要描述系统的静态结构,动态模型图主要描述系统行为的各个方面。

静态模型图:类图、对象图、包图、组件图、部署图。

动态模型图:用例图、时序图、协作图、状态图、活动图。

动态模型图

用例图

也被称为用户模型图,是从软件的需求分析的到最终实现的第一步,它是从客户角度来描述系统功能的。它包含三个基本组件:参与者(使用系统的人或事物)、用例(代表系统的某项完整的功能,在图形中使用椭圆型表示)、关系(泛化关系、扩展关系、包含关系)。

扩展关系:如果一个功能在完成的时候,偶尔会执行另外一个功能,使用扩展关系表示。

泛化关系:表示同一个业务的不同技术实现。其实就是继承关系的一种。

包含关系:是指一个用例可以含有其他用例具有的行为。

img

时序图

时序图用于描述对象之间的传递信息的时间顺序。即用例中的行为顺序。当执行一个用例时,时序图中的每一条消息对应了一个类中操作或者引起转换的触发事件。

纵轴表示时间时间轴向下延伸。横轴代表协作中的各个独立对象。对象存在时。消息用从一个对象的生命线到另个对象的生命线的箭头表示。箭头以时间的顺序在图中上下排列。

用户登录时序图

协作图

也叫做合作图,是一种交互图。时序图主要侧重于对象之间的消息传递在时间上的先后关系。而协作图表达对象之间的交互过程及对象之间的关联关系。

img

img

共同点:时序图与协作图均显示了对象间的交互。

不同点:时序图强调交互的时间次序。 协作图强调交互的空间结构。

img

活动图

活动图本质上就是流程图。它用于描述系统的活动,判定点和分支等。活动中的动作状态,原子的、不可已中断的动作。

这里要区别的是分支与合并和分叉与汇合。

分叉用于将一个控制流分为两个或多个并发运行的分支,汇合用于将两个或多个控制流合并到一起形成一个单项的控制流。如果一个控制流在其他控制流到达之前到达了连接,它将会等待,直到所有控制流都到达了才会向连接传递控制权。

泳道表明每个活动是由哪些人或哪些部门负责完成。在活动图中泳道区分了负责活动的对象,它明确地表示了哪些活动是由哪些对象进行的。在包含泳道的活动图中每个活动只能明确地属于一个泳道。

img

添加泳道后的活动图

img

状态图

状态图包括状态、转换、初始状态、终止状态。

状态图(Statechart Diagram)主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件(Event),以及因状态转移而伴随的动作(Action)。一般可以用状态机对一个对象的生命周期建模,状态图用于显示状态机(State Machine Diagram),重点在与描述状态图的控制流。

image-20220911144204435

也可以用竖线或横线代表并发。

静态模型图

类图

类图是面向对象系统建模中最常用的,也是定义其他图的基础。它主要是用来显示系统中的类,接口及他们之间的关系。类图中包含的主要元素有类、接口、和关系。其中的关系有关联关系、泛化关系、依赖关系、实现关系。在类图中也可以包含注释和约束。

未命名文件 (1)

泛化关系:表示类与类,接口与接口之间的继承关系。

关联关系:这一个类中引用另一个类,是关联关系(可统一用箭头+实线表示),包含:

类中的方法参数如果包含其他类,称为依赖关系

对象图

对象图是类图的实例,用于显示系统执行时的一个可能的快照。即在某一个时间系统上可能出现的样子,对象图用带有下滑线的对象名称表示对象。

img

包图

由包与包之间的关系组成,包的图标就如同一个带标签的文件夹。

img

组件图

组件图用来建立系统中各种组件之间的关系。各个组件通过功能组织在一起。在UML中,组件使用左侧有两个小矩形的矩形来表示。组件图用来设计系统的整个架构。

组件图中的元素包括组件、接口、关系、端口和连接器,其中组件与组件之间有依赖关系,组件与接口之间有实现关系。

img

部署图

部署图是用来帮助开发者了解软件中各种组件驻留在什么硬件位置,以及这些硬件之间的相互关系。

img

标签:关系,对象,控制流,建模,用例,状态图,组件,UML
来源: https://www.cnblogs.com/yrxing/p/16684010.html