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

  怎样才能满足对可用性日益增长的需求?软件可用性可以通过许多途径加以改进,但人们普遍使用的是其中几种比较成熟的方法。最受人们欢迎和广泛使用的方法有可用性测试、风格指南及标准、专家咨询和反复原型设计。尽管这些方法往往是有效的,但它们都有很大的不足。

  改进软件可用性方面最常用的方法是可用性测试。可用性测试是以人们熟悉和广泛传授的标准技术为基础的。测试可以在可用性测试实验室中在受控条件下进行,或者是在日常工作条件下通过现场测试来进行。可用性测试的实验室方法和现场方法各有长处和不足,在时间和预算允许的情况下,最好结合在一起使用。如果运用得当,实验室和现场可用性测试方法都会成为改进软件可用性的有效手段,但它们都有各自的严重局限。可用性测试是一种改进软件可用性的有效手段,但高质量不是靠测试得到的。所有测试技术的最大问题是它们往往是在产品开发过程后期才进行。要进行测试,必须要有一个东西可以测试,通常这要求已经有一个正在开发的可以使用的系统、一个相对完整的模拟系统或者能够充分运转的原型。发现和改正任何软件缺陷的成本是随时间增加的。一旦系统交付使用,发现和改正缺陷的成本将会大幅度增加。为了改进质量,通过更有效地运用更好的方法去防止缺陷远比缺陷检测和清除更加高效和划算。

  可用性测试经常避免不了这样一种情况 ,即无论测试如何细致入微和富有成果,其结果往往不尽如人意。对于开发过程来说,可用性和用户界面设计的建议被认为已经太晚了的话,也往往是同样的下场。不论是哪种情况,所发现的问题经常得不到解决,原因是人们认为需要进行的修改涉及面太大,需要的投入太多。那些最后被改正的问题通常是比较浅显的,因为在已完成的代码中它们最容易修改。最终,对那些实际上涉及根本体系结构的深层问题往往只是做了些表面文章。有些人可能会认为,可以通过对草图形式的设计方案进行“测试"的办法在开发过程的早期阶段开展可用性测试。这种研究方法可能是很有价值的,但最好把它们当做一种检查和评审方法,而不是真正的实验室或现场测试方法,因为这种方法并不能称为测试。在所有工程领域,测试都毫无疑问地是指对某种程度上可运行的系统、原型和模拟装置所进行的试验和试用。

  可用性测试的另一个局限性是所有测试方式都存在的所谓覆盖问题。没有一种测试计划能够覆盖某个特定软件系统上交互操作的所有可能组合。测试是以概率为基础的,它只能发现所存在问题中的一部分。尽管可以发现那些别的方法难以发现的问题,但如果要发现大多数可用性问题的话,实验室可用性测试方法可能在成本上会特别不经济。有的人也可能会认为,对于排除问题来说,所有测试方法在本质上都是不经济的。测试隐含着这样一个开发模型,即首先对系统进行了错误的设计和编码,然后查找问题及其原因,最后再来纠正错误并对修改进行测试。这一模型渗透于软件开发过程中, 在某种意义上是为一件事情付出了三倍的代价。

  正确做法是应当在刚开始的时候就对系统进行正确的设计和建造。实际上,有选择地在那些经过深思熟虑、已基本合理的系统设计上运用可用性测试方法会更加高效,并会有更好的成本效益比。

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

时间: 2024-11-05 12:23:30

面向使用的软件设计随笔07的相关文章

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

可用性既取决于关于系统业务流程的设计决策,也取决于具体的程序设计工作.细微处的决定可能会对使用的效率和难易程度产生重大影响.如果有那么一个简单的剪贴板功能,让工作人员从系统某个部分拷贝原始文本数据,然后再粘贴到另一个地方,这样就可以减少输入差错,大大缩短完成事务处理的时间.最好是有那样一种基于对象的功能,可以将一个地方的某些数据整个抓取到另一个地方. 对用户界面进行适当组织,以便适合系统所支持的实际任务是十分重要的.虽然工作人员可以找到了办法,用它凑合着完成工作,但更好的工具会使工作大大简化.实

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

开发人员如何对待用户以及用户对有用工具的需求将极大地影响系统的开发成本和工期.研究发现,在人们频繁列举的造成软件开发项目预算超支的原因中,头四项都与软件的用户和使用有关.关于成本超支的头号原因是用户频繁要求更改需求,第二条原因是忽视了必要的用户任务.第三条原因是用户缺乏对其需求的理解,而第四条原因是与用户沟通不够. 这些关于成本超支的原因显然是相互关联的.作为分析或设计人员,我们确实缺少与用户的充分交流.用户往往并不理解他们自己的问题,而且由于我们没有充分与他们沟通,因此没能帮助他们理解和提出自

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

将软件卖出去,是软件成功的最终标志.必须让决策者相信应用程序开发计划的价值;必须让潜在客户看到软件可以满足他们的某种需要.可用性并不总是能够决定软件的销售.有些很难用的软件已被人们广泛使用,有的软件用户界面的确低劣,但却长时间未被淘汰.在每个计算机应用领域中都有这样一个初始阶段,只要一个产品能够完成某些有用的任务就足以在市场上立足或者得到决策者的认可,而不管它如何粗劣.但计算机应用是在不断发展的.设计和开发人员一直在进行设计和开发,并且对基本功能进行扩充和细化.用户开始要求更多的功能和特性,设计

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

以使用为中心的设计方法论来自于反复的改进和完善.它的基础是实际可操作的东西,即那些可供致力于解决真实问题的真实开发人员始终如一地.迅速地产生最好结果的优选实践.以使用为中心的设计包含五个关键的组成元素,将它们结合在一起,可以给软件可用性带来重大改进.这五个关键元素包括:实用设计指南.模型驱动的设计过程.有组织的开发活动.反复改进.质量度量.尽管这些元素组成了一个有机的方法论,但它们各自又都可以被看成是改进软件可用性和用户界面设计的技术. 以使用为中心的设计方法建立在一组基本指南基础之上,这些指南

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

以使用为中心的设计方法的核心是一种特别有效的抽象形式,即基本模型.基本建模方法的根源至少可以追溯到结构化设计方法.在结构化设计方法中,除了用来在软件中实现应用需求的数据结构和算法之外,还引入了数据流图来对应用需求进行定义和描述.后来,基本建模方法经过不断完善,最终成为现代结构化系统分析方法的基础.基本建模方法试图通过与技术无关的理想化的抽象描述来捕获问题的本质.通过假设理想化的技术,可以在摆脱不必要的限制条件或假设的情况下进行模型构造.这样所得到的设计模型更加灵活,有更大的选择空间,而且更容易适

面向过程的软件设计

“面向过程”是一种以过程为中心的编程思想.“面向过程”也可称之为“面向记录”编程思想,他们不支持丰富的“面向对象”特性(比如继承.多态),并且它们不允许混合持久化状态和域逻辑.就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了. 开发阶段的信息流 结构图:程序中模块间的调用关系 1,  模块 2,表示模块A有条件地调用另一个模块B 3,  模块间的信息传递 4,  模块的调用关系和接口 程序的系统结构图 深度:5 宽度:7 结构化设计方法 在系统

软件设计随笔

关于接口:建议接口不包含成员编量,只包括接口.这样功能单一,利于接口聚集,重用. 尤其是基础类库要注意这点.当然带来多写代码. 例如在项目中用类 class A{ interface0(); interface1(); interface2(); interface3(); int kkk; int uuu; }; 如果只要利用A的接口时 ,必须带着kkk,uuu编量.易产生混淆.建议为 lass A{ interface0(); interface1(); interface2(); inte

软件设计6大原则

1.开闭-原则:对于一个软件实体(类,模块,函数等)来说,应该可以扩展,但不可以修改. 对于扩展是开放的(Open for extension),对于更改是封闭的(Closed for modification). 2.单一职责原则(SRP):就一个类而言,应该仅有一个引起它变化的原因. 软件设计就是要发现职责并且把这些职责相互分离,如果你可以想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责,就应该考虑类的职责分离. 3.迪米特法则 4.里氏代换原则 子类必须能够替换掉其父类. 例

软件设计的复杂度

http://blog.csdn.net/horkychen/article/details/45381743 什么是软件设计的复杂度 软件技术发展的使命之一就是控制复杂度(Complexity).从高级语言的产生,到结构化编程,再到面向对象编程.组件化编程等等.关于复杂度的定义并不一致,想要详细了解的可以读读The Many Faces of Complexity in Software Design. 英文中Complex和Complicated有着微妙的不同.但总结起来,软件复杂度偏负面意