软件架构质量属性--易用性
易用性 - 消费方使用系统提供的资源(能力或服务)的便利程度。
易用性关注的是对用户来说完成某个期望任务的容易程度和系统所提供的用户支持的种类。可以将易用性分为如下几个方面:易理解,易操作,易学习,效率性,出错率,满意度,易分享等。
以上的7点可以概括为:让软件系统易见、易学、易用。以技术为基础,以用户的体验为中心,提升软件易用性和界面友好性
易用性战术
1.运行时战术
一旦系统执行,就可以通过为用户提供关于系统正在做什么的反馈,以及用于提供发出基于易用性命令的能力来增强易用性。
运行时战术分为用户主动,系统主动,混合主动
当用户采取主动时,设计师设计一个响应,就如同实现其他功能一样。设计师必须列举出该系统的责任,以对用户命令做响应。
当系统采取主动时,它必须依赖关于用户的某些信息,即用户所承担的任务或系统本身的状态。每个模型都要求各种类型的输入以完成其主动。
例如登录过程中的记住用户的登录状态,御魂hub中记住御魂到导入配置和收藏方案等。
系统主动就是要让系统记住之前用户的一个状态,让用户尽可能地少操作。例如,qq中的登录,一次输入密码就可以很久不用输入密码。
系统主动有以下几个战术模型。
(1)维持任务的模型。(2)维持用户的模型。(3)维持系统的模型
维持任务的模型就是在用户操作的时候能够预测到用户想要干什么,并且提供有效地提示,让用户能知道让系统能够正确地执行。例如搜狗拼音输入法中对于前后鼻音,平翘舌音的纠正,同时对于键盘上容易按错的键位进行了智能纠正,对可能打错的拼音给予正确的拼音等等。
维持用户的模型即让用户能够接受系统的满意程度,例如用户阅读微博时拖动页面的流畅程度。
维持系统的模型就是让能够让用户在操作过程中的动作能够被系统记住和使用。例如各个登录网站中记住登录的选项。
2.设计时战术
设计代码得从用户与系统两个角度来考虑,
1.确定用户对系统的了解,
2.确定了期望的系统行为,能够为用户提供适当的反馈
例如之前实现的一个菜单工具类的例子中,定义了等待用户获取n,m之间的数值的键盘输入的一个函数中,在开始提示的时候就会提示用户输入一个从min到max中的整数,并在错误的时候给予相应的错误反馈。
可以表现为该函数要求用户输入相关的整数,函数才能够继续往下执行,即检查用户的输入,等待用户的输入。
用户所要用到的接口和其余部分分离的一个实例:
在文章上述的获取指定范围的用户输入的一个函数是菜单类中的一个函数,菜单类作为一个用户所要用到的接口类,在设计时战术中表现为单独写成一个接口类和其他应用部分分离。
以上将用户所需要的一个Menu的菜单类单独编写成一个类以便维护。
在释义词云界面,点击对应的词云会跳转到对应的解释页面。
点击对应的词云跳转到对应的释义界面,为用户了解信息热词提供了一些快捷的点击。
搜索过程的易用性:
1.搜索联想补全功能:输入对应的关键字,弹出对应的搜索信息
2.搜索相关信息标红
如图,展示了搜搜相关4G的信息,并展示出搜搜结果
这是所有搜索到4G的界面,在易用性方面,不仅提供了爬取到相关的简略的信息,而且对其中详细的信息进行对应到百度百科上。
点击蓝色的标题会跳转到相关标题信息热词的简略信息的页面。每个标题都有对应的跳转到相对应百度百科的详细页面的子标签:
例如
左边的4G跳转到的是sql内爬取对应4G解释的简略信息,右边详细页面对应的是百度百科4G的解释页面。