欢迎来到天天文库
浏览记录
ID:15965352
大小:200.00 KB
页数:56页
时间:2018-08-06
《程序设计方法学 课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、程序设计方法学ProgrammingMethodology10/16/20211华东师大计算机科学技术系前言从方法论角度讨论、研究程序设计(软件研发)重点:程序设计的原理、原则与技术目的:提高软件生产率研究程序的性质以及程序设计的理论和方法的学科。基本内容一般可以包括:程序的性质与特征程序的功能描述程序的正确性验证程序的推导与综合程序的结构分析程序语义的描述程序设计的策略与技术程序研制工具、环境涉及程序设计理论、规范、研发技术(方法)、支持环境与自动程序设计等。授课内容第一章综述第二章程序的基本结构§2.1Prime程序§2.2复合程序§2.3结构定理§
2、2.4递归结构定理第三章程序的数据结构§3.1类型与类型系统程序§3.2程序设计语言中的数据类型§3.3数据抽象与抽象数据类型(ADT)§3.4面向对象方法§3.5面向方面编程第四章程序的正确性证明§4.1程序规范与程序的正确性定义§4.2部分正确性证明方法§4.3完全正确性证明方法§4.4最弱前置谓词(WP)第五章程序的形式推导方法§5.1面向目标的程序设计方法§5.2不变式推导方法第六章程序设计的形式化方法§6.1概述§6.2基于代数方法的规范语言——OBJ§6.3基于模型方法的规范语言——VDM第七章并行程序设计方法§7.1基本概念§7.2并行系统
3、§7.3并行程序设计语言§7.4通讯顺序进程(CSP)基本要求了解程序设计方法学的地位和重要性;掌握程序控制结构构成的基本原理、基本成份;明确数据类型、数据抽象、抽象数据类型对程序设计及程序设计语言的影响及重要性并掌握相关技术;掌握程序正确性证明的基本方法,具有构造程序规范的能力;理解形式化软件开发的基本原理和典型方法;理解并行程序设计基本概念,具有并行程序设计的初步能力.参考书《程序设计方法学基础》陈火旺湖南科学技术出版社《程序设计方法学》仲萃豪吉林大学出版社《程序设计方法学教程》张幸儿南京大学出版社《现代软件工程》周之英科学出版社《形式语义学基础与形
4、式说明》屈延文科学出版社《TheScienceofProgramming》Gries,D.《CommunicatingSequentialProcessos》Hoare,C.A.R《ProgrammingfromSpecification》CarrollMorgan《程序设计方法学》胡正国国防工业出版社《对象技术导论》冯玉琳科学出版社第一章综述一、发展回顾四、五十年代机器指令、汇编指令、FORTRAN、LISP、ALGOL语言的相继出现,主要用于科学计算。成就:冯.诺依曼提出存储程序图灵提出自动装置的计算模型图灵抽象机奠定了现代计算机的理论基础。评价标准
5、:指令条数少存储单元省执行速度快六,七十年代高级语言相继出现,编译技术(语言处理程序)成熟,完善,Compiler、OS、DBMS三大系统软件日趋成熟,解决问题的规模,复杂性大为增加。软件危机出现缺乏宏观上研究程序设计方法的重要性的认识。“程序设计比人们一般想象的远为复杂得多,其复杂程度超出了人类本身的智力、能力范围。”成就:数据结构和算法理论程序设计=数据结构+算法(Kunth1971)b)形式化方法运用推理、逻辑断言等对程序的正确性进行验证Floyd断言法(1967)通过断言(谓词公式)证明框图程序的正确性Hoare公理化法(1969)著名的Hoar
6、e逻辑{P}S{Q}。通过定义一个逻辑系统(含有程序公理及推导规则)证明程序部分/完全正确性E.D.Dijkstra(1976)最弱前置谓词{WP(S,Q)}S{Q}、谓词转换Gries综合了以谓词演算为基础的证明系统,提出了“程序设计科学”,将程序设计从经验、技术、技巧升华为科学。对并行程序提出了时态逻辑、模态逻辑,刻画安全性、事件性、优先性、并发性等程序性质。c)软件工程化方法——软件开发模型1968年北大西洋公约组织(NATO)召开软件工程会议,首次提出用工程化方法解决软件危机。Dijkstra(1969)提出”Goto语句”有害论。引起了讨论,导
7、致形成“结构程序设计”的概念、原则、方法。Pascal语言诞生(Wirth1971)i)强调程序结构和风格的良好性ii)以良好静态结构,保证程序动态执行的正确性Wirth(1971)提出小规模程序设计和大规模程序设计本质的不同,提出了“自顶向下、逐步细化”,“分而治之、面向功能、功能分解”的思想。Parnas(1971)提出“信息隐藏”,模块化。Modula-2(1979)、C(1972)、Ada(1979)UnixOS、SA、SD、JSP等等八、九十年代编程不再是主流,构造系统的方法(即系统的结构、接口、集成)。网络、分布式共享信息,协同工作。方法论与
8、工程化a)结构化程序设计方法80’s进入全盛时期,比较完备,称为传统方法。关系数
此文档下载收益归作者所有