程序设计方法学(大纲) 课件.ppt
《程序设计方法学(大纲) 课件.ppt》由会员分享,可在线阅读,更多相关《程序设计方法学(大纲) 课件.ppt(56页珍藏版)》请在三一办公上搜索。
1、2023/4/1,华东师大计算机科学技术系,1,程序设计方法学Programming Methodology,华东师范大学计算机科学技术系杨宗源,2023/4/1,华东师大计算机科学技术系,2,前言,从方法论角度讨论、研究程序设计(软件研发)重点:程序设计的原理、原则与技术目的:提高软件生产率 研究程序的性质以及程序设计的理论和方法的学科。基本内容一般可以包括:,2023/4/1,华东师大计算机科学技术系,3,程序的性质与特征程序的功能描述程序的正确性验证程序的推导与综合程序的结构分析程序语义的描述程序设计的策略与技术程序研制工具、环境 涉及程序设计理论、规范、研发技术(方法)、支持环境与自动
2、程序设计等。,2023/4/1,华东师大计算机科学技术系,4,授课内容,第一章 综述第二章 程序的基本结构2.1 Prime程序 2.2 复合程序 2.3 结构定理2.4 递归结构定理第三章 程序的数据结构3.1 类型与类型系统程序 3.2 程序设计语言中的数据类型 3.3 数据抽象与抽象数据类型(ADT)3.4 面向对象方法3.5 面向方面编程,2023/4/1,华东师大计算机科学技术系,5,第四章 程序的正确性证明4.1 程序规范与程序的正确性定义 4.2 部分正确性证明方法 4.3 完全正确性证明方法 4.4 最弱前置谓词(WP)第五章 程序的形式推导方法5.1 面向目标的程序设计方法
3、5.2 不变式推导方法 第六章 程序设计的形式化方法6.1 概述6.2 基于代数方法的规范语言OBJ6.3基于模型方法的规范语言VDM,2023/4/1,华东师大计算机科学技术系,6,第七章 并行程序设计方法7.1 基本概念 7.2 并行系统 7.3 并行程序设计语言 7.4 通讯顺序进程(CSP),2023/4/1,华东师大计算机科学技术系,7,基本要求,了解程序设计方法学的地位和重要性;掌握程序控制结构构成的基本原理、基本成份;明确数据类型、数据抽象、抽象数据类型对程序设计及程序设计语言的影响及重要性并掌握相关技术;掌握程序正确性证明的基本方法,具有构造程序规范的能力;理解形式化软件开发的
4、基本原理和典型方法;理解并行程序设计基本概念,具有并行程序设计的初步能力.,2023/4/1,华东师大计算机科学技术系,8,参考书,程序设计方法学基础陈火旺 湖南科学技术出版社 程序设计方法学 仲萃豪 吉林大学出版社 程序设计方法学教程 张幸儿 南京大学出版社 现代软件工程周之英 科学出版社形式语义学基础与形式说明 屈延文 科学出版社 The Science of Programming Gries,D.Communicating Sequential ProcessosHoare,C.A.RProgramming from Specification Carroll Morgan程序设计方法
5、学 胡正国 国防工业出版社 对象技术导论 冯玉琳 科学出版社,2023/4/1,华东师大计算机科学技术系,9,第一章 综述,一、发展回顾四、五十年代机器指令、汇编指令、FORTRAN、LISP、ALGOL语言的相继出现,主要用于科学计算。成就:冯.诺依曼提出存储程序 图灵提出自动装置的计算模型图灵抽象机 奠定了现代计算机的理论基础。评价标准:指令条数少存储单元省执行速度快,2023/4/1,华东师大计算机科学技术系,10,六,七十年代高级语言相继出现,编译技术(语言处理程序)成熟,完善,Compiler、OS、DBMS 三大系统软件日趋成熟,解决问题的规模,复杂性大为增加。软件危机出现 缺乏宏
6、观上研究程序设计方法的重要性的认识。“程序设计比人们一般想象的远为复杂得多,其复杂程度超出了人类本身的智力、能力范围。”成就:数据结构和算法理论程序设计=数据结构+算法(Kunth1971),2023/4/1,华东师大计算机科学技术系,11,b)形式化方法运用推理、逻辑断言等对程序的正确性进行验证 Floyd断言法(1967)通过断言(谓词公式)证明框图程序的正确性 Hoare公理化法(1969)著名的Hoare逻辑 PSQ。通过定义一个逻辑系统(含有程序公理及推导规则)证明程序部分/完全正确性 E.D.Dijkstra(1976)最弱前置谓词WP(S,Q)SQ、谓词转换,2023/4/1,华
7、东师大计算机科学技术系,12,Gries 综合了以谓词演算为基础的证明系统,提出了“程序设计科学”,将程序设计从经验、技术、技巧升华为科学。对并行程序 提出了时态逻辑、模态逻辑,刻画安全性、事件性、优先性、并发性等程序性质。,2023/4/1,华东师大计算机科学技术系,13,c)软件工程化方法软件开发模型1968年北大西洋公约组织(NATO)召开软件工程会议,首次提出用工程化方法解决软件危机。Dijkstra(1969)提出”Goto语句”有害论。引起了讨论,导致形成“结构程序设计”的概念、原则、方法。Pascal语言诞生(Wirth 1971)i)强调程序结构和风格的良好性ii)以良好静态结
8、构,保证程序动态执行的正确性,2023/4/1,华东师大计算机科学技术系,14,Wirth(1971)提出小规模程序设计和大规模程序设计本质的不同,提出了“自顶向下、逐步细化”,“分而治之、面向功能、功能分解”的思想。Parnas(1971)提出“信息隐藏”,模块化。Modula-2(1979)、C(1972)、Ada(1979)Unix OS、SA、SD、JSP等等,2023/4/1,华东师大计算机科学技术系,15,八、九十年代编程不再是主流,构造系统的方法(即系统的结构、接口、集成)。网络、分布式共享信息,协同工作。方法论与工程化 a)结构化程序设计方法 80s进入全盛时期,比较完备,称为
9、传统方法。关系数据库管理系统(RDBMS)、SQL语言趋于成熟。传统的软件工程方法:功能分解法、数据流方法 JSD、信息造型法(E-R模型),2023/4/1,华东师大计算机科学技术系,16,面向对象程序设计方法(O-O方法)1)O-O是程序设计新的规范 从面向过程 面向对象 一系列概念(如:继承、多态、封装)C/C+、Eiffel、Java、C#(.NET)2)O-O是信息系统设计的方法论面向对象分析、设计(OOAD)Coad/Yourdon面向对象的软件工程(OOSE),用例(UseCase)建模 对象建模技术(OMT)G.BOOCH方法,2023/4/1,华东师大计算机科学技术系,17,
10、责任驱动设计(RDD)CRC卡(类责任合作)VMT(可视化建模技术)UML(统一建模语言 Unified Module Language)RUP(Rational Unified Process)MDA(模型驱动体系结构 Model Diven Architechture)UML、XML、CORBA、Java 3)O-O是正在兴起的新技术 支持各类应用、不同种类的开发,重要的突破:软件的复用(Reuse)、应用框架(Application FrameWork)、软件架构(Software Architecture),2023/4/1,华东师大计算机科学技术系,18,c)面向方面程序设计(Asp
11、ect-Oriented Programming),简称AOP。是为解决OO方法中的问题而出现的。该技术被评为21世纪对经济和人类生活工作方式最有影响力十种技术之一。AOP的核心思想是将软件系统中的横切关注点和核心关注点分别模块化,各自处理,再通过编织器进行无缝的编织实现,以解决代码纠缠等问题,降低耦合度,提高可维护、可重用、可扩展性。目前支持AOP的语言有AspectJ、AspectC、AspectC+、AspectC#、AspectS、AspectR(Ruby)及SpringAOP、JBossAop等等。,2023/4/1,华东师大计算机科学技术系,19,d)工程化的其他方法 i.计算机辅
12、助软件工程(CASE)Unix 工具箱、Ada的开发环境、程序综合器、软件工具ii.基于构件(Component)的软件工程(CBSE)COM/COM+、CORBA、EJB设计模式(Gamma)“其重要性可以与70年代从编程中分离数据结构和算法作为程序设计的规律性成果相媲美”。,2023/4/1,华东师大计算机科学技术系,20,净室软件工程(Clean Room SE)集成:建模技术、形式化方法(程序验证等)、统计质量控制等方法、技术。目的:生成极高质量的软件。软件过程CMM体系、CMMi轻载软件工程(Agile开发方法、敏捷软件开发方法)eXtreme Programming(极值编程)SC
13、RUM开发方法FDD(特征驱动开发方法)DSDM(动态系统开发方法),2023/4/1,华东师大计算机科学技术系,21,d)形式化的方法计算机语言的研究可以分为三部分:语法学(Syntax):研究程序设计语言的形态结构语义学(Semantics):研究程序设计语言和它所指的对象间的关系语用学(Pragmatics):研究语言和它使用间的关系形式语义学四个研究领域、四种程序计算模型 图灵机模型 谓词演算模型 代数模型递归函数论模型四种语义学 指称语义学代数语义学 公理语义学 操作语义学,2023/4/1,华东师大计算机科学技术系,22,i)指称语义采用形式系统方法,用相应的数学对象对一个既定形式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计方法学大纲 课件 程序设计 方法 大纲
链接地址:https://www.31ppt.com/p-4040832.html