|
[来 源] 张 永 [作 者] 刘浩
国外的一些著名软件公司早在上世纪80年代初就已经意识到软件可用性的重要性,并开始这方面的研究和实践。IBM早在1970年就引入了可用性测试,微软公司在1988年也开始进行可用性测试。大家所熟知的Microsoft公司Windows操作系统和其他软件产品在推向市场前就经过了大量的可用性测试,从而保证了该产品除了具有强大的功能和稳定的性能外,还具有很强的可用性,能够为多数人所接受,这也是Microsoft公司产品为什么能够风靡世界主要原因之一。
国内的可用性研究开始得比较晚,但随着以用户为中心的开发思路越来越被大家接受,软件的可用性的概念也逐渐为大家所了解和接受。
可用性的概念及发展
什么是软件的可用性? ISO 9241-11国际标准对可用性作了如下定义:产品在特定使用环境下为特定用户用于特定用途时所具有的有效性(effectiveness)、效率(efficiency)和用户主观满意度(satisfaction)。
其中:
有效性 -用户完成特定任务和达到特定目标时所具有的正确和完整程度;
效率 -用户完成任务的正确和完整程度与所使用资源(如时间)之间的比率;
满意度-用户在使用产品过程中所感受到的主观满意和接受程度。
通俗的讲,可用性指的是产品对用户来说有效、易学、高效、好记、少错和令人满意的程度,即用户能否用产品完成他的任务,效率如何,主观感受怎样,实际上是从用户角度所看到的产品质量,是产品竞争力的核心。它是以用户为中心的。
随着计算机技术的广泛应用,下一代软件将向应用型发展,这样一个发展方向对于软件工程提出了新的要求。软件危机的表现形式、内涵深度都在发生变化。最初是开发效率问题,人们试图以工程化开发的办法应对;以后又产生了质量问题,就通过管理工程的方法来解决;现在又有了对软件可用性的要求。这实际上也是软件危机的一种表现。
要提高软件的可用性,就必须改革软件开发方法。CMM(能力成熟度模型)是大家熟悉的,它可以解决开发效率和工程管理的两个问题。而针对软件的可用性,CMM就存在一定局限性。而针对软件的可用性,国外又提出了UMM模型。
UMM(可用性成熟度模型,UsabilityMaturityModel),它是ISO15504标准的一部分。它的宗旨就是从软件开发的组织体制上真正实现以用户为本。
UMM分为六个等级:
从最初的等级0:未知阶段开始经过等级1认知和个体执行、等级2评价和管理、等级3建立和实现、等级4整合和预测,最后到最高等级5制度化和优化自适应的过程。它最终建立起一个可预测的过程,它可以调整它的性能去满足现在和以后一段时间的客户需求,可靠地满足它所描述的目标。
重视软件可用性会给我们带来什么?正如StanleyMarcus所言:“对项目开发来说,只有两方面最重要,一个是客户,另一个是产品。如果你对客户给予充分的重视,则他们会成为回头客。但如果仅关注产品,产品不会自己找上门”。
以客户为中心,重视软件可用性对软件开发商来说,可以减少后期维护,降低开发成本,缩短工期,提高用户接受度,增强产品竞争力,提高企业信誉度。
以客户为中心,重视软件可用性对用户和使用单位来说,可以提高用户生产效率,减少培训和技术支持费用,提高用户工作的舒适满意程度,提高系统建设投资效益和使用效益。
我相信并非所有开发人员想出的解决方案都适合客户。客户参与,提高效率,减少成本,降低风险,消除矛盾,是一条最佳的提高软件可用性,改革软件开发方法的途径。
软件可用性的方法
软件可用性已经成为软件工程发展的趋势。如何保证软件的可用性就显得至关重要。
在软件设计过程中可采用以下的一些方法。
一、在设计阶段,把用户的意见和业务需求作为软件设计的要素之一,将用户摆在软件工程过程的中心。
用户渐渐的意识到软件的可用性对他们的重要性。他们不希望在软件可用性上浪费他们的时间,我们也不必尝试客户的耐性。提前或时刻和客户保持联系;在开发中充分考虑他们的各种需求。产品测试阶段就邀请客户感受,测试软件可用性。
是否可用是指他们否可以使用该产品来执行他们需要执行的任务。在用户方面,可用性包含很多方面,但通常特指“发现、学习和有效性”这三种属性。
发现-表示针对某种特定的需要去寻找并找到产品的某一功能。用于确定用户找到某一功能所用的时间以及在整个过程中用户犯了多少错误。
学习-表示用户弄清楚如何运用所发现的功能来完成现有任务的过程。确定这个过程的长短以及在学习该功能期间用户犯了多少错误。
有效性-表示用户“掌握”了某项功能,不再需要进一步学习即可使用。确定有经验的用户使用该功能时执行必要步骤所需的时间。
而对有些功能的使用频率很低或者使用起来十分复杂,导致用户基本上每次使用时都要重新学习;对于这些功能,可以开发了使用向导,在整个使用过程中对用户予以指导。其原则是:
1.注意对用户在使用过程的反馈,对他们的意见进行分析和综合。他们的意见将是下一个版本必须要考虑的。
2.主动征求用户意见。采用请进来和走出去的方式了解用户对产品功能和性能要求,业务需求。
3.收集同行在可用性方面的做法,结合自己的实际,做到为我所用。
二、建立完善的文档体系
在软件开发的每一个周期,都要有严格复审和测试、软件规范化设计、严谨设计评审、合理的错误传递和追踪等,在过程中形成各种建议和意见对完善文档意义重大。良好的设计、完善的文档资料以及一系列严格的复审和测试,使得一旦发现错误比较容易诊断和纠正。
文档是影响软件可用性的重要因素。因此,文档甚至比可执行代码更为重要,因为文档影响到软件的可维护性。只有与程序完全一致的文档才是真正有价值的文档。编制较为完善的文档,这使得软件在今后易于维护,增加软件的可用性。
三、建立可用性测试环境
不要以为可用性测试就意味着创建昂贵的实验室。的确,进行大量测试的公司通常认为建立专用的实验室十分方便,而且可用性顾问或公司往往可以为客户提供各种各样的设施和设备,也可以在各种各样的设置和环境中执行有用、有效的可用性测试。不必一下子添加所有的设备,即使一件一件地添加,也可以使您从可用性测试中获得更多有价值的东西。
四、培养可用性专业人才
培养公司自己的可用性测试人才要遵循循序渐进的原则,该测试人员对有人参与的研究工作与数据收集十分精通,具备可用性专业人才的潜质。送他们到专业的可用性咨询公司参加培训,取得经验。通过这种方式可以在可用性人才培养和提高软件可用性上相互促进。
五、将设计人员和测试人员分开,避免开发人员过多参与测试,造成测试的不严谨。
结束语
软件可用性是衡量软件系统优劣程度的重要指标,而软件测试则是提高软件可用性的关键。随着软件可用性概念为大家接受的程度越来越高。随着我国经济信息化带来的巨大市场,越来越多的行业将依赖于软件带来的多功能性,实用性。越来越多的人能够使用计算机,享受到软件带来的诸多方便。对软件的个性化要求也会越来越多。软件可用性有大量工作需要进一步研究。 |
|