用户需要什么-软件的工程可用性(第一部分)01

news2024/11/18 16:53:19

Larry L. Constantine 著,Huang Yin 译
“究竟用户的需要是什么?”如果 Fred 作为一个程序员而不是一个心理学家时他可能会提出这
样一个问题。用户们通常需要更多,而开发人员似乎看上去并不能很好的领会并更好的满足他们。对于我们而言,写出可靠的代码以及为系统加载一些功能看上去似乎是不够的。那么,他们需要什么呢?
用户真正需要的是一个好的工具。所有的软件系统,从操作系统和语言到数据输入和决策支持应用
程序,都是正确的工具。终端用户希望能从我们为其设计的工具当中获取得更多,这与我们希望从我们所使用的工具所获取得更多是一样的。他们希望系统易学易用而且能有助于他们的工作。他们希望软件不要使他们的工作放慢,不能欺骗或是迷惑他们,更不能容易出错或是难以完成任务。
这不是个容易的任务。你知道这是很难的,主要的商务软件包经常由于一些显而易见的可用性上的不足而变得费解。甚至最大的软件开发商看上去也是更多地把精力投放在艰难的实现快速变化的特性而不是交付一份有简明的可用性的产品。
并不是行业中认为可用性不重要。
新的用户界面窗口小部件和GUI 开发工具的广告充斥了商业杂志。关于用户界面设计的书在书店里的书柜中排列成行。所有的软件公司都详细地描述他们在昂贵的可用性试验支持下的用户界面测试程序。我们过多的关注用户界面设计--对于一些项目而言几乎是预算的三分之二--但仍然与项目的目标谬之千里。肯定在某些地方出了问题。
我们可能已经论证过我们生产肥件(fat ware)的能力,但不是我们生产出更有价值产品的能力。我
们在项目重压之下作出的很多好的程序代码也许会因为大多数用户今后仅使用我们费尽心思做出的产品的极小一部份而宣告浪费。奇怪的是很多这样的功能在一堆控件,菜单,对话框之中根本不可能找得到。我们结束对那些将来没有用的特性的咒骂,并且留下有用的部分。我们也由于将简单的任务复杂化而遭到谩骂。
我们的一些为改进这种状况的所作的努力可能仅仅是使事情更糟。我们急切的使用最新的3D 直观模型,却只得到不领情的用户的埋怨。他们读不懂我们的一个个灰色的对话框。我们用密密麻麻的带图标的工具条来告诉他们这里有很多功能,但是他们觉得这很难理解。可能当我们在第一步做了一个简单的界面之后我们会设计出改进了的界面向导来使复杂的界面易于使用。
一个不漂亮的事实是可用性并不是基于这些吸引人的图形、改进了的可视化控件或是活动的
Agent(译注:可能是指MS-Office 里的Agent)之上。你不能从3D 直观图,彩色图标或是浮动工具条中获取可用性。这不仅仅涉及你使用了什么窗体控件,还包括你如何使用这些控件,以及这些控件如何整合在一起工作。
最终,可用性来自于用户界面的体系结构迎合了用户所希望的实现。这意味着你不得不通过了解用
户的工作来使你的软件迎合要求。这也意味着你必须设计出整个用户界面的体系结构。这包括了用于支持这个工作的所有的结构细节以及动态行为。
为了做到这些,为了在软件中设计可用性,你需要工具。你需要工具来弄清用户需要做什么和他们
需要什么来支持他们工作的进行,你还需要工具来组织复杂的用户界面的体系结构而不遗漏掉任何细枝末节。或者说,你正准备好去竭尽全力制作出一起被提交的程序,你需要能够集中你的注意力,有效的利用你的时间,因为当用户抱怨时,老板会逼着你在规定期限内交付新程序。所以,你也需要一个简单的灵活的工具来组织你的工作。
这篇文章介绍了一些用于制作更好的(用户用的)工具的工具――简单的用于制作出能很好的满足
用户需要的小而简单的系统的方法。这当然不可能是一个完整的故事,也不能使你变成一个可用性的专家。但是这可以给你一些比较前卫的想法而使你的下一个项目有真正的改观,帮助你一开始就能制定出可用性而不是中途应要求突然改变或是最后的时候再将它加进去。
围绕可用性的设计
用户和用户界面的问题并不总是发生在现在。在一开始,并不存在用户,只有操作员以及只是疯狂
操作电脑的程序员,他们反复操作开关并观察着操作台上的灯,并不存在给用户的真实界面。有打孔卡片,打孔带,还有打印机。你把卡片或带打上孔并不断送至读卡机,并将打印机里打印的每一页存储起来,终端用户就获得有一行行记录的报告。其中的一些内容被格式化,还被排列成多少有点可读性的序列。
技术人员更注重的是技术而不是人,因此程序常在发觉用户的存在之前就形成用户界面。这样注意
力被集中在技术问题上,如屏幕的绘制和域长,数据确认以及退出键的设计。偶尔也曾意识到用户,就是真正的人,正坐在系统另一端注视着屏幕,而且敲击着功能键。也许轻视和忽视用户的症状由来已久,专业通行了一种有友好的用户界面,却有平淡无味的交互的主流,往往就形成了覆盖在同样陈旧的狭隘和顽固的编程方式上的一层薄纱。


为什么要问“为什么”?
围绕可用性的设计是软件开发的一个相关的新的走向,它始于一个简单的问题:为什么?为什么这
是必要的?为什么用户要与这个系统交互?他们想要做到什么?
为何要问“为什么”?因为只有询问了用户为什么要用这个系统之类的问题才能帮助我们关注那些
有关系统可用性的基本要点。
为什么有人要用在线的电话目录。因为他们要联系那些他们不知道或是忘了联系方式的人。关键的设计要点是在不完全或是不精确的信息的基础上有效的设定一个系统入口。一个好的用户界面将以此作为焦点,减少操作步骤来找到号码。为什么用户要把银行卡插入自动取款机?是为了鉴别身份。带有磁性条纹码的卡是送到终端的一种方式,另外还有声波调用辨别或是红外线扫描也能达到这个目的。为什么在文档中用户要调用一个对话框用于输入一些特定的字符?因为一些符号或是字符在键盘上不存在。
这个对话框会显示一些用户希望得到的字符,而不是在键盘上存在的字符。以可用性需求和被标识出的焦点事件来开始一个项目将可以节省开发时间。用户界面的体系结构将根据这些要

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

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

相关文章

WPF使用TouchSocket实现Tcp client

文章目录 前言1、页面展示2、主页面UI代码2、TCP client的UI代码3、Tcp client后台代码实现4、UI与后台代码的关联 前言 在该篇的Demo中,您可以找到以下内容: 1、TouchSocket的使用; 2、CommunityToolkit.Mvvm的使用; 3、AvalonD…

IF=8.5 MIMIC-IV高阶玩法!中国用新指标SHR+机器学习拿一区top,思路太牛了

‍ MIMIC-IV 发文难?那是你还没遇到对的思路!如今机器学习数据库挖掘的文章层出不穷,今天介绍的这篇文章是在MIMIC-IV数据库的基础上,用了一个新指标—应激性高血糖比(SHR),结合机器学习构建预测…

【iOS】——Block循环引用

循环引用原因 如果在Block中使用附有_ _strong修饰符的对象类型自动变量,那么当Block从栈复制到堆时,该对象为Block所持有,这样容易引起循环引用。 HPPerson *person [[HPPerson alloc] init];person.block ^{NSLog("person.age--- …

Redis使用场景-热点数据缓存

什么是缓存? 为了把一些经常访问的数据放入缓存中已减少对数据库的访问,从而减少数据库的压力,提高程序的性能。【内存中存储】-效率快 缓存的原理 什么样的数据适合放入缓存中? 1.查询频率高且修改频率低 2.数据安全性低 哪些组件…

《python语言程序设计》第6章第7题财务应用程序:计算未来投资,编写函数计算制定年数以给定利率

记住这里增加循环应该是以年为单位。但是添加的数是月为单位 此处需留意其实点不是1,1代表1年,这里月所以其实是12,这里的单位是月,而不是年。 python for i in range(12,monthNum12,12) 如果你把12都换成1呢?&…

本地生活抽佣系统搭建:如何让系统具有竞争优势?

随着本地生活的潜力不断展现,本地生活服务商逐渐成为新兴职业中的一大热门,本地生活抽佣系统搭建的热度也一直保持着飙升的状态。 抖音生活发布的《2023年数据报告》显示,2023年,抖音生活服务平台总交易额增长256%,抖…

监测Nginx访问日志状态码,并做相应动作

文章目录 引言I 监测 Nginx 访问日志情况,并做相应动作1.1 前提准备1.2 访问日志 502 情况,重启 bttomcat9服务1.3 其他案例:访问日志 502 情况,重启 php-fpm 服务II 将Shell 脚本check499.sh包装成systemd服务2.1 创建systemd服务2.2 配置service2.3 开机启动2.4 其他常用…

自监督学习概述(Self-Supervised Learning,SSL)

自监督学习(Self-Supervised Learning,SSL)是一种机器学习方法,旨在利用未标记数据进行训练。这种方法通过从数据本身生成伪标签,来创建监督信号,使得模型能够学习有效的数据表示。自监督学习在深度学习领域…

HTTP传输下载和P2P传输下载的区别?

HTTP传输下载和P2P(Peer-to-Peer)传输下载在多个方面存在显著的区别,以下是详细的分析: 1. 工作原理 HTTP传输下载: HTTP(Hypertext Transfer Protocol)是一种用于在Web上进行数据通信的协议&…

PHP多功能投票系统源码小程序

🎉决策不再难!「多功能投票小程序」一键搞定所有选择困难症✨ 🤔选择困难?「多功能投票小程序」来救场! 每次聚会、团队讨论还是日常小决策,是不是总有那么几个瞬间让你陷入“选哪个好呢?”的…

spine to unity-2.利用边缘框实现实时碰撞检测

主要讲spine的边缘框,在unity中,实现实时碰撞检测。其中使用的素材,是我为独立游戏ink制作的动画。独立游戏ink的开发日志,在小红薯持续更新中。spine工具包的安装,下载请参考spine to unity-1spine BoundingBoxFollow…

【MySQL篇】Percona XtraBackup标准化全库完整备份策略(第三篇,总共五篇)

💫《博主介绍》:✨又是一天没白过,我是奈斯,DBA一名✨ 💫《擅长领域》:✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux,也在扩展大数据方向的知识面✌️…

STM32H7的LPUART基础和唤醒示例

STM32H7的LPUART基础知识 硬件框图低功耗的高级特性低功耗串口的时钟以及波特率低功耗串口发送时序低功耗串口支持的唤醒方式 LPUART 的全称是 Low power universal synchronous asynchronous receiver transmitter,中文意思是低功耗通用异步收发器,简称…

【C语言】栈的实现(数据结构)

前言: 还是举一个生活中的例子,大家都玩过积木,当我们把积木叠起来的时候,如果要拿到最底部的积木,我们必须从顶端一个一个打出,最后才能拿到底部的积木,也就是后进先出(先进后出&a…

Python - 开源库 ReportLab 库合并 CVS 和图像生成 PDF 文档

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/140281680 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 Report…

[Spring] MyBatis操作数据库(基础)

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…

Elasticsearch概念及ELK安装

1、Elasticsearch是什么 它是elastic技术栈中的一部分。完整的技术栈包括: Elasticsearch:用于数据存储、计算和搜索 Logstash/Beats:用于数据收集 Kibana:用于数据可视化 整套技术栈被称为ELK,经常用来做日志收集…

WPF启动失败报System.Windows.Automation.Peers.AutomationPeer.Initialize()错误解决

问题描述 win10系统上WPF程序启动后就崩溃,通过查看崩溃日志如下: 应用程序: xxx.exe Framework 版本: v4.0.30319 说明: 由于未经处理的异常,进程终止。 异常信息: System.TypeLoadException 在 System.Windows.Automation.Peers.Automatio…

CMake 使用 OpenCV:从库中查找包含头文件

前言 在开发使用 OpenCV 的项目时,正确配置 CMake 是确保项目顺利构建和运行的关键。开发过程经常存在各种各样的意外和偶然, 是困难也是收获. 比如一直好好的项目, include某个头文件, 编译突然出现:No such file or directory CmakeTest/test_opencv.h:4: error:…

一套成熟的实验室信息管理系统源码,.Net 检验系统LIS源码,实现从采集、检测、报告、归档的全程跟踪管理

一套成熟的实验室信息管理系统源码。在长期的医疗信息化实践中,我们分析总结了大量客户实例,建立了以病人为中心、以业务处理为基础、以提高检验科室管理水平和工作效率为目标的产品开发思路,将医学检验、科室管理和财务统计等检验科室/实验室…