族谱网 头条 人物百科

程序设计方法学

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:488
转发:0
评论:0
程序设计方法学发展历史产生背景1950年代—1960年代初,手工艺式的程序设计方法,高德纳把程序称为艺术品。1960年代末—1970年代初,出现软件危机:一方面需要大量的软件系统,如操作系统、数据库管理系统;另一方面,软件研制周期长,可靠性差,维护困难。编程的重点:希望编写出的程序结构清晰、易阅读、易修改、易验证,即得到好结构的程序。1968年,北大西洋公约组织(NATO)在西德召开了第一次软件工程会议,分析了危机的局面,研究了问题的根源,第一次提出了用工程学的办法解决软件研制和生产的问题,本次会议可以算做是软件发展史上的一个重要的里程碑。1969年,国际信息处理协会(IFIP)成立了“程序设计方法学工作组”,专门研究程序设计方法学,程序设计从手工艺式向工程化的方法迈进。结构化程序设计的研究1968年,结构化程序设计方法的研究。Dijkstra提出了“GOTO是有害的”,希望通过程序的静态...

程序设计方法学发展历史

产生背景

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的执行过程就是执行逻辑上消解算法的过程。

抽象数据类型的研究

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

研究的内容

结构化程序设计

数据抽象与模块化程序设计

程序正确性证明

程序变换

程序的形式说明与推导

程序综合与分析技术

面向对象的程序设计方法

大型程序的开发

与软件工程的关系

研究方法的不同

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

研究的对象不同

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


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· 程序错误
史上的第一个隐错1947年9月9日,葛丽丝·霍普(GraceHopper)发现了第一个电脑上的bug。当在MarkII计算机上工作时,整个团队都搞不清楚为什么电脑不能正常运作了。经过大家的深度挖掘,发现原来是一只飞蛾意外飞入了一台电脑内部而引起的故障(如图所示)。这个团队把错误解除了,并在日记本中记录下了这一事件。也因此,人们逐渐开始用“Bug”(原意为“虫子”)来称呼计算机中的隐错。现在在华盛顿的美国国家历史博物馆中还可以看到这个遗稿。Bug的管理与一些常见的名词典型错误历史(GNUClasspathproject数据)。由用户提交的错误是“未确认”(unconfirmed)的,一旦该错误由开发人员重现,即为“已确认”(confirmed)错误。此后已确认的错误会“解决”(fixed)。其他类别的错误(无法重现、不予解决等)通常并不多见。处理进度处理方式Severity:Bug造成的严重...
· 程序员
工作范围系统分析与设计(SystemsAnalysisandDesign)代码撰写(Coding)测试与除错(TestingandDebugging)撰写技术文件(WriteSpecification)相关职业系统管理员(SA)系统设计师(SD)数据库管理员(DBA)应用分析师(AA)技术支持(TS)相关戏称攻城狮程序猿码农(一般用来自嘲为像农民高强度一样的编码工作者)工程师打字员
· 程序设计
设计工具开发环境图像展览早期IBM402会计电脑的程序是用改变线路连接的方式来撰写GANT程序设计软件相关条目中文编程程序软件程序设计语言程序设计实践程序设计方法学软件开发软件设计模式
· 子程序
分类子程序子程序(subroutine)是一个概括性的术语,子程序(subroutine)是所有高级程序所称。它经常被使用在汇编语言层级上。子程序的主体(body)是一个代码区块,当它被调用时就会进入运行。函数函数(function),又称函数,是一种子程序,利用函数名称,可以接收回传值。例如:c=max(a,b);程序程序(procedure)是一种子程序,它能够接受不同的引数,来运行某些特别的动作。例如:printf("HelloWorld\n");函数与程序在某些编程语言中是被分开的,但是在C语言中,所有程序都是函数,这两者被认为是相同的。这有可能造成一些副作用,特别是在回传值是void类型时。方法在面向对象程序设计语言中,类别或对象中的子程序,被称为方法(method)。
· 游戏程序师
脚注与参考资料Bates,Bob.GameDesign2nd.ThomsonCourseTechnology.2004.ISBN1-59200-493-8.Moore,MichaelE.;Novak,Jeannie.GameIndustryCareerGuide.Delmar:CengageLearning.2010.ISBN1-4283-7647-X.

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信