详细设计阶段的根本目标:确定应该怎样具体地实现所要求的系统,在此阶段得出对目标系统的精确描述,在编码阶段可以把这个描述直接翻译成程序设计语言书写的程序。除了应该保证软件的可靠性之外,使将来编写出来的程序可读性好,容易理解,容易测试,容易修改和维护也是详细设计阶段最重要的目标
详细设计的记过基本上决定了最总的程序代码的质量,衡量程序的质量不仅要看它的逻辑是否正确,性能是否满足要求,更主要的是看它是否容易阅读和理解
人机界面的设计:人机界面的设计质量,直接影响用户对软件产品的评价,从而影响软件产品的竞争力和寿命,因此必须对人机界面设计予以重视
人机界面设计问题:
-
系统响应时间:长度,易变性
-
用户帮助设施:
-
提供部分功能还是全部功能的帮助信息?
-
用户怎么请求帮助?
-
怎么显示帮助信息?
-
用户怎么返回到正常的交互方式?
-
怎样组织帮组信息?
-
-
出错信息处理:
-
信息应该用胡勇可以理解的术语描述问题
-
信息应该提供有助于从错误中恢复的建设性意见
-
信息应该指出可能导出那些负面后果,以便用户检查是否出现了这些问题,并在确实出现问题时及时解决
-
信息应该伴随听觉上或视觉上的提示。
-
信息不能带有指责色彩
-
-
命令交互:
人机界面设计指南
-
一般交互指南:
-
保持一致性
-
提供有意义的反馈
-
在执行有较大破坏性的动作之前要求用户确认
-
允许取消绝大多数操作
-
减少在两次操作之间必须记忆的信息量
-
提高对话,移动和思考的效率
-
允许犯错误
-
按功能对动作分类,并据此设计屏幕布局
-
提供对用户工作内容敏感的帮助设施
-
用简单的动词或动词短语作为命令名
-
-
信息显示指南:
-
只显示与当前工作内容有关的信息
-
不要用数据淹没用户,应该用便于用户迅速信息的方式来表示数据
-
使用一致的标记,标准的缩写和可预知的颜色
-
允许用户保持可视化的语境
-
产生有意义的出错信息
-
使用大小写,缩进和文本分组以帮助理解
-
使用窗口分割不同类型的信息
-
使用”模拟“显示方式表示信息
-
高效率地使用显示屏
-
-
数据输入指南:
-
尽量减少用户输入动作
-
保持信息显示和数据输入的一致性
-
允许用户自定义输入
-
交互应该是灵活的
-
使在当前动作语境中不适用的命令不起作用
-
让用户控制交互流
-
对所有输入动作都提供帮助
-
消除冗余的输入
-
过程设计的工具:
-
程序流程图
-
盒图
-
PAD图
-
判定表
-
判定树
面向数据结构的设计方法:
-
Jackson图
-
改进的Jackson图
McCabe方法:
-
流图:实际上是退化了的程序流程图,它仅仅描述程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件
-
计算环形复杂度的方法:
-
流图中线性无关的区域数等于环形复杂度
-
V=E-N+2 E是流图中的边, N是结点数
-
V =P+1 P是流图中判定结点的数目
-
-
环形复杂度的作用:说明了程序结构的复杂程度,模块规模以V(G)<=10为宜