一、概述
详细设计阶段根本目标是确定应该怎样具体实现所要求的系统。
详细设计阶段的任务不是具体编写程序,而是设计出程序的蓝图。
二、结构程序设计
经典定义:如果仅允许使用顺序,选择,循环这三种基本控制结构,则称为经典的结构程序设计。
扩展定义:还允许使用DO_CASE型多分支结构和DO_WHILE型循环结构,则称为扩展的结构程序设计。
修正定义:再允许使用LEAVE 和 BREAK结构,则称为修正的结构程序设计。
三、人机界面设计
人机界面设计是接口设计的重要组成部分;设计问题:
- 系统响应时间 (用户完成某个控制动作,到软件给出预期的响应之间的这段时间)--------其有两个重要属性:
长度和易变性 - 用户帮助设施
- 出错信息处理
- 命令交互
人机界面设计指南:
- 一般交互指南
- 信息显示指南
- 数据输入指南
四、过程设计的工具(分三类:图形、表格、语言)
程序流程图(又称程序框图)
- 优点:简单直观,为人所熟悉
- 缺点:1)本质上不是逐步求精的好工具 2)诱导程序员过早考虑程序的控制流程,而不去考虑程序的全局结构 3)程序可随意转移控制,不易表示数据结构
盒图(N-S流程图)
- 特点:1)功能域明确 2)不可能任意转移控制 3)很容易确定局部和全程数据的作用域 4)很容易表现出嵌套关系,也可以表示模块的层次结构
PAD图[二维树形结构的图表示程序的控制流]
- 优点:
1)使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序
2)PAD图所描绘的程序结构十分清晰
3)PAD图表现程序逻辑易读,易懂,易记
4)容易将PAD图转换成高级语言源程序
5)可用于表示程序逻辑也可描绘数据结构
6)PAD符号支持自顶向下,逐步求精方法的使用
判定表
可以简洁无歧义地描述处理规则,但条件太多时会太复杂。
判定树
易读,但简洁性不如判定表,数据元素的同一个值往往要重复写多遍,越接近树的叶端重复次数越多。
语言(主要指PDL——伪代码)
是一种混杂的语言
五、面向数据结构的设计方法
面向数据结构的设计方法最终目标是得出对程序处理过程的描述。
此方法适用于在详细阶段使用,也就是在完成了软件结构设计之后,可以使用面向数据结构的方法来设计每个模块的处理过程。
1、Jackson图 :
顺序结构
选择结构
重复结构
- 优点:1)是对结构进行自顶向下分解的有力工具 2)形象直观可读性强 3)既能表示数据结构也能表示程序结构。
2、改进的Jackson图 :
相较于Jackson图增添了可选结构
补:Jackson图实质是对层次方框图的一种精化。
层次方框图中一个方框代表一个模块,上层方框对下层方框表现出调用关系。
Jackson图中的方框只代表几个语句,且方框表现出组成关系。 (即,一个方框中包括的操作仅由它下层方框中的那些操作组成。)