种豆资源网

当前位置:首页 > 百科 > 百科综合 / 正文

程式设计方法学(学科)

(2019-11-13 07:33:59) 百科综合
程式设计方法学(学科)

程式设计方法学(学科)

程式设计方法学是讨论程式的性质以及程式设计的理论和方法的一门学科, 是研究和构造程式的过程的学问,是研究关于问题的分析,环境的模拟,概念的获取,需求定义的描述, 以及把这种描述变换细化和编码成机器可以接受的表示的一般的方法。

基本介绍

  • 中文名:程式设计方法学
  • 外文名:programming methodology
  • 讨论:程式的性质
  • 研究:环境的模拟
  • 产生背景:1950年代—1960年代初
  • 研究的内容:结构化程式设计

介绍


  
用以指导程式设计各阶段工作的原理和原则,以及依此提出的设计技术。有时也指研究这些原理、原则和技术的学科。程式设计方法学的目标是能设计出可靠、易读而且代价合理的程式。程式设计方法学包括程式理论、研製技术、支援环境、工程规範和自动程式设计等课题,使程式设计更加科学化和工程化。其基本内容是:结构程式设计;程式理论在程式设计技术中的套用,以及规格说明和变换技术。程式理论与程式设计方法学的发展密切相关,它丰富了程式人员的思维方法,促进了程式设计技术的发展。

发展历史

产生背景

1950年代—1960年代初,手工艺式的程式设计方法,高德纳把程式称为艺术品。
1960年代末—1970年代初,出现软体危机:一方面需要大量的软体系统,如作业系统、资料库管理系统; 另一方面,软体研製周期长,可靠性差,维护困难。编程的重点:希望编写出的程式结构清晰、易阅读、易修改、易验证,即得到好结构的程式。
1968年,北大西洋公约组织(NATO)在西德召开了第一次软体工程会议,分析了危机的局面,研究了问题的根源,第一次提出了用工程学的办法解决软体研製和生产的问题,本次会议可以算做是软体发展史上的一个重要的里程碑。
1969年,国际信息处理协会(IFIP)成立了“程式设计方法学工作组”,专门研究程式设计方法学,程式设计从手工艺式向工程化的方法迈进。

结构化研究

1968 年,结构化程式设计方法的研究。Dijkstra 提出了“GOTO是有害的”,希望通过程式的静态结构的良好性保证程式的动态运行的正确性。
1969 年,Wirth 提出採用“ 自顶向下逐步求精、分而治之” 的原则进行大型程式的设计。其基本思想是:从欲求解的原问题出发,运用科学抽象的方法,把它分解成若干相对独立的小问题,依次细化,直至各个小问题获得解决为止。

“ 程式正确性证明”

1967年,Floyd 提出用“ 断言法” 证明框图程式的正确性。
1969年,Hoare 在Floyd 的基础上,定义了一个小语言和一个逻辑系统。此逻辑系统含有程式公理和推导规则,目的在于证明程式的部分正确性,这就是着名的Hoare逻辑。他的工作为公理学语义的研究奠定了基础。
1973年,Hoare和Wirth把PASCAL语言的大部分公理化。
1975年,一个基于公理和推导规则的自动验证系统首次出现。
1979年,出现了用公理化思想定义的程式设计语言Euclid。
1976年,Dijkstra提出了最弱前置谓词和谓词转换器的概念,用于进行程式的正确性证明和程式的形式化推导。
1980年,D.Gries综合了以谓词演算为基础的证明系统,称之为“程式设计科学”。首次把程式设计从经验、技术升华为科学。
1974年,人们利用模态逻辑验证并行程式的正确性。
关于程式正确性证明的争论:
怀疑和反对派,理由:首先,形式证明太複杂,谁能够保证证明本身没有错误呢!其次,程式写好后再证明其正确性,相当于“ 马后炮” ,即错误已经铸成,证明何能补救?
折中的方案:编写程式,边考虑证明。即程式设计与正确性证明同时并行考虑。

构造正确的程式

利用Dijkstra 的谓词转换器及其演算规则集合,可以推导出正确的程式。
利用程式变化构造正确的程式。它对程式套用一连串的保护正确性的变换规则,最终得到可执行的程式。程式变换是1970年代以来,“程式设计方法学” 研究的重要方面,是程式设计自动化很有希望的途径之一。递归程式变换是这一时期的最有意义的成果。 如Burstall 和Darlington 的递归程式变换系统等。
逻辑程式设计和函式程式设计代表一种新的研究方向。Prolog是以谓词逻辑的子集(Hoare 子句)为基础的一种形式系统。Prolog 的执行过程就是执行逻辑上消解算法的过程。

抽象数据类型的研究

抽象数据类型是程式设计方法学中一种极为重要的方法。人们把它誉为程式设计方法学发展史上的一个重要的里程碑。

研究的内容

结构化程式设计
数据抽象与模组化程式设计
程式正确性证明
程式变换
程式的形式说明与推导
程式综合与分析技术
面向对象的程式设计方法
大型程式的开发

与软体工程的关係

程式设计方法学也与软体工程关係密切。方法学对软体的研製和维护起指导作用。软体工程要求程式设计规範化,建立新的原则和技术。而一种新的方法的出现,又要求制订出相应的规範。方法和工具是同一问题的两个侧面。工具的研究以方法学为基础,而工具的研製成功又会影响程式设计。程式设计方法学还涉及程式推导、程式综合、程式设计自动化研究、并发程式设计、分散式程式设计、函式式程式设计、语义学、程式逻辑、形式化规格说明和公理化系统等课题。

研究方法的不同

软体工程主要套用工程的方法和技术研究软体开发与维护的方法、工具和管理的一门计算机科学与工程学交叉的学科 程式设计方法学主要运用数学方法研究程式的性质以及程式设计的理论和方法的学科;

研究的对象不同

软体工程的研究对象是软体系统。目标是降低软体的开发成本,提高软体的质量,提高软体的可维护性,提高软体开发的效率。着重于软体的巨观可用性。程式设计方法学研究对象是程式。目标是保证程式的正确性。着重于程式的微观正确性。软体工程与程式设计方法学的界限变得越来越模糊 程式设计方法学是软体工程的基础。

标 签

搜索
随机推荐

Powered By 种豆资源网||