12.7周四uml之类图,用例图,活动图,时序图

发布时间 2023-12-07 17:54:24作者: 来自理塘的胡图图

今天课上的测试中检查了我们uml的理解,成功让我意识到了对类图等概念理解中的不足,为此,我重新翻阅软件设计这本书,并结合网络上的类图,用例图,活动图,时序图等,总结了以下内容。

类图(Class Diagram)是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型,是唯一的可以直接映射到面向对象语言的图。
类图的绘制主要包括类名,属性,操作以及类之间的关系(类名要有大写,对象图中名称要用冒号:将对象名与所属的类名分开且有下划线如:马云:企业家)。属性或方法前的符号表示可见性,加号表示公有,减号表示私有,井号表示保护,波浪线表示默认方法。属性的格式为+name:String,方法的格式为+setName():void。
类间的关系常见的有以下几种关系: 继承或泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)
继承:表示类与类之间的继承关系,接口与接口之间的继承关系,是 is-a 的关系,使用空心三角形+实线表示


实现:表示一个class类实现interface接口(可以是多个)的功能,使用空心三角形+虚线表示。


依赖(Dependency):是一种使用关系,它是对象之间耦合度最弱的一种关联方式,是临时性的关联。在代码中,某个类的方法通过局部变量、方法的参数或者对静态方法的调用来访问另一个类(被依赖类)中的某些方法来完成一些职责。依赖关系使用带箭头的虚线来表示,箭头从使用类指向被依赖的类。


关联(Association):关系是对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系,关联关系是类与类之间最常用的一种关系,分为一般关联关系、聚合关系和组合关系。关联关系是类与类之间最常用的一种关系,分为一般关联关系、聚合关系和组合关系。
关联可以是双向的,也可以是单向的。在 UML 类图中,双向的关联可以用带两个箭头或者没有箭头的实线来表示,单向的关联用带一个箭头的实线来表示,箭头从使用类指向被关联的类。也可以在关联线的两端标注角色名,代表两种不同的角色。
在代码中通常将一个类的对象作为另一个类的成员变量来实现关联关系。如瞎图所示是老师和学生的关系图,每个老师可以教多个学生,每个学生也可向多个老师学,他们是双向关联。


聚合(Aggregation):是关联关系的一种,是强关联关系,是整体和部分之间的关系,是 has-a 的关系。聚合关系也是通过成员对象来实现的,其中成员对象是整体对象的一部分,但是成员对象可以脱离整体对象而独立存在。在 UML 类图中,聚合关系可以用带空心菱形的实线来表示,菱形指向整体。


组合(Composition):也是关联关系的一种,也表示类之间的整体与部分的关系,但它是一种更强烈的聚合关系,是 contains-a 关系。
在组合关系中,整体对象与部分对象的生命周期相同,一旦整体对象不存在,部分对象也将不存在,部分对象不能脱离整体对象而存在。例如,头和嘴的关系,没有了头,嘴也就不存在了。
在 UML 类图中,组合关系用带实心菱形的实线来表示,菱形指向整体。


时序图
时序图(Sequence Diagram),又名序列图,是一种UML交互图。它通过描述对象间发送消息的时间顺序显示多个对象之间的动态协作。
时序图会涉及7种元素:角色(Actor)、对象(Object)、生命线(LifeLine)、控制焦点(Activation)、消息(Message)、自关联消息、组合片段。

角色:以一个小人图标表示
对象:位于时序图的顶部,以一个矩形表示。对象的命名方式一般有三种,对象名:类名,对象名或只有类名如:类
生命线:对象下方的虚线
控制焦点:代表时序图中在对象时间线上某段时期执行的操作。以一个很窄的矩形表示。
消息:对象之间传递信息,是通过调用对方的方法实现的。如A给B发送消息是A通过调用B的方法来实现的。发送消息用实线加箭头表示,返回消息用虚线加箭头表示。
自关联消息:表示方法的自身调用或者一个对象内的一个方法调用另外一个方法。以一个半闭合的长方形+下方实心剪头表示。
组合片段:对于像分支,并行等操作,可以通过组合片段来表示。这种方式使用的较少。

 

活动图
UML活动图是UML的动态模型的一种图形,一般用来描述相关用例图。活动图实质上就是流程图,其描述了一系列动作之间的流程。活动图描述满足用例要求所要进行的活动以及活动间的约束关系,是一种表述过程基础、业务过程以及工作流的技术。它可以用来对业务过程、工作流建模,也可以对用例实现甚至是程序实现来建模。

活动图包括一些额外的功能如分支,平行流,泳道等。
在绘制活动图,我们应该确定以下要素:
活动:对象要执行的动作,
交互:动作之间的连接
条件:活动进行过程中可能会有分支,需要进行判断
泳道:活动图中会有不同的参与者,为每个参与者划分一个泳道,用于区分动作时谁执行的
平行流:再一个活动图中,部分活动可以同时发生。并行有开始就得有汇聚

 

这些概念中我认为比较重要的便是记忆住不同的箭头代表的含义,以及实虚线所对应的意思,比如本次课堂测验中活动参与者分为团体参与者和个体参与者,这时候就需要用组合关系来对其进行表示,其连线实心菱形的实线,而如果在做题时未能正确理解图的含义,会导致极大的谬误,导致出现错误。

 

在以后的学习中,也需要我们去不断巩固对不同的uml图形和连线的理解,进一步提高自身的能力。