确定应该怎样具体地实现所要求的系统。
详细设计阶段的任务不是具体地编写程序,而是要设计出程序的“蓝图”。
详细设计的结果基本上决定了最终的程序代码的质量
衡量程序的质量不仅要看它的逻辑是否正确,性能是否满足要求,更重要的是要看它是否容易阅读和理解
结构程序设计
“顺序”、“选择”和“循环”控制结构
结构程序设计经典定义:如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。
结构程序设计更全面的定义:结构程序设计是尽可能少 用GO TO语句的程序设计方法。最好仅在检测出错误时才使用 GO TO语句,而且应该总是使用前向GO TO语句
如果只允许使用顺序、IF-THEN-ELSE型分支和DO-WHILE 型循环这3种基本控制结构,则称为经典的结构程序设计;
如果除了上述3种基本控制结构之外,还允许使用DOCASE型多分支结构和DO-UNTIL型循环结构,则称为扩展的结构程序设计;
如果再允许使用LEAVE(或BREAK)结构,则称为修正的结构程序设计
人机界面设计
设计问题
①系统响应时间(注重用户体验)
系统响应时间指从用户完成某个控制动作(例如,按回车键或单击鼠标),到软件给出预期的响应(输出信息或做动作)之间的这段时间。 系统响应时间有两个重要属性,分别是长度和易变性。
长度:时间过长,用户就会感到紧张;过短,加快用户操作节奏, 可能会犯错误。
易变性:系统响应时间相对于平均响应时间的偏差即使系统响应时间较长,响应时间易变性低也有助于用户建立起稳定的工作节奏
②用户帮助设施
常见的帮助设施可分为集成的和附加的两类。 具体设计帮助设施时,必须解决下述的一系列问题。
在用户与系统交互期间,是否在任何时候都能获得关于系统任何功能的帮助信息?有两种选择:提供部分功能的帮助信息和提供全部功能的帮助信息。
用户怎样请求帮助?有3种选择:帮助菜单,特殊功能键和HELP命令。
怎样显示帮助信息?有3种选择:在独立的窗口中,指出参考某个文档(不理想)和在屏幕固定位置显示简短提示。
用户怎样返回到正常的交互方式中?有两种选择:屏幕上的返回按钮和功能键。
怎样组织帮助信息?有3种选择:平面结构,信息的层次结构和超文本结构。
③ 出错信息处理(出了什么错、怎么改、后果)
出错信息和警告信息,是出现问题时交互式系统给出的“坏消息”。一般说来,交互式系统给出的出错信息或警告信息,具有下 述属性。
用用户可以理解的术语描述问题;
提供有助于从错误中恢复的建设性意见;
指出错误可能导致哪些负面后果(例如,破坏数据文件),以便用户检查是否出现了这些问题,并在确实出现问题时及时解决;
伴随着听觉上或视觉上的提示;
不能带有指责色彩,不能责怪用户
④ 命令交互
许多高级用户仍然偏爱面向命令行的交互方式,在提供命令交互方式时,必须考虑下列设计问题。
是否每个菜单选项都有对应的命令?
采用何种命令形式?有3种选择:控制序列/快捷键(例如Ctrl+P),功能键和输入命令;
学习和记忆命令的难度有多大?忘记了命令怎么办?
用户是否可以定制或缩写命令?
在理想的情况下,所有应用软件都有一致的命令使用方法
设计过程
用户界面设计是一个迭代的过程,通常先创建设计模型,再用原型实现这个设计模型,并由用户试用和评估ÿ