-
2018-11-14 15:42:17
用户界面设计是为了满足软件专业化标准化的需求而产生的对软件的使用界面进行美化优化规范化的设计分支。具体包括软件启动封面设计,软件框架设计,按钮设计,面板设计,菜单设计,标签设计,图标设计,滚动条及状态栏设计,安装过程设计,包装及商品化。
我们常常听到的UI(User Interface)就是软件界面,是人机交互的重要部分,也是软件使用的第一印象,是软件设计的重要组成部分。用户界面设计的内容包含很多,我们这次是初次遇到,在此对其进行宏观的把控,看一下她都包含哪些内容。
用户界面设计思维导图:
以上便是用户界面设计所涉及到的内容,我们用来看似简简单单的一个用户界面却包含了如此多的思考内容,我们需要学习的东西还有很多啊,平常我们看到软件的时候只会直接点击进入,体验里面的内容,而很少会去思考她的界面为什么要如此设计,相信在经过这次的梳理后,以后再看软件界面时便会驻留思考了,多多学习别人的优秀成果,站在巨人的肩膀上前行!
更多相关内容 -
软件工程界面设计报告
2008-11-17 18:21:10软件工程界面设计是为了满足软件专业化标准化的需求而产生的对软件的使用界面进行美化优化规范化的设计分支。界面设计文档可以让用户对软件产品有了更直观的了解,并且了解各个模块的设计及用意。 -
软件工程界面设计报告.doc
2010-11-20 16:58:02软件工程界面设计报告.doc 软件工程界面设计报告.doc 软件工程界面设计报告.doc -
软件工程用户界面设计报告书.doc
2021-09-22 12:13:54软件工程用户界面设计报告书.doc -
软件工程课程设计报告.docx
2019-06-22 22:47:16软件工程课程设计电影院系统(文档),电影院系统,包括可行性分析,需求分析,界面设计,软件设计,软件测试,项目管理,偏向理论,纯文档类 -
软件工程实验图书管理系统
2021-03-02 18:03:11本次软件工程实验,我选择的是图书管理系统,数据库采用SQL Server软件,界面实现部分我采用的是Visual Studio C#编写,文件中包含数据库文件、界面实现的代码、实验中各部分的数据流图以及架构图,实验报告和各部分... -
《软件工程》实验报告——软件设计
2020-11-19 13:55:13掌握软件体系结构设计; 了解常用软件设计模式; 将实验过程中形成的图形、文字内容插入本文档。 二、实验内容 1、当前Web前端最经典的软件体系结构模式是MVC模式(Model-View-Controller),其中的三个组成...一、实验目的
- 掌握Axure RP软件基本用法;
- 掌握软件体系结构设计;
- 了解常用软件设计模式;
将实验过程中形成的图形、文字内容插入本文档。
二、实验内容
1、当前Web前端最经典的软件体系结构模式是MVC模式(Model-View-Controller),其中的三个组成部分为:
- V即View视图是指用户看到并与之交互的界面。比如由html元素组成的网页界面,或者软件的客户端界面。MVC的好处之一在于它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,它只是作为一种输出数据并允许用户操纵的方式。
- M即Model模型是指模型表示业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
- C即Controller控制器是指控制器接受用户的输入并调用模型和视图去完成用户的需求,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。
在一个复杂的Web站点中,处理一个请求时,需要做很多类似的工作,包括安全认证、国际化、为特定用户提供特殊视图等。如果输入控制器行为分散为多个对象中,这种行为相当一部分会在各处被复制,同时,在运行时改变行为也比较难。前端控制器通过引导请求经过一个处理程序对象来统一所有的请求处理,可以执行一些通用的行为,并且在程序运行时采用decorators来修改这些行为。然后,处理程序就调度一些command对象来处理某一请求的特定行为。前端控制器模式类图如下:
根据上述描述,先画出前端控制器+MVC模式的顺序图,再根据所学的软件分析方法导出MVC模式对应的类图。
2、利用Axure RP软件模仿类似下方的一个Web页面:
操作过程:
1)准备各项元件。从元件库中将所需元件拖放到页面上。如需图片,可从百度下载或搜索得到。按照示例页面,设备各项元件的对齐关系和样式。注意:复选框和右边的链接文字是两个不同元件,只是靠得近。保存,点击菜单“发布>预览”,在浏览器中打开。以后改动该文件后,只要刷新浏览器页面,就可观察到最新的页面。
2)添加两个标签,放置在第一与第二文本框后,内容分别为“不得为空”和“密码长度不得小于6个字符”,并设置隐藏。
3)为第一个文本框添加事件。点击“失去焦点时/设置可见性”,下方选择标签“不得为空”,再点击下方“确定”按钮。然后点击“启用用例”按钮,弹出条件设置对话框,点击“添加逻辑”,设置如下。这表明如果文本框是空的,就会将“不得为空”显示出来。
你可以添加更多的逻辑,如判断手机号是否正确,判断邮箱是否正确等。
4)为密码输入框添加类似事件,当密码长度小于6时显示提示。
5)为“换一张”添加事件,点击时将其左边验证码换掉。
6)为“用户协议”标签、“注册”按钮、右上角“登录”按钮添加事件,转至其它页面(其它页面内容不作要求)。
保存本文件,随实验报告一起上交。
3、了解并练习装饰模式的用法
设计模式中装饰模式的介绍如下:
装饰(Decorator)模式的意图
- 意图:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator 模式比生成子类更为灵活
- 适用场合:
1)在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责;
2)当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立扩展,每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况是因为类定义被隐藏,或类定义不能用于生成子类
装饰模式的结构:
- Component:对象接口:可以给对象动态地添加职责
- ConcreteComponent:具体对象
- Decorator:维持一个指向Component对象的指针,并定义一个与Component接口一致的接口
- ConcreteDecorator:向组件添加职责
- Decorator将请求转发给它的Component对象,并有可能在转发请求前后执行一些附加的动作
装饰模式的评价:
- 使用Decorator模式可以很容易地向对象添加职责。可以用添加和分离的方法,在运行时添加和删除职责
- 使用Decorator模式可以很容易地重复添加一个特性,而两次继承则极容易出错
- 避免在层次结构高层的类有太多的特征:可以从简单的部件组合出复杂的功能。具有低依赖性和低复杂性
- 缺点:Decorator与Component不一样,使用装饰时不应该依赖对象标识;有许多小对象
基于上述内容,编写代码,以两种方式实现该模式:。
例1:游戏中,角色Character可以有属性attack, defence,可以有装备weapen, armour,可以对属性造成影响,它们可以是类的属性;可以随时变成巨人gigantize,可以变狂暴furious,都可以对attack和defence形成影响,它们可以形成装饰。
package io.shentuzhigang.demo.design; import org.junit.jupiter.api.Test; /** * @author ShenTuZhiGang * @version 1.0.0 * @date 2020-11-19 14:22 */ public class DecoratorTEST{ @Test public void t(){ Character person = new ConcreteCharacter(); Decorator decorator = new Gigantize( new Person(person)); decorator.weapen(); decorator.armour(); } } interface Character { public void weapen(); public void armour(); } class ConcreteCharacter implements Character{ @Override public void weapen() { System.out.println("ConcreteCharacter+weapen"); } @Override public void armour() { System.out.println("ConcreteCharacter+armour"); } } abstract class Decorator implements Character{ private Character character; public Decorator(Character character){ this.character = character; } String attack; String defence; @Override public void weapen() { this.character.weapen(); } @Override public void armour() { this.character.armour(); } } class Person extends Decorator { public Person(Character character) { super(character); } @Override public void weapen() { super.weapen(); System.out.println("Person+weapen"); } @Override public void armour() { super.armour(); System.out.println("Person+armour"); } } class Gigantize extends Decorator { public Gigantize(Character character) { super(character); } public void furious(){ System.out.println("furious"); } @Override public void weapen() { super.weapen(); System.out.println("Gigantize+weapen"); } @Override public void armour() { super.armour(); System.out.println("Gigantize+armour"); } }
例2:考试成绩Score,如果直接告诉(report)成绩(例如65分),家长会生气;加一个装饰器,先告诉家长,这次考试比上次增加了几分,家长会比较高兴;加一个装饰器,告诉家长,这次考试最高成绩比我只高一点,家长也会比较高兴;加一装饰器,告诉家长,这次考试班级排名前列,家长也会比较高兴。
package io.shentuzhigang.demo.design.score; import org.junit.jupiter.api.Test; /** * @author ShenTuZhiGang * @version 1.0.0 * @date 2020-11-19 18:40 */ public class ScoreTEST { @Test public void t(){ Person person = new Person(); Decorator decorator = new Decorator_zero(new Decorator_first( new Decorator_two(person))); decorator.report(); } } interface Reportor{ void report(); } abstract class Decorator implements Reportor{ private Reportor reportor; public Decorator(Reportor reportor){ this.reportor = reportor; } @Override public void report() { reportor.report(); } } class Decorator_zero extends Decorator { public Decorator_zero(Reportor reportor) { super(reportor); } @Override public void report() { System.out.println("这次考试比上次增加了几分"); super.report(); } } class Decorator_first extends Decorator { public Decorator_first(Reportor reportor) { super(reportor); } @Override public void report() { System.out.println("这次考试最高成绩比我只高一点"); super.report(); } } class Decorator_two extends Decorator { public Decorator_two(Reportor reportor) { super(reportor); } @Override public void report() { System.out.println("这次考试班级排名前列"); super.report(); } } class Person implements Reportor { @Override public void report() { System.out.println("65"); } }
参考文章
设计模式——装饰者(Decorator)模式DEMO——成绩汇报的装饰者模式实现
-
软件工程导论09-人机界面设计
2021-03-13 16:13:40人机界面设计 人的因素 人的因素主要包括 人对感知过程的认识 用户的技能和行为方式 用户所要求完成的整个任务以及用户对人机界面部分的特殊要求。 人对感知过程的认识 人通过感觉器官认识客观世界,因此设计用户...人机界面设计
人的因素
人的因素主要包括
- 人对感知过程的认识
- 用户的技能和行为方式
- 用户所要求完成的整个任务以及用户对人机界面部分的特殊要求。
人对感知过程的认识
- 人通过感觉器官认识客观世界,因此设计用户界面时要充分考虑人的视觉、触觉、听觉的作用。
- 人机界面是在可视介质上实现的,如正文、图形、图表等。
- 人们根据显示内容的体积、形状、颜色等种种表征来解释所获取的可视信息。
- 因此,字体、大小、位置、颜色、形状等都会直接影响信息提取的难易程度。很好地表示可视信息是设计友好界面的关键。
- 用户从界面提取到的信息需要存入人的记忆中,供以后回忆和使用。在设计人机界面时不能要求用户记住复杂的操作顺序。
- 大多数人遇到问题时不进行形式的演绎和归纳推理,而是使用一组启发式策略,这组策略是以往对类似问题的处理中逐渐获得的。
- 因此,设计人机界面时应便于用户积累有关交互工作的经验,同时要注意启发式策略的一致性,不宜受特殊交互的影响。如,undo、exit等有统一的含义、位置和表示。
用户的技能和行为方式
- 用户本身的技能、个性上的差异、行为方式的不同,都可能对人机界面造成影响。不同类型的人对同一界面的评价也不同
- 终端用户的技能直接影响他们从人机界面上获取信息的能力,影响交互过程中对系统作出反应的能力,以及使用启发式策略与系统和谐地交互的能力
- 应根据用户的特点设计人机界面
用户分类
- 外行型:不熟悉计算机操作,对系统很少或毫无认识
- 初学型:对计算机有一些经验,对新系统不熟悉,需要相当多的支持
- 熟练型:对系统有丰富的使用经验,能熟练操作,但不了解系统的内部结构,不能纠正意外错误,不能扩充系统的能力
- 专家型:了解系统内部的结构,有系统工作机制的专门知识,具有维护和修改系统的能力,希望为他们提供具备修改和扩充系统能力的复杂界面
例如:WinXp控制面板的向导功能适合不太熟练的用户
人体测量学对设计的影响
人具有多样性,人机界面设计必须符合使用该系统的用户的特点。
人的多样性包括:(深宫认个蚊)
- 身体能力的多样性
- 工作环境的多样性
- 认知能力的多样性
- 个性的多样性
- 文化的多样性
不同的用户在使用软件系统时所处的环境也不同,而工作环境对于用户的使用也有很大的影响。不适合的环境会增加系统的出错概率,降低用户的工作效率。(人的电脑不同)
不同用户的认知能力差异很大。对人机界面设计者来说,对用户的认知能力的理解非常重要。设计人机界面必须考虑到不同用户的认知能力,控制系统的复杂度和学习开销。
个性差异体现在很多方面
- 例如男性和女性个性差异就是一种基本的个性差异。在开发游戏软件方面,需要考虑到用户的个性特点。这方面并没有统一的标准和测量方法,但越来越多的实践表明,对于不同个性的用户调查其使用习惯进行设计是必要的。
文化差异体现在民族、语言等用户文化背景的差异
- 不同地区的设计者对于其他地区的文化缺少了解。为了解决文化差异,需要将软件系统国际化和本地化,人机界面也必须支持国际化和本地化设计。
主要的可测的人性因素
- 用户时间:在系统面向的使用者集合中,选择一些具有代表性的典型用户,统计其使用系统完成一系列特定任务所需要使用的时间。
- 基准时间:统计系统正确完成基准任务需要的时间。
- 基准出错率:在系统面向的使用者集合中,选择一些具有代表性的典型用户,统计其在完成基准任务时所犯的错误情况。
- 任务出错率:在系统面向的使用者集合中,选择一些具有代表性的典型用户,统计其使用系统完成一系列特定任务时所犯的错误情况。
- 学习能力:在系统面向的使用者集合中,选择一些具有代表性的典型用户,统计其学习使用系统的时间。
- 记忆能力:在系统面向的使用者集合中,选择一些具有代表性的典型用户,统计其在使用系统后的记忆保持时间。
- 主观看法:在系统面向的使用者集合中,选择一些具有代表性的典型用户,统计其使用系统后的主观满意情况
说明
- 以上几种可测量的人性因素并不是每种都能在设计中保持在最佳状态,在设计时,必须根据实际情况进行取舍。
- 如果要维持比较低的出错率,那么系统的效率可能就要变差;如果要保证系统的效率,那么用户的学习时间就要增加,记忆时间也会减少。
- 在进行人机界面设计时,就要针对系统的用户集合和任务集合对设计目标进行论证或折衷。
人机界面风格
-
第一代:命令和询问方式的界面
- 正文形式的通信,通过用户命令和用户对系统询问的响应来完成。
- 由于使用正文通信,因此用户容易出错,界面不友善,难以学习。
-
第二代:简单的菜单式界面
- 与第一代界面相比不易出错,但使用起来乏味,逐层进行不能一步到位。
-
第三代:窗口、图标、菜单、指示器四位一体的界面
- 能同时显示不同种类的信息,可在多个工作环境(窗口)中切换,窗口使用户能自如地执行许多通信型和认知型任务
- 通过下拉式菜单可方便地执行控制型和对话型任务
- 引入图标、下拉式菜单、按钮和滚动杆技术,可大大减少键盘输入,提高交互效率
-
第四代:第三界面与超文本、多任务概念相结合的界面,用户可同时执行多个任务。
语言界面
(小黑窗cmd)
- 根据语言的特点,命令语言界面可分为:
- 形式语言。这是一种人工语言,特点是简洁、严密、高效,不仅是操纵计算机的语言,而且是处理语言的语言
- 自然语言。特点是具有多义性、微妙、丰富
- 类自然语言。这是计算机语言的一种特例
- 命令语言要求惊人的记忆和大量的训练,并且容易出错,使入门者望而生畏,但比较灵活和高效,适合于专业人员使用。
图形用户界面
- **图形用户界面(GUI-Graphics User Interface)**是当前用户界面的主流,广泛应用于各档台式微机和图形工作站
- 当前各类图形用户界面的共同特点是以窗口管理系统为核心,使用键盘和鼠标器作为输入设备。窗口管理系统除基于可重叠多窗口管理技术外,广泛采用的另一核心技术是**事件驱动(Event-Driven)**技术
- 图形用户界面和人机交互过程极大地依赖视觉和手动控制的参与,因此具有强烈的直接操作特点
- 图形用户界面中菜单的表现形式比字符用户界面更为丰富,在菜单项中可以显示不同的字体、图标甚至产生三维效果。
- 菜单界面与命令语言界面相比,用户只需确认而不需回忆系统命令,从而大大降低记忆负荷。但菜单的缺点是灵活性和效率较差,可能不十分适合于专家用户。
- 基于图形用户界面的优点是具有一定的文化和语言独立性,并可提高视觉目标搜索的效率。
- 图形用户界面的主要缺点是需要占用较多的屏幕空间,并且难以表达和支持非空间性的抽象信息的交互。
直接操纵用户的界面
- 直接操纵(Direct manipulation)用户界面是Shneiderman首先提出的概念,直接操纵用户界面更多地借助物理的、空间的或形象的表示,而不是单纯的文字或数字的表示。
- 从用户界面设计者角度看:
- 设计图形比较困难,需大量的测试和实验
- 复杂语义、抽象语义表示比较困难
- 不容易使用户界面与应用程序分开独立设计
- 总之,直接操纵用户界面不具备命令语言界面的某些优点
多媒体用户界面
- 多媒体用户界面被认为是在智能用户界面和自然交互技术取得突破之前的一种过渡技术。
- 多媒体技术引入了动画、音频、视频等动态媒体,特别是引入了音频媒体,从而大大丰富了计算机表现信息的形式,拓宽了计算机输出的带宽,提高了用户接受信息的效率。
- 多媒体用户界面丰富了信息的表现形式,但基本上限于信息的存储和传输方面,并没有理解媒体信息的含义,这是其不足之处,从而也限制了它的应用场合。
多通道用户界面
- 80年代后期以来,**多通道用户界面(Multimodal User Interface)**成为人机交互技术研究的崭新领域,在国际上受到高度重视。
- 多通道用户界面综合采用视线、语音、手势等新的交互通道、设备和交互技术,使用户利用多个通道以自然、并行、协作的方式进行人机对话,通过整合来自多个通道的精确的和不精确的输入来捕捉用户的交互意图,提高人机交互的自然性和高效性。(解锁时选择指纹识别还是人脸识别还是画图案)
人机界面分析与建模
人机界面设计过程
- 人机界面的设计过程是迭代的,包括四个不同的框架活动
- 用户、任务和环境分析及建模
- 界面设计
- 界面构造
- 界面确认
- 设计人员首先分析将与系统交互的用户的特点。记录下技能级别、业务理解以及对新系统的一般感悟,并定义不同的用户类别。对每一个用户类别,进行需求诱导。软件工程师试图去理解每类用户的系统感觉。
- 一旦定义好一般需求,将进行更详细的任务分析。标识、描述和精化那些用户为了达到系统目标而执行的任务
- 用户环境分析关注系统物理工作环境。通常问这样一些问题:
- 界面将物理地位于何处?
- 用户是否坐着、站着或完成其他和该界面无关的任务?
- 界面硬件是否适应空间、光线或噪音的约束?
- 是否需要考虑特殊的由环境因素驱动的人的因素?
- 界面设计的目标:是定义一组界面对象和动作(以及它们的屏幕表示)。设计完成后,软件工程师根据设计方案,使用实现工具完成界面的构造。
- 界面确认关注:
- 界面正确地实现每个用户任务的程度、适应所有任务变更的能力以及达到所有一般用户需求的能力
- 界面容易使用和学习的程度
- 用户接受界面作为它们工作中有用工具的程度
人机界面设计中涉及的模型
- 软件工程师创建的设计模型(design model):整个系统设计模型包括对软件的数据结构、体系结构、界面和过程的表示。界面设计往往是设计模型的附带结果。
- 人机工程师创建的用户模型(user model):用户模型描述系统终端用户的特点。设计前,应对用户分类,了解用户的特点,包括年龄、性别、实际能力(physical abilities)、教育、文化和种族背景、动机、目的以及个性。
- 终端用户在脑海里对界面产生的映象,称为用户的模型(user´s model)或系统感觉(system perception):系统感觉是终端用户主观想象的系统映象,它描述了期望的系统能提供的操作,其描述的精确程度依赖于终端用户对软件的熟悉程度。(脑中运行程序)
- 系统实现者创建的系统映象(system image):系统映象包括基于计算机的系统的外在表示(界面的观感)和用来描述系统语法和语义的支撑信息(书、手册、录像带、帮助文件)。如果系统映象和系统感觉是一致的,用户就会对软件感到很舒服,使用起来就很有效。
任务分析的途径和方法
-
进行任务分析有两种途径
1、剖析原有应用系统(可能是手工的或是半手工方式)的工作步骤,将其映射到人机界面上执行的一组任务
2、通过对系统需求规格说明的分析,导出与设计模型、用户模型和系统感觉相协调的一组任务。
无论通过什么渠道进行任务分析,软件工程师必须首先定义任务并对任务分类,进行任务分析可以采用逐步精化的方法和面向对象的方法。
-
例如:
一个小软件公司想要为室内设计人员建立一个计算机辅助设计系统,采用逐步精化的方法,通过设计人员观察,了解到室内设计主要包括以下活动:
- 色调设计
- 家具布置
- 材料选择
- 涂料选择
- 对用户的展示
- 商品价格和购买
-
可以将每项任务细分成子任务 .
-
例:家具布局可分为:
- 基于房间格局画出楼层平面图;
- 将门窗放在适当位置;
- 用家具模板在平面图上画出家具轮廓;
- 将家具轮廓放到最合适的位置;
- 标记出所有家具轮廓;
- 画出尺寸以确定位置;
- 画出客户的视图。
-
对于其他的每个主要任务也可以进行类似的划分
-
另一种任务分析方法采用了面向对象的观点。软件工程师观察室内设计人员使用的物理对象以及施加在每个对象上的动作
-
例如,家具模板应是这种任务分析方法中的一个对象,室内设计人员可以“选择”适当的家具模板,将其“移动”到合适的位置,“画出”家具模板的轮廓等等。
界面设计活动
定义界面对象和动作
**界面设计过程可以按照以下方式进行 **
- 建立任务的目标和意图
- 将每个目标或意图映射为一系列特定的动作
- 按在界面上执行的方式说明这些动作的顺序
- 指明系统状态,即执行动作时的界面表现
- 定义控制机制,即用户可用的改变系统状态的设备和动作
- 指明控制机制如何影响系统状态
- 指明用户如何通过界面上的信息解释系统状态
分析用户场景
也就是,写下一个用户场景的描述,将名词(对象)和动词(动作)分离出来,形成对象和动作的列表。
屏幕布局
进行图符的图形设计和放置、屏幕文字的定义、窗口的规约和命名以及各种菜单项的定义
制订一份指导工作的文档
制订一份指导工作的文档通常是设计的关键。在设计的初期就应该不断完善这份文档。指导文档必须是动态的
指导文档
设计问题
- 系统响应时间
- 用户求助设施(user help facilities)
- 错误信息处理
- 命令标记(command labeling)
系统响应时间
系统响应时间指从用户执行某个控制动作(如按回车键或点鼠标)到软件作出响应(期望的输出或动作)的时间。系统响应时间长会使用户感到不安和沮丧。稳定的响应时间(如1秒)比不定的响应时间(如0.1秒到2.5秒)要好。
用户求助设施
关于求助设施,在设计时须考虑如下问题:
- 在系统交互时,是否总能得到各种系统功能的帮助?是提供部分功能的帮助还是提供全部功能的帮助。
- 用户怎样请求帮助?使用帮助菜单、特殊功能键还是HELP命令。
- 怎样表示帮助?在另一个窗口中、指出参考某个文档(不是理想的方法)还是在屏幕特定位置的简单提示。
- 用户怎样回到正常的交互方式?可做的选择有:屏幕上显示返回键、功能键或控制序列。
- 怎样构造帮助信息?是平面式(所有信息均通过关键字来访问)、分层式(用户可以进一步查询得到更详细的信息)还是超文本式。
错误信息处理
交互系统给出的出错消息和警告应具备以下特征:
- 消息以用户可以理解的术语描述问题
- 消息应提供如何从错误中恢复的建议性意见
- 消息应指出错误可能导致哪些不良后果(比如破坏数据),以便用户检查是否出现了这些情况或帮助用户进行改正
- 消息应伴随着视觉或听觉上的提示,也就是说,显示消息时应该伴随警告声或者消息用闪耀方式,或明显表示错误的颜色显示
- 消息应是“非批评性的”(nonjudgmental),即不能指责用户
命令标记
在提供命令交互方式时,必须考虑以下问题:
- 每一个菜单选项是否都有对应的命令?
- 以何种方式提供命令?控制序列(如Alt + P)、功能键还是键入命令。
- 学习和记忆命令的难度有多大?命令忘了怎么办?
- 用户是否可以定制和缩写命令?
黄金原则
- 让用户拥有控制权
- 减少用户的记忆负担
- 保持界面一致
让用户拥有控制权
- 交互模式的定义不能强迫用户进入不必要的或不希望的动作的方式
- 提供灵活的交互
- 允许用户交互可以被中断和撤销
- 当技能级别增长时可以使交互流水化并允许定制交互
- 使用户隔离内部技术细节
减少用户的记忆负担
- 减少对短期记忆的要求
- 建立有意义的缺省
- 定义直觉性的捷径
- 界面的视觉布局应该基于真实世界的隐喻
- 以不断进展的方式揭示信息
保持界面一致
- 允许用户将当前任务放在有意义的语境中
- 在应用系列内保持一致性
- 不要改变用户已经熟悉的用户交互模型
实现工具
- 创建设计模型后,通常可使用相关的工具开发界面原型,由用户检查,然后根据用户的意见进行修改,这些工具被称为用户界面工具箱或用户界面开发系统(UIDS)
- 它们把一般应用程序定义界面时所必需的界面元素,如窗口、菜单、窗口中的控件(如命令按钮、对话框等)预定义为对象,并预测每个对象可能需要作出的响应事件(例如单击鼠标或按键等),将这些预定义的对象组织成构件库,每个对象有自己的属性、方法和事件过程。
同时UIDS提供以下的内建(built-in)机制:
- 管理输入设备(如鼠标和键盘)
- 确认用户输入
- 处理错误和显示出错消息
- 提供反馈(如自动的输入响应)
- 提供帮助和提示
- 处理窗口、field和窗口内的滚动
- 建立应用软件和界面间的连接
- 将应用程序与界面管理功能分离
- 允许用户定制界面
使用UIDS软件工程师可以不必一点一滴琐碎地编写界面,而把主要精力集中在要解决的问题上
同时,在同一平台上开发的应用程序能有一致的界面风格,相似的任务总在相似的外貌的界面上运行,使用户在操作应用程序时感到得心应手,并对其结果有信心。
设计评估
- 一旦建立好操作性用户界面原型,必须对其进行评估,以确定是否满足用户的需求。
- 对任何一个应用系统,评估计划必须包含长期持续测试的方法,以便对界面在整个生命周期里出现的各种问题进行不断的评估和修正。
- 对于关键系统的界面设计,需要开发出特别的评估计划,例如核反应堆等系统的人机界面。
- 有效的设计评估包括专家评审和可用性测试。
专家评审
- 正式的专家评审需要依托专家作为支柱或者顾问,这些专家往往具有丰富的应用领域或者用户界面领域的专业知识。
- 专家评审可以在设计阶段的前期或者后期进行。
- 对于评审的结果,可以由进行评审的专家们出一份正式的报告,其中包含评审中所发现的问题以及对其修改的建议,或者由这些专家与设计人员或者管理人员直接进行面对面的讨论。
- 专家评审的方法包括启发式评审、指导文档评审、一致性检查、认知尝试和正式的可用性评审。
启发式评审
评审人员对界面进行评判,以便使其与一系列的设计启发规则相符合,如果评审人员熟悉这些规则并能够理解应用,那将对评审非常有利。
指导文档评审
检查所涉及的界面与组织内的指导文档或者其他的一些指导文档是否相符
一致性检查
检查所有同类界面的一致性,检查内容包括实际界面中的术语、颜色、布局、输入输出格式等与培训材料或者在线帮助是否一致。
认知尝试
专家模仿用户使用界面执行典型的任务。以执行频率高的任务作为起点进行尝试,但执行较少的关键性任务,如错误恢复等也都要尝试到。
正式的可用性评审
专家们组织一场讨论,整个设计小组的成员也参与其中,仲裁设计的利弊。
专家评审可能出现以下问题
专家对任务或用户缺乏足够的理解,且对项目目标有不同的意见,所以必须选择熟悉项目,经验丰富的专家组成专家小组
可用性测试
- 可用性:指的是产品的使用效率、易学性和舒适程度。
- 对界面进行可用性测试和评价,是确保产品可用性的重要手段。
- 通过各种可用性测试及早发现界面存在的可用性问题,不仅可以节约开发成本,提高产品的品质,还可以降低用户使用产品的心理负荷,减少操作错误,提高工作效率以及对产品的认可度和满意度。
- 在进行可用性测试前,设计者需要制订出具体详细的测试计划,包括任务列表、主观满意标准以及所要询问的相关问题。同时,必须确定参与测试的用户数目、类型和来源。
- 可用性测试可以要求用户完成一系列任务,对用户的完成过程进行记录,再对记录进行评审。这可以给设计人员很大的启发,及时发现缺陷并改正。
虽然可用性测试有很多好处,但也至少存在两种局限性:首先,它强调的是首次使用的情况,其次只能涉及到部分的界面。因为可用性测试不能延续太长时间,很难确定长时间使用后的情况。
例如Microsoft公司的Msn Messanger产品的“用户帮助改进计划”,就是相当庞大的一个可用性测试计划。当然虽然问题可能会不断地出现,但在适当的时候,必须果断地完成原型测试并交付产品
-
《软件工程》-用户界面设计
2018-12-20 15:42:58用户界面设计的任务分析 用户界面任务和工作设计 用户界面设计的基本类型 数据输入界面设计 数据显示界面设计 【内容】 1.用户界面应具备的特性 可使用性、灵活性、复杂性和可靠性 2.用户界面设计的任务分析 这一...【前言】
用户界面应具备的特性
用户界面设计的任务分析
用户界面任务和工作设计
用户界面设计的基本类型
数据输入界面设计
数据显示界面设计
【内容】
1.用户界面应具备的特性
可使用性、灵活性、复杂性和可靠性
2.用户界面设计的任务分析
这一部分工作应与软件系统的需求分析同步进行。它主要包括:
用户特性分析
用户界面是适应人的需要而建立的,目的是要详细了解所有用户的技能和经验,以便能够预测用户对不同界面设计会做出什么反应,这样在更改界面时,就能做出正确的判断。
(1)用户类型
外行型、初学型、熟练型、专家型
(2)用户特性度量
用户特性的度量与用户使用模式及观测到的用户群体能力有关。
用户使用频度
用户是否能够自由选用界面
用户对计算机的熟悉程度
用户知识
用户思维能力
用户的生理能力和技能
用户工作分析
用户工作分析,也称为任务分析。它是系统内部活动的分解。
用户工作分析与需求分析中结构化分析的方法类似,采用自顶向下,逐步进行功能分解。与常规的功能分解不同的是,所有的系统任务,包括与人相关的活动,都要考虑在内。系统的功能分解,可以用数据流图和数据字典描述。
任务可以由一组动作构成,它们规定了为实现这个任务所必须的一系列活动。
任务的细节可以使用结构化语言来表达。它描述了动作完成的序列及在完成动作时的所有例外情况。
用户模型和观点
建立用户的思维模型,是为了帮助建立设计者界面模型。
(1)理论认知模型
由心里学家建立的模型,目的是要了解人的思维过程。
(2)用户知识模型
这种模型描述了一定范畴内的知识以及类型之间的联系。
模型借助各个用户的知识来建立,用遍历知识网络的方法来评价用户如何学习。
(3)用户特性模型
这些模型主要依据在用户特性分析所描述的技能和能力对用户进行分类,它们也被称为用户外观。
(4)用户任务模型
这种模型根据用户要求中提出的任务的功能和操作次序,构想该任务的概念。
通过它,可以了解用户知道多少有关系统操作的知识,用户期望系统应当如何工作等。
(5)用户观点
指系统结构的用户类型。是用户描述和设想现行系统结构的方法。
它可以用图形化的方式表示,也可以用语言方式表示。
任务模型
任务模型包括静态的和动态的两种。
系统的静态模型就是对象-关系模型,用于展现界面的结构设计;
系统的动态模型是对系统操作或会话设计有关的对象的动态行为的描述。)
3.用户界面设计操作流程
DFD图
4.用户界面任务和工作设计
任务和工作设计的目的在于创造用户的工作环境。
通常,任务应组织得多样化一些,要与人的能力相适应。
任务分配
在每个任务中,动作要分配给计算机、用户或者二者。
一般地,用户承担需要创造、判断和探索的任务,而计算机承担重复检查、计算和数据处理的任务。
任务分配产生两个网络:一个是人的任务网络,一个是计算机的任务网络。
人的任务网络说明如何安装、操作和使用系统,它最后将形成操作过程和用户手册的基础。计算机的任务网络则描述计算机应担负的工作。
任务分配步骤
(1)检查数据流图,标出哪些是单独由计算机完成的任务、哪些是单独由人完成的任务、哪些是由两者共同完成的任务。
(2)对于共同完成的任务,将任务的每一个动作分配给计算机或人。
(3)构成新的计算机的任务网络和人的任务网络。
(4)再进一步细化计算机与人的协同动作,以确定人和计算机如何交互。
工作方式
(1)由一个人单独完成一个系统的目标
(2)任务进展跟踪
工作设计
目的是使任务需求与操作员的能力相匹配。
在界面设计中关于人的因素特性的简单的度量如下:
复杂性、专心程度、责任心、变化性
5.界面设计的基本类型
界面设计类型
在选用界面形式的时候,应当考虑每种类型的优点和限制。从以下几个方面来考虑,进行抉择:
使用的难易程度、学习的难易程度、操作速度、复杂程度、控制、开发的难易程度
通常,一个界面的设计使用了一种以上的设计类型,每种类型与一个或一组任务相匹配。
菜单界面的设计
菜单是由系统预先设置好的,显示于屏幕上的一组或几组可供用户选用的命令。
1按照显示的形象或样式来分类:
正文菜单
正文菜单实质上是系统命令本身或者是其简写形式。
简单的正文菜单的设置与选取方式:
首字符匹配方式
序号匹配方式
亮条匹配方式
图标菜单
图标菜单,简称图标,是安置在一个小方框之中的一幅象形的或表意的图画。
正文和图标混合的菜单
这种菜单基本上还是正文式的。从屏幕上看,它还是由字符串构成。
2按屏幕位置和操作风格来分类
固定位置菜单
固定位置菜单每次总是在屏幕的相对固定的位置出现。
0层-主菜单:定位于屏幕中心或占领整个屏幕,菜单项的内容是所属各个子系统的名称。
1层-子系统层:这一层菜单在水平方向排成一行,安放于屏幕的上沿或下沿。
2层-当用户挑选了某一个操作类时,屏幕上将按垂直方向显示这组操作类的名称。对话
必须回答式
必须回答式的对话在屏幕上出现时,用户必须给予回答,否则系统不再做任何其他工作。
无需回答式
这类对话在屏幕上的出现,仅仅是为了告诉用户一些参考信息,不需要用户回答。
警告式
这类对话主要用于系统报错或者警告。
窗口
窗口是指屏幕上的一个矩形区域,在图形学中叫做视图区(viewport)
用户可以通过窗口显示、观察其工作领域内的内部或一部分内容,并可以对所显示的内容进行各种系统预先规定好的正文和图形操作。
在用户界面,为了能够通过窗口看到整个用户空间的全貌,一个简单的办法就是让窗口在用户空间滚动,即所谓屏幕滚动。
事实上,窗口本身并不属于用户空间,它仅仅是用于观察、组织用户空间的内容,并对其进行操作的用户接口工具。
问题描述语言POL(Problem Oriented Language)
任务层
一个任务可以自顶向下分解成由子任务构成的树形结构,每个任务和它们的动作用带有注释和约束的结构化格式来描述。
各个任务涉及的对象叫做实体,而动作即是施加于其上的。
语义层
POL描述概念实体和实现任务所需的运算。
概念实体可以是抽象的概念,例如某种联系,也可以是具体的对象,如某个消息。
系统本身由实体的集合组成,而操作只是与某个对象相联系。
语法层
将操作和方法定义成命令。这些命令是由用户来使用的。
命令由语义操作建立,并具有上下文关系。通过上下文关系,利用显示,命令或状态变量,就可以描述整个系统。
交互层
POL的文法有终极符(自定义的不能再分的)和由终极符组成的非中极富。终极符为:
W-When(时态规格说明原语)
P-Prompt(原始系统动作:提示)
R-Respose(原始系统动作:响应)
A-Action(原始用户动作:击键)
这些终极符可组成非终极符结构。
6.数据输入界面设计
数据输入是指所有供计算机处理的数据的输入,是系统的一个重要组成部分,它常占用户的极大部分使用时间。
数据输入的规则
数据输入界面的目标是尽量简化用户的工作,并尽可能地减少输入的出错率。
在软件设计的范围,可以通过以下方法来减少用户输入的工作量:
对共同的输入内容设置默认值(缺省值)。
使用代码和缩写。
填入已输入过的内容或需要重复输入的内容
如果输入内容是来自一个有限的备选集,可以采用列表选择或指点方式。
数据输入屏幕应当设计成尽量与输入格式相匹配。
数据内容应当根据它们的使用频率,或它们的重要性,或它们的输入次序进行组织。数据输入对话设计的一般规则:
明确的输入、明确的动作、明确的取消、确认删除、提供反馈、允许编辑、提供复原、自动格式化
输入表格设计
数据表格设计是对较复杂的数据录入时是用的最广泛的一种对话类型。
这种方法是在屏幕上显示一张表格,类似于用户熟悉的填表格式,以供用户向计算机内输入数据。
屏幕设计
通常把屏幕划分为数据输入、命令与出错处理三个区域。
在屏幕设计时,应注意以下几点:
应用不同的底色来区别各个区域。
其它数据输入的方法
它们分为两类,一类是用菜单或关键词进行软件设计,另一类使用硬件来自动完成全部或部分数据输入任务。
菜单选择输入
如果数据从一个确定的可供选择的清单选取输入,则可用菜单方式。
关键词数据输入
关键词数据输入比菜单选择数据输入更快速更有效。并可以以不同的顺序输入,允许更复杂的文件输入。
光学标记/识别(OMR)
光学字符识别(OCR)
磁性墨水字符识别(MICR)
条形码(Bar Code)
声音数据输入
7.数据显示界面设计
数据显示界面包括屏幕查询、文件浏览、图形显示和报告。
数据显示的规则
进行数据输出显示设计,应当了解数据显示的要求,解决应该显示哪些数据,屏幕上一次显示多少信息的问题。
选择显示内容,应当考虑以下准则。(只显示必需的数据、在一起使用的数据应显示在一起、显示出的数据应与用户执行的任务有关、每一凭数据的数量,包括标题,栏题等等,不应超过整个屏幕面积的30%。)
显示设计要使得相关的数据承租的出现,并由用户与系统的会话来控制。
可根据屏幕的大小,是每帧屏幕包含若干个子区域,让每个子区域显示不同的信息。
进行屏幕布局时,还需要考虑其它一些规则。
应尽量少使用代码和缩写,不应让读者去翻译或猜测这些代码或缩写。
如果安排了若干个显示画面,最好建立一个统一的格式。
提供明了的标题。栏题以及其它提示信息。
遵循用户的习惯。
采用颜色、字符大小、下划线或不同的字体等方式来强化重要数据。
字符数据的显示
字符数据的画面显示主要是屏幕布置和数据内容安排格式,以便于用户查找和阅读的问题。
纯正文的显示
英文正文中应避免连续使用大写字母,大写字母应使用印刷体,且一般为强调而使用。
列表和表格
数据列表应当竖排而不应横排,因为这样有助于计算总和。栏题应当安排在数据列之上。
控制显示
用户应当拥有一种获得不同显示画面的灵活的手段。
图形显示
由于图形从数据集合中概括出某些特性并且具有“直观”的优点。因此对于识别和分析处理结果更有效。为了做好图形显示,必须仔细地选择图形类型和进行布局设计。
图形类型与数据集分类
在一定程度上,图形类型的选择是有限的,因为它是根据类型来决定的。
报告
报告是输出字符的一个子集,它的功能可以是从一个系统向另一个系统传递信息;也可以是某一系统的总结;还可以是一个历史文献、简单的列表等等。报告可以归为四类:文宗报告、信息报告、历史和档案报告、浏览报告。
布局设计
报告有三种布局设计
(1)列表适用于记录信息的简单罗列,浏览报告和档案报告即属于这一类;
(2)块结构是用行、列和总计等形式来组织数据,信息报告就属于这一类。
(3)分组结构则在快内进一步做更复杂的成组的信息布局,文宗报告一般属于此类。 -
(软件工程)-- 总体设计报告
2020-12-08 12:18:36本阶段完成系统的大致设计并说明系统的数据结构与软件结构,本概要设计说明书的目的就是进一步细化软件设计阶段得出的软件概貌,把它加工成程序细节上非常接近与源程序开发的软件标识。 预期读者:软件测试人员、... -
软件工程——用户界面设计
2013-09-24 20:03:47用户界面是人与机之间交流、沟通的层面。从深度上分为两个层次:感觉的和情感的。感觉层次指人和机器之间的视觉、触觉、听觉层面;...总之用户界面设计是以人为中心,使产品达到简单使用和愉悦使用的设计。 -
软件工程之系统设计
2022-01-09 13:51:40文章目录架构设计 架构设计 -
软件工程 学生管理系统 实验报告
2011-06-22 17:22:49软件工程 学生管理系统 实验报告 有用例图 顺序图 流程图 协作图。很完整的一份软件工程思想的实验报告。 1 设计任务与目的 1 1.1 项目计划 1 2 需求分析 1 2.1用例图 3 2.1.1 学生用例图 3 2.1.2 教师用例图 3 ... -
【软件工程】用户界面设计
2018-11-13 20:11:06用户界面是程序对用户最直观的表达,也是短时间内评判程序的重要依据。经过对用户界面设计的学习,让我对界面设计有更深入的理解,设计不同的模块要根据不同的规则,本着一切以用户为核心的观念去设计。 ... -
软件界面设计工具_3款合集
2010-06-29 03:52:47GUI Design Studio是一款图形用户界面设计工具,您能用它在不需要编写任何代码或脚本的情况下快速地创建演示原型。使用标准元素绘制个人化的屏幕、窗口以及控件;将它们整合以展示操作工作流然后运行模拟程序测试您... -
【软件工程】--用户界面设计
2018-11-04 11:45:12用户界面设计 用户界面是人机交互的中介,所以用户在使用软件的时候体验到的感觉很多程度上都是来自界面的,所以界面的好坏会直接影响到用户的体验感觉,所以说在设计软件的时候,用户界面的设计也是十分重要的,... -
软件工程课程设计【网上选课系统】实验报告+源文件mdl
2011-06-07 09:07:11这是我们软件工程期末实验课程设计的内容之一,总共有22个题目。资源内含【实验报告+mdl源文件】 该题目要求: 主要功能描述:系统首先维护校内所有课程的信息;课程分为研究生、本科生;也可以分为必修、选修、... -
【软件工程】详细设计文档——详细设计说明书
2021-04-12 20:14:08文章目录1 引言1.1 编写目的1.2 项目背景1.3 定义1.4 参考资料2 总体设计2.1 需求概述2.2 软件结构3 模块描述3.1 模块基本信息3.2 功能概述3.3 算法3.4 模块处理逻辑3.5 接口3.6 性能3.7 测试计划 1 引言 1.1 编写... -
软件工程实验报告:图书管理系统
2021-03-02 16:23:19软件工程课程设计是学习软件工程课程后所进行的实践环节,目的是培养学生用工程化的思想和标准文档化的思想进行软件开发。本次课程设计通过开发一个小型实用的软件系统,亲身体验软件生命周期中的各个环节,以加深对... -
交互界面设计快速原型设计实验报告
2020-12-07 21:39:23交互界面设计快速原型设计实验报告 一、实验目的 1、掌握软件开发原型模型的概念 2、练习Axure RP的原型设计 二、实验内容 1、界面改造:用Axure RP 9对热力学计算的界面实现三种风格的改造:对话框方式、菜单方式、... -
【软件工程】概要设计文档——概要设计说明书
2021-03-28 17:22:05文章目录1 引言1.1 编写目的1.2 范围1.2.1 系统目标1.2.2 主要软件需求1.2.3 软件设计约束、限制1.3 术语和缩略词1.4 参考资料2 体系结构设计2.1 需求复审2.2 软件体系结构2.3 模块设计3 接口设计3.1 用户接口3.2 ... -
软件工程第四章——软件设计(仅记录我所认为重要的知识点)
2022-03-19 00:15:49软件工程第四章——软件设计软件设计好的设计的特点设计质量属性设计指导原则设计相关概念设计技术(面向过程)数据设计体系结构设计体系架构组织与细化的基本问题部署设计接口设计结构化的总体设计方法系统结构图中... -
软件工程:详细设计
2020-10-23 21:33:30详细设计阶段的任务不是具体地编写程序,而是要设计出程序的“蓝图”。 详细设计的结果基本上决定了最终的程序代码的质量。 1,结构程序设计 程序的质量与程序中所包含的GO TO 语句的数量成反比。只用“顺序”... -
软件工程(五)软件界面设计
2013-12-01 17:30:43一看视频中有软件界面设计我就乐了、一看视频我就哭了……感觉有点老吧、虽然概念性的东西没变、但是提不起来兴趣呢、所以这次总结下我对界面设计的认识。 如果说软件是一个亭亭玉立的姑娘、那软件界面就是姑娘... -
软件工程导论—详细设计
2020-05-09 12:47:521. 结构程序设计 2. 人机界面设计 3. 过程设计工具 4. 面向数据结构的设计方法 5. 程序复杂程度的定量度量 -
一次完整的软件工程课程设计
2020-07-30 08:54:54目录引 言1 可行性分析1.1 技术可行性分析1.2 经济可行性分析1.3 社会可行性分析...R图2.3.2数据库概念模型3 总体设计3.1 系统架构设计3.2 功能模块设计3.3 系统流程图设计3.4 系统类图设计3.4.1边界类图3.4.2控制类图3 -
考试管理系统【软件工程实践课设报告】
2021-02-01 14:55:43软件工程专业大四上学期课设之一,报告评分不高,仅供参考。 一、软件工程实践课程任务目标 掌握软件工程问题调研、问题分析和原型设计; 掌握从技术、经济、社会等方面对系统软件的评估; 掌握运用软件工程原理... -
软件工程之用户界面设计
2018-03-18 18:47:45前言:用户的界面设计是软件给用户的初步印象,因此对于软件的用户界面设计就显得尤为重要,从提示信息到窗体布局再到功能性能以及反馈信息,每一个细节都需要注意,这样才能提高我们的用户体验度 过程: ... -
【软件工程】课程设计库存管理系统
2022-03-19 11:34:35库存管理系统一、课程设计概述1.1. 目的1.2. 任务1.3. 开发环境:二、项目的需求分析和可行性分析2.1.系统可行性分析2.2.系统需求分析2.2.1.系统目标设计2.2.2.系统功能需求分析2.2.3.系统功能描述2.2.4系统的数据流... -
软件架构设计师:用户界面设计的原则
2018-09-11 22:46:18人机界面接口是相当容易被忽视的环节,现在比较流行 以用户为中心的界面设计。 系统界面是系统与用户接口,系统界面决定用户对系统的最直接的印象。设计优良的人机交互界面能够展示系统形象,表达系统的功能和...