【软件工程】 & 详细设计
详细设计(过程设计):
一.详细设计的任务
1.为每个模块确定采用的算法
2.确定每一模块使用的数据结构
3.确定模块接口的细节
4.要为灭一个模块设计出一组测试用例
二.详细设计的方法
在过程设计阶段,要决定各个模块的实现算法,并精确地表达这些算法。表达过程规格说明的工具叫做详细设计工具。它可以分为以下三类:
➽ 图形工具(程序流程图,N-S图,问题分析图,PAD)
➽ 表格工具 (判定表)判定路径是否正确
➽语言工具(program design language,PDL)
图形工具:
(一)程序流程图:也称程序框图
优点:易学、表达算法直观。
缺点:(1)不够规范,特别是使用箭头使质量受到很大影响,需要加以限制,使其成为规范的详细设计工具
(2)不是逐步求精的好工具,它诱使程序员过早考虑控制流程,而不去考虑程序的整体结构。
(3)不易表示数据结构和层次结构。
五种基本控制结构:
顺序型
选择型
先判定型循环(Do-While)
后判定型循环(Do-Until)
多情况选择型(CASE型) (二)N—S图(盒图):
五种基本控制结构由五种图形构件表示:
N-S图特点:
1.功能域表示明确
2.不能实现任意的转移
3.很容易确定局部和全部的作用域
4.很容易的表示模块的嵌套以及模块的层次结构
5.可以表示模块之间的调用关系
N-S图的不足:
1.控制关系比较隐含
2.循环次数隐含
3.比程序流程图好 ,使编程人员逐步养成结构化方式思考问题
注意:N-S 图可以嵌套,但是嵌套不允许交叉。
(三)问题分析图(PAD):
PAD图优点:
1.所设计的程序是结构化的
2.所描述的流程图清晰
3.程序的逻辑结构易懂,便于记忆
4.很易将PAD图转变为高级语言程序,嵌套层次清晰
5.很容易描述数据结构
6.支持自顶向下,逐步求精的方法
(四)HIPO图:HIPO 图
表格工具:
判定表:
❥ 判定表用于表示程序的静态逻辑
❥ 在判定表中的条件部分给出所有的两分支判断的列表,动作部分给出相应的处理
❥要求将程序流程图中的多分支判断都改成两分支判断
建立判定表的步骤: 语言工具:
过程设计语言(PDL):
✦ 过程设计语言(Process Design Language, PDL)也称为伪码,是一种用于描述模块算法设计和处理细节的语言。
✦ 一方面,PDL具有严格的关键字外层语法,用于定义控制结构和数据结构;
✦另一方面,PDL表示实际操作和条件的内层语法又是灵活*的,可使用自然语言的词汇。
PDL特点:
✎提供全部结构化控制结构、数据说明和模块特征。能对PDL正文进行结构分割,使之变得易于理解。
✎为了区别关键字,规定关键字一律大写,其他单词一律小写。
或者规定关键字加下划线,或者规定他们为黑体字。
PDL的优点:
✎它既可以描述过程,数据,也可以描述模块,接口等
PDL不足:
✎不足:不如图形工具直观,复杂的条件组合与动作之间关系时不如判定表清晰简单