软件工程详细设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
1 详细设计的目标和任务
从软件开发的工程化观点来看,在 使用程序设计语言编制程序以前, 需要对所采用算法的逻辑关系进行 分析,设计出全部必要的过程细节, 并给予清晰的表达。这就是详细设 计的任务。
4
基本任务
◦ 回答的关键问题:“怎样具体地实现这个 系统”。
◦ 主要任务是设计出程序的“蓝图”,供程 序员日后根据这个蓝图编写出实际的程序 代码。
(取消GOTO语句)
1)“当”型循环 2)直到型循环
A
T exp F
A
B
B
exp F T
A
A
F exp T
顺序结构
选择结构
循环结构
6
结构程序设计
经典的结构程序设计:顺序,选择, 当型循环 扩展的结构程序设计:顺序,选择+多分支,当型循环+
直到型循环 修正的结构程序设计:顺序,选择+多分支,当型循环+
所有条件
所有可能的 动作列表
条件组合矩阵
与每种条件组合 所对应的动作表
国内乘客 头等舱 残疾乘客 行李≤30kg 免费 (W-30)*2 (W-30)*3 (W-30)*4 (W-30)*6 (W-30)*8 (W-30)*2
◦ 注意:设计程序的蓝图,不是具体地编写 程序。 Program Design Coding
◦ 设计程序主要采用结构化的程序设计方法。
5
什么是结构程序设计
结构程序设计是一种设计程序的技术, 它采用自顶向下逐步求精的设计方法 和单入口单出口的控制结构。
*只使用三种基本的控制结构 *单入口单出口的控制结构
(1)程序流程图又称为程序框图,是早期软件设 计的主要工具。
(2)优点: 对控制流程的描绘很直观,便于初学者掌握。
(3)缺点: 程序流程图本质上不是逐步求精的好工具, 它诱使程序员过早地考虑程序的控制流程, 而不去考虑程序的全局结构。
12
程序流程图中用箭头代表控制流,因此程 序员不受约束,可以完全不顾结构程序设 计的精神,随意转移控制。
第六章 详细设计
(Program Design)
主要内容
详细设计的目标和任务(理解) 详细设计工具(应用) 程序复杂性的定量度量(理解) 人机界面设计(自学)
软 件 定 义
软
件
生
开
命
发
周
时
期
期
维 护 时 期
问题定义 可行性研究 需求分析
系统设计 系统实现
系统分析
总体设计 详细设计 编码和单元测试 综合测试
结构程序设计的缺点
存贮容量和运行时间较大(增加10%---20%)。
8
详细设计的原则与方法
1、清晰第一的设计风格 2、结构化的控制结构 3、逐步细化(逐步求精)的实现方
法
9
逐步求精的含义
总体设计阶段逐步求精的含义:把一个 复杂问题的解法分解和细化成一个由许 多模块组成的层次结构的软件系统。
在PAD中有相应的循环控制结构
PAD的扩充控制结2构6
2.4 判定表
判定表用于表示程序的静态 逻辑。
在判定表中的条件部分给出 所有的两分支判断的列表, 动作部分给出相应的处理。
27
判定表能够清晰地表示复杂的条件组合与应做 的动作之间的对应关系,而其它的工具不易表 示。
一张判定表由四部分组成,左上部列出所有条 件,左下部是所有可能做的动作,右上部是表 示各种条件组合的一个矩阵,右下部是和每种 条件组合相对应的动作。
(3)很容易确定局部和全程数据的作用域。 (4)很容易表现嵌套关系,也可以表示模块的层
次结构。
18
五种基本控制结构由五种图 形构件表示。
19
示例
20
N-S图的嵌套定义形式
a
b
T
x1
F
f
T x4 F
ig
k
h Do-Until
x5
Do-Until x6
j
k:
x2
1
23
Do-While
x3
c
d
e
21
详细设计阶段逐步求精的含义:把一个 模块的功能逐步分解细化为一系列具体 的处理步骤。
10
2 详细设计工具
在详细设计阶段,要决定各个模块的 实现算法,并精确地表达这些算法。
表达详细规格说明的工具叫做详细设 计工具,它可以分为以下三类: 图形工具 表格工具 语言工具
11
2.1 程序流程图
程序流程图不易表示数据结构。
程序流程图使用 五种基本控制结构是:
13
14
示例
15
程序流程图的标准符号
16
多出口判断
17
wk.baidu.com
2.2 N-S图
N-S图也叫做盒图。Nassi和Shneiderman 提出,有以下特点:
(1)功能域(即一个特定控制结构的作用域)明 确,很容易从盒图上看出。
(2)盒图没有箭头,不可以随意转移控制,不允 许违背程序设计的原则。
直到型循环,break结构
do case i
Case 1 Case 2 ... Case n
多分支结构
结构程序设计的优点
•显著提高软件开发工程的成功率和生产率; •程序具有清晰的层次结构,容易阅读和理解; •程序的静态结构和动态结构较一致,程序容易读和 理解,开发较易保证程序的正确性; •控制结构有确定的逻辑模式,编写程序代码简单 •源程序清晰流畅,易读易懂易测试; •可以重用的代码量最大; •程序的逻辑结构清晰,有利于程序正确性证明。
判定表的每一列实质上是一条规则,规定了与 特定的条件组合相对应的动作。
28
详细设计的工具 ---- 判定表
例子 假设某航空公司规定,乘客可以免费托运重量不超过30公斤的行李。 当行李重量超过30公斤时,对头等舱的国内乘客超重部分每公斤收费 4 元, 对其它舱的乘客超重部分每公斤收费 6 元,对外国乘客超重部分每公斤收费 比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。用 判定表来表示与上述每种条件组合相对应的动作。
2.3 问题分析图(PAD)
PAD图由日本日立公司在1973年发明, 它用二维树型结构的图来表示程序的控 制流,比较容易翻译成程序代码。主要 特点:
(1)使用PAD图设计的程序必然是结构化程 序。
(2)PAD图描绘的程序结构十分清晰。 (3)用PAD图表现程序逻辑,易读、易懂、
易记。
22
(4)PAD图面向高级语言,容易将PAD图 转换成高级语言源程序
(5)PAD图既可用于表示程序逻辑,也可用 于描绘数据结构。
(6)PAD图的符号支持自顶向下、逐步求精 方法的使用。
23
PAD也设置了五种基本控制结构的 图式,并允许递归使用。
24
开始
结束
PAD描述的示例
25
对应于增量型循环结构 for i := n1 to n2 step n3 do