《软件工程》课程教学资源(PPT课件讲稿)详细设计

详细设计 结构程序设计 过程设计的工具 面向数据结构的设计方法 程序复杂程度的定量度量
详细设计 • 结构程序设计 • 过程设计的工具 • 面向数据结构的设计方法 • 程序复杂程度的定量度量

课程回顾 P2 S1 S2 P3 S3 P5 P4 S4 S5 需要通过软件解决的″问题” 软件的”解决方案
课程回顾

详细设计的任务 关键任务:确定怎样具体地实现用户需要的软件 系统,即设计出程序的“蓝图”。 要达到的目标 保证软件的可靠性; 使将来编写出的程序可读性好、容易理解、容易测试 容易修改和维护,这是详细设计阶段最重要的目标。 要完成的工作: 确定软件各个组成部分内的算法以及各部分的内部数 据组织 选定某种过程的表达形式来描述各种算法。 一进行详细设计的评审
详细设计的任务 • 关键任务:确定怎样具体地实现用户需要的软件 系统,即设计出程序的“蓝图”。 • 要达到的目标: –保证软件的可靠性; –使将来编写出的程序可读性好、容易理解、容易测试、 容易修改和维护,这是详细设计阶段最重要的目标。 • 要完成的工作: – 确定软件各个组成部分内的算法以及各部分的内部数 据组织 – 选定某种过程的表达形式来描述各种算法。 – 进行详细设计的评审

结构程序设计 结构程序设计的提出背景 (1)最早由 EWDijkstra于1965年提出,建议从高 级语言中取消GOTO语句; (2)1966年Bohm和 Jacopin证明了,只用3种基本 的控制结构就能实现任何单入口单出口的程序。这 3种基本的控制结构是“顺序”、“选择”和“循 环”,它们的流程图分别为如下(a)、(b)、(c); (3)1968年 Dijkstra再次建议从一切高级语言中取 消GOTO语句,只使用3种基本控制结构写程序 (4)1972年IBM公司的Mls进一步提出,程序应 该只有一个入口和一个出口,从而补充了结构程序 设计的规则
•结构程序设计的提出背景 (1)最早由E.W.Dijkstra于1965年提出,建议从高 级语言中取消GO TO语句; (2)1966年Bohm和Jacopini证明了,只用3种基本 的控制结构就能实现任何单入口单出口的程序。这 3种基本的控制结构是“顺序” 、 “选择”和“循 环”,它们的流程图分别为如下(a)、(b) 、(c); (3)1968年Dijkstra再次建议从一切高级语言中取 消GO TO语句,只使用3种基本控制结构写程序。 (4)1972年IBM公司的Mills进一步提出,程序应 该只有一个入口和一个出口,从而补充了结构程序 设计的规则。 结构程序设计

T A B (b) F p A 或 A 3种基本的控制结构
3种基本的控制结构

结构程序设计的经典定义 “如果一个程序的代码块仅仅通过顺序、选择和 循环这3种基本控制结构进行连接,并且每个代码 块只有一个入口和一个出口,则称这个程序是结构 化的。” °结构程序设计的更全面定义 “结构程序设计是尽可能少用GOTO语句的程序 设计方法。最好仅在检测出错误时才使用GOTO语 句,而且应该总是使用前向GOTO语句
•结构程序设计的经典定义 “如果一个程序的代码块仅仅通过顺序、选择和 循环这3种基本控制结构进行连接,并且每个代码 块只有一个入口和一个出口,则称这个程序是结构 化的。” •结构程序设计的更全面定义 “结构程序设计是尽可能少用GO TO语句的程序 设计方法。最好仅在检测出错误时才使用GO TO语 句,而且应该总是使用前向GO TO语句

其他常用的控制结构 (1)为了实际使用方便起见,常常还允许使用 DO-UNTIL 和 DO-CASE两种控制结构,如下图(a)、(b)所示。 DO A CASE F CASE 1 CASE 2 CASE n a (b) (2)有时需要立即从循环(甚至嵌套的循环)中转移出来, 如果允许使用 LEAVE(或 BREAK)结构,则不仅方便而且会 使效率提高很多 注: LEAVE或 BREAK结构实质上是受限制的GOTO语句, 用于转移到循环结构后面的语句
•其他常用的控制结构 (1)为了实际使用方便起见,常常还允许使用DO-UNTIL 和DO-CASE两种控制结构,如下图 (a)、(b)所示。 (2)有时需要立即从循环(甚至嵌套的循环)中转移出来, 如果允许使用LEAVE(或BREAK)结构,则不仅方便而且会 使效率提高很多。 注:LEAVE或BREAK结构实质上是受限制的GO TO 语句, 用于转移到循环结构后面的语句

结构程序设计的分类 (1)经典的结构程序设计:如果只允许使用顺序、 IF-THEN-ELSE型分支和DO- WHILE型循环这3种基 本控制结构 (2)扩展的结构程序设计:如果除了上述3种基本 控制结构之外,还允许使用 DO-CASE型多分支结 构和 DO-UNTII型循环结构; (3)修正的结构程序设计:如果再加上允许使用 LEAVE(或 BREAK)结构
•结构程序设计的分类 (1)经典的结构程序设计:如果只允许使用顺序、 IF-THEN-ELSE型分支和DO-WHILE型循环这3种基 本控制结构; (2)扩展的结构程序设计:如果除了上述3种基本 控制结构之外,还允许使用DO-CASE型多分支结 构和DO-UNTIL型循环结构; (3)修正的结构程序设计:如果再加上允许使用 LEAVE(或BREAK)结构

过程设计的工具 用过程工具来表达各 个模块的实现算法 分为图形工具、表格 1、程序流程图 工具和语言工具三类 起止端点数据输入输出处理准备或预处理预定义处理 或既定处理 00→ 条件判斷循环上界循环下界文件或文档外接内接 流线 虚线省略线并行方式注解或注释 程序流程图的标准符号
1、程序流程图 程序流程图的标准符号 用过程工具来表达各 个模块的实现算法, 分为图形工具、表格 工具和语言工具三类 过程设计的工具

循环名 进入循环条件 循环名 数据A 注解1 循环体 循环体 处理1 /数据B/[注解2 循环名 循环终止条件 循环名 处理2 (a) while型循环(b) until型循环 循环的标准符号 注解的使用
循环的标准符号 注解的使用
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《汇编语言程序设计》课程教学资源(PPT课件讲稿)第二章 IBM-PC微机的功能结构.ppt
- 清华大学:高校信息化建设理论与规划(PPT讲稿).ppt
- 数据挖掘10大算法产生过程(PPT讲稿).ppt
- 《计算机文化基础》课程教学资源(PPT课件讲稿)第九章 多媒体技术基础.ppt
- 香港浸会大学:Computer Security(PPT课件讲稿)Cryptography Chapter 1 Symmetric Ciphers.ppt
- 同济大学:《大数据分析与数据挖掘 Big Data Analysis and Mining》课程教学资源(PPT课件讲稿)Getting to Know Your Data.ppt
- 《计算机系统安全》课程PPT教学课件(信息安全与管理)第九章 防火墙.ppt
- 《计算机网络》课程教学资源(PPT课件讲稿)第六章 传输层.ppt
- 《PHP程序设计》教学资源(PPT课件讲稿)项目七 Ajax商品发布.ppt
- 《电脑组装与维护实例教程》教学资源(PPT课件讲稿)第14章 系统的维护.ppt
- 东北大学:《可信计算基础》课程教学资源(PPT课件讲稿)第五讲 分布式系统的安全(主讲:周福才).ppt
- 《运筹学与最优化方法》课程教学资源(PPT课件讲稿)第十章 智能优化计算简介.ppt
- 《3ds Max 9》教学资源(PPT课件)第8章 灯光、摄影机、渲染输出.ppt
- 编译程序构造 COMPILER CONSTRUCTION(PPT讲稿)原理与实践 Principles and Practice.ppt
- 上海交通大学:《程序设计》课程教学资源(PPT课件讲稿)第7章 间接访问——指针.ppt
- 《数据库系统概论》课程教学资源(PPT课件讲稿)数据结构实用教程(共十章).ppt
- 大连理工大学:《计算机网络》课程教学资源(PPT课件讲稿)Chapter 1 Introduction(roadmap,主讲:孙伟峰).ppt
- 《计算机网络基础》课程PPT教学课件(讲稿)第4章 IP协议.ppt
- 西安交通大学:《微机原理与接口技术》课程教学资源(PPT课件讲稿)第4章 存储器系统接口.ppt
- 《网页设计与制作》课程PPT教学课件(Fireworks Mx 2004)第九章 Firework图像处理.ppt
- 同济大学:《大数据分析与数据挖掘 Big Data Analysis and Mining》课程教学资源(PPT课件讲稿)Decision Tree.ppt
- 上海交通大学:《网络科学导论》课程PPT教学课件(Network Science An Introduction)Chapter 4 Degree Correlations & Community Structure.pptx
- 中国科学技术大学:《数据结构与数据库》课程教学资源(PPT课件讲稿)第五章 串和数组.pps
- 最小生成树(PPT课件讲稿)Minimum Spanning Trees.pptx
- 《数据结构》课程教学资源(PPT课件讲稿)第10章 内排序.ppt
- jQuery个人主页(PPT讲稿).ppt
- 《Internet技术与应用》课程PPT教学课件(讲稿)第3讲 双绞线制作和传输介质.ppt
- 中国铁道出版社:《局域网技术与组网工程》课程教学资源(PPT课件讲稿)第4章 Windows Server系统工程.ppt
- 《电子商务概论》课程教学资源(PPT课件)第十章 电子商务安全技术.ppt
- 《C程序设计》课程电子教案(PPT课件讲稿)第二章 基本数据类型及运算.ppt
- 中国科学技术大学:云计算基本概念、关键技术、应用领域及发展趋势.pptx
- 南京大学:《面向对象技术 OOT》课程教学资源(PPT课件讲稿)异常处理 Exception Handling.ppt
- 《计算机系统结构》课程教学资源(PPT课件讲稿)第三章 流水线技术.ppt
- 四川大学:Object-Oriented Design and Programming(Java,PPT课件)3.2 Graphical User Interface.ppt
- 《编辑原理》课程教学资源(PPT课件)目标代码生成.pptx
- 上海交通大学:操作系统安全(PPT课件讲稿)设备管理与I/O系统.pps
- 中国科学技术大学:《计算机体系结构》课程教学资源(PPT课件讲稿)第7章 多处理器及线程级并行 7.1 引言 7.2 集中式共享存储器体系结构.pptx
- 《单片机原理及应用》课程教学资源(PPT课件讲稿)第11章 单片机应用系统的串行扩展.ppt
- 西安电子科技大学:《数据库系统 DataBase System》课程教学资源(PPT课件讲稿)normalization.ppt
- 《计算机软件技术基础》课程教学资源(PPT课件讲稿)排序(教师:曾晓东).ppt