软件工程第6章用户界面设计
软件工程中的用户界面设计与交互
![软件工程中的用户界面设计与交互](https://img.taocdn.com/s3/m/b1d3ed6e4a73f242336c1eb91a37f111f1850da4.png)
软件工程中的用户界面设计与交互在当今数字化时代,软件已经成为我们生活和工作中不可或缺的一部分。
无论是在手机上使用购物应用程序,还是在电脑上编辑文档,我们都与各种各样的软件进行交互。
而这种交互体验的好坏很大程度上决定了我们对软件的使用满意度。
因此,软件工程中的用户界面设计与交互变得至关重要。
一、用户界面设计用户界面设计是指人机界面的设计,主要负责软件的外观和交互方式的设计。
好的用户界面应该具备以下特点:1.直观易用:用户界面应该简单易懂,用户能够迅速找到所需要的功能,减少学习成本。
2.一致性:软件内部不同模块的用户界面应保持一致,让用户在不同操作下能够有一种熟悉的感觉,提高使用效率。
3.美观大方:用户界面应该有良好的视觉效果,符合用户审美,使用户使用软件时感到愉悦。
4.可定制性:用户界面应该提供一定的自定义选项,让用户根据自己的喜好和需求进行个性化设置。
二、交互设计交互设计是指软件与用户之间进行信息交流和互动的设计,它关注的是用户如何操作软件,并且精确地反馈出相关信息。
优秀的交互设计应具备以下特点:1.明确的反馈:软件应该能够及时反馈用户的操作,让用户清楚地知道他们所做的每一步行为是否成功。
2.简洁明了:交互设计应该尽量避免复杂繁琐的操作,保持简洁明了,避免用户产生困惑。
3.合理的默认设置:软件的默认设置应该符合大多数用户的需要,减少用户在使用软件之前的设置步骤。
4.良好的导航:为用户提供清晰的导航路径,使用户能够快速找到所需的功能和信息。
三、用户界面设计与交互设计的关系用户界面设计和交互设计的关系密不可分。
好的用户界面设计可以提高用户对软件的第一印象,而交互设计则决定了用户在软件中的操作体验。
两者相辅相成,共同决定了软件的易用性和用户的满意度。
在实际软件开发中,用户界面设计和交互设计应该紧密配合。
设计师需要根据软件的功能和用户需求,综合考虑界面布局、颜色、字体等因素,以及按钮的位置和交互逻辑等方面,来设计一个既美观又易用的用户界面。
软件工程第六章 详细设计
![软件工程第六章 详细设计](https://img.taocdn.com/s3/m/04feaea96aec0975f46527d3240c844769eaa0a9.png)
软件工程第六章详细设计软件工程第六章详细设计6.1 概述本章节旨在对软件系统的详细设计进行介绍。
详细设计将在系统的高层设计基础上,进一步细化系统结构、模块划分以及相互关系,并定义系统中各个组件的详细功能和接口。
6.2 系统结构设计系统结构设计主要包括以下内容:- 系统总体架构:描述系统整体的结构和组成部分,包括各个模块和它们的关系。
- 模块划分:根据系统需求,将系统划分为若干个模块,并定义各个模块的职责和功能。
- 模块关系:描述各个模块之间的依赖关系和通信方式,包括模块之间的接口和数据流。
6.3 模块设计模块设计是详细设计的核心内容,主要包括以下内容:- 模块接口:定义模块的输入和输出接口,包括参数和数据格式。
- 模块内部实现:描述模块内部的算法、数据结构以及运行流程。
- 模块测试方法和策略:定义对模块进行单元测试的方法和策略。
6.3.1 模块A设计本节详细介绍模块A的设计。
- 模块接口:模块A接收来自模块B的数据输入,处理后输出结果给模块C。
- 模块内部实现:模块A内部使用算法X对输入数据进行处理,然后将结果输出给模块C。
- 模块测试方法和策略:对模块A进行单元测试时,使用测试用例集合Y进行测试。
6.3.2 模块B设计本节详细介绍模块B的设计。
- 模块接口:模块B接收来自模块D的数据输入,处理后输出结果给模块A。
- 模块内部实现:模块B内部使用算法Z对输入数据进行处理,然后将结果输出给模块A。
- 模块测试方法和策略:对模块B进行单元测试时,使用测试用例集合Z进行测试。
6.3.3 模块C设计本节详细介绍模块C的设计。
- 模块接口:模块C接收来自模块A的数据输入。
- 模块内部实现:模块C内部对输入数据进行处理,并输出结果。
6.4 数据库设计如果系统涉及数据库,本节详细介绍数据库的设计。
- 数据库结构:描述数据库的表、字段以及它们之间的关系。
- 数据库访问接口:定义系统访问数据库的接口和方法。
6.5 接口设计本节详细介绍系统与外部系统或用户的接口设计。
软件工程导论(第五版) 第六章
![软件工程导论(第五版) 第六章](https://img.taocdn.com/s3/m/84e00ed2b8f67c1cfad6b840.png)
•经典的结构程序设计:只允许使用顺序、
IF_THEN_ELSE选择和DO_WHILE循环;
扩展的结构程序设计:除了三种基本控制结构, 还使用DO_CASE和DO_UNTIL循环;
修正的结构程序设计:除了三种基本控制结构 和两种扩充结构,还使用BREAK等结构。
6.1.1 结构化程序
6.1.1.1 控制结构 • 流程图通常由三种结点组成: •1)函数结点 • 如果一个结点有一个入口线和
行李重量w30行李重量w30国内乘客外国乘客头等舱其他舱头等舱其他舱残疾乘客正常乘客残疾乘客正常乘客残疾乘客正常乘客残疾乘客正常乘客w302w304w303w306w304w308w306w3012免费图67用判定树表示计算行李费的算法636pdl2可以使用普通的正文编辑程序或文字处理系统来完成pdl的书写和编辑工作
•定义7:由基本程序的一个固定的基集合构造出的复合
程序,称为结构化程序。
6.1.2 结构化定理 •结构化定理:任一正规程序都可以函数等价于
一 个 由基 集 合 {顺 序 , If-else-then,While-do} 产生的结构化程序。
• 实际上,只要能证明可以将任一正规程序转
换成等价的结构化程序就可以证明这个结构化 定理。
123456789 TTTTFFFF TFTFTFTF FFTTFFTT
TFFFFFFFF
×
×
×
×
×
×
×
×
×
•6.3.5 判定树
• 判定树是判定表的变种。
行李重量
国内乘客
头等舱 其他舱
残疾乘客
正常乘客 残疾乘客 正常乘客
(W-30)×2 (W-30)×4 (W-30)×3 (W-30)×6
软件工程用户界面设计
![软件工程用户界面设计](https://img.taocdn.com/s3/m/c215784cb42acfc789eb172ded630b1c58ee9b4e.png)
软件工程用户界面设计软件工程中的用户界面设计是指开发人员通过设计和优化用户界面,使得用户能够使用软件时获得更好的用户体验。
用户界面设计不仅要考虑软件的外观美观度,还要考虑用户的操作习惯和需求,以及软件的功能和效率。
首先,用户界面设计要尽可能简单直观。
用户在使用软件时,希望能够迅速找到需要的功能和信息。
因此,用户界面应该注重简洁性和易用性。
设计师应该尽量避免复杂的操作流程和过多的选项,从而降低用户的学习成本。
此外,用户界面的布局和组织也应该合理,使得用户能够直观地理解软件的结构和功能。
其次,用户界面设计要符合用户的操作习惯和需求。
不同的用户有不同的习惯和使用需求,因此,设计师需要考虑到不同用户群体的需求,并根据不同用户的特点进行个性化设计。
例如,对于老年人来说,他们可能更适应使用大字体和图标,而对于年轻人来说,他们可能更喜欢使用现代化的界面风格和交互方式。
此外,用户界面设计还要考虑到软件的功能和效率。
用户界面应该鼓励用户使用软件的功能,并提供便捷的操作方式。
设计师应该尽量减少用户的操作次数和步骤,提高软件的响应速度和效率。
例如,可以通过合理地分组和排列功能按钮,以及提供快捷键和自动填充等功能,来提高用户的使用效率。
最后,用户界面设计还要注重软件的外观美观度。
美观的界面设计可以提高用户的使用体验和满意度。
设计师可以通过选择合适的颜色和字体,以及设计精美的图标和按钮,来增加软件的视觉吸引力。
此外,设计师还可以运用动画效果和过渡效果等技术,使得用户界面更加生动和有趣。
综上所述,软件工程中的用户界面设计是一个综合性的任务,需要考虑到用户体验、操作习惯、软件功能和效率等多个方面。
通过合理设计和优化用户界面,可以提高用户的使用体验和满意度,从而提高软件的竞争力和市场价值。
设计师应该不断学习和研究用户界面设计的最新理论和技术,以不断提高自己的设计水平和能力。
软件工程导论第6章
![软件工程导论第6章](https://img.taocdn.com/s3/m/f3cb1e17b7360b4c2e3f6442.png)
70年代初N.Wirth在Pascal语言中设置支持“顺序 结构”、“IF-THEN-ELSE选择结构”、“DO-WHILE 重复结构”或“DO-UNTIL重复结构”三种基本控制 结构语句。
25
3种基本控制结构
(1) 顺序型
A B
(2) 选择型
F P A B T
(2) 多情况选择型(case)
T T
P=1 F P=2 F P=n F
…
A1 A2
T
An
(3) 先判定型循环
后判定型循环
(do-while)
F
(do-until)
P T S
S P F
T
例1、某模块有两个输入a和b,一 个输出c,当满足条件(a>0)and(b<2) 时,c=a+b,否则c=a-b。画出该模 块的程序流程图。
a b
第6章 详细设计
6.1 结构程序设计 6.2 人机界面设计 6.3 过程设计的工具 6.4 面向数据结构的设计方法 6.5 程序复杂程度的定量度量 6.6 小结 习题
1
详细设计阶段的根本目标:确定应该怎样具体地 实现所要求的系统。 为软件结构图中的每一个模块确定使用的算法和 块内数据结构,并用某种选定的表达工具给出清晰 的描述。
100 110
120
130 140
Eq:等于 ne:不等于 gt:大于 lt:小于 ge:大于等于 le:小于等于
例:打印A、B、C三数中最小者的程序 if (A.LT.B .AND. A.LT.C)then write(6,*) A else if (A.GE.B .AND. B.LT.C) then write(6,*) B else write(6,*) C endif endif
软件工程中的用户界面设计原则
![软件工程中的用户界面设计原则](https://img.taocdn.com/s3/m/37b51e1cbf23482fb4daa58da0116c175f0e1ee5.png)
软件工程中的用户界面设计原则在软件工程中,用户界面设计是一个至关重要的环节。
一个好的用户界面设计可以提高用户体验,降低用户学习和使用软件的难度,从而增加软件的可用性和用户满意度。
因此,软件工程师在进行用户界面设计时,需要遵循一些原则以确保设计出符合用户期望和需求的界面。
本文将介绍一些常见的用户界面设计原则。
一、简洁明了用户界面设计应该简洁明了,避免过多的复杂和混乱的元素。
设计师应尽量减少不必要的信息和选项,使界面显得整洁清晰。
可以通过巧妙的布局和结构来实现这一点,将核心功能和内容突出展示,避免用户感到困惑或压抑。
二、一致性一致性是用户界面设计中的重要原则之一。
界面中各个元素、交互和操作应保持一致,使用户可以快速熟悉并准确理解界面的使用方式。
例如,设计师可以使用相同的颜色、字体、按钮样式等来传达统一的风格和体验,从而提高用户的可预测性和可信度。
三、反馈机制反馈机制是用户界面设计中的另一个关键原则。
用户在与软件进行交互时,需要得到及时的反馈,以确认他们的操作是否成功或者失败。
设计师可以通过改变按钮状态、显示进度条、弹出提示框等方式向用户提供反馈信息,让用户感知到软件的响应并减少猜测。
四、易学易用用户界面设计应该尽可能地简单易学,以降低用户学习软件的成本。
设计师可以借鉴常见的交互模式和设计模式,使用户在使用软件时能够快速上手,减少错误操作和迷失感。
此外,提供明确的指南和帮助文档也是提高软件可用性的一种方式。
五、可访问性考虑到用户的多样性,用户界面设计应该尽量满足不同用户的需求。
设计师应该关注用户的视觉、听觉、运动和认知能力等方面,为他们提供辅助工具和适配选项,以确保每个用户都能够轻松访问和使用软件。
这样做不仅体现了对用户的关怀,也有利于拓展软件的受众群体。
六、可预测性用户界面设计应该让用户能够准确预测和理解软件的行为。
设计师可以通过遵循常用的设计规范和模式来实现可预测性,让用户在使用软件时不会感到迷惑或者无所适从。
软件工程导论第6章(第4版)
![软件工程导论第6章(第4版)](https://img.taocdn.com/s3/m/635bcf2f10661ed9ad51f38a.png)
二. 人机界面设计
人机界面设计是接口设计的一个重要的组成部 分。对于交互式系统来说,人机界面设计和数据设 计、体系结构设计及过程设计一样重要。
1.指导规则
T.Mandel在《用户界面设计要素》中,提出了3 条指导规则: 让用户驾驭软件,不是软件驾驭用户 减少用户的记忆 保持界面的一致性
2. 应该考虑的设计问题
4. 人机界面设计指南
(3) 数据输入指南 尽量减少用户的输入动作。 保持信息显示和数据输入之间的一致性。 允许用户自定义输入。 交互应该是灵活的,可调整成用户喜欢的输入方式。 使在当前动作语境中不适用的命令不起作用。 让用户控制交互流。 对所有输入动作都提供帮助。 消除冗余的输入。
三. 过程设计
1.过程设计的目的与任务 目的 确定模块采用的算法和块内数据结构,用某种 选定的表达工具给出清晰的描述。 任务:编写软件的“过程设计说明书” 为每个模块确定采用的算法 (模块的详细过程性 描述) 确定每一模块使用的数据结构 确定模块接口的细节 (包括对系统外部的接口和 用户界面,对系统内部其他模块的接口,以及关 于模块输入数据、输出数据及局部数据的全部细 节)
三. 过程设计
2.过程设计的原则与方法
清晰第一的设计风格 结构化的控制结构 结构程序设计的经典定义为: “如果一个程序的代码块仅仅通过顺序、选择和循环这3 种基本控制结构进行连接,并且每个代码块只有一个入口和 一个出口,则称这个程序是结构化的。” 结构程序设计技术是一种实现在逻辑上正确描述每个模 块的功能,并且使设计出的处理过程尽可能简明易懂的关键 技术,是过程设计的逻辑基础。 逐步细化的实现方法 例:在一组数中找出其中的最大数
(4) 命令交互 命令行现在仍然是许多高级用户偏爱的交互方式。在 多数情况下,用户既可以从菜单中选择软件功能,也可以 通过键盘命令序列调用软件功能。 在提供命令交互方式时,必须考虑下列设计问题: 是否每个菜单选项都有对应的命令? 采用何种命令形式?有3种选择:控制序列(例如Ctrl+P), 功能键和键入命令。 学习和记忆命令的难度有多大?忘记了命令怎么办? 用户是否可以定制或缩写命令? 在理想的情况下,所有应用软件都有一致的命令使用 方法。
软件工程中的用户界面设计原则
![软件工程中的用户界面设计原则](https://img.taocdn.com/s3/m/85b501b8c9d376eeaeaad1f34693daef5ef71397.png)
软件工程中的用户界面设计原则用户界面设计是软件工程中至关重要的一环。
一个好的用户界面可以提高用户的使用体验,增加软件的易用性和用户满意度。
而一个糟糕的用户界面则可能导致用户的不满和使用困难。
因此,在软件工程中,用户界面设计原则被广泛应用于开发过程中,以确保用户界面的质量。
本文将介绍一些常用的用户界面设计原则,以帮助软件工程师在开发过程中制定出更好的用户界面。
1. 一致性一致性是用户界面设计中最重要的原则之一。
用户在使用软件时,希望界面的各个部分的交互方式、设计风格和操作习惯能够保持一致。
一致性可以减少用户学习新界面的成本,并且提高用户的效率和满意度。
要保持一致性,开发团队可以制定界面设计规范或模板,并确保整个软件的界面都符合这些规范和模板。
2. 易学性软件的用户界面应该具有良好的易学性,即用户应该能够迅速学会如何使用软件。
为了提高软件的易学性,可以采取以下措施:- 使用常见的符号和图标,以便用户能够迅速理解它们的含义;- 提供清晰简洁的操作指南和帮助文档,以帮助用户学习如何使用软件;- 设计直观的操作流程,避免复杂的操作步骤。
3. 可见性可见性是指用户界面中的元素应该在需要的时候随时可见,并能够与用户进行交互。
设计师应该合理安排界面的布局,确保关键元素在用户需要时能够被找到。
例如,重要的按钮和功能应该位于用户能够看到的位置,而不是被隐藏在菜单的深处。
4. 反馈机制用户界面应该能够及时地为用户提供反馈,告知用户当前的操作状态和结果。
这可以通过一些视觉或听觉的方式来实现,例如进度条、弹出窗口或提示音。
反馈机制可以帮助用户确认他们的操作是否成功,并提供及时的纠正措施。
5. 弹性用户界面应该具有一定的弹性,以适应不同用户的需求和习惯。
界面应该提供不同的设置选项和配置项,以使用户能够根据自己的需要进行个性化设置。
例如,字体大小、颜色主题或布局风格可以由用户自定义。
6. 简洁性软件的用户界面应该尽量简洁,避免复杂和冗余的设计。
软件工程与实践第6章
![软件工程与实践第6章](https://img.taocdn.com/s3/m/4ee40b8451e79b89680226aa.png)
6.1 6.2 6.3 6.4 6.5 6.6
结构程序设计 人机界面设计 过程设计的工具 面向数据结构的设计方法 程序复杂程度的定量度量 小结
详细设计阶段的根本目标是确定应该怎样具体地实 现所要求的系统。 详细设计阶段的任务还不是具体地编写程序,而是 要设计出程序的“蓝图”,以后程序员将根据这个 蓝图写出实际的程序代码。 详细设计的目标不仅仅是逻辑上正确地实现每个模 块的功能,更重要的是设计出的处理过程应该尽可 能简明易懂。 结构程序设计技术是详细设计的逻辑基础。
6.2.3 人机界面设计指南
用户界面设计主要依靠设计者的经验,总结众多设 计者的经验得出的设计指南,有助于设计者设计出 友好、高效的人机界面。下面介绍3类人机界面设 计指南。 1. 一般交互指南 一般交互指南涉及信息显示、数据输入和系统整体 控制,因此,这类指南是全局性的,忽略它们将承 担N-ELSE型分支和 DO-WHILE型循环这3种基本控制结构,则称为经 典的结构程序设计;如果除了上述3种基本控制结 构之外,还允许使用DO-CASE型多分支结构和 DO-UNTIL型循环结构,则称为扩展的结构程序设 计;如果再加上允许使用LEAVE(或BREAK)结构, 则称为修正的结构程序设计。
6.3.6 过程设计语言
过程设计语言(PDL)也称为伪码,它是用正文形 式表示数据和处理过程的设计工具。 PDL应该具有下述特点: (1) 关键字的固定语法,它提供了结构化控制结构、 数据说明和模块化的特点。 (2) 自然语言的自由语法,它描述处理特点。 (3) 数据说明的手段。应该既包括简单的数据结构 (例如纯量和数组),又包括复杂的数据结构(例如, 链表或层次的数据结构)。 (4) 模块定义和调用的技术,应该提供各种接口描 述模式。
软件工程06_类的详细设计
![软件工程06_类的详细设计](https://img.taocdn.com/s3/m/858768e3aef8941ea76e059e.png)
判定表示例
规则# 机器功率w 运行时长<10 年? 有维修记录 送外维修 1 2 3 4 5 6 B 7 B 8 B 9 10 11 12 C C C C A A A A B
Y Y N N Y Y N N Y Y N N Y N N Y Y N N Y Y N N Y ※ ※ ※ ※ ※ ※ ※ ※
2017/9/4 20
类Project的状态
新建项目 项目创建 entry / 项目初始化 新建子项目 子项目添加 entry / addSubproject() [没有前置项目] 结束计划 [具有前置项目] 项目执行 更改完成度 前置子项目设置 entry / addPredecessor() 更改工作量 工作量更新 结题 entry / setRealEffort() 完成度设置 entry / setCompeletePct() 项目计划 新建任务 任务添加 entry / addTask()
2017/9/4 14
PDL特点
• PDL采用关键字的固定语法,提供了结构化控制 结构、数据说明和模块化的特点。 • PDL程序中会有一些能够标明程序结构的关键字 。 • PDL语言仅有少量的简单语法规则,大量使用人 们习惯的自然语言。 • 使用PDL语言常常按逐步细化的方式写出程序。 • PDL程序的注释行对语句进行解释,起到提高可 读性的作用。
2017/9/4 3
类方法的详细设计
• 结构化的程序
如果程序的代码 块仅仅通过顺序 、选择和循环三 种控制结构进行 连接,并且每个 代码块只有一个 入口和一个出口 ,则称这个程序 是结构化的。
A B
非结构化程 序设计
A
B
C
E F
计算机软件工程第六章 详细设计
![计算机软件工程第六章 详细设计](https://img.taocdn.com/s3/m/3b3dfd8cd4d8d15abe234e4e.png)
PAD图的基本符号
SOFTWARE ENGINEERING
PAD图的基本符号
输入框 输出框 处理框 选择框
重复框(先判 定,再重复) 或 子程序框
重复框(先执行, 后判定,再重复)
定义框
使用PAD图提供的定义功能来逐步求精的例子
• 作业:判定一个数是不是素数的PAD图
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING
盒图的基本符号
SOFTWARE ENGINEERING
§6.2 详细设计的工具
6.2.4 PAD图(Problem Analysis Diagram) 用二维树形结构的图来表示程序的控制流。 优点: ①设计出的程序是结构化程序; ②描绘程序结构清晰; ③表示程序逻辑,易读、易懂、易记;(自上而下, 从左向右顺序执行,遍历所有结点); ④易转换成 语言源程序,可用软件工具自动完成; ⑤也可用于描绘数据结构; ⑥支持自顶向下、逐步求精方法的使用。
例题 根据伪码画出程序流程图、盒图、 PAD图
Start If p1 then while q2 do x end do Else block y z end block End if stop
SOFTWARE ENGINEERING
作业:根据伪码画出程序流程图、盒图、PAD图
Begin Input(a,b,c) i=0 While i<=6 do Begin If a>6 or b>=0 Then c=c+a Else b=c+a End if i=i+1 End End do Print(a,b,c) End
PAD图(问题分析图)
(4)PAD是二维树形结构的图形,程序从图中 最左竖线上端的结点开始执行,自上而下,从 左向右按顺序执行,遍历所有结点; (5)容易将PAD转换成高级语言源程序,该转 换可由软件自动完成,有利于提高软件可靠性 和软件生产; (6)既可用于表示程序逻辑,也可用于描绘数 据结构; (7)PAD的元素支持自顶向下、逐步求精方法 的使用。
软件工程导论第6章 详细设计2
![软件工程导论第6章 详细设计2](https://img.taocdn.com/s3/m/82ccb40890c69ec3d5bb757b.png)
2、信息显示界面设计
1)、可使用性 ① 使用简单
② 用户界面中所用术语的标准化和一致性 ③ 具有HELP功能 ④ 快速的系统响应和低的系统成本 2)、灵活性
① 提供不同的系统响应信息(多媒体)。 ② 提供根据用户需求制定和修改界面。 3)、界面的复杂性与可靠性 复杂性—界面规模及组织应该愈简单愈好。只显示与当前工作 内容相关的信息。使用窗口分隔不同类型的信息。 可靠性—用户界面应该能够保证用户正确、可靠地使用系统, 及程序、数据的安全。产生有意义的出错信息。
顺序 结构
选择 结构
Case 型多 分支 结构
While 型循环 Until 型 循环
定义
PAD图基本符号
31
使用PAD图提供的定义功能逐步求精的例子
32
例:用PAD图表示:打印50名学生中成绩在 80分以上者的学号和成绩。
开始 i=1 Until i>50 结束
gi>=80
输出ni和gi
i=i+1
使用一种语言(通常是自 然语言)的词汇,同时却 使用另一种语言(某种结 构化语言)的语法。
45
PDL的特点
PDL用正文形式表示数据和处理过程的设计工具,其外层语法是确 定的,而内层语法则不确定。
(1)PDL具有严格的关键字外部语法,用于定义控制结构和数据 结构。外层语法描述控制结构它用类似于一般程序设计语言控制结 构的关键字:
一个菱形判断框有两个出口, 而一个选择结构只有一个出口 。不要将菱形框的出口和选择 结构的出口混淆。)
选择结构二
7
循环结构的图示:
F
F
T
T
当型(While型)循环结构 直到型(Until型)循环
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第七章用户界面设计6.5用户界面设计用户界面(UI)也称人机界面(Human Computer Interface,简称HCI),它是交互式应用软件系统的门面。
随着计算机应用的不断拓广,软件的用户界面作为人机接口起着越来越重要的作用,界面设计日益受到重视。
设计用户界面要充分考虑到人的因素,如用户的特点、用户怎样学会与系统交互工作、用户怎样理解系统产生的输出信息以及用户对系统有什么期望等。
还要考虑界面的风格,可用的软、硬件技术及应用本身产生的影响。
所以现在在做软件产品时,越来越重视心理学在软件设计中的作用,要充分考虑用户的心理,尽量使得用户界面的设计符合用户的需要。
用户界面应具备的特性1、可使用性用户界面的可使用性是用户界面设计最重要的也是最基本的目标,它包括:1)使用的简单性:用户界面应能方便地处理各种经常进行的交互对话。
问题的输入格式应当易于理解,附加的信息量少;能直接处理制定媒体上的信息和数据,且自动化程度高;操作简便;能按用户要求的表格或图形输出,或反馈计算结果到用户指定的媒体上。
2)用户界面中所用术语的标准化和一致性:所有专业术语都应该标准化;软件技术用语应符合软件工程规范;应用领域的术语应符合软件面向专业的专业标准;在输入、输出说明里,同一术语的含义应完全一致。
3)拥有HELP帮助功能:用户应能从HELP功能中获知软件系统的所有规格说明和各种操作命令的用法,HELP功能应能联机调用,为用户随时提供帮助信息。
4)快速的系统响应和低的系统成本:在使用较多硬件设备并与许多其它软件系统联结时,会引入较大的系统开销。
用户界面应在此情况下有较快的响应速度和较小的系统开销。
5)用户界面应具有容错能力:即应当具有错误诊断、修正错误以及出错保护的功能。
2、灵活性1)考虑到用户的特点、能力、知识水平,应当使用户界面能够满足不同用户的要求。
因此,对不同的用户,应有不同的界面形式。
其运行抉择和涉及到的复杂算法对初学者可以是隐蔽的,他们可以不考虑抉择和算法问题而正常使用这个软件;但对于高级用户,可保留实施运行抉择和选择算法的权利。
2)用户可以根据需要制定和修改界面方式。
在需要修改和扩充系统功能的情形下,能够提供动态的对话方式,如修改命令、设置动态的菜单等。
3)系统能够按照用户的希望和需要,提供不同详细程度的系统响应信息,包括反馈信息、提示信息、帮助信息、出错信息等等。
4)与其他软件系统应有标准的界面。
为了使得用户界面具有一定的灵活性,需要付出一定代价。
这要求系统的设计更加复杂,而且有可能降低软件的运行效率。
3、复杂性和可靠性1)用户界面的复杂性:用户界面的规模和组织的复杂程度就是界面的复杂性。
在完成预定功能的前提下,应当使得用户界面越简单越好。
但也不是把所有功能和界面安排成线性序列就一定简单。
假如系统有64个功能,安排成线性序列,有64种界面,用户不得不记忆大量的单一的命令,比较难用。
但是,可以把系统的功能和界面按其相关性和重要性,进行逻辑划分,组织成树型结构,把相关的命令放在同一分支上。
例如,64个功能和界面组织成8*8的树型层次结构,每一层次包含的命令具有短期记忆的最佳数目7-2到7+2。
2)用户界面的可靠性:用户界面的可靠性是指无故障使用的间隔时间。
用户界面应能保证用户正确、可靠地使用系统,保证有关程序和数据的安全性。
用户界面的风格用户界面的风格大致经过了四代的演变。
1、最早,在图形显示、鼠标、高速工作站等技术出现之前,现实可行的界面方式只能是命令和询问方式,通信完全以正文形式并通过用户命令和用户对系统询问的响应来完成。
尽管每个命令的询问都不复杂,但对用户来说容易出错、不友善并难于学习。
2、第二代界面是简单的菜单式。
这种方式与命令行方式相比不易出错,但使用起来仍然乏味。
比如由某个选择进入另一层选择时,只能逐级进行,不能一步到位。
3、第三代界面是面向窗口的点选界面。
随着硬件的发展,软件工程师逐渐认识到人的因素对界面设计的影响。
这类界面也称为WIMP界面,即窗口(windows)、图标(icons)、菜单(menus)、指示器(pointing device)四位一体,形成桌面(desktop)的概念。
第三代界面给用户带来种种便利:能同时显示不同种类的信息,使用户可在几个工作环境中切换而不丢失几个工作之间的联系(如,在一个窗口写源代码,在另一窗口中检查输出结果,在第三个窗口中修改处理描述等);用户通过下拉式菜单(pull-down menu)可方便执行控制型和对话型任务;引入图标、下拉式菜单、按纽和滚动杆技术,可大大减少键盘输入,这对那些不精于键盘打字的用户来说无疑提高了交互效率。
4、最新一代HCI把第三代HCI技术与超文本、多任务概念结合起来,使用户可同时执行多个任务(以用户的观点)。
例如,某位作家可一方面用桌面印刷系统对已完成的一章做拼写检查,另一方面又在数据库中检查资料,为新题目搜集素材,同时又用键盘录入一个新章节。
在所有这些任务的执行过程中,工作站本身还完成一些诸如监督电子邮件、维护日历等后台任务。
第四代界面已出现在许多工作站和高性能PC机上。
界面设计的基本类型如果从用户与计算机交互的角度来看,用户界面设计的类型主要有问题描述语言、数据表格、图形与图标、菜单、对话以及窗口等。
每一种类型都有不同的特点和性能。
菜单,又称选单,是由系统预先设置好的,显示于屏幕上的一组或几组可供用户选用的命令。
对话,也称对话框,是系统在必要时显示于屏幕上的一个矩形区域内的图形和正文信息。
通过对话,实现用户和系统之间的通信。
分为:必须回答式、无需回答式、警告式(又根据警告的内容,可以必须回答,也可以无需回答)窗口,指屏幕上的一个矩形区域,在图形学中叫做视图区(viewport)。
用户可以通过窗口显示,观察其工作领域内的全部或一部分内容,并可以对所显示的内容进行各种系统预先规定好的正文和图形操作。
在选用界面形式的时候,应当考虑每种类型的优点和限制。
从几方面来考察、抉择:1)使用的难易程度:对于没有经验的用户,该界面使用的难度有多大2)学习的难易程度:学习该界面的命令和功能的难度有多大3)操作速度:在完成一个指定操作时,该界面在操作步骤、击键和反应时间等方面效率有多高4)复杂程度:该界面提供了什么功能、能否用新的方式组合这些功能以增强界面功能5)控制:人机交互时,是由计算机还是由人发起和控制对话6)开发的难易程度:该界面设计是否有很大难度,开发工作量有多大界面设计的一般问题设计任何一个人机界面,一般必须考虑系统响应时间、用户求助机制、错误信息处理和命令方式四个方面。
1、系统响应时间系统响应时间指当用户执行了某个控制动作后(例如,按回车键、点击鼠标等),系统做出反应的时间(指输出所期望的信息或执行对应的动作)。
系统响应时间过长是交互式系统中用户抱怨最多的问题,当几个应用系统分时运行时尤甚。
除了响应时间的绝对长短外,用户对不同命令在响应时间上的差别亦很在意,若过于悬殊,用户将难以接受。
2、用户求助机制几乎每一位交互式系统的用户都希望得到联机帮助,即在不切换环境的情况下解决疑惑的问题。
目前流行的联机求助系统有两类:集成式和叠加式。
集成式求助一般都与软件设计同时考虑,上下文敏感,即可供用户选择的求助词与正在执行的动作密切相关,整个求助过程快捷而友好;叠加式求助一般是软件完成后附上一个受限的联机用户手册,用户为查找某项指南时不得不浏览大量无关信息。
显然集成式求助机制优于叠加式求助机制。
除此之外,设计求助子系统时,还要考虑诸如帮助范围(仅考虑部分还是全部功能)、用户求助的途径、帮助信息的显示、用户如何返回正常交互工作及帮助信息本身如何组织等一系列问题。
3、错误信息处理任何错误和警告信息对用户不啻是“坏消息”,若此类信息不是很清楚地表明含义,用户接到后只能徒增烦恼。
试想,当用户看到这样一行显示:severe system failure – 14A一定会牢骚满腹。
原因是尽管能从某个地方查出14A的含义,可设计者为什么不就在此处指明呢?一般来说,出错信息应选用用户明了、含义准确的术语描述,同时还应尽可能提供一些有关错误恢复的建议。
此外,显示出错信息时,若辅以听觉(如铃声)、视觉(专用颜色)刺激,则效果更佳。
4、命令方式键盘命令曾经一度是用户与软件系统之间最通用的交互方式,随着面向窗口的点选界面的出现,键盘命令虽不再是唯一交互形式,但许多有经验的熟练的软件人员仍喜欢这一方式,更多的情形是菜单与键盘命令并存,供用户选用。
除此之外,许多系统提供批命令机制,用户可设计并存储一个命令序列,供日后多次使用。
数据输入界面设计数据输入是指所有供计算机处理的数据的输入。
数据输入界面是系统的一个重要组成部分,它常占用户的极大部分使用时间。
一个好的数据输入界面设计应尽可能方便有效地进行数据输入。
数据输入的一般规则数据输入界面的目标是尽量简化用户的工作,并尽可能减少输入的出错率。
为此,在设计时要考虑尽可能减少用户的记忆负担,使界面具有预见性和一致性,防止用户输入错误,以及尽可能增加数据自动输入。
在软件设计的范围,可以通过以下方式来减少用户输入的工作量,对共同的输入内容设置默认值(缺省值);使用代码或缩写;自动填入已输入过的内容或需要重复输入的内容;如果输入内容是来自一个有限的备选集,可以采用列表选择(下拉列表框)或指点方式。
数据输入屏幕应当设计成尽量与输入格式相匹配。
数据内容应当根据它们的使用频率,或它们的重要性,或它们的输入次序进行组织。
如果分组应与用户商量。
下面是数据输入对话设计的一般规则,在具体应用时还应当考虑设计的环境。
1)确认输入:只有当用户按下输入的确认键时,才确认输入。
这有助于在输入过程中一旦出现错误能及时纠错。
2)交互动作:在表项之间自动地跳跃/转换并不总是可取的,尤其是对于不熟练的用户,往往会被搞得无所适从,要使用TAB键或回车键控制在表项间的移动。
3)明确取消:如果用户中断了一个输入序列,已经输入的数据不要立即丢弃。
这样才能对一个也许是错误的取消动作进行重新思考。
4)确认删除:为避免错误的删除动作可能造成的损失,在键入了删除命令后,必须进行特别的确认,然后才执行删除操作。
例如,可以用Delete you sure?[Y/N]来确认。
5)提供反馈:若一个屏幕上可容纳若干输入内容,可将用户先前输入的内容仍保留在屏幕上,以便用户能够随时查看,明确下一步应进行的操作。
6)允许编辑:在一个文件输入过程中或输入完成后,允许用户对其编辑,以修改他们正在输入的数据或回去修改他们以前输入的数据。
应采纳一种前后一致的编辑方式。
7)提供复原(undo):应允许用户恢复输入以前的状态。
这在编辑和修改错误的操作中经常用到。