用户界面的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.mzph.cn/web/65615.shtml

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

相关文章

稀疏编码 (Sparse Coding) 算法详解与PyTorch实现

稀疏编码 (Sparse Coding) 算法详解与PyTorch实现 目录 稀疏编码 (Sparse Coding) 算法详解与PyTorch实现1. 稀疏编码 (Sparse Coding) 算法概述1.1 稀疏表示1.2 稀疏编码的优势2. 稀疏编码的核心技术2.1 稀疏编码的目标2.2 稀疏编码的优化2.3 基向量的学习3. PyTorch实现稀疏编…

记录一次面试中被问到的问题 (HR面)

文章目录 一、你对公司的了解多少二、为什么对这个岗位感兴趣三、不能说的离职原因四、离职原因高情商回复五、你的核心优势是什么六、你认为你比其他面试候选人的优势是什么七、不要提及情感 一、你对公司的了解多少 准备要点: 在面试前,对公司进行充分…

uniapp获取安卓与ios的唯一标识

uniapp获取安卓与ios的唯一标识 代码如下: const info uni.getSystemInfoSync(); const platform info.platform; // 手机安卓还是苹果if (info.platform ios) {// iosconsole.log(iOS 设备唯一标识:, info.deviceId);} else{//安卓console.log(系统信息:, use…

前端 图片上鼠标画矩形框,标注文字,任意删除

效果: 页面描述: 对给定的几张图片,每张能用鼠标在图上画框,标注相关文字,框的颜色和文字内容能自定义改变,能删除任意画过的框。 实现思路: 1、对给定的这几张图片,用分页器绑定…

前端学习汇总

一、打包工具 1.1、vite vite:vite -- 开发环境 热更新_vite 热更新-CSDN博客 1.2、webpack 常用loader:webpack基础---常用loader_webpack 常用loader-CSDN博客 loader:webpack4和webpack5区别1---loader_webpack4与webpack5处理图片的…

ARIMA模型 (AutoRegressive Integrated Moving Average) 算法详解与PyTorch实现

ARIMA模型 (AutoRegressive Integrated Moving Average) 算法详解与PyTorch实现 目录 ARIMA模型 (AutoRegressive Integrated Moving Average) 算法详解与PyTorch实现1. ARIMA模型概述1.1 时间序列预测1.2 ARIMA的优势2. ARIMA的核心技术2.1 自回归 (AR)2.2 差分 (I)2.3 移动平…

如果商品信息更新,爬虫会失效吗?

当商品信息更新时,爬虫是否失效取决于更新的具体内容。以下是一些可能影响爬虫的因素: 可能导致爬虫失效的情况 HTML结构变化:如果 yiwugo 平台更新了商品详情页面的 HTML 结构,比如改变了元素的标签、类名或 ID,那么…

Java调用外部接口有哪些方式

1.有哪些? 1.HttpURLConnection 1.介绍 1.这是Java标准库提供的一个类,用于发送HTTP请求和接收响应 2.它不需要额外的依赖,但是API相对底层,编写代码时需要处理很多细节,如设置请求头、处理连接和流等 2.代码示例…

pandas系列----DataFrame简介

DataFrame是Pandas库中最常用的数据结构之一,它是一个类似于二维数组或表格的数据结构。DataFrame由多个列组成,每个列可以是不同的数据类型(如整数、浮点数、字符串等)。每列都有一个列标签(column label)…

安装完docker后,如何拉取ubuntu镜像并创建容器?

1. 先docker拉取ubuntu镜像 docker search ubuntu #搜索ubuntu 镜像 docker pull ubuntu:22.04 #拉取ubuntu 镜像 docker images #下载完成后,查看已经下载的镜像 docker run --name ubuntu_container -dit ubuntu:22.04 /bin/bash # docker container -l 2.…

Qt监控系统远程网络登录/请求设备列表/服务器查看实时流/回放视频/验证码请求

一、前言说明 这几个功能是近期定制的功能,也非常具有代表性,核心就是之前登录和设备信息都是在本地,存放在数据库中,数据库可以是本地或者远程的,现在需要改成通过网络API请求的方式,现在很多的服务器很强…

详细解释 Vue 中的 h 函数和 render 函数:

Vue中的h函数和render函数是Vue中非常重要的函数,对Vue有着不可以或缺的作用,接下来让我们了解一下! // 1. h 函数的基本使用 /*** h 函数是 createVNode 的别名,用于创建虚拟 DOM 节点(VNode)* h 函数参数…

结构型模式3.组合模式

结构型模式 适配器模式(Adapter Pattern)桥接模式(Bridge Pattern)组合模式(Composite Pattern)装饰器模式(Decorator Pattern)外观模式(Facade Pattern)享元…

服务器攻击方式有哪几种?

随着互联网的快速发展,网络攻击事件频发,已泛滥成互联网行业的重病,受到了各个行业的关注与重视,因为它对网络安全乃至国家安全都形成了严重的威胁。面对复杂多样的网络攻击,想要有效防御就必须了解网络攻击的相关内容…

Transformer 中缩放点积注意力机制探讨:除以根号 dk 理由及其影响

Transformer 中缩放点积注意力机制的探讨 1. 引言 自2017年Transformer模型被提出以来,它迅速成为自然语言处理(NLP)领域的主流架构,并在各种任务中取得了卓越的表现。其核心组件之一是注意力机制,尤其是缩放点积注意…

[python3]Excel解析库-XlsxWriter

XlsxWriter 是一个用于创建 Excel .xlsx 文件的 Python 库,它允许你编写程序来生成 Excel 文件,而无需实际运行 Microsoft Excel 应用程序。XlsxWriter 支持写入数据、应用格式化、插入图表和图形等多种功能,并且可以处理较大的数据集。它是一…

Linux下部署SSM项目

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 Linux部署SSM项目 打包项目 1、修改pom.xml文件&#xff0c;打包方式改为war <packaging>war</packaging>2、idea 通过maven的clean&#xff0c;…

Bytebase 3.0.1 - 可配置在 SQL 编辑器执行 DDL/DML

&#x1f680; 新功能 新增环境策略&#xff0c;允许在 SQL 编辑器内直接执行 DDL/DML 语句。 支持为 BigQuery 数据脱敏。 在项目下新增数据访问控制及脱敏管理页面。 在数据库页面&#xff0c;支持回滚到变更历史的某个版本。 &#x1f514; 兼容性变更 禁止工单创建…

ansible 知识点【回顾梳理】

ansible 知识点 1. 剧本2. facts变量3. register变量4. include功能5. handlers6. when 条件7. with_items 循环8. Jinja2模板9. group_vars10. roles :star::star::star: 看起来字数很多&#xff0c;实际有很多是脚本执行结果&#xff0c;内容不多哦 1. 剧本 剧本很重要的就是…

LLM之RAG实战(五十一)| 使用python和Cypher解析PDF数据,并加载到Neo4j数据库

一、必备条件&#xff1a; python语言Neo4j数据库python库&#xff1a;neo4j、llmsherpa、glob、dotenv 二、代码&#xff1a; from llmsherpa.readers import LayoutPDFReaderfrom neo4j import GraphDatabaseimport uuidimport hashlibimport osimport globfrom datetime …