面向使用的软件设计随笔04

  所有软件系统都是工具,因此软件开发人员都是工具制造者。不论是为自己的企业开发内部使用的日常业务应用软件,还是在一个团队中开发用于市场销售的套装软件;不论开发的程序只是以前版本的修改,还是给新一代外设设计外加的控制程序,我们都是在建造工具。工具可以帮助人做事,好的工具可以让人以较少的时间、较少的精力或更简便的方式达到其所想或所需。尽管某些系统给人印象深刻,但若使用不当,它也不能很好履行其使命。

  实用性指的是一个系统能用来做某件值得的事情,即事情本身足以证明其设备和编程投入是值得的。换句话说,要开发一个有用的软件,必须为它选择一个合适的问题。软件开发人员可以为提高实用性发挥重要作用。通过更好地理解实际需求,开发真正满足用户需要的系统,分析和设计人员可以提供更有用的系统。认识到实用性是使一件东西有用的重要因素,开发人员可以更好地为软件开发项目选择合适的问题或者最值当的问题。

  能力指的是一个系统必须至少从道理上来说能做它应该做的事。不论选择要解决什么问题,都必须在系统内某处编码实现所需任务的功能。与实用性的情况一样,开发人员可以通过更好地理解实际需求,让软件对其提供更好的直接支持,在提高软件能力方面发挥作用。对于使一件东西有用来说,实用性和能力都很重要,但这还不够。即使一个软件在理论上能够执行所赋予的任务,而在实际使用时却不能执行这些任务,它也是没什么用的。用户必须能够让软件做它该做的事,即处理数据或完成所赋予的工作。换句话来说,一个系统要想有用,必须首先是可用的。

  可用性比实用性和能力都更加复杂,因为它和与人正在发生交互作用的系统有关。可用性受许多因素的影响,高度可用的系统对使用它的人来说容易学习、容易使用,而且使用方法容易记忆,能帮助人高效工作、减少出错。我们可以认为可用性有以下五个方面的特征:易学性、易记忆性、使用效率、使用可靠性、用户满意度。

  软件应当对用户来说容易学会使用,并且在学会使用后容易记忆。软件还应当有较高的使用效率,从而提高用户的生产力水平。在使软件容易学习和记忆与使其使用效率更高之间需要进行权衡。那种让用户一步步地慢慢完成一项复杂任务的系统通常是容易学习的,但这种使用方式却妨碍熟练用户采用更快的工作节奏,有效地解决这个工程上的权衡问题是我们在设计可用的软件时所面临的一个挑战。人不可避免地要经常出差错,使用户少犯错误的软件使用起来将更加可靠,这是通过它与用户协同工作的方式以及支持人可靠地执行任务来实现的。软件本身还应当可靠。软件本身的可靠性和减少用户差错的能力都有利于可用性,但使用中的可靠性与用户界面设计的关系比起它与编码和调试的关系更加密切。让用户感到满意、对使用经历留下愉快主观感受的软件更加有用。令人满意的软件更可能被多次使用,而且使用起来更加有效。所以用户满意度也会影响可用性。

  可用的软件是优质的软件,可用性是软件质量的一种度量。近来被所谓的全面质量管理运动所强化了的传统的软件质量观念主要侧重于内部效率和可靠性,即程序代码运行时的效率和可靠性。人们有时还考虑软件的其他质量因素,包括通用性、灵活性、可维护性以及代码的可修改性。不过,当人们关于软件的关注点从那种有限的内部视角转向注重客户和最终用户的外部视角时,可用性以及实用性和能力很自然就被看成是保证软件质量的关键因素。

原文地址:https://www.cnblogs.com/dgb152/p/12261483.html