软考71-上午题-【面向对象技术2-UML】-UML中的图2

一、用例图

上午题,考的少;下午题,考的多。

1-1、用例图的定义

用例图展现了一组用例参与者以及它们之间的关系

用例图用于对系统的静态用例图进行建模。

可以用下列两种方式来使用用例图:

1、对系统的语境建模;

2、对系统的需求建模。

1-2、用例图包含以下内容:

1、用例

2、参与者

3、关系:

        ①用例之间的关系:扩展关系(《extend》)、包含关系(《include》)、泛化关系;

        ②参与者之间的关系:泛化关系;

        ③参与者和用例之间的关系:关联关系。

示例:

包含关系:

用例和用例之间的关系。

示例1:

用例可以理解为参与者(用户)的行为。

参与者与用例之间,关联关系:一条直线。

示例2:

扩展关系

用例和用例之间的关系。

一个用例执行时,可能会发生一些特殊的情况,或者可选的情况,这种情况就是用例的扩展用例。

示例1:特殊情况

示例2:可选情况

泛化关系

参与者-参与者;

用例-用例;

示例:

1-3、真题

真题1:

真题2:

二、 交互图

交互图用于对系统的动态方面进行建模。一张交互图表现的是一个交互。

类图、对象图、用例图:静态图

一张交互图由:一组对象、他们之间的关系、他们之间可能传递的消息。

交互图一般包括:对象、链、消息。

交互图的分类:

  • 序列图:强调消息时间顺序的交互图;
  • 通信图:强调接收、发送消息的对象的结构组织的交互图。

2-1、序列图(顺序图)

2-1-1、序列图的定义

序列图描述了以时间顺序组织的对象之间的交互活动。

示例:

首先把参加交互的对象放在图的上方,沿水平方向排列。

通常把发起交互的对象放在左边,下级对象依次放在右边。然后,把这些对象发送和接收的消息沿垂直方向按时间顺序从上到下放置。这样,就提供了控制流随时间推移的清晰的可视化轨迹。

2-1-2、序列图有两个不同于通信图的特点

1、序列图有对象生命线

对象生命线是一条垂直的虚线,表示一个对象在一段时间内存在。

对象,生命线的开始、结束:

1、对象可以在交互过程中创建,他们的生命线从接收到构造型为create的消息时开始;

2、对象可以在交互过程中撤销,他们的生命线从接收到构造型为destory的消息时结束;(并给出一个×的标记)

2、序列图有控制焦点

控制焦点是一个瘦高的矩形,表示一个对象执行一个动作所经历的时间段。

矩形的顶部,表示动作的开始,底部表示动作的结束。

2-1-3、序列图的消息:

2-1-4、序列图实例:

2-1-5、真题

真题1:

Account实现的方法,看指向Account类的箭头。

evaluation虽然也指向Account类,但是它不是一个方法,因为不是:evaluation()

真题2:

真题3:

2-2、通信图(协作图)

2-2-1、通信图的定义

通信图强调收发消息的对象的结构组织。

  • 首先,将参加交互的对象作为图的顶点;(矩形)
  • 然后把连着这些对象的链作为图的弧;(直线)
  • 最后用对象发送和接收的消息来修饰这些链。

2-2-2、通信图有两个不同于序列图的特性

1、通信图有路径

为了指出一个对象如何与另一个对象链接,可以在链的末端附上路径构造型(如构造型《local》,表示指定对象对发送者而言是局部的)。

通常只需要显式地表示以下几种链的路径:local(局部)、parameter(参数)、global(全局)以及self(自身),但不必表示 association(关联)。 

2、通信图有顺序号

表示一个消息的时间顺序,可以给一个消息加上一个数字前缀。(从1号消息开始),在控制流中,每个新消息的顺序号单调增加(如 2、3等)。

为了显示嵌套,可使用带小数点的号码(1表示第一个消息;1.1 表示嵌套在消息1中的第一个消息,1.2 表示嵌套在消息1中的第二个消息,等等)。嵌套可为任意深度。

还要注意的是,沿同一个链可以显示许多消息(可能发自不同的方向),并且每个消息都有唯一的一个顺序号。

序列图通信图是同构的,它们之间可以相互转换。 

2-2-3、通信图的实例

2-2-4、真题

真题1:

真题2:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/274422.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LED显示屏的刷新频率及灰度等级

LED显示屏随着其在室内各种场所的广泛应用,无论是在指挥中心、监控中心还是演播厅中,都得到了越来越多的关注。然而,就LED显示屏系统的整体表现而言,这些显示屏能否满足用户的需求?显示的影像是否符合人眼的观赏要求&a…

2007-2021年中国省级知识产权保护指数数据

2007-2021年中国省级知识产权保护指数数据 1、时间:2007-2021年 2、范围:31省市 3、指标::年份、省份、IPP(知识产权保护指数) 4、来源:全国知识产权发展状况报告 5、指标解释:…

mysql中insert … select锁范围

1、执行 insert … select 的时候,对目标表也不是锁全表,而是只锁住需要访问的资源。 例如, CREATE TABLE t (id int(11) NOT NULL AUTO_INCREMENT,c int(11) DEFAULT NULL,d int(11) DEFAULT NULL,PRIMARY KEY (id),UNIQUE KEY c (c) ) EN…

【java数据结构】HashMap和HashSet

目录 一.认识哈希表: 1.1什么是哈希表? 1.2哈希表的表示: 1.3常见哈希函数: 二.认识HashMap和HashSet: 2.1关于Map.Entry的说明:,> 2.2Map常用方法说明: 2.3HashMap的使用案例: 2.4Set常见方法…

代理IP如何应对自动化测试和爬虫检测

目录 一、代理IP在自动化测试和爬虫中的作用 二、代理IP的优缺点分析 1.优点 2.缺点 三、应对自动化测试和爬虫检测的策略 1.选择合适的代理IP 2.设置合理的请求频率和间隔 3.模拟人类行为模式 4.结合其他技术手段 四、案例与代码示例 五、总结 在自动化测试和爬虫开…

LoadBalancer (本地负载均衡)

1.loadbalancer本地负载均衡客户端 VS Nginx服务端负载均衡区别 Nginx是服务器负载均衡,客户端所有请求都会交给nginx,然后由nginx实现转发请求,即负载均衡是由服务端实现的。 loadbalancer本地负载均衡,在调用微服务接口时候&a…

Stable Diffusion 模型下载:Comic Babes(漫画宝贝)

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下载地址 模型介绍 条目内容类型大模型基础模型SD 1.5来源CIVITAI作者datmuttdoe文件名称comicBabes_v2.safet…

快速了解Redis

Redis是什么? Redis是一个数据库,是一个跨平台的非关系型数据库,Redis完全开源,遵守BSD协议。它通过键值对(Key-Value)的形式存储数据。 与传统数据库不同的是 Redis 的数据是存在内存中的 ,也就是它是内存数据库&am…

布隆过滤器(做筛选器索引)

什么是布隆过滤器 布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。 它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是…

GIS学习笔记(四):GIS数据可视化综合(矢量数据)

矢量数据 arcgis的主要可视化工具:属性 符号系统 符号系统 按类别 这里不会涉及到数字的大小因素,只是按照字符的分类去做可视化 “唯一值”的含义 “建筑年代”字段共有10个年份,一个年份也许有多个数据( eg.1990年的建筑有20个)&…

qt vs 编程 字符编码 程序从源码到编译到显示过程中存在的字符编码

理解字符编码,请参考:unicode ucs2 utf16 utf8 ansi GBK GB2312 CSDN博客 汉字(或者说多字节字符)的存放需求,是计算机中各种编码问题的最直接原因。如果程序不直接使用汉字,或间接在所有操作步骤中统一使…

rocketmq源码分析(一)broker启动remoting抽象

1. netty基础 2. broker启动 rocketmq-broker.puml startuml BrokerStartup -> BrokerStartup: createBrokerController BrokerStartup -> BrokerController : controller.initialize() 初始化BrokerController,new 出各种 NettyRemotingServer BrokerController ->…

使用Tokeniser估算GPT和LLM服务的查询成本

将LLM集成到项目所花费的成本主要是我们通过API获取LLM返回结果的成本,而这些成本通常是根据处理的令牌数量计算的。我们如何预估我们的令牌数量呢?Tokeniser包可以有效地计算文本输入中的令牌来估算这些成本。本文将介绍如何使用Tokeniser有效地预测和管…

人工智能|机器学习——Canopy聚类算法(密度聚类)

1.简介 Canopy聚类算法是一个将对象分组到类的简单、快速、精确地方法。每个对象用多维特征空间里的一个点来表示。这个算法使用一个快速近似距离度量和两个距离阈值T1 > T2 处理。 Canopy聚类很少单独使用, 一般是作为k-means前不知道要指定k为何值的时候&#…

vue 下载的插件从哪里上传?npm发布插件详细记录

文章参考: 参考文章一: 封装vue插件并发布到npm详细步骤_vue-cli 封装插件-CSDN博客 参考文章二: npm发布vue插件步骤、组件、package、adduser、publish、getElementsByClassName、important、export、default、target、dest_export default…

linux ,Windows部署

Linux部署 准备好虚拟机 连接好查看版本:java -version安装jdk 解压命令:tar -zxvf 加jdk的压缩文件名cd /etc 在编辑vim profile文件 在最底下写入: export JAVA_HOME/root/soft/jdk1.8.0_151(跟自己的jdk保持一致&#xff0…

初窥机器学习

人工智能 近几年来,人工智能(AI)已成为家喻户晓的术语,我们在游戏、电影(还记得J.A.R.V.I.S吗?)和书籍中经常看到它的提及和描绘,但人工智能究竟是什么呢? 人工智能简单…

go语言添加代理

LiteIDE 工具->管理 https://mirrors.aliyun.com/goproxy/或https://goproxy.cn,direct 命令行 go env -w GOPROXYhttps://goproxy.cn,direct

前端页面访问后台hiveserver2,阶段性报错

1、运行环境 Windows11下安装VMware,VMware下安装CentOS7 Linux系统,三台虚拟机集群部署hadoop,安装hive; 在Linux下安装Eclipse,创建maven工程,使用hive-jdbc-2.3.2访问hiveserver2 2、在windows11下&…

​如何防止网络攻击?

应对不同类型网络攻击的最佳途径是“知己”、“知彼”,在了解它们的工作原理、能够识别其手段、方法及意图的前提下,找出针对性的应对文案。今天,就为大家总结以下防止不同类型网络攻击的有效方法,希望无论是对个人、还是企业和组…