- 2
- 0
- 约9.87千字
- 约 94页
- 2017-07-03 发布于浙江
- 举报
zwchap软件工程导论
第6章 详细设计 6.1 结构程序设计 6.2 人机界面设计 6.3 过程设计的工具 6.4 面向数据结构的设计方法 6.5 程序复杂程度的定量度量 6.6 小结 习题 学习目标 熟悉详细设计阶段的目标和任务。 掌握人机界面的设计技巧和指导 了解N-S图、PAD图、判定表和判定树结构化程序设计方法。 详细设计 6.1 结构程序设计 1965年—— E.W.Dijkstra 最早提出结构程序设计:程序质量与程序中包含的Goto语句的数量成反比()。 1966 年——Bohm, Jacopini ,证明了只用“顺序”、“选择”、“循环”控制结构就能实现任何单入口单出口程序。 1968年 -- Dijkstra再次建议从一切高级语言中取消GO TO语句,只使用3种基本控制结构写程序。他的建议引起了激烈争论,要创立一种新的程序设计思想、方法和风格。 1971年 -- IBM公司在纽约时报信息库管理系统的设计中,在美国宇航局空间实验室飞行模拟系统的设计中,结构程序设计技术获得圆满成功。前者包含83 000行高级语言源程序,后者包含40万行源程序,而且在设计过程中用户需求又曾有过很多改变。 1972年 -- IBM公司的Mills进一步提出,程序应该只有一个入口和一个出口,从而补充了结构程序设计的规则。 结构程序设计之父 Dijkstra被西方学术界称为“结构程序设计之父”,他一生致力于把程序设计发展成一门科学。科学研究的帅才最重要的素质是洞察力(Vision和Insight),能够发现有前景的新领域或在新领域内发现和解决最关键的问题。 Dijkstra,1930年5月11日~2002年8月6日,荷兰人。 计算机科学家,毕业就职于荷兰Leiden大学,早年钻研物理及数学,而后转为计算学。曾在1972年获得过素有计算机科学界的诺贝尔奖之称的图灵奖 。 ALGOL60 Dijkstra的Shortest Path Algorithm是他的突出成就,这种演变是全球性的,在全世界的推动下,一个科学的计算机语言基础:ALGOL,不久就诞生了。? 理论上,最基本的控制结构只有两种:顺序、循环结构(选择结构可由其两者构造)。 学界认识到,不是简单去掉Goto语句的问题,而是要创立一种新的程序设计方法。 ——结构化程序设计(IBM率先成功运用)。 结构程序设计: 一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。 使用结构程序设计技术的好处: 1)提高软件开发工程的成功率和生产率; 2)系统有清晰的层次结构,容易阅读理解; 3)单入口单出口的控制结构,容易诊断纠正; 4)模块化可以使得软件可以重用; 5)程序逻辑结构清晰,有利于程序正确性证明。 经典的结构程序设计:只允许使用顺序、IF_THEN_ELSE选择和DO_WHILE循环; 流程图通常由三种结点组成: 1)函数结点 如果一个结点有一个入口线和一个出口线,则称为函数结点。 2)谓词结点 如果一个结点有一个入口线和两个出口线,而且它不改变程序的数据项的值,则称为谓词结点。 3)汇点 如果一个结点有两个或多个入口线和一个出口线,而且它不执行任何运算,则称为汇点 。 1)顺序结构:相当于“A、B” 2)选择结构 相当于“If exp then A else B endif ” 3)循环结构:相当于“While exp do A” 1)多分支结构 相当于“Case I of I=1:C1; I=2:C2; I=3:C3; … ; I=n:Cn” 2)UNTIL循环结构 相当于“Repeat A Until exp” 6.1.1.2 正规程序 定义1:一个流程图程序如果满足下面两个条件,称为正规程序: 1)具有一个入口线和一个出口线; 2)对每一个结点,都有一条从入口线到出口线的通路通过该结点。 由于正规程序有一个入口线和一个出口线,因而一个正规程序总可以抽象为一个函数结点。 定义2:如果一个正规程序的某个部分仍然是正规程序,那么称它为该正规程序的正规子程序。 先给出一个概念:封闭结构 定义3:流程图中,两个结点之间所有没有重复结点的通路组成的结构称为封闭结构。 如图:封闭结构为 { a - [ b1 - b2 - b3 ; c1 - c2 ; d1 - d2 - d3 ; e ] - f } 1)不包括多于一个结点的正规子程序,即它是一种不可再分解的正规程序;(程序自身不可视为正规子程序
原创力文档

文档评论(0)