软件工程-详细设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
do while(x!=s[0][i])
Y
i++ x== s[0][i]) i++
N
s[0][i] 输出 s[1][i]
Y
输入错误! N
继续查询?
跳出循环
2018/5/20
三、PAD 图 ------- Problem Analysis Diagram
A B
顺序型
A
p p
A
B
选择型 =1 =2 A2 A1
2018/5/20
一、程序流程图
1、顺序型 几个连续的加工依次序排列
A
B
2、选择型
由某个判断式的取值 决定选择两个加工中的一 个。
F
exp
T
A
B
2018/5/20
3、当型循环型 当循环控制条件成立时 ,重复执行特定的加工。
exp T
F
S
4、直到型循环型 重复执行特定的加工, 直到循环控制条件成立时。
--- 选择型结构
2018/5/20
DO WHILE <条件描述> <程序块/伪代码语句组>; ENDDO
REPEAT UNTIL <条件描述> <程序块/伪代码语句组>; ENDREP
--- 重复型结构
2018/5/20
DO LOOP <条件描述> <程序块/伪代码语句组>; EXIT WHEN ENDLOOP
T
p A B
F
T
p A
F
选择型 do while(p) S 当型循环型
S
do until (p) 直到型循环型
2018/5/20
多分支选择型
零件号 库存量
10001 1000
100Leabharlann Baidu2 1250
10003 886
10004 69
10005 2020
10006 3450
建立零件库 (s数组), i=0 输入零件号 x
Input array A Max=A(1) DO for I=2 to N IF Max<A(I) Set Max=A(I) ENDIF ENDDO Print Max
2018/5/20
请按下列给出的文字要求,用 PDL 描述其该模块的算法
设某模块的功能是:读入任意长的 一段英文课文,将其分解为单字。然后 输出一个单词表,并指出每个单词在课 文中所出现的次数。
2018/5/20
ELSE CASE OF Xi WHEN condition X2 SELECT DO WHILE condition X5 execute process C ENDDO WHEN condition X3 SELECT process d WHEN condition X4 SELECT process e ENDCASE ENDIF ENDREP execute process j END
四、PDL ------- Program Ddesign Language
PDL 是一种用于描述功能模块的算法设计和 加工细节的语言。称为设计程序用语言。它 是一种伪代码(Pseudo code)
PDL -----关键词+自然语言
2018/5/20
(1)、数据说明: 其功能是定义数据的类型和作用域 格式: TYPE <变量名> AS <限定词1> <限定词2>
While P
S
当型循环型
p
=n
Until P
S
直到型循环型
An 多分支选择型循环型 2018/5/20
begin
s[17]~s[22]=0
while num(1-1000) age
输入 age
=17 =18 =19
s[17]++
s[18]++ s[19]++ s[20]++ s[21]++ s[22]++
=20
=21 =22
while i(17-22)
输出 s[i]
end
2018/5/20
请为学生成绩管理系统中的学生成绩统计模块 设计程序结构。
要求: 1、统计各专业、各班级的高等数学平均分; 2、并将统计结果输出; 3、按平均成绩以班级为单位由高到低排序; 4、请利用PAD图描述该模块的算法。
2018/5/20
----- 多路选择结构
2018/5/20
READ/WRITE TO <设备> <I/O表>
--- 输入/输出结构
2018/5/20
Enter a vector Set Maximum to the value of the first element in the vector DO for each second one to the last IF value of THEN element is greater than the Maximum value Set Maximum to value of the element ENDDO Print the Maximum value
开发 时期
详细设计 编 码
测
运 行 时 期
试
运行与维护
2018/5/20
为每一模块确定算法
确定每一模块使用的数据结构
确定模块的外部接口和用户界面
详细设计 阶段的主 要任务
为每一模块设计一组测试用例
2018/5/20
5.2 详细设计阶段的描述工具
程序流程图
N-S 图 PAD 图 PDL 伪代码 描述工具
2018/5/20
说明: 1. 变量名:是一个模块内部使用的变量或模块间共用 的全局变量名。 2. 限定词1 :标明数据类型 3. 限定词2 :标明该变量的作用域
TYPE number AS STRING LENGTH (12)
2018/5/20
(2)、程序块: PDL的过程成分是由块结构构成的,而块将作为
一个单个的实体来执行。
设该模块为 查询模块。请设计该模块的 程序结构。具体要求: 1、应具有重复查询功能; 2、应具有数据检测功能; 3、请利用程序流程图描述该模块的算法。
2018/5/20
二、N-S 图 ------- Nassi and Shneideman
A B 顺序型 p
=1 =2 … =n A1 A2 … An
BEGIN <块名> < 一组伪代码语句> END
2018/5/20
(3)、子程序结构:
把 PDL 中的过程称为子程序。
PROCEDURE <子程序名> <一组属性> INTERFACE <参数表> < 程序块或一组伪代码语句> END
2018/5/20
(4)、基本控制结构:
IF <条件> THEN <程序块/伪代码语句组>; ELSE <程序块/伪代码语句组>; ENDIF
2018/5/20
请将下列的 PDL 表示的某模块的过程性描述, 改为用:1、N-S 图 2、PAD 图表示 … … execute process a REPEAT UNTIL condition X8 execute process b IF condition X1 THEN BEGIN execute process f IF condition X6 THEN REPEAT UNTIL condition X7 execute process i ENDREP ELSE BEGIN execute process g execute process h END ENDIF END
标准化程序流程图规定符号
起止端点
X1
输入/输出
一般处理
准备或预处理
预定义处理
条件判断
循环上界
循环下界
文件或文档
外接 内接
流程线
虚线
省略线
并行方式
注解或注释
2018/5/20
流程符号的使用规则
1、循环符号的使用
S=0 S=0,i=1 S=S+i
循环名 进入循环条件
循环体
i=1,100
S=S+i
i=i+1 i >100
循环名
F
i
循环体 ----- 循环流程符号的使用
T
2018/5/20
2、判断有一个入口,但也允许有多个可选出口
A=B
A:B A>B
A<B
X=? x=1 x=2 x=3
X=?
x=4
=1
=2
=3
=4
=5
----- 多出口判断流程符号的使用
2018/5/20
请利用程序流程图描述下列问题的程序结构
某汽车修配厂,有一个存有汽车零件的 仓库,其中存有若干种零件,请编写一个查 询程序,用于查询该库中某零件的库存量为 多少。
c
第五章 详细设计描述的工具
5.1 详细设计阶段的目的与任务
详细设计的目的: 为软件结构图 (SC) 中的每一个模块确定采用的算法和模块内 数据结构,用某种选定的表达工具给出清 晰的描述。
详细设计阶段的主要任务: 编写软件 的 “详细设计说明书”
2018/5/20
问题定义 计划 时期
可性行研究
需求分析 概要设计
DO FOR <下标=下标表,表达式> <程序块/伪代码语句组>; ENDFOR
--- 重复型结构
2018/5/20
CASE OF <case 变量名>; WHEN < case 条件1> SELECT <程序块/伪代码语句组>; WHEN < case 条件2> SELECT <程序块/伪代码语句组>; … … DEFAULT: < 缺省或错误case: <程序块/伪代码语句组>; ENDCASE
S
exp T F
2018/5/20
exp=1
T
S1 S2
5、多情况选择型 列出多种加工 情况,根据控制变 量的取值,选择执 行其一。
F
exp=2
T
F T
exp=n
Sn
F
2018/5/20
入口
a b F
X2 X1
T f
=1
X3
F
T g h
F
X4
T
i F
X5
=2 =3
c d
e
T F
X6
T
----- 具有嵌套形式的程序流程图 2018/5/20