软件易用性与效率的改进方法分析
2014-10-29王素玲刘旭儒
王素玲 刘旭儒
摘 要
在信息化高度发展、软件产品广泛应用的今天,软件产品质量尤其是易用性和效率直接影响着社会生产效率和人们的生活品质。而且随着人们生活节奏的不断加快,对软件易用性和效率的要求也越来越高。这就促使软件制造者必须对这两个质量特性进行不断的改进。然而,这两个质量特性尤其是易用性,所涉及的影响因素可谓纷繁复杂,故其改进过程复杂度高、难度大,至今尚未形成既普遍适用又具有较强可操作性的方法。这篇文章通过对软件易用性和效率的影响因素及其改进过程共性特征的分析,提出了一个通用的改进流程框架,并给出了具体实施办法,旨在为软件研制企业在这两个质量特性的改进方法上提供借鉴。
【关键词】软件产品 软件产品质量 软件易用性和效率 改进方法
随着信息技术突飞猛进的发展,软件产品的应用已经渗透到人类生产和生活的各个方面。尤其是随着互联网应用的广泛普及,电子商务、电子政务、电子金融等各种信息服务以及网络安全工具等等,所呈现给广大用户的是形形色色的软件产品。因此,软件产品质量尤其是易用性和效率这两个质量特性,直接影响着社会生产效率和人们的生活品质,软件产品质量的不断改进已经成为一种社会需要。在软件业日趋发展成熟的今天,软件的功能性、可靠性经成为软件产品必备的基本质量属性,而软件的易用性和使用效率在实际应用中却表现出良莠不齐,存在着较大的改进空间。但这两个质量特性的改进复杂度高、难度大,方法尚在不断的探索中。本文欲就这个问题,首先谈一谈软件易用性与效率的含义及其改进的必要性,然后尝试着探讨一下这两个质量特性的改进方法。
1 软件易用性与效率的含义及其改进的必要性
对于软件产品质量,国标《GBT 16260.1-2006 软件工程 产品质量 第I部分:质量模型》给出了全面的定义。其中,对易用性和效率定义如下:
易用性:在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。它包括易理解性、易学性、易操作性和吸引性。
效率:在规定条件下,相对于所用资源的数量,软件产品可提供适当性能的能力。它包括时间特性和资源利用特性。
简而言之,软件的易用性即是指用户使用软件的容易程度。易用性强的软件具有人机界面友好、流程设计合理、层次清晰、直观明了、操作简便且符合用户习惯的特点,使用户一看就会,一蹴而就,且给用户带来清新愉快的体验。软件的效率则是指在满足功能性的前提下,尽可能少占用用户资源,并切实能帮助用户提高业务工作效率。这两个质量特性的优劣是用户能够直接体验到的,在实际使用中,人们自然而然地会择优而用。例如,有两家航空公司都建立了网上订票系统,分别为A和B,这两个系统所提供的航班查询、机票预定功能完全相同,所不同的是,A系统可以不必注册登录而直接进行订票操作;B系统则必须经过注册、登录后才能订票。显然,对于大多数不经常乘坐飞机的临时客户来说,肯定认为A比B用起来方便,从而选用A。 再例如,有两个不同厂商开发的病毒防御工具C和D,它们对病毒的防杀能力区别不大,然而两者相比较,D的扫描速度慢、在运行时占用太多的系统资源,甚至导致其他程序无法正常运行,简直比病毒的困扰还让人难以忍受。那么用户对这两个软件质量的评价肯定是D不如C,即使C的病毒防杀能力稍弱于D,多数用户尤其是电脑配置不高的用户也宁可选择C。
由此可见,软件易用性与效率直接影响着人们的工作效率和生活品质,这两个质量特性的改进是广大用户的需要。尤其是现代人的生活节奏快,做事力求方便快捷、立竿见影,因此对这两个质量特性的改进要求也就越来越高。在软件产品竞争日益经激烈的今天,任何一个软件制造商如果无视这种改进要求,他的产品就面临着被选择性淘汰的危险。因此,改进势在必行、毋庸置疑。
然而,这两个质量特性尤其是易用性,所涉及的影响因素纷繁复杂,其改进难度之大可想而知。尽管人们在实践中不断地探讨着如何提高软件的易用性与效率,但结果仅限于提出一些观点、原则或某些具体要求,至今尚未形成一套既普遍适用又具有较强可操作性的方法。本文试图对软件易用性和效率改进的通用方法做一个尝试性探讨,认为要保证这两个质量特性得到持续、有效的改进,对于一个软件研制企业来说,需在组织层面建立一套流程和机制,即构建一个改进体系。这个体系既具有宏观层面的规划、指导和制约功能,又具有微观层面的可操作性。下面就对这个改进流程及实施方法做一个简要介绍。
2 软件易用性与效率的改进方法
如果泛泛地谈论软件易用性和效率的改进,简直无从下手,因为软件产品种类千差万别,不同种类的软件有着不同的改进需求,而同一种软件产品也可能面临各种不同的用户、不同的运行环境,不同用户对软件的使用预期各不相同、不同的运行环境下软件的运行效率各有差异。就软件的易用性而言,既涉及到社会环境、人们的心理与行为习惯、用户的特点与水平等多方面因素,又涉及到操作层面非常具体的细节问题,有些问题是事先无法预料的,只能在使用过程中不断发现和解决;就软件的效率而言,它是由软件本身和运行环境共同决定的。因此,对这两个质量特性的改进都要建立在对其影响因素进行全面、细致分析的基础上,都应包括对可预料问题的事先解决和对不可预料问题的事后修正。于是,可以建立一个如图1所示的改进流程。
这个流程框架对于不同类别软件产品的易用性和效率的改进是通用的,但对不同软件、不同质量特性的改进,各流程节点的内容及具体实施方法是不同的。下面分别对软件易用性、软件效率改进的内容与实施方法加以说明。
2.1 软件易用性的改进
上面已谈到,软件易用性涉及到社会环境与用户类型及使用预期等诸多因素,而且社会是不断发展的,用户自身及其对软件的使用预期也在不断地变化,因此,图1中的“因素分析”就是软件制造商针对自己研制的软件产品所面向的用户及其所处社会环境进行实时的全面细致的分析。这个分析应至少得出以下结果:endprint
(1) 识别出所有可能的用户并对用户进行分类;
(2)认识到各类用户所处环境、心理特征、行为习惯和对软件的使用预期,并预测可能发生的变化;
(3)根据自己和同行的经验(包括已有的相关国标、行标等),识别并吸纳已经成功的(即被多数用户所接受了的)各种易用性解决方案。
上述分析结果是流程第二步“建制建库”的前提和依据。“建制”即是建立适于自身的企业级软件研制标准和规范,较之国标、行标,这种企业级标准和规范要具体、细致得多,且针对性强。比如,要细致到对用户界面所用菜单、按钮等的命名都做出明确规定,以避免因命名不当而引起歧义或误解导致易用性降低。 “建库”则是创建一个标准化元素、软构件库为软件开发过程服务,例如,将可能用到的各种界面元件名称及各种图标作为标准化元素保存到库中,在进行程序开发时,直接从库中提取相关元素。这个“库”既是对企业标准和规范的具体化,也是强制软件开发过程执行企业标准和规范的一种技术手段,同时也使企业所积累的软件资源得到充分的复用从而提高软件开发效率。
需要指出的是,“因素分析”和“建制建库”不是在某一个具体的软件开发项目中进行的,而是在企业组织层面进行的,应该由企业的产品总体策划部门来实施。另外,当“制”与“库”创建之后,要根据影响因素的变化和使用过程中用户的反馈信息而不断地进行修正和更新,即对其进行维护,这个不断维护的过程也就是持续改进过程。
流程的第三步“过程控制”则是针对具体开发项目而言的,这里的“过程”包括项目的需求分析过程、系统设计过程、模块开发过程以及相应的验证过程。仅就易用性改进而言,项目的需求分析就是对本项目所开发的具体软件产品的易用性需求进行更深入细致的分析,给出更为明确的易用性定义和验证标准作为设计、验证的依据,同时还可以对企业级标准规范进行补充和修正;系统设计过程中的易用性设计,一方面要符合本项目需求,另一方面,要把功能性设计与界面设计紧密结合起来,使内在逻辑与外在操作有机地关联,用操作的简单、流畅原则来规范内在逻辑设计的合理性;模块开发过程是对项目需求、设计的具体实现过程;验证过程则是依据需求中的验证标准,审查或测试易用性的实现程度。
“信息反馈”是指通过各种途径,将软件使用过程中用户对易用性的体验和进一步的改进意见搜集起来,进行汇总归纳、分析提炼,形成有效的改进方案,然后及时修正或更新组织的标准规范和相应的资源库。这样,就形成了一个保证软件易用性持续改进的完整闭环。
2.2 软件效率的改进
对于软件效率的改进过程,图1中的“因素分析”是指对影响运行效率的软件自身因素和软件所有可能的运行环境进行分析。自身因素包括软件技术架构的选择、产品体量的大小、系统内部结构与流程的合理性,以及编程所用算法、语句,变量的定义、管理等具体细节问题;运行环境包括各种不同配置的硬件环境、不同的操作系统、不同的网络环境等等,还抱括与其他关联业务系统之间的信息交换与数据共享关系。
“建制建库”则是在因素分析的基础上,对本企业可能用到的各种技术架构、各种算法等内在因素进行效率性能比较并形成文件,以供开发人员参考;同时根据已有经验建立一个软件产品在不同运行环境下所能达到的性能指标库和较成熟的高效率软件构件库,以供开发时选用。举一个简单的例子,对于一个试题库系统,要从题库中随机抽选若干试题形成试卷,可有多种实现方式:可以保持题库中试题的排列顺序不变,系统每产生一个随机数而抽选一个试题;也可以完全打乱题库中试题的排列顺序,总是从第一行开始按顺序选择若干试题。对此,“建制建库”的任务就是对这两种实现方式在一定运行环境下所消耗的时间和所占用的内存资源等进行估算和比较,指出在何种情况下,哪个实现方法为优,同时给出该软件在各种不同运行环境下的效率指标。
“过程控制”一方面是通过对开发过程的指导和监督来保证软件功能的具体实现采用最优方法, 另一方面则是针对不同的运行环境和用户需求而采用不同的系统部署策略,如对硬件配置较低的运行环境采用简约化的部署策略,即去掉不必要的功能、减少软件体量,优化系统结构及流程、由繁化简。
“信息反馈”包括多方面的内容:
(1)跟进新技术,及时引进适于企业自身的新技术架构、新的算法等等。
(2) 搜集同行的成功经验,吸纳已有的高性能软件构件。
(3)加强内部沟通交流、鼓励自主创新,并将创新成果及时纳入组织资源库。
(4)建立用户反馈渠道,收集、分析用户的改进意见与需求,制定效率改进目标。
3 结论
综上所述,在软件产品广泛应用的今天,软件产品质量尤其是易用性和效率这两个质量特性,直接影响着社会生产效率和人们的生活品质,对其进行不断地改进,是用户的需要,是大势所趋,也是软件制造者的社会责任。而这种改进过程是复杂的,其方法需要不断地探讨。本文提出的“建立在对软件易用性和效率的影响因素进行全面细致分析基础上的改进流程”,具有一定的通用性,希望能为软件研制企业在这两个质量特性的改进方法上提供些许借鉴。
参考文献
[1]GBT 16260.1-2006 软件工程 产品质量 第I部分:质量模型
[2]刘立忠.让软件产品更易用[J].科技浪潮,2008(10).
[3]黄杰等.解决软件产品易用性问题的方法思考[J].中国新技术新产品,2013(02).
[4]付永民..面向产品易用性的设计方法[J].设计,2013(12).
[5]李勇.高性能低资源占用率的情报型BBS构建研究[J].办公自动化,2013(10).
[6]邱燕娜.如何化解行业细化与软件效率的矛盾[N].中国计算机报,2011.
作者简介
王素玲(1963-),女,现为航天信息股份有限公司高级工程师。主要从事行业应用软件研发。
刘旭儒(1953-),男,现为航天信息股份有限公司研究员,享受国务院特设津贴,科技部重点新产品及其信息化专家,长期从事军品民品技术研究与管理工作。
作者单位
航天信息股份有限公司 北京市 100195endprint