用户界面的UML建模11

然而,在用户界面方面,重要的是要了解《boundary》类是如何与这个异常分层结构进行关联的。

《exception》类的对象可以作为《control》类的对象。因此,《exception》类能够聚合《boundary》类。

参见图12,《exception》DatabaseFail 则是作为一个《control》类,来对《boundary》DatabaseFailUI类进行处理。可以使用构造型《handles》来标识《boundary》类及其控制者的关系。

6.1.2 UI 异常处理的行为

异常也会影响用户界面的任务模型,这是因为它们能够更改一次用户交互中的活动控制流。例如,图3(b)中的活动Perform search 在执行一次查询时可能会引发一个数据库异常(database exception)。

由于UML 的活动图提供了一种分支标记,使得我们能够直接建模那些在任务模型的控制流中所可能做出的改动。根据布尔型的警戒表达式,可选择不同路径外向转移(outgoing transition)至不同的活动中去。为了对异常处理进行建模,图13 中扩展了图3(b)所示的活动图。在执行Perform search 中发生异常时,活动Perform search之后的一个分支(标识为一个菱形)可以选择不同的路径来对控制流进行更改。当一个ODMGException 异常没有被其处理者进行处理时, 警戒条件[non-solved ODMGExceptions] 便会将控制流的路径选择到HandleODMGException 活动上去。否则,控制流则按照正常的路径进行(由关键字else 进行标识)。

图13:任务模型中的异常

6.2 同步事件建模

同步UI(synchronous UIs)指的是那些当《boundary》对象可见(visible)时,能够频繁地对所显示的数据进行更新的UI。否则便为异步UI(asynchronous UIs)。

用户界面,特别是指图形用户界面,通常用异步消息(asynchronous messages)[4]来实现。所以另外一个需要考虑的问题便是,如何只使用异步消息来对同步UI 进行建模。解决这个问题的一般思路是,按照所要求的频率通过数据更新来完成《boundary》对象的刷新(refresh)。由于事件的产生能够引起UI 的更新,因此可将其作为同步UI 建模的一种可能的方法。在该种情况下,产生的事件称为同步事件(synchronisation event)。我们能够很自然地想到,《entity》对象能够产生同步事件,因为它们是存储更新数据的地方。而《boundary》和《control》对象也能够产生同步事件,但是由于它们在产生每个同步事件时,需要对《entity》进行查询来获取所需的更新数据。

因此在这里,我们只考虑同步事件由《entity》对象产生这一种情况。

图14 所示的类图表明了一种可能的建模方法,即使用《entity》对象来产生同步事件。

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

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

相关文章

【大模型】百度千帆大模型对接LangChain使用详解

目录 一、前言 二、LangChain架构与核心组件 2.1 LangChain 核心架构 2.2 LangChain 核心组件 三、环境准备 3.1 前置准备 3.1.1 创建应用并获取apikey 3.1.2 开通付费功能 3.2 获取LangChain文档 3.3 安装LangChain依赖包 四、百度千帆大模型对接 LangChain 4.1 LL…

用Python实现简单的任务自动化

目录 1. 自动发送邮件提醒 2. 自动备份文件 3. 自动下载网页内容 总结 在现代工作和生活中,任务自动化可以极大地提高效率和准确性。Python,作为一种功能强大且易于学习的编程语言,是实现任务自动化的理想选择。本文将通过几个简单而实用的案例,展示如何用Python实现任…

用JAVA编写一个简单的小游戏

用Java语言编写一个简单的小游戏。这里是一个非常基础的猜数字小游戏的代码示例。在这个游戏中,程序会随机选择一个1到100之间的整数,玩家需要猜测这个数字是什么。每次猜测后,程序会告诉玩家他们猜的数字是太高了、太低了还是正确。 impor…

腾讯云AI代码助手编程挑战赛-凯撒密码解码编码器

作品简介 在CTFer选手比赛做crypto的题目时,一些题目需要自己去解密,但是解密的工具大部分在线上,而在比赛过程中大部分又是无网环境,所以根据要求做了这个工具 技术架构 python语言的tk库来完成的GUI页面设计,通过…

MATLAB深度学习实战文字识别

文章目录 前言视频演示效果1.DB文字定位环境配置安装教程与资源说明1.1 DB概述1.2 DB算法原理1.2.1 整体框架1.2.2 特征提取网络Resnet1.2.3 自适应阈值1.2.4 文字区域标注生成1.2.5 DB文字定位模型训练 2.CRNN文字识别2.1 CRNN概述2.2 CRNN原理2.2.1 CRNN网络架构实现2.2.2 CN…

EXCEL: (二) 常用图表

10. 图表 134-添加.删除图表元素 图表很少是一个单独的整体,而是由十几种元素/对象拼凑出来的。 学习图表就是学习当中各类元素的插删改。 ①图表中主要元素的定义 图表上的一个颜色就是一个系列。 横轴是分类轴,将每个系列都分为几类。 ②选中图…

晨辉面试抽签和评分管理系统之一:考生信息管理和编排

晨辉面试抽签和评分管理系统(下载地址:www.chenhuisoft.cn)是公务员招录面试、教师资格考试面试、企业招录面试等各类面试通用的考生编排、考生入场抽签、候考室倒计时管理、面试考官抽签、面试评分记录和成绩核算的面试全流程信息化管理软件。提供了考生…

c++类和对象---上

文章目录 类的介绍 类的声明 1.1 类名 1.2 成员变量 1.3 成员函数 1.4 访问权限 类的定义 2.1 成员变量的初始化 2.2 成员函数的实现 对象的创建和销毁 3.1 默认构造函数 3.2 析构函数 3.3 拷贝构造函数 3.4 对象的实例化 3.5 对象的销毁 成员访问控制 4.1 公有成员 4.2 私有…

UI自动化测试保姆级教程--pytest详解(精简易懂)

欢迎来到啊妮莫的学习小屋 别让过去的悲伤,毁掉当下的快乐一《借东西的小人阿莉埃蒂》 简介 pytest是一个用于Python的测试框架, 支持简单的单元测试和复杂的功能测试. 和Python自带的UnitTest框架类似, 但是相比于UnitTest更加简洁, 效率更高. 特点 非常容易上手…

关于Mac使用VSCode连接虚拟机

1. 下载插件 输入Remote - SSH下载下图两个插件。 2. 配置虚拟机信息 按图示步骤点击完成后,进入到虚拟主机的配置页面。 其中Host可以自定义主机名,HostName是虚拟机ip,可以通过ifconfig eth0查看ip,User是虚拟机的用户名。…

细说STM32F407单片机以轮询方式读写外部SRAM的方法

目录 一、实例的功能 二、工程配置 1、KEYLED 2、时钟、DEBUG、USART6、NVIC、GPIO、CodeGenerator 3、FSMC (1) 模式设置 (2) Bank 1子区3参数设置 1) NOR/PSRAM control组,子区控制参数 2) NOR/PSRAM timi…

Eclipse配置Tomcat服务器(最全图文详解)

前言: 本章使用图文讲解如何在Eclipse开发工具中配置Tomcat服务器、如何创建和启动JavaWeb工程,欢迎童鞋们互相交流。觉得不错可以三连订阅喔。 目标: 一、配置Tomcat服务器 1. 切换Eclipse视图 2. 打开菜单 3. 找到服务选项 4. 选择…

uniapp vue2版本如何设置i18n

如何设置i18n在该软件设置过语言的情况下优先选择所设置语言,在没有设置的情况下,获取本系统默认语言就,将系统默认语言设置为当前选择语言。 1、下载依赖: npm install vue-i18n --save 2、创建相关文件(在最外层&…

QPS和TPS 的区别是什么?QPS 大了会有什么问题,怎么解决?

QPS 和 TPS 的区别是什么?QPS 大了会有什么问题,怎么解决? QPS(Queries Per Second)和 TPS(Transactions Per Second)都是衡量系统性能的重要指标,尤其是在 Web 服务、数据库和分布…

《Spring Framework实战》4:Spring Framework 文档

欢迎观看《Spring Framework实战》视频教程 概述 历史, 设计理念, 反馈, 开始。 核心技术 IoC 容器、事件、资源、i18n、 验证、数据绑定、类型转换、SpEL、AOP、AOT。 测试 Mock 对象、TestContext 框架、 Spring MVC 测试,…

经典多模态模型CLIP - 直观且详尽的解释

对比语言-图像预训练(CLIP),这是一种创新的多模态建模策略,能够创建视觉和语言的联合表示。CLIP 的效果非常出色,可以用于构建高度特定且性能卓越的分类器,而无需任何训练数据。本文将深入探讨其理论基础&a…

vulnhub靶场【DC系列】之7

前言 靶机:DC-7,IP地址为192.168.10.13 攻击:kali,IP地址为192.168.10.2 都采用VMWare,网卡为桥接模式 对于文章中涉及到的靶场以及工具,我放置在网盘中,链接:https://pan.quark…

内网基础-防火墙-隧道技术

内网对抗-网络通讯篇&防火墙组策略&入站和出站规则&单层双层&C2正反向上线 关闭第一个防火墙: 第一个上线就走反向或者正向 第二个上线走反向(第二个防火墙阻止入站) 关闭第二个防火墙: 第一个上线就走反向&a…

BGP的local_preference本地优先级属性

一、BGP的local preference属性简介 1、local preference公认任意属性 当一条BGP路由器中存在多条去往同一目标网络的BGP路由时,BGP协议会对这些BGP路由属性进行比较,从而筛选出最佳到达目标网络的通达路径。本地优先属性,只在IBGP对等体之间…

从零手写线性回归模型:PyTorch 实现深度学习入门教程

系列文章目录 01-PyTorch新手必看:张量是什么?5 分钟教你快速创建张量! 02-张量运算真简单!PyTorch 数值计算操作完全指南 03-Numpy 还是 PyTorch?张量与 Numpy 的神奇转换技巧 04-揭秘数据处理神器:PyTor…