软件设计(详细设计)PPT课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Case条件
Case1 Case2 … Casen
AB
N
c.多分支结构
循环条件 Do-While
部分
d.当型循环结构
Do-Until 部分
循环条件
e.直到型循环结构
A f.调用子程序A
图3.4 盒图的基本符号
F A
盒图例子
T B C D
A:
Case 1234 E FGH
(3) PAD图
PAD(Problem Analysis Diagram)是问题分析图。 日立公司发明和推广(1973)。
实用软件工程
第三章 软件设计 (详细设计)
第3章 软 件 设 计 软件设计通常分为两个阶段:总体设计阶段和详
细设计阶段。 总体设计
详细设计
详细3设.1计软的件基设本计任的务基本任务
详细设计是总体设计的进一步的具体化,主 要确定每个模块的具体执行过程,故也称为过程 设计。其基本任务有: (1).为每个模块进行详细的算法设计。 (2).为模块内的数据结构进行设计。 (3).对数据库进行物理设计 。 (4).界面设计。 (5).编写文档 (6).评审
打开数据库 SQL查询语句赋值 通过记录集对象打开SQL语句设定的记录
Y 记录集末端?
N 记数变量加1,输出记录字段值及图像
转跳下一记录 关闭数据库链接对象、记录集对象,并释放资源
输出记录数和提示 结束
程序流程图的缺点: 1)程序流程图本质上不是逐步求精的好工具,它诱
使程序员过早地考虑程序的控制流程,而不去考 虑程序的全局结构。
5)可用于表示程序逻辑,也可用于描绘数据结构; 6)PAD图的符号支持自顶向下、逐步求精的方法。
2)程序流程图中用箭头代表控制流,因此程序员不 受任何约束,可以完全不顾结构程序设计的精神, 随பைடு நூலகம்转移控制。
3)程序流程图不易表示数据结构。
(2) 盒图(N-S图)
由Nassi和Shneiderman开发了另一种图形化设计工具,它的目标 是保证结构化程序设计,这种图形工具叫做盒状图,或称为 N—S图。
3.4详细设计
3.4.1详细设第计6的章目:标详:细设计
确定如何具体实现所要求的系统。 不是具体编写程序,而是设计程序的“蓝图”。 详细设计的结果决定最终程序代码的质量。
不仅在逻辑上正确地实现每个模块的功能,更重要的 设计出的处理过程应该尽可能简明易懂。
3.4详细设计
3.4.2 结构程序设计: 一种设计程序的技术,它采用自顶向下逐
提示重新输入
例子:
P1
P2 P3
C P4
P5
a.初始的PAD图
P6
def
UNTIL C2
P7
P2
C1
P8
UNTIL C2
P9
P10 b.使用def符号细化处理框P2
PAD图例子
将盒图转换为PAD图
PAD图的优点: 1)使用表示结构化控制结构的PAD符号所设计出来的程 序必然是结构化程序; 2)PAD图所描绘的程序结构十分清晰。
图中最左面的竖线是程序的主线,即第一层结构。随 着程序层次的增加,PAD图逐渐向右延伸,每增加一个 层次,图形向右扩展一条竖线。PAD图中竖线的总条数 就是程序的层次数;
3)用PAD图表现程序,通俗易懂,程序从图中最左竖 线上端的结点开始执行,自上而下,从左向右顺序 执行,遍历所有结点;
4)容易将PAD图转换成高级语言源程序,这种转换可 以用软件工具自动完成;
A exp
(e)UNTIL循环
3.4.4 详细设计时使用的工具
(1) 程序流程图
程序流程图:是一种描述程序的控制结构 流程和指令执行情况的有向图。
历史悠久、使用广泛、直观描绘控制流程、 便于初学者掌握。
ASP检索程序流程图:
开始
加载Include文件 定义记数变量、作物变量 用客户提交的值对作物变量赋值 创建数据库链接对象、记录集对象
需要时,盒子中还可以嵌套另一个盒子,嵌套深度一般没有 限制,只要整张图在一页纸上能容纳得下,由于只能从上 边进入盒子然后从下边走出,除此之外没有其他的入口和 出口,所以,NS图限制了随意的控制转移,保证了程序 的良好结构。
盒图(N-S图)
A B C
a.顺序结构
F 条件 T
Else Then
B
A
b.选择结构
盒图的特点: (1)功能域(即一个特定控制结构的作用域)明确,很容易从盒
图上看出。 (2)不可能任意转移控制 (3)很容易确定局部和全程数据的作用域 (4)很容易表现嵌套关系,也可以表示模块的层次结构 (5)盒图没有箭头,不可以随意转移控制,不允许违背程序设计
的原则。
盒图(N-S图)
在NS 图中,每个“处理步骤”是用一个盒子表示的,所谓 “处理步骤”可以是语句或语句序列。
扩展的结构程序设计:除了三种基本控制结构, 还使用DO_CASE和DO_UNTIL循环;
修正的结构程序设计:除了三种基本控制结构 和两种扩充结构,还使用BREAK等结构。
3.4.3 三种基本控制结构
1)顺序结构:相当于“A、B”
A B (a)顺序结构
2)选择结构 相当于“If exp then A else B endif ”
P1
WHILE C
P
UNTIL C
P
P2
a.顺序结构
b.当型循环结构
c.直到型循环结构
L1
P1
C
P1
L2 X=
P2
…
P2
Ln
Pn
f.语句标号 def
d.选择结构
e.多分支结构
g.定义
PAD图的基本符号
例子:
输入及验证模块
开始
通知预约 服务模块
输入读者号和图书号
Y
输入数 据有效 吗?
N
结束
用读者号和图书号查 借还书记录表
exp
A
B
(b)选择结构
3)循环结构:相当于“While exp do A”
exp A (c)循环结构
3. 扩充两种控制结构
1)多分支结构 相当于“Case I of I=1:C1; I=2:C2; I=3:C3; … ; I=n:Cn”
I=?
C1
C2
C3 … Cn
(d)多分支结构
2)UNTIL循环结构 相当于“Repeat A Until exp”
步求精的设计方法和单入口单出口的控制结 构。
3.4详细设计
使用结构程序设计技术的好处: 1)提高软件开发工程的成功率和生产率; 2)系统有清晰的层次结构,容易阅读理解; 3)单入口单出口的控制结构,容易诊断纠正; 4)模块化可以使得软件可以重用; 5)程序逻辑结构清晰,有利于程序正确性证明。
经典的结构程序设计:只允许使用顺序、 IF_THEN_ELSE选择和DO_WHILE循环;