0


【UML】UML建模

UML建模

UML介绍

UML规格定义了两大类的IML图:结构图和行为图

  • 结构图:结构图从不同的抽象和实现程度上描述了一个系统和系统构建的静态结构,并且描述了一个系统的对象如何随着时间额的变化而变化。
  • 行为图:展示了一个系统中的对象的动态行为,它描述了一个系统的对象如何随着时间的变化而变化/

UML体系结构——“4+1”视图

  • Kruchten 提出了一个"4+1"视图模型,从5个不同的视角包括包括逻辑试图、进程视图、物理视图、开发视图、场景视图来描述软件体系结构。每一个视图只关心系统的一个侧面,5个试图结合在一起才能反映系统的软件体系结构的全部内容。在这里插入图片描述
  • 逻辑视图:逻辑试图主要是用来描述系统的功能需求,即系统提供给最终用户的服务. 在逻辑视图中,系统分解成一系列的功能抽象、功能分解与功能分析,这些主要来自问题领域(Problem Definition)。 在面向对象技术中,通过抽象、封装、继承,可以用对象模型来代表逻辑视图,可以用类图(Class Diagram)来描述逻辑视图。
  • 开发视图:开发视图主要用来描述软件模块的组织与管理(通过程序库或子系统)。服务于软件编程人员, 方便后续的设计与实现。它通过系统输入输出关系的模型图和子系统图来描述。要考虑软件的内部需求:开发的难易程度、重用的可能性,通用性,局限性等等。开发视图的风格通常是层次结构,层次越低,通用性越好(底层库:Java SDK,图像处理软件包)。
  • 进程视图:进程试图侧重系统的运行特性,关注非功能性的需求(性能,可用性)。服务于系统集成人员,方便后续性能测试。强调并发性、分布性、集成性、鲁棒性(容错)、可扩充性、吞吐量等。定义逻辑视图中的各个类的具体操作是在哪一个线程(Thread)中被执行。
  • 物理视图:物理试图主要描述硬件配置。服务于系统工程人员,解决系统的拓扑结构、系统安装、通信等问题。主要考虑如何把软件映射到硬件上,也要考虑系统性能、规模、可靠性等。可以与进程视图一起映射。

用例图

参与者、用例的基本概念。

用例图的作用:是需求分析中的产物,主要作用就是描述参与者和用例之间的关系,邦族开放人员了解系统的功能

由参与者(Actor)、用例(Use Case) 以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。其中用例和参与者之间的对应关系又叫做通讯关联(Communication Association)。

用例图的构成元素有四个:参与者(角色)、用例、系统边界和元素

  • 参与者(Actor):在村与系统外部并且直接与程序或者系统接触的人、系统、子系统火类的外部实体的抽象,在UML中使用一个小人来进行表示在这里插入图片描述
  • 用例:用例即使外部可见的系统功能,对系统提供的服务来进行描述,使用椭圆来进行表示在这里插入图片描述
  • 系统边界:指系统与系统之间的界限,使用方形框+系统名称来表示在这里插入图片描述
  • 元素间的关系有四个:关联、泛化、包含****关联:参与者与用例之间的关系,,如何一方都可以接收或者发送信息(箭头指向信息接受方)在这里插入图片描述泛化:是类元一般描述和具体描述之间的关系,具体描述建立在一般描述的基础之上,并且对其进行了扩展。具体描述完全拥有一般描述的特性、成员和关系,并且包含补充信息(类似于Java这继承关系)。在这里插入图片描述依赖:类A的实现需要使用到B,这就是依赖,这种使用关系是具有偶然性、临时性、非常弱的,并且B类的的变化会影响到A,则A与B就是存在依赖关系,依赖关系是弱的关联关系,例如:人们依赖计算机去做软件的开发。在这里插入图片描述箭头家虚线不仅仅可以代表依赖关系,还可以代表扩展、包含关系,扩展就是对用例功能的延申,包含就是将一个复杂的功能分解成数个小的功能

绘制用例图。

例题1

在火车票预订系统中,客户可以进行购买车票、退订车票、查询余票和查询列车时刻四个操作。不管是购买车票还是退订车票,用户都必须先进行登录系统操作。其中查询列车时刻主要包括按站站查询和按车次查询两种方式。如果在登录系统的过程中忘记密码,则还可使用找回密码功能。

在这里插入图片描述

例题2

在学生信息管理系统的“网上选课模块”中,学生可以进行“查看课程信息”、“选择课程”和“删除已选课程”三个操作。“查看课程信息”主要包括“按课程编号查看”和“按课程名查看”两种方式。

管理员可以进行 “维护课程信息” 操作。

学生和管理员的所有操作均需“登录系统”后方可完成。如果在“登录系统”的过程中忘记密码,则还可使用“找回密码”功能。

在这里插入图片描述


类图和对象图

类图的基本概念。

类图是使用最广泛的一种模型,聪慧例图的视角来看,系统外部是由一个个用例组成的,用例手机系统的面子,而类图依赖描述特性中各个对象的类型以及他们之间存在关系,现实的是系统内部的静态结构,它是系统的里子类图是一种静态模型,代表面向对象的系统

在研究了剋图之前我们需要先了解类,类是包装信息和行为的基本单位,是面向对象的组织核心结构,类由三部分组成,即类名、属性、操作,在UML中具体表示如下
在这里插入图片描述


分析识别类。

在UML中可见性分为四级:

  • public:使用前缀+表示,该属性或方法对所有类可见
  • protected:使用前缀#表示,只对该类的子类可见
  • private:使用前缀-表示,只在该类内部可见
  • package:使用前缀~表示,只对同一报申明的其他类可见

接口也是一个类,它定义了一组提供给外界的操作集合的名称,可以把接口看作是一个特殊的抽象类,他的特殊之处在于:接口不能含有属性,接口中之哟与抽象操作——只有操作名,没有具体的实现方法

接口的图像表达就是之间的圆圈

在这里插入图片描述
类之间可以建立四种关系:关联、依赖、聚合和泛化,之变只简单的说一说聚合关系,聚合就是一些系统特性的组成一个整体,如大雁与雁群的关系

  • 聚合中有一个特殊的关系,那就是组合,组合可以看作是更强的聚合操作,他控制着成员对象的创建和结构,部分类需要整体才能存在,如鼠标和电脑的关系

在这里插入图片描述


顺序图

顺序图的组成。

在这里插入图片描述
顺序图是一种强调消息时间顺序的几乎图,显示的是参与交互的对象及对象之间信息交换的顺序,用来表示用例中的行为顺序

顺序图的组成

  • 活动者,对象、生命线、控制焦点、消息,活动的发起人活着活动的承受者。
  • 对象:活动中交互的实体,由三种表示方式在这里插入图片描述
  • 生命线:描述对象的生存周期,对象下方的虚线就是生命线在这里插入图片描述
  • 控制焦点:指活动者或对象执行状态的时间段在这里插入图片描述
  • 消息:消息用于描述对象间交互的方式和内容

顺序图中的消息类型。

信息描述对象之间的通信,它可以激发某个动作、唤起信息或导致目标对象的创建或销毁

信息可以分为以下几类:

  • 同步消息:一个对象向另一个对象发出同步消息后,将处于阻塞状态,一直等到另一个对象的回应。在这里插入图片描述
  • 异步消息:一个对象向另一个对象发出异步消息后,这个对象可以进行其他的操作,不需要等到另一个对象的响应。在这里插入图片描述
  • 返回消息:同步消息的返回消息在这里插入图片描述
  • 自身消息:描述对象内部的函数调用在这里插入图片描述

绘制顺序图。

机房示例
在这里插入图片描述


状态图

状态机的含义。

状态图就是开关,是描述状态变化的图形。描述了一个对象状态与状态的转变并且象所经历的状态序列,引起状态转移的事件(Event),以及因状态转移而伴随的动作(Action)状态图(Statechart Diagram)主要用于描述一个对象在其生存期间的动态行为,表现为一个对(用例图:描述需求场景;状态图:描述业务场景)一般可以用状态机对一个对象的生命周期建模,状态图用于显示状态机,重点在与描述状态图的控制流。

一个机器的状态图如下:
在这里插入图片描述


状态机图中的基本标记符。

在这里插入图片描述
在这里插入图片描述

  • 一个状态图只能由一个初态,但是可以由0个或多个终态
  • 状态:主要用来描述一个对象在生命周期内的一个时间段。状态包括:状态名、内部转移、进入/退出操作、子状态、延迟事件等状态的特征
  • 转换:俩个状态之间的关系,当满足条件是,第一个状态中的对象执行操作变成第二个中的对象在这里插入图片描述

其中,除了普通的转换,还有复杂的转换

  • 外部转换:对事件做出响应,引起状态变化或自身转换,同时引发一个特定动作,如果离开或进入状态将引发进入转换、离开转化。
  • 内部转换:对事件做出响应,并执行一个特定的活动,但并不引起状态变化或进入转换、离开转换。
  • 进入转换:当进入某一状态时,执行相应活动。
  • 退出转换:当离开某一状态时,执行相应活动。

事件可以分为几种:信号事件、调用事件、改变事件、时间事件等。

  • 信号事件:信号是作为两个对象之间的通信媒介的实体,它是用来作为对象之间的通信的。
  • 调用事件:是指一个对象对调用的接收,这个对象利用状态的转换而不是固定的处理过程实现操作。
  • 改变事件:是指依赖于特定属性的布尔表达式所表示的条件满足时,事件发生改变。
  • 时间事件:表示时间表达式被满足的事件,它代表时间的流逝。

绘制状态图。

校园卡

  • 开始——白卡——初始化——正常——冻结(注销)——回收——初始化——损坏——结束在这里插入图片描述

标签: flink sql scala

本文转载自: https://blog.csdn.net/heiren_a/article/details/123237482
版权归原作者 飝鱻. 所有, 如有侵权,请联系我们删除。

“【UML】UML建模”的评论:

还没有评论