软件质量属性有:可用性、可修改性、性能、安全性、可测试性、易用性等六种。易用性关注的是对用户来说完成某个期望任务的容易程度和系统所提供的用户支持的种类。可以分为以下几个方面:
- 有效性:系统如何能提高用户的操作效率?
- 错误避免及错误处理:系统怎样使用户所犯的错误造成的影响最小?
- 用户自信和满意度:系统可如何使用户确信采取了正确的行动?
- 可学习性:如果用户不熟悉某个特定的系统或该系统的某一特定方面,那么,系统可以如何使学习任务变得更容易?
易用性场景样例:取消操作
有两种类型的战术支持易用性,每种战术所针对的是两种类别的“用户”,第一类是运行时,包括那些在系统运行期间支持用户的战术。第二类基于用户接口设计的迭代特性,它在设计时支持接口开发人员。易用性战术与可修改性战术有很密切的关系。
- 运行时战术:通过为用户提供关于系统正在做什么的反馈,以及为用户提供发出基于易用性命令的能力来增强易用性,如帮助、撤销、取消等。有用户主动;系统主动;混合主动。
1.系统主动:
提供撤销取消等操作。

public synchronized void removeAll() { if (mHead == null) { return; } Node<T> cur = mHead; while (cur != mHead.mPrevious) { Node<T> dest = cur; cur = cur.mNext; dest.mData.onDestroy(); dest.mNext = null; dest.mPrevious = null; } mHead = null; mTail = null; mCurrentNode = null; }
提供树形浏览操作
2.用户主动。
用户退出系统:

public void loginOut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 干掉cookie和session HttpSession session = request.getSession(); session.removeAttribute("user"); Cookie[] cookies = request.getCookies(); if (cookies != null && cookies.length > 0) { for (Cookie c : cookies) { if ("autoLogin".equals(c.getName())) { //设置cookie存活时间为0 c.setMaxAge(0); //将cookie响应到前台 response.addCookie(c); break; } } } // 重定向到首页 response.sendRedirect(request.getContextPath() + "/index.html"); }
3.页面简洁,功能明显。
在项目中,使用户界面应保持洁净、美观,用户易接受,结构布局合理,主动为用户提供一些该有的功能,没有多余功能。
- 设计时战术:在测试过程中,通常会频繁修改用户接口。也就是说,易用性工程师将为开发人员提供对当前用户接口设计的修改,开发人员将实现这些修改。这导致了对语义一致的可修改性战术的求精。
将用户接口与应用的其余部分分离开来。
模型——视图——控制器
表示——抽象——控制
在编写项目时使用模型——视图——控制器,即MVC设计模式,把应用程序的输入、处理和输出分开。而在一般项目中即运用JSP+Servlet+JavaBean模式,方便对某些用户接 口的修改。Servlet充当控制器的角色,负责处理用户请求,创建JSP页面需要使用的JavaBean对象,将表达和内容分离开来。