第8章结构化详细设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
判定表
提取问题中的条件:年龄、性别、婚姻。 标出条件的取值
条件名 年龄 取值 年龄≤21 21<年龄<26 年龄≥26 男 女 未婚 已婚 C Y L M F S E 符号 取值数m m1=3
性别 婚姻
m2=2 m3=2
判定表
计算所有条件的组合数N。N= =3×2×2 提取可能争取的动作或措施。适用于A类保险、 B类保险、C类保险,额外收费共四种。 制作判定表 完善判定表
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图转换成高级语言源程序,这种转换可用软件工 具自动完成,从而可省去人工编码的工作,有利于提高软 件可靠性和软件生产率。 既可用于表示程序逻辑,又可用于描绘数据结构。
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来描述程序逻辑,它 由两部分组成:
外层用来描述控制结构,采用顺序、选择、重复
三种基本结构。 内层一般采用祈使语句的自然语言短语,使用数 据字典中的名词和有限的自定义词,其动词含义 要具体,尽量不用形容词和副词来修饰。
PDL三种结构
顺序结构
A
Hale Waihona Puke Baidu
选择结构 A select cond1 Block1 A or cond2 Block2 A or cond3 Block3
结构化详细设计的结构
三种基本结构
顺序结构 选择结构 循环结构
A B B
exp A A T exp F 或
F exp T A
a.顺序
b.if-then-else 选择
c.do-while 循环
结构化程序设计优点
自顶向下逐步求精的方法符合人类解决复杂问题的普遍规律, 因此可以显著提高软件开发工程的成功率和生产率。 用先全局后局部、先整体后细节、先抽象后具体的逐步求精 过程开发出的程序有清晰的层次结构,因此容易阅读和理解。 仅使用单入口单出口的控制结构,使得程序的静态结构和它 的动态执行情况比较一致。因此,程序容易阅读和理解,开 发时也比较容易保证程序的正确性,即使出现错误也比较容 易诊断和改正。 控制结构有确定的逻辑模式,编写程序代码只限于使用很少 几种直截了当的方式,因此源程序清晰流畅,易读易懂而且 容易测试。 程序清晰和模块化使得在修改和重新设计一个软件时可以重 用的代码量最大。 程序的逻辑结构清晰,有利于程序正确性证明。
可视目录表给出程序的层次关系
体系框图:又称层次图(H图),是可视目录表的主体,用 它表明各个功能的隶属关系 图例:图形符号说明 描述说明:每一框的补充说明
IPO图则为程序各部分提供具体的工作细节
盘存/销售系统工作流程图
层次图
说明
IPO图
详细的IPO图
判定表
例如:某数据流图中有一个“确定保险类别”的加工, 指的是申请汽车驾驶保险时,要根据申请者的情况确 定不同的保险类别。 加工逻辑为:
缺少判定采取的动作 有冗余的列
制作判定表
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类保险
额外收费
√
√
√
√
√
√ √
交互界面设计原则
美学规则
置用户于控制之下 减少用户的记忆负担 保持界面一致
人机界面模型
软件工程师创建的用户模型 软件工程师创建的设计模型 最终用户对未来系统的假想 系统的实现者创建的实现模型
人机交互界面分析
人机界面的设计工作应与软件系统的需求分析 工作同步进行。它主要包括:
如果申请者的年龄在21岁以下,要额外收费; 如果申请者是21岁以上并是26岁以上的女性,适用于A类 保险; 如果申请者是26岁以下的已婚男性,或者26岁以上的男性, 适用于B类保险; 如果申请者是21岁以下的女性或26岁以下的单身男性适用 于C类保险; 除此之外的其他申请者都适用于A类保险。
程序流程图符号
(a)预处理 (b)选择
(c)多分支
(d)循环上界 (e)循环下界
(
f)开始/结束 (g)准备 (h)注释 (i)虚线 (j)省略 (k)并行方式 (l)控制流
盒图
盒图是由Nassi和Shneiderman提出的,所以又称为N-S图。 每个处理步骤都用一个盒子来表示,这些处理步骤可以是语句或语 句序列,在需要时,盒子中还可以嵌套另一个盒子,嵌套深度一般 没有限制。 盒图具有下述特点:
√
合并后的判定表
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 --
√ √ √ √ √
√
√
额外保险 √
判定树
判定树是判定表的变形,一般情况下它比判定表更 直观,且易于理解和使用
交互界面设计指南
交互界面的设计指南 信息显示的设计指南 数据输入的设计指南
CAD系统界面设计
圆弧绘制的基本参数包括圆心(Center)、半 径(Radiu)、圆心角(Angle)、弦长( chord of length)、切线方向(direction)、起 点(start)和终点(end)。根据参数的不同 和次序,绘制圆弧可以有10种方法
未婚—C类保险且额外收费
年龄≤21
男性 确保保险类别
已婚—B类保险且额外收费 未婚—C类保险 已婚—D类保险 B类保险 C类保险收额外收费 A类保险
21<年龄≤26
年龄>26
女性
年龄≤21 年龄>21
过程描述语言PDL
过程描述语言(PDL-Procedural Description Language)介于自然语言和形式语言之间的 一种半形式化语言,是在自然语言基础上加了 一些限定,使用有限的词汇和有限的语句来描 述加工逻辑。
PAD图
PAD是问题分析图(Problem Analysis Diagram) 的英文缩写,自1973年由日本日立公司发明。 它是由程序流程图演化而来,用二维树形结构 的图来表示程序的控制流,将这种图翻译成程 序代码比较容易。 PAD图的基本原理:采用自顶向下、逐步细化 和结构化设计的原则,力求将模糊的问题解的 概念逐步转换为确定的和详尽的过程,使之最 终可采用计算机直接进行处理。
盒图很容易表示程序结构化的层次结构,确定局部和全局数据的作 用域。由于没有箭头,因此不允许随意转移控制。
盒图符号
A B a.顺序
F B
P A
T
F
P A
T
Do while p S c.do-while 循环
b.IF-THEN-ELSE 选择 P =1 =2 A1 A2 e.多分支选择 =n An
S Do until p d.do-until 循环
详细设计的基本任务
为每个模块进行详细的算法设计 为模块内的数据结构进行设计 为数据结构进行物理设计,即确定数据库的物理结构 其他设计:根据软件系统的类型,还可能要进行以下设计: 代码设计 输入/输出格式设计 人机对话设计 编写详细设计文档 评审
8.2结构化详细设计
结构化详细设计也称为结构化程序设计。 结构化程序设计的理念是在20世纪60年代, 由Dijkstra等人提出并加以完善的。 结构化的程序一般只需要用三种基本的逻辑结 构就能实现。这三种基本逻辑结构是顺序结构、 选择结构和循环结构。 结构化程序设计是一种设计程序的技术,它采 用自顶向下逐步求精的设计方法和单入口单出 口的控制结构。
8.3结构化详细设计工具
图形工具:把过程的细节表示成一个图的组成 部分,在这个图上,逻辑构造用具体的图形来 表示。 列表工具:用一个表来表示过程的细节,这个 表列出了各种操作及其相应的条件。也即,描 述了输入、处理和输出信息。 语言工具:用类语言来表示过程的细节,这种 类语言很接近于编程语言。
功能域(即,一个特定控制结构的作用域)明确,可以从盒图上一眼 就看出来。 由于只能从上边进入盒子然后从下面走出盒子,除此之外没有其它的 入口和出口,所以盒图限制了任意的控制转移,保证程序有良好的结 构。 很容易确定局部和全程数据的作用域。 很容易表现嵌套关系,也可以表示模块的层次结构。
程序流程图
程序流程图又称为程序框图,Goldstine于1946年首先 采用。 它的主要优点是对控制流程的描绘很直观,便于初学 者掌握。 程序流程图的主要缺点:
程序流程图本质上不是逐步求精的好工具,它诱使程序员 过早地考虑程序的控制流程,而不去考虑程序的全局结构; 程序流程图中用箭头代表控制流,因此程序员不受任何约 束,可以完全不顾结构程序设计的精神,随意转移控制; 程序流程图不易表示数据结构。
=0 程序体 iter until文件结束
……
程序体end 印总数seq
印出空格总数
印总数end
关闭文件 停止
统计空格end
8.4人机界面设计
人机界面设计的任务,就是根据对用户在使用 交互式系统时的所作所为,或者是用户想象中 的所作所为,或者是他人想象中用户的所作所 为的抽象,创建或导出一致的表示界面。 设计人机界面要充分考虑到人的因素,如用户 的特点、用户怎样学会与系统交互工作、用户 怎样理解系统产生的输出信息以及用户对系统 有什么期望等。 考虑界面的风格,可用的软、硬件技术及应用 本身产生的影响。
通过界面和系统交互的最终用户分析 最终用户为完成工作要做的任务分析 确定界面的类型 任务处理的环境
人机交互界面分析过程
交互界面设计步骤
建立任务的目标和意图; 为每个目标和意图制定特定的动作序列; 按照在界面上执行的方式对动作序列进行规约; 指明系统状态,即执行动作时的界面表现; 定义控制机制,即用户可用的改变系统状态的 设备和动作; 指明控制机制如何影响系统状态; 指明用户如何通过界面上的信息解释系统状态;
第8章 结构化详细设计
结构化详细设计的结构和特点 结构化详细设计工具 人机交互界面设计 数据库设计 编码实现
8.1详细设计
详细设计就是在概要设计的基础上决定如何具 体实现各模块的内部细节,直到对系统中的每 个模块给出足够详细的过程描述。 在编码实现阶段就可以完全按照详细设计的细 节过程来映射到代码,最终实现整个系统。 一般使用结构化程序设计工具来描述
3点绘制圆弧 起点-圆心-终点 起点-圆心-圆心角 起点-圆心-弦长 起点-终点-圆心角 起点-终点-切线方向 起点-终点-半径 圆心-起点-终点 圆心-起点-圆心角 圆心-起点-弦长
重复结构
seq Block1 Block2 Block3 A end
A iter until
cond Block1 A end
A iter while
A end
cond Block1 A end
统计单词数目
统计空格
seq
打开文件 读入字符串 Totalsum