1500字博客

今天上课,老师给我们讲解了uml中的类图,用例图,时序图。

对于关系的总结泛化,关联,依赖,实现

1、关联关系:

  含义:类与类之间的连结,关联关系使一个类知道另外一个类的属性和方法;通常含有“知道”,“了解”的含义

体现:在C#中,关联关系是通过成员变量来实现的;

方向:双向或单向;

图示:实线 + 箭头;箭头指向被关联的类;

2、依赖关系:

  含义:是类与类之间的连接,表示一个类依赖于另外一个类的定义;依赖关系仅仅描述了类与类之间的一种使用与被使用的关系;

体现:在C#中体现为局部变量、方法/函数的参数或者是对静态方法的调用;

方向:单向;

图示:虚线 + 箭头;

举例:人依赖于水和空气;汽车依赖汽油 

 

3、聚合关系:

  含义:是关联关系的一种,是一种强关联关系;聚合关系是整体和个体/部分之间的关系;关联关系的两个类处于同一个层次上,而聚合关系的两个类处于不同的层次上,一个是整体,一个是个体/部分;在聚合关系中,代表个体/部分的对象有可能会被多个代表整体的对象所共享;

体现:C++中,聚合关系通过将被聚合者的(数组)指针作为内部成员来实现的;

方向:单向;

图示:空心菱形 + 实线 + 箭头;箭头指向被聚合的类,也就是说,箭头指向个体/部分;

举例:鸭群与鸭子具有聚合关系;汽车由引擎、轮胎以及其它零件组成,因为汽车坏掉了,没有坏掉的引擎,轮胎和其他零件还可以继续使用。

 

4、组合关系:

  含义:它也是关联关系的一种,但它是比聚合关系更强的关系.组合关系要求聚合关系中代表整体的对象要负责代表个体/部分的对象的整个生命周期;组合关系不能共享;在组合关系中,如果代表整体的对象被销毁或破坏,那么代表个体/部分的对象也一定会被销毁或破坏,而聚在合关系中,代表个体/部分的对象则有可能被多个代表整体的对象所共享,而不一定会随着某个代表整体的对象被销毁或破坏而被销毁或破坏;

体现:在C#中,组合关系是通过成员变量来实现的;

方向:单向;

图示:实心菱形 + 实线 + 箭头;箭头指向代表个体/部分的对象,也就是被组合的类的对象;

举例:一个人由头、四肢、等各种器官组成,因为人与这些器官具有相同的生命周期,人死了,这些器官也挂了;

 

5、泛化关系:

  含义:它表示一个更泛化的元素和一个更具体的元素之间的关系;也就是通常所说的类的继承关系;

体现:在C#中,泛化关系通过类的继承来实现的;

方向:单向;子类继承父类;

图示:空心箭头 + 实线;箭头指向父类;

举例:动物下面可以分为哺乳动物,脊椎动物,爬行动物等

 

6、实现关系:

  含义:它指定了两个实体之间的一份合同;即:一个实体定义一份合同,另外一个实体则保证履行该合同;

体现:在C#中,实现关系通过类实现接口来实现的,即:一个类实现某个接口;

方向:单向;子类实现接口;

图示:空心箭头 + 虚线;箭头指接口向接口;

举例:唐老鸭(对象)会说话(接口),因为一般鸭子不会说话,所以不会将说话这个方法给一般的鸭子带上;超人(对象)会飞(接口)

类中包括属性和方法,属性是静态的,方法是动态的。属性是一个类固有的,方法则表示一个类可以做什么事情,因此在一个类中,方法缺失的类,一般用来存储,这样的情况一般比较少见,我所见过的就是用来接收前端的数据而封装的类,不需要做事情,只做参数而属性缺失的类,更像一种专门封装方法的类,我常见的就是数据库的连接方法。

用例图

用例图的作用是描述系统如何与外部交互,以达到某个目的。用例图帮助我们清晰地定义系统的边界,并且描述了每个角色或组织在系统中扮演的角色。用例图还可以帮助我们理解系统需要哪些功能,以及这些功能如何与其他功能相互协作。

时序图

时序图,亦称为序列图或循序图,是一种UML行为图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,时序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。时序图中包括角色,对象,生命线,激活期和消息。

其中用例图是核心,而时序图更像是用来画类图时的一种铺垫,有了时序图可以帮助我更好的理解类与类之间的关系

对象图

对象图是表示在某一时刻一组对象以及它们之间关系的图形。 对于复杂的数据结构,有时候很难对其进行抽象成类表达之间的关系,一般就会使用对象图。 说到对象图,就不得不提到UML的另一种图形——类图,两者几乎使用一套完全相同的标识。 不同在于对象图显示类的多个对象实例,而不是实际的类。

协作图

通过描绘对象间消息的传递情况来反映具体的使用语境的逻辑表达。 一个使用情境的逻辑可能是一个用例的一部分,或是一条控制流,这个序列图的作用类似。显示对象及其交互关系的控件阻止结构。 协作图显示了在交互过程中各个对象之间的阻止交互关系以及对象彼此之间的连接。 与序列图不同,协作图显示的是对象之间的关系,并不是侧重交互的顺序,它没有将时间作为一个单独的维度,而是使用序列号来确定消息及并发线程的顺序。协作图的另外一个作用是表现一个类操作的实现。 协作图可以说明类操作中使用到的参数、局部变量以及返回值等。 当使用协作图表现一个系统行为时,消息编号对应了程序中的嵌套调用结构和信号传递过程。

状态图

一个状态图(Statechart Diagram)本质上就是一个状态机,或者是状态机的特殊情况,它基本上是一个状态机中元素的一个投影,这也就意味着状态图包括状态机的所有特征。

状态图描述了一个实体基于事件反映的动态行为,显示了该实体是如何根据当前所处的状态对不同的事件作出反应的。

在UML中,状态图由表示状态的节点和表示状态之间转换的带箭头的直线组成。状态的转换由事件触发,状态和状态之间由转换箭头连接。每一个状态图都有一个初始状态(实心圆),用来表示状态机的开始。还有一个中止状态(半实心圆),用来表示状态机的终止。状态图主要由元素状态、转换、初始状态、中止状态和判定等组成

活动图:

活动的起点用来描述活动图的开始状态,用黑的实心圆表示。活动的终止点描述活动图的终止状态,用一个含有实心圆的同心圆表示。活动图中的活动既可以是手动执行是任务,也可以是自动执行的任务,用圆角矩形表示。

活动图是模型中的完整单元,表示一个程序或工作流,常用于计算流程和工作流程的建模。活动图着重描述用例实例或对象的活动,以及操作实现中完成的工作。活动图通常出现在设计的前期,即在所有实现决定前出现,特别是在对象被指定执行所有活动前。活动图的作用主要体现在以下几点:描述一个操作执行过程中所完成的工作;活动图对用例描述尤其有用,它可对用例的工作流建模,显示用例内部和用例之间的路径;显示如何执行一组相关的动作,以及这些动作如何影响他们周围的对象;活动图对理解业务处理过程十分有用;描述复杂过程的算法,在这种情况下使用的活动图和传统的程序流程图的功能是差不多的。

组件图:

组件图即是用来描述组件与组件之间关系的一种UML图。组件图在宏观层面上显示了构成系统某一个特定方面的实现结构。

  组件图中主要包含三种元素,即组件、接口和关系。

  组件图通过这些元素描述了系统的各个组件及之间的依赖关系,还有组件的接口及调用关系。此外,组件图还可以使用包来进行组织,使用注解与约束来进行解释和限定。

  组件图在面向对象设计过程中起着非常重要的作用:它明确了系统设计,降低了沟通成本,而且按照面向对象方法进行设计的系统和子系统通常保证了低耦合度,提高了可重用性。

部署图:

 描述一个具体应用的主要部署结构,通过对各种硬件,在硬件中的软件以及各种连接协议的显示,可以很好的描述系统是如何部署的;平衡系统运行时的计算资源分布;可以通过连接描述组织的硬件网络结构或者是嵌入式系统等具有多种硬件和软件相关的系统运行模型。

posted @ 2023-12-07 19:19  会秃头的小白  阅读(7)  评论(0编辑  收藏  举报