用户界面软件02

news2025/1/9 1:45:31

基于表单的用户界面 在“基于表单的用户界面”里面,用户开始时选中某个业务处理(模块),然后应用程序就使用一系列的表单来引导用户完成整个处理过程。大型机系统上的大部分用户界面都是这样子的。[Cok97]中有更为详细的讨论。

面向对象系统 在这里指的是用面向对象技术设计和实现的应用程序。在本文里面,最重要的特征
是它们自己有一套对象,这一套对象有自己的生命周期,而且相互作用,从而完成应用
程序的功能。单个的用例或者事务不和架构相联系。

面向事务系统 在这种系统里,系统架构围绕事务进行,每一个事务都会调用一个不同的程序来操
作一个数据库。大部分使用事务处理器的程序,如CICS 等,都是用的这种方法。[GrR93]
中有详细的讨论。

本文阅读指引

在阅读模式语言的时候,一般不会走马灯似的看,都希望能仔细地阅读和研究。熟悉了本文的结构和布局,对文中的模式,你想深入到什么程度就深入到什么程度。想看看某个模式是说什么的,可以看看其概要。只要阅读了每个概要,你就可以很容易地了解整个语言的概况。如果你对某个模式的详细思想有兴趣,则可以阅读“上下文”部分,“问题”部分,和“解决方案”部分;如果你对这个模式的约束以及解决方案的取舍有兴趣,可以阅读相关的“约束”部分和“结果”部分。两部分都有主要说明,以标准字体出现,而小字体则用来讨论这些陈述。下图2 表示了建议的阅读途径。

 

图2

用户界面层(User Interface Layer)

概要 驱动一个用户界面总是通常比域复杂和容易变化……所以,把域层面从用户界面软件里分离
出来,将用户界面封装在一个独立的层面中。

上下文 当设计一个复杂商业系统的架构时,通常从一个大概的架构开始:如都有哪些主干等。在以前,技术因素是首要因素,最终会在内部结构大量地应用技术。那是一些系统有几种“标准架构”
的时代,是一个项目上有100 多人的时代。今天,很多架构师在开始对技术进行考虑之前,首先
使用域将系统分割成更小部分,称之为业务对象。

无论你走的是哪条路,迟早你都得考虑技术方面,将系统分的更细。其中一点就是如何将系
统展现在用户面前——这就是这个模式所探究的。它不单应用在面向对象系统里,还应用在面向
事务的设计,使用tool-material 隐喻的系统[Rie97],以及基于表单的应用程序[CoK97]等等。
问题 该怎样将大型系统的用户界面溶入整个架构?

下面几件事情你得注意:

约束 用户界面表示了和你的需求模型一样的功能需求……但是,它还有不同的非功能性需求,这些需求导致很多用户不喜欢碍人的细节。

用户界面只是你的系统的一个界面,所以,它的内容是和你的需求分析模型中的需求分析是一
模一样的。一个初级方案是将所有的分析对象表示在用户界面上,将这些对象的方法作为界面上的
动作。不过,这办法好吗?一个好的分析模型的目标是减少冗余,是进行抽象化,以支持更好的灵
活性。在你对域对象进行设计时,要考虑这些:性能和耦合是主要的,还有并行性以及其它的避免
软件工程师厌烦的方面。但是,这些要考虑的东西,用户根本就不想介入。好的用户界面仔细地依
据用户在其领域的思维模型,尽可能地支持她的工作流程。当很多关于用户界面的改变需求来临时,一点也不用惊奇,这些改变对分析模型毫无影响。一群新的用户有不同的关于这个领域的思维模型,可能就需要一个新的用户界面,但哪怕是一丁点对象的改变都不用。因此,一个用户界面的非功能性需求和那些域对象是相差很大的。 

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

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

相关文章

YOLOv8/YOLOv11改进 添加CBAM、GAM、SimAM、EMA、CAA、ECA、CA等多种注意力机制

目录 前言 CBAM GAM SimAM EMA CAA ECA CA 添加方法 YAML文件添加 使用改进训练 前言 本篇文章将为大家介绍Ultralytics/YOLOv8/YOLOv11中常用注意力机制的添加,可以满足一些简单的涨点需求。本文仅写方法,原理不多讲解,需要可跳…

【express-generator】05-路由中间件和错误处理(第一阶段收尾)

一、前言 上篇文章我们介绍了express-generator的请求体解析,重点讲了常用的请求体数据格式(JSON/URL 编码的表单数据)以及一个FILE文件上传,同时搭配代码示范进行辅助理解。 二、本篇重点 我们继续第一阶段的知识,…

python无需验证码免登录12306抢票 --selenium(2)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 [TOC](python无需验证码免登录12306抢票 --selenium(2)) 前言 提示:这里可以添加本文要记录的大概内容: 就在刚刚我抢的票:2025年1月8日…

深度学习驱动的蛋白质设计技术与实践

通过设计特定的蛋白质结构,可以实现预期的生物功能,如催化特定化学反应、识别和结合特定分子、调控生物信号传导等,为生物医学、药物研发、生物技术等领域提供重要工具和解决方案。传统的蛋白质设计方法主要依赖于已知蛋白质结构的同源建模、…

【动态重建】时间高斯分层的长体积视频

标题:Representing Long Volumetric Video with Temporal Gaussian Hierarchy 来源:浙江大学 链接:https://zju3dv.github.io/longvolcap/ 文章目录 摘要一、前言二、主要方法2.1 时间高斯分层2.2 高效渲染2.3 层次结构更新2.4 紧凑的外观模型…

【STM32+CubeMX】 新建一个工程(STM32F407)

相关文章: 【HAL库】 STM32CubeMX 教程 1 --- 下载、安装 目录 第一部分、新建工程 第二部分、工程文件解释 第三部分、编译验证工程 友情约定:本系列的前五篇,为了方便新手玩家熟悉CubeMX、Keil的使用,会详细地截图每一步Cu…

el-date-picker 不响应change事件的解决办法

前言 接到需要把element plus组件的日期时间选择器的input输入框展示隐藏,遇到点击确认按钮change事件不被触发问题,解决办法如下: ①visible-change的回调参考 即根据visible-change的方法里的回调参数进行需要操作 const visibleChange …

api开发如何在代码中使用京东商品详情接口的参数?

选择编程语言和相关工具 以 Python 为例,你可以使用requests库来发送 HTTP 请求获取接口数据。如果是 Java,可以使用OkHttp等库。 Python 示例 假设你已经安装了requests库,以下是一个简单的代码示例来获取和使用京东商品详情接口参数&#…

【docker系列】可视化Docker 管理工具——Portainer

1. 介绍 Portainer是一个可视化的Docker操作界面,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录…

机器学习基础-大语言模型

目录 大语言模型的基本概念 “大”体现在什么地方? 预训练微调两阶段的基本流程和作用 第一阶段:利用语言模型进行无监督预训练 第二阶段:通过监督微调的模式解决下游任务 BERT模型中MLM和NSP机制基本概念 MLM NSP Prompt学习的基本概…

Ubuntu挂载Windows 磁盘,双系统

首先我们需要在终端输入这个命令,来查看磁盘分配情况 lsblk -f 找到需要挂载的磁盘,检查其类型( 我的/dev/nvme2n1p1类型是ntfs,名字叫3500winData) 然后新建一个挂载磁盘的目录,我的是/media/zeqi/3500wi…

Java设计模式 —— 【行为型模式】命令模式(Command Pattern) 详解

文章目录 模式介绍优缺点适用场景结构案例实现注意事项 模式介绍 有时候需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是什么。此时希望用一种松耦合的方式来设计程序,使得请求发送者和请求接收者能够消除彼此…

如何很快将文件转换成另外一种编码格式?编码?按指定编码格式编译?如何检测文件编码格式?Java .class文件编码和JVM运行期内存编码?

如何很快将文件转换成另外一种编码格式? 利用VS Code右下角的"选择编码"功能,选择"通过编码保存"可以很方便将文件转换成另外一种编码格式。尤其,在测试w/ BOM或w/o BOM, 或者ANSI编码和UTF编码转换,特别方便。VS文件另…

AnaConda下载PyTorch慢的解决办法

使用Conda下载比较慢,改为pip下载 复制下载链接到迅雷下载 激活虚拟环境,安装whl,即可安装成功 pip install D:\openai.wiki\ChatGLM2-6B\torch-2.4.1cu121-cp38-cp38-win_amd64.whl

opencv摄像头标定程序实现

摄像头标定是计算机视觉中的一个重要步骤,用于确定摄像头的内参(如焦距、主点、畸变系数等)和外参(如旋转矩阵和平移向量)。OpenCV 提供了方便的工具来进行摄像头标定。下面分别给出 C 和 Python 的实现。 1. C 实现…

UE5AI感知组件

官方解释: AI感知系统为Pawn提供了一种从环境中接收数据的方式,例如噪音的来源、AI是否遭到破坏、或AI是否看到了什么。 AI感知组件(AIPerception Component)是用于实现游戏中的非玩家角色(NPC)对环境和其…

Python生日祝福烟花

1. 实现效果 2. 素材加载 2个图片和3个音频 shoot_image pygame.image.load(shoot(已去底).jpg) # 加载拼接的发射图像 flower_image pygame.image.load(flower.jpg) # 加载拼接的烟花图 烟花不好去底 # 调整图像的像素为原图的1/2 因为图像相对于界面来说有些大 shoo…

智能手机租赁系统全新模式改变消费习惯与商家盈利路径

内容概要 智能手机租赁系统的崛起,让我们瞄到了一个消费市场的新风向标。想象一下,传统上人们总是为了最新款手机奋不顾身地排队、借钱甚至是透支信用卡。现在,通过灵活的租赁选项,消费者可以更加随意地体验高科技产品&#xff0…

【简博士统计学习方法】第1章:3. 统计学习方法的三要素

3. 统计学习方法的三要素 3.1 监督学习的三要素 3.1.1 模型 假设空间(Hypothesis Space):所有可能的条件概率分布或决策函数,用 F \mathcal{F} F表示。 若定义为决策函数的集合: F { f ∣ Y f ( X ) } \mathcal{F…

牛客网刷题 ——C语言初阶(2分支和循环-for)——打印菱形

1. 题目描述 用C语言在屏幕上输出以下图案: 2. 思路 我是先上手,先把上半部分打印出来,然后慢慢再来分析,下面这是我先把整个上半部分打印出来,因为空格不方便看是几个,这里先用&代替空格了 然后这里…