那么接口设计,既然它包括了三个方面,一个是模块
或软件构件间的接口设计,我们也可以把它称为内部接口设计,对吧?
那还有,软件与其它软硬件系统之间的接口设计,这属于 外部接口设计。
包括软件与人之间的交互设计,这也属于那个外部接口设计的一部分。
那么,这个系统的接口设计、 用户界面的设计以及与其它系统的接口设计,
它是由穿越系统边界的数据流来定义的。
也就是看一下 穿越这个系统边界的输入数据流有哪些?以及输出的数据流有哪些?这样进而
来确定这个系统之外的,软硬件系统与本系统的外部接口。
包括这个用户与这个系统打、 打交道,也就是说
向这个系统输入什么样的数据流以及从这个系统得到什么样的数据, 这样的一个角度来去设计用户的交互界面。
那么在最终的系统中,数据流
实际上是将成为用户界面中的表单,对吧?报表或者与其它系统进行交互的一些文件或通讯。
所以这些是帮助我们启发,我们怎么能够去进行接口设计的相应的很重要的信息。
那么人机交互界面这部分,应该说是
一个非常重要的一部分,尤其随着这种 internet 互联网的这样的一个发展,
那么外部应用系统的这样的一个迅速的发展和应用呢,使得人们对 于人机交互这部分的重视程度越来越高。
也就是说怎么能够提供良好的 人机交互界面,是这个系统能否在未来占据市场以及被用户接受的关键。
那这个里面我们来看一下,在设计阶段要根据需求把交互的
细节加入到用户界面设计中,那包括了人机交互中所必须实际的 这个显示啊和相应的输入。
那么在人机交互界面 这个部分,因为它是给用户使用的,所以你要设计
良好的人机交互界面的话,你就要来考虑说:用户界面应该有什么样的特性啊?
到底使用这个这个软件的用户都是些什么人? 那么他们在这个,与这个计算机系统在这个使用的过程中,
他怎样去学习?或者与,怎样与这样的系统进行交互?你要去捕捉这样的一些关键的信息。
包括用户跟这个系统打交道的过程中,他需要完成哪些的工作。
这样的一部分的信息,是帮助你确立说你的一些交互的细节。
所以,从一个 这个客观的角度,用户界面应该具有这样的三点的 特性。
那么第一个是可使用性。
也就是说,用户界面设计它最重要的目标,就是说 包括使用要简单,用户的使用界面要风格一致,不要相当于从这个界面
还是小清新型,对吧?下一个已经跳到了一个相当于这个跃进式的,
所以这种情况下可能不符合人们整个在使用这种方式和心理上的这样一个接受。
那么,还有一个就是说,你要尽量的去多提供一些 help
帮助,尤其 对那些初学者,那么对那些经验特别欠缺的人来说,
那么,多通过这种比较自动的给他提供一些尽可能的帮助,
这样的话能帮助他去更好的去使用或获取系统的这样的一些功能。
那么还有一个就是说,快速的系统的响应。
这个一个系统做得再好,对吧?如果输进去了 相当于没有任何的结果,我要等半天,我相信没有人相当于能去忍受的,他宁可选择一个功能-
差一点, 不太完美的这个系统。
所以快速的系统响应,也是作为你人机交互界面里面要考虑的一点。
还有低的系统成本。
不要说开发这样的一个这个系统啊,
我要我这个系统特别的炫,我们要实行触摸式的,得先买触摸屏, 要不这系统不能做。
如果这样的一个成本上去了,我觉得 这个用户,你想一想,用户群可能就会有一定的限定。
因为毕竟是这个 不是所有的人都有这样的一个接受很贵的一个软件的这样的一个习惯。
那么另一点就是说容错能力。
这个系统怎么能够相当于出错的时候,相当于能够去
进行一些这种恢复,它能够进行自动的这样的一些相当于就是说对于错误的这样的一个
容忍,能够相当于去进一步的不影响它的正常 工作。
所以这些方面我们都需要去考虑。
那还有一点就是灵活性。
也就说用户是各种各样的, 那用户的能力和知识水平也是各不相同的。
所以这个里面, 那么你用户界面的这个时候,你要考虑你尽可能的去满足不同用户的要求。
当然, 你一定,你的一个系统的设计要划分出它的主要的使用人群。
那么这个在满足主要使用人群的这样的一个它的功能需求的情况下, 再去满足尽可能覆盖其他各种类型的用户。
所以在这个里面,灵活性就是说尽可能满足 多种的用户的需求,就要你去考虑的事情了。
那还有一个可靠性。
用户界面的可靠性是指无故障使用的间隔时间。
那么这里面应该能保证用户正确、 可靠的使用系统。
不要说我在使用这个系统的时候,特别担心我这个数据相当于不安全,对吧? 被广泛地传播了,对吧?比如说尤其你使用微信的时候一不小心,对吧?
相当于你的一个私密的谈话就出去了,所以这种造成了不好的影响,包括你在这个里面 存储的一些数据、
跟这些系统打交道的这样一些数据,你都要尽可能的考虑它的这种安全性的保障。
那么用户的类型,我觉得这个,
大家一看也是很容易理解,比如说一个计算机系统,它总是会有外行型,对吧?
对计算机系统认知非常少毫无了解的,那么 初学者是对计算机系统有一定的经验,那么对系统的认知不足,
所以这个时候对于这些人群需要很多界面的支持。
那么大家说对一个外行型,那这个时候尽可能地 自动化那就不是很多界面的支持,那就希望尽可能比如说
能够把他当作一个一无所知的情况下怎么能够帮助他去使用这个系统,所以这一部分的设计应- 该说是最困难的。
所以我们更多地是考虑到说对于初学者比如说,他 有一点点经验,但是不足,我们怎么去提供界面的
支持,那么对于熟练型,对一个系统有一些经验, 那么他呢不能还处理这个意外的这个错误的时候,
那么我可能给他提供一些界面的支持就相对少一些, 那么专家型,对吧?比如说很多同学对于相当于这个底层的这个操作系统,
包括相当于里面的计算机的这个系统结构已经是特别的清晰,
那在这里面,他知道什么地方可能是出错,所以这个时候你就要 能给他们提供一些易于扩展和修改系统的这个复杂界面的这样一个能力,
当然这种引入也要看他是不是这种用户是安全的,对吧?也就说,会不会他就是
将来是黑客,对吧?你这个系统就变成了一个潜在的这样的一个、 这个破解者,所以
这一部分的时候要来考虑这个用户的类型怎么去满足他们不同方面的需求。
那么界面的设计我们要考虑的就是说一方面大家一想到界面嘛,一定要美观,
对吧?这个肯定是要美学在里面,但是更多我们从计算机的角度来看一下,说,在这个设计中,
我们怎么从用户与计算机交互的这样一个角度来看, 那么设计中涉及到的比如说有描述语言、
那么数据表格、 图形、 菜单、 对话、 窗口等等,那么在这些
这个设计的类型或者设计的这样一些单元的时候我们可以去选择一些 我们用户易于去使用或者是说
很多用户群特别喜欢的这样一些方式,那么去融入到我们的这个交互的设计的细节中。
那在这里面我们通过什么来考虑呢,就是说一个是使用的难易程度,对吧?尽可能的
使用的简单,另一个学习的难易程度,也让他降低学习的成本,很容易上手,
那么包括这样的一个界面使用起来速度很快, 那么复杂程度,这个界面到底提供哪些功能,也就是说是否有一些方式啊
整个先来需要组合才能够去增强界面的本身的这样的一个功能,如果这种情况你就要来考虑
我怎么能够降低这种复杂性,让用户能够轻松地去使用它。
那还有一个就是控制,人机交互的时候,由计算机还是由人来发起
控制对话,也就是到底是由谁开始这个进程和线程的这个对话的,所以这个里面你要来考虑
那么还有就是开发的难易程度,对吧?就是你的这个软件 的这个开发小组它熟悉什么样的一些编程的这个环境,
那么包括对于界面的这个开发中相当于,如果他选择了一些开发平台可能
这些人又有一些经验的话,可能开发的工作量就比较的小。
所以这个里面要做对开发小组的一些经验做评估,来看一下 尽量控制开发这个难易程度。
所以一个界面的设计通常使用一种以上的这样的一个
设计类型,那么每种类型可能与一组或者一组任务相匹配。
就这个里面大家有一个了解。
那详细设计的交互的时候你还要
来遵循一些原则,比如说界面的一致性,这个大家很好理解,操作的步骤尽可能的少,对吧?
那么不要"哑播放",什么叫"哑播放"?这个系统在运行的时候,对吧? 给它点提示音,对吧?就像那
win98 奏起胜利的小鼓,对吧?你或者给一点那个 这个好听的音乐,表明这个系统还在运行着,它不是出现死机了或者
等等,这样用户在使用过程中他知道你这个系统还在运行,没有出现意外。
那么还有提供 Undo 功能,我觉得这个
Undo 这个相当于这个回溯功能,是非常重要的,也就是说,
很多人我现在做了, okay ,我就做了。
但是可能我做的这个东西对于系统而言它是一个本身我不要的一个功能,
那么也可能比如说我真的觉得我做了这些东西可能对我后续功能的这样使用产生很多的这样的- 一个影响。
那这个时候呢这个 Undo 就非常的这个重要,所以我们尽可能地考虑说,
不是说用户所有的操作都是有效操作,他很可能有一些操作是无效操作。
那在这里面怎么去避免他的一些,可能还带了一些不太好影响的一些无效操作。
那么还有减少这个人脑的记忆负担,也就是不要让人每次操作的时候都得记住, 哎呀,我要记住我的
password ,我觉得我就很简单在我的计算机系统我的这个 什么等等,我的
password 非常类似只是有一点点的区别,我这样很容易记。
大家要熟悉我的很容易破解我,对吧?所以有利有弊,但是这里面我的确减少了一些记忆,否- 则我原来的
这个找这个账户的,这个账号经常费很多的时间,我还把它存在某个
这个目录下,完事还要在一个不显眼的一个文件 中对吧?总是想着各种的账号的这种信息,所以这里面
你也要来考虑说,在你的这个人机交互的操作中,不要让
人的记忆去指导你的操作,尽可能地让它很、 很轻松地相当于能进入。
所以比如说我们现在的一些,对吧?网页 提供了一些推荐机制,它记住你上一次浏览的
这个页面的类型,对吧?你可能是教育的或者游戏的或者等等,它最开始
就进入了问你是不是要到那个页面,所以这样的话实际上是帮助你相当于去减少你的这样一- 些负担。
那么还有一个提高学习的效率,也就是说在这个过程中,就是
怎么能够让他在交互的过程中相当于能够很容易去学习,同时
能够帮助他尽可能地很好地去使用这样的一个系统,所以这个提高学习效率里面很多情况下是- 通过这种
比如说 help 的这样一个帮助格式的设计。
所以这里面大家就看对吧?现在很多的相当于给提供一个 tutor 对吧?
一些一些导读,对吧?而且是图文并茂的,一下子一看就知道怎么去使用。
那么这种,还有的相当于通过一段小的视频告诉你怎么去使用,所以你也可以去 就是在你的系统使用中设置这样一些帮助。