当前位置: 首页 > news >正文

用户界面软件02

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

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

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

本文阅读指引

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

 

图2

用户界面层(User Interface Layer)

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

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

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

下面几件事情你得注意:

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

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

http://www.lryc.cn/news/516718.html

相关文章:

  • VTK 鼠标+键盘重构
  • go语言处理JSON数据详解
  • 基于gin一个还算比较优雅的controller实现
  • PDFMathTranslate: Star13.8k,一款基于AI的PDF文档全文双语翻译PDF文档全文双语翻译,保留格式神器,你应该需要它
  • Python编程实例-特征向量与特征值编程实现
  • Vue3-跨层组件通信Provide/Inject机制详解
  • Linux Jar包定时重启脚本,按最新时间的Jar包启动
  • HTML5实现好看的博客网站、通用大作业网页模板源码
  • 掌握RabbitMQ:全面知识点汇总与实践指南
  • go如何从入门进阶到高级
  • 在环境冲突情况下调整优先级以解决ROS Catkin构建中缺少模块的问题【ubuntu20.04】
  • github 个人主页配置
  • STM32-笔记30-编程实现esp8266联网功能
  • oscp备考 oscp系列——Kioptix Level 1靶场 古老的 Apache Vuln
  • 《机器学习》——随机森林
  • 指代消解:自然语言处理中的核心任务与技术进展
  • 记录一下Unity webgl cannot read properties of undefined reading apply 错误
  • 【C语言程序设计——选择结构程序设计】求阶跃函数的值(头歌实践教学平台习题)【合集】
  • unity 播放 序列帧图片 动画
  • HTML - <a>
  • Unity学习笔记(六)使用状态机重构角色移动、跳跃、冲刺
  • 【C++数据结构——树】二叉树的遍历算法(头歌教学实验平台习题) 【合集】
  • Android Telephony | 协议测试针对 test SIM attach network 的问题解决(3GPP TS 36523-1-i60)
  • jenkins入门3 --执行一个小demo
  • STM32传感器系列:GPS定位模块
  • 技术成长战略是什么?
  • 【前端】Vue3与Element Plus结合使用的超详细教程:从入门到精通
  • Linux 35.6 + JetPack v5.1.4之 pytorch升级
  • 旷视科技C++面试题及参考答案
  • C 语言函数指针 (Pointers to Functions, Function Pointers)