程序与软件的易用性

易用性实际上是软件的相当重要的属性, 体现的是这个程序是否好使。如果程序不好使,人们就会趋于不使用它,无论它的设计与实现是多么精致优雅。

仔细想想,当人面对一个陌生的命令行程序会怎样?他之前没有任何关于这个程序的信息;那么,按照 linux 工具的约定,或许他会使用 --help, -h, man 等命令查看一下是否有该程序的使用说明;或者直接敲入程序名称看看出来什么。如果是前者,那么用户可能希望看到具体的示例,能够立即用到他所需要的场景里;如果是后者,他可能希望通过以往的经验来判断这个程序能做什么、该怎么使用。无论哪种情况,都应该提示该程序的具体说明、用法与选项。

再想想,当人面对一个陌生的软件会怎样?或许他了解过这个软件能拿来做什么,只是不知道具体该怎么使用,怎样发挥其真正的威力。或许他会试探性地看看软件的界面元素,点击若干个选项来尝试了解如何使用(对于软件而言,一般人不会有耐心看说明书的)。最好能将最重要的菜单和选项突出出来,告诉人们如何组合这些菜单和选项来完成需要的操作。

程序或软件,其实都是一种高智力活动的产物,而普通大众要使用这种产物,其实也是需要一定理解能力的,并不像程序员心里想的:不就是那样么,有什么困难的或不明显的呢!

提高易用性的途径如下:

(1)  用户不知道如何使用时,提供容易找到的帮助文档,并展示具体的使用示例,能够让用户快速地 Get Started ;

(2)  用户使用不当产生错误时,及时给予友好实用的提示,让用户能迅速理解和转向正确方法;

(3)  提供默认选项,让用户以最少的知识就能在常规场景下很好地使用;

(4)  尽可能与人们认知和操作习惯保持一致, 避免因为认知误解导致挫败感;

(5)  处理好细节魔鬼, 避免部分用户因为不同平台导致的细节问题而受挫,进而放弃使用;

(6)  通过界面设计提供流畅的美感,也可以潜在提升软件的易用性;

(7)  提供灵活的选项,让用户可以组合出更强大的功能。

以上是我作为一个软件用户所体会到的经验。然而,我是一名软件工程师, 是不能作为参考用户的。要提升软件对于普通大众的易用性,那么观察大众是如何使用软件的,在哪些地方受挫,分析为什么受挫,这些将对理解和提高软件易用性有莫大的帮助,可能远远比单纯地从书中获取产品设计知识与经验要更为重要。

时间: 2025-01-05 05:40:11

程序与软件的易用性的相关文章

Android程序设置软件图标

默认新建的工程里会设置一个系统默认图标 如果没有,就在工程的AndroidManifest.xml文件中添加下面的语句即可. 这里需要预先在/res/drawable/目录下放一个叫icon.png的图标图片(48×48),并且在/res/values/strings.xml中定义app_name这个字符串(就是程序名) <application android:icon="@drawable/icon" android:label="@string/app_name&

“写程序” 这个活动大多数情况下是个人行为。 我们听说的优秀程序员似乎都是单打独斗地完成任务。同学们在大学里也认识一些参加ACM 比赛的编程牛人, 他们写的ACM 比赛的程序是软件么? “写程序” 和 ”做软件“ 有区别么? 请采访这些学生。

ACM的题库的编程都只能算做程序,不能算软件.写程序和做软件区别还是很大的.程序是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合.为实现预期目的而进行操作的一系列语句和指令.而软件是程序以及开发.使用和维护所需要的所有文档的总称,而程序是软件的一部分.软件可能是由一个程序组成,或者由千万个程序组成,程序是软件的一个必不可少的组成. Edsger Dijkstra 曾经提到:“Software engineering, of course,presents itself as an

程序与软件、编程与软件开发的区别

今天突然想到两个有意思的问题:程序与软件有区别吗? 编程与软件开发有何区别? 这两个问题也是我在大学时期一直思考的两个问题.作者在学校期间阅读了许多的专业书籍,比如<Java语言程序设计>.<C语言程序设计>.<软件工程>.<设计模式:可复用面向对象软件的基础 >以及许多<21天精通XXX程序设计>系列书籍,也写了许多的小程序,但有一些问题作者始终没有完全弄清楚.比如: 1.真的可以在21天之内精通某一门程序设计语言吗? 2.什么是面向对象? 3

程序加密软件标准!

程序加密就是用户在发送信息前,先调用信息安全程序对信息进行加密,然后发送,到达接收方后,由用户使用相应的解密程序进行解密并还原.采用程序加密方式有以下优点:已经存在标准的安全API(Application Programming Interface,应用程序编程接口)产品.实现方便.兼容性好. 但程序加密软件系统采用软加密方式,有一些安全隐患: (1).密钥的管理很复杂,这也是安全API的实现的一个难题,从目前的几个API产品来讲,密钥分配协议均有缺陷: (2).使用程序加密,因为是在用户的计算

谈对于程序、软件、软件工程的初步认识

  在我上大学前刚开始听说软件工程这个词的时候,我心里就有了疑问,软件工程到底是做什么的?难道是做软件的?那软件又是什么?于是我那时还去上网搜了搜,解开了自己心里的疑问,我当时所理解的软件工程就是围绕软件开发相关的一个专业. 我们这学期也开了软件工程这门课,刚上课一个星期的我也对程序.软件.软件工程有了初步的了解. 软件:最初定义是汇编和自动地程序设计的其他方面所组成,至少和现代计算机中的电子管.晶体管.磁带等等称为硬件的内容有着同样重要的事务.与硬件相比,软件的逻辑复杂性要高出10~100倍.

谈谈对于程序,软件,软件工程的理解

谈谈对于程序,软件,软件工程的初步认识 记得在上大学前,报考志愿时,我选择了软件工程这个专业,当时家里人都极力反对,因为他们认为这个专业不适合女孩子,当时我也很犹豫,不知道自己做的对不对.有个老师说过:“专业课对学生的影响,不仅仅是学习技术,更重要的是学习一种思想,一种做事的套路.“在软件工程学习的这两年,虽然我的专业知识目前还比较薄弱,在之前写代码只是单纯的写代码,只知道简单的完成功能,并不知道除了代码的其他方面,也没有了解学习软件工程.但是在写代码的过程中,我发现了它的魅力之处,也让我对生活

对程序、软件、软件工程的初步认识

从选择软件工程这个专业开始学习到现在已经一年半了,在这段时间里我学习了如何用C语言和JAVA来编写一些程序.虽然在学习中学到了很多知识,但是在之前的学习中我并没有去思考过这个专业到底是做什么的.但通过现在的学习,我对程序.软件.软件工程有了初步的认识.在刚开始学习这门专业时,我们就学习了如何编写一些简单的程序.但是随着学习的不断深入,我们所了解到的程序也越来越复杂.尽管如此,在学习中我并未将程序与软件联系起来.毕竟,在刚开始时我接触到的软件便是手机上的软件,我无法将编写程序时的那一行行代码和运行

对于程序、软件、软件工程的初步认识

从选择软件工程这个专业开始学习到现在已经一年半了,在这段时间里我学习了如何用C语言和JAVA来编写一些程序.虽然在学习中学到了很多知识,但是在之前的学习中我并没有去思考过这个专业到底是做什么的.但通过现在的学习,我对程序.软件.软件工程有了初步的认识.软件:最初定义是汇编和自动地程序设计的其他方面所组成,至少和现代计算机中的电子管.晶体管.磁带等等称为硬件的内容有着同样重要的事务.软件的本质为不可见性.易变性.服从性.非连续性.软件的开发和维护出现了一系列严重的问题被成为软件危机,可能会造成巨大

程序员 软件工程师

普通程序员与软件工程师的区别 程序员.工程师和高级工程师区别 程序员与软件工程师区别 软件工程师不仅仅是会编程就行,需要对整个软件工程的流程很连接,从立项.分析.建模.编程.测试.发布都有很高的要求.主要是因为有软件和硬件之分的 还有工程师什么什么的头衔都需要考级的 ,不是随便都可以说是的.    程序员是从事编程工作的人.软件工程师是在软件方面达到一定水平的人,一般有证书.软件工程师有很多种,有销售的工程师,有开发的工程师.    程序员和软件工程师的区别是:软件工程师不但要有编写程序代码的能