- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
设计思想变迁
摘 要计算机程序设计方法的发展分三个阶段,即:面向计算机的程序设计、面向过程的程序设计的面向对象的程序设计。并对程序设计方法进一步发展展开讨论。关键词 程序设计 方法 面向对象 面向过程自从1946 年世界第一台电子计算机诞生以来,计算机科学得到了迅猛的发展,计算机的应用已经渗透到社会的各个领域。计算机之所以能有如此强大的功能,除了计算机硬件系统的功能的日益强大之外,另一个很重要的原因就是计算机的软件系统的高速发展。软件系统发展的关键在于程序设计思想的不断发展。本文针对这个问题就程序设计方法发展的三个阶段,即:面向计算机的程序设计、面向过程的程序设计和面向对象的程序设计展开讨论。一、面向计算机的程序设计计算机系统包括硬件系统和软件系统。硬件是由运算器、控制器、存储器、输入设备和输出设备组成,其中运算器和控制器合称中央处理器,它是计算机的核心,由大规模数字集成电路组成。软件包括了使计算机运行所需的各种程序及有关的文档资料。计算机的工作是由程序来控制的,程序是指令的集合。软件工程师将解决问题的方法、步骤编成为由一条条指令组成的程序,输入到计算机中,计算机执行这一指令序列,便可完成预定的任务。所谓指令,就是计算机可识别的命令。计算机的指令相当于人工与计算机之间交流的语言。由于计算机的中央处理器是由数字电路组成,因此它只能识别简单“0”和“1”组合的二进制指令。人类最早的编程语言是由计算机可以直接识别的二进制指令组成的机器语言。显然机器语言便于计算机识别,但对人类来说却是晦涩难懂。这一阶段,在人类的自然语言与计算机编程语言之间存在着巨大的鸿沟,这一时期的程序设计属于面向计算机的程序设计,设计人员关注的重心是使程序尽可能地被计算机接受并按指令正确地执行,至于计算机的程序能否让人理解并不重要。软件开发的人员只能是少数的软件工程师,因此软件开发的难度大,周期长,而且开发出的软件功能也很简单,界面也不友好,计算机的应用仅限于科学计算。随后出现了汇编语言,它将机器指令映射为一些能读懂的助记符。如ADD 、SUB 等。此时的汇编语言与人类的自然语言之间的鸿沟略有缩小,但仍与人类的思想相差甚远。因为它的抽象层次太低,程序员需要考虑大量的机器细节。此时的程序设计仍很注重计算机的硬件系统,它仍属于面向计算机的程序设计。面向计算机的程序设计的基本思想可归纳为:注重机器、逐一执行。二、面向过程的程序设计随着计算机应用范围的扩大,人们感觉到机器语言和汇编语言的不足,机器语言太注重计算机的硬件,而汇编语言也不太适合人类的思维习惯。这时设计了更接近人类思维习惯的高级语言。它撇开了计算机的硬件的细节,提高了语言的抽象层次,程序中可采用具有一定含义的数据命名和容易理解的执行语句。这使得在写程序时可以联系到程序所描述的具体事物。60 年代末开始出现的结构化程序设计的思想便是面向过程的程序设计思想的集中表现。结构化程序设计的思想是:自顶向下、逐步求精。其程序结构是按功能划分为若干个基本模块(基本程序),这些模块形成一个树状结构,各模块之间的关系尽可能简单,在功能上相对独立:每一个模块内部均是由顺序、条件、循环三种基本结构组成,其模块化实现的具体方法是使用子程序。结构化程序设计由于采用了模块分化与功能分解,自顶向下、分而治之的方法。因而可将一个较复杂的问题分解为若干个子问题,各子问题分别由不同的人员解决,从而提高了速度,并且便于程序的调试,有利于软件的开发和维护。结构化程序设计思想的核心是功能的分解。当程序员用C 或Pascal 语言来设计程序解决一个实际问题时,首先要做的工作就是将一个问题按功能的不同分解成若干个模块,然后根据模块的功能来设计一系列用于存储数据的数据结构,最后编写一些过程(或函数)对这些数据进行操作。最终的程序就是由这些数据和操作构成的。显然,这种方法将数据结构和操作过程作为两个独立的实体来对待,设计人员编程之前首先考虑如何将功能分解,在每个过程中又要着重安排程序的操作序列,并且程序员在编程的同时又必须时时考虑数据结构,因为毕竟要将操作作用在数据上。不仅如此,程序员在编程过程中,不能保证数据结构始终没有变化,而一旦数据结构发生变化,作用在数据上的操作必然会相应地发生变化,这样给软件开发人员造成了沉重的负担。客观世界中的问题是错综复杂和不断变化的,软件开发人员开发的软件往往不是一成不变的。随着社会的发展,用户对软件提出了更多的要求,因此软件的更新日益加快。而面向过程的程序设计中由于数据与操作的分离,使程序的可重用性差,维护代价高,不便于程序的更新换代。为了克服这一缺点,人们提出了面向对象的程序设计思想。三、面向对象的程序设计面向对象的程序设计思想是:注重对象、抽象成类。在程序系统中,将客观世界中的事物看成对象,对象是由数据及对数据的操作构成的一个不可分离的
文档评论(0)