第8章结构化详细设计
重复结构
seq Block1 Block2 Block3 A end
A iter until
cond Block1 A end
A iter while
A end
cond Block1 A end
统计单词数目
统计空格
seq
打开文件 读入字符串 Totalsum
如果申请者的年龄在21岁以下,要额外收费; 如果申请者是21岁以上并是26岁以上的女性,适用于A类 保险; 如果申请者是26岁以下的已婚男性,或者26岁以上的男性, 适用于B类保险; 如果申请者是21岁以下的女性或26岁以下的单身男性适用 于C类保险; 除此之外的其他申请者都适用于A类保险。
交互界面设计指南
交互界面的设计指南 信息显示的设计指南 数据输入的设计指南
CAD系统界面设计
圆弧绘制的基本参数包括圆心(Center)、半 径(Radiu)、圆心角(Angle)、弦长( chord of length)、切线方向(direction)、起 点(start)和终点(end)。根据参数的不同 和次序,绘制圆弧可以有10种方法
可视目录表给出程序的层次关系
体系框图:又称层次图(H图),是可视目录表的主体,用 它表明各个功能的隶属关系 图例:图形符号说明 描述说明:每一框的补充说明
IPO图则为程序各部分提供具体的工作细节
盘存/销售系统工作流程图
层次图
说明
IPO图
详细的IPO图
判定表
例如:某数据流图中有一个“确定保险类别”的加工, 指的是申请汽车驾驶保险时,要根据申请者的情况确 定不同的保险类别。 加工逻辑为:
通过界面和系统交互的最终用户分析 最终用户为完成工作要做的任务分析 确定界面的类型 任务处理的环境
人机交互界面分析过程
交互界面设计步骤
建立任务的目标和意图; 为每个目标和意图制定特定的动作序列; 按照在界面上执行的方式对动作序列进行规约; 指明系统状态,即执行动作时的界面表现; 定义控制机制,即用户可用的改变系统状态的 设备和动作; 指明控制机制如何影响系统状态; 指明用户如何通过界面上的信息解释系统状态;
=0 程序体 iter until文件结束
……
程序体end 印总数seq
印出空格总数
印总数end
关闭文件 停止
统计空格end
8.4人机界面设计
人机界面设计的任务,就是根据对用户在使用 交互式系统时的所作所为,或者是用户想象中 的所作所为,或者是他人想象中用户的所作所 为的抽象,创建或导出一致的表示界面。 设计人机界面要充分考虑到人的因素,如用户 的特点、用户怎样学会与系统交互工作、用户 怎样理解系统产生的输出信息以及用户对系统 有什么期望等。 考虑界面的风格,可用的软、硬件技术及应用 本身产生的影响。
缺少判定采取的动作 有冗余的列
制作判定表
1
年龄 性别 婚姻 A类保险 B类保险 C F S
2
C F E
3
C M S
4
C M E √
5
Y F S √
6
Y F E √
7
Y M S
8
Y M E √
9
L F S √
10
L F E √
11
L M S √
12
L M E √
C类保险
额外收费
√
√
√
√
√
√ √
交互界面设计原则
美学规则
置用户于控制之下 减少用户的记忆负担 保持界面一致
人机界面模型
软件工程师创建的用户模型 软件工程师创建的设计模型 最终用户对未来系统的假想 系统的实现者创建的实现模型
人机交互界面分析
人机界面的设计工作应与软件系统的需求分析 工作同步进行。它主要包括:
程序流程图
程序流程图又称为程序框图,Goldstine于1946年首先 采用。 它的主要优点是对控制流程的描绘很直观,便于初学 者掌握。 程序流程图的主要缺点:
程序流程图本质上不是逐步求精的好工具,它诱使程序员 过早地考虑程序的控制流程,而不去考虑程序的全局结构; 程序流程图中用箭头代表控制流,因此程序员不受任何约 束,可以完全不顾结构程序设计的精神,随意转移控制; 程序流程图不易表示数据结构。
3点绘制圆弧 起点-圆心-终点 起点-圆心-圆心角 起点-圆心-弦长 起点-终点-圆心角 起点-终点-切线方向 起点-终点-半径 圆心-起点-终点 圆心-起点-圆心角 圆心-起点-弦长
程序流程图符号
(a)预处理 (b)选择
(c)多分支
(d)循环上界 (e)循环下界
(
f)开始/结束 (g)准备 (h)注释 (i)虚线 (j)省略 (k)并行方式 (l)控制流
盒图
盒图是由Nassi和Shneiderman提出的,所以又称为N-S图。 每个处理步骤都用一个盒子来表示,这些处理步骤可以是语句或语 句序列,在需要时,盒子中还可以嵌套另一个盒子,嵌套深度一般 没有限制。 盒图具有下述特点:
第8章 结构化详细设计
结构化详细设计的结构和特点 结构化详细设计工具 人机交互界面设计 数据库设计 编码实现
8.1详细设计
详细设计就是在概要设计的基础上决定如何具 体实现各模块的内部细节,直到对系统中的每 个模块给出足够详细的过程描述。 在编码实现阶段就可以完全按照详细设计的细 节过程来映射到代码,最终实现整个系统。 一般使用结构化程序设计工具来描述
√
合并后的判定表
1 年龄 性别 婚姻 A类保险 B类保险 C类保险 √ C F --
3 C M S
4 C M E
5 Y F -√
7 Y M S
8 Y M E
9 L F -√
11 L M --
√ √ √ √ √
√
√
额外保险 √
判定树
判定树是判定表的变形,一般情况下它比判定表更 直观,且易于理解和使用
PAD图举例
P1 P2 P3 C P4 P5 P2
P6 C1 until C2 P8 until C3 P1 0 b.使用 def 符号细化处理框 P2 后的 PAD 图 P9 P7
def
a.初始的 PAD 图
HIPO图
HIPO(Hiberarchy Plus Input-Process-Output,层次 加输入-处理-输出)图是根据IBM公司研制的软件 设计与文件编制技术发展而来的。 HIPO图采用功能框图和PDL来描述程序逻辑,它 由两部分组成:
PAD图符号
P1 C P2 a.顺序
P1 X=
L1 L2
P1 P2
P2 b.if-then-else 选择
Ln
Pn
c.case 多分支选择 While c P until c P
d.do-while 型循环
e.repeat-until 型循环
PAD图的主要优点
使用表示结构化控制结构的PAD符号设计出来的程序必然是 结构化程序。 PAD图所描绘的程序结构十分清晰。图中最左边的竖线是程 序的主线,即第一层结构。随着程序层次的增加,PAD图逐 渐向右延伸,每增加一个层次,图形向右扩展一条竖线。 PAD图中竖线的总条数就是程序的层次数。 用PAD图表现程序逻辑,易读、易懂、易记。PAD图是二维 树形结构的图形,程序从图中最左竖线上端的结点开始执 行,自上而下,从左向右顺序执行,遍历所有结点。 容易将PAD图转换成高级语言源程序,这种转换可用软件工 具自动完成,从而可省去人工编码的工作,有利于提高软 件可靠性和软件生产率。 既可用于表示程序逻辑,又可用于描绘数据结构。
结构化详细设计的结构
三种基本结构
顺序结构 选择结构 循环结构
A B B
exp A A T exp F 或
F exp T A
a.顺序
b.if-then-else 选择
c.do-while 循环
结构化程序设计优点
自顶向下逐步求精的方法符合人类解决复杂问题的普遍规律, 因此可以显著提高软件开发工程的成功率和生产率。 用先全局后局部、先整体后细节、先抽象后具体的逐步求精 过程开发出的程序有清晰的层次结构,因此容易阅读和理解。 仅使用单入口单出口的控制结构,使得程序的静态结构和它 的动态执行情况比较一致。因此,程序容易阅读和理解,开 发时也比较容易保证程序的正确性,即使出现错误也比较容 易诊断和改正。 控制结构有确定的逻辑模式,编写程序代码只限于使用很少 几种直截了当的方式,因此源程序清晰流畅,易读易懂而且 容易测试。 程序清晰和模块化使得在修改和重新设计一个软件时可以重 用的代码量最大。 程序的逻辑结构清晰,有利于程序正确性证明。
外层用来描述控制结构,采用顺序、选择、重复
三种基本结构。 内层一般采用祈使语句的自然语言短语,使用数 据字典中的名词和有限的自定义词,其动词含义 要具体,尽量不用形容词和副词来修饰。
PDL三种结构
顺序结构
A
选择结构 A select cond1 Block1 A or cond2 Block2 A or cond3 Block3
未婚—C类保险且额外收费
年龄≤21
男性 确保保险类别
已婚—B类保险且额外收费 未婚—C类保险 已婚—D类保险 B类保险 C类保险收额外收费 A类保险