程序设计思想变革及发展培训课件_第1页
程序设计思想变革及发展培训课件_第2页
程序设计思想变革及发展培训课件_第3页
程序设计思想变革及发展培训课件_第4页
程序设计思想变革及发展培训课件_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、程序设计思想变革及发展程序设计思想变革及发展Contents程序设计的基本程序设计的基本一程序设计思想的发展程序设计思想的发展二程序设计语言的变化及发展程序设计语言的变化及发展三程序设计的基本程序设计的基本概念概念1程序设计的步骤程序设计的步骤2程序设计面对的问题程序设计面对的问题3概念概念通俗地说, 程序就是人们让计算机完成特定任务的一系列命令的总称, 而用某种编程语言编写程序的过程就是程序设计。程序设计的步骤程序设计的步骤设计方案分析问题解决问题123程序设计面对的问题1 技术问题2目标复杂度和规模的增长3需求的变化面向过程编程面向过程编程面向过程编程关注的是解决问题的步骤,先把软件系统分

2、解成多个模块,然后逐步细化,完成整个软件系统。各模块之间存在相互调用和信息传递。程序设计思想的发展程序设计思想的发展面向对象编程面向过程编程面向方面编程20世纪60年代20世纪70年代20世纪90年代面向过程编程的面向过程编程的产生60 年代末, 国际著名学者E.W.Dijkstr首先提出了“ 结构化程序设计” 的思想, 按照结构化程序设计思想编制出来的程序称为结构化程序,即 面向过程编程。、Pascal 和ortran 语言均采用面向过程编程思想。面向过程编程面向过程编程产生产生1设计思想设计思想2特点特点3产生的问题产生的问题4面向过程编程的设计思想面向过程编程的设计思想采用“ 自顶向下,

3、逐步求精” 的方法, 即当编写程序时常从总体出发, 把任务分解为若干个多少有些独立的模块, 对于每一个模块, 又需分解为若干个低一层的子模块, 直到最低层的每一个子模块都有明确的解决步骤为止, 每一个模块内部均是由顺序、选择和循环三种基本结构组成, 其模块化的具体实现方法是使用子程序。面向过程编程的设计思想面向过程编程的设计思想正如上面的程序段所示, 结构化的程序方法通常是:(1) 定义变量及其初始值;(2) 根据事件发展顺序, 进行对应的处理。面向过程编程的设计思想面向过程编程的设计思想示例:铅笔数=5钢笔数=6圆珠笔数=4其它笔数=7 / 销售程序段铅笔数=铅笔数- 1 / 卖出了1 支铅

4、笔其它笔数=其它笔数- 2 / 卖出了2支其它笔/ 采购程序段钢笔数=钢笔数+20 / 新进了20 支钢笔圆珠笔数=圆珠笔数+10 / 新进了10支圆珠笔 面向过程编程的特点面向过程编程的特点面向过程的程序设计的特点:面向过程的程序设计方法强调需求分析。强调在软件生命周期的每个阶段结束之前必须进行评审,从而提高了开发的成功率。面向过程编程的问题产生的原因面向过程编程的问题产生的原因原因是:某些系统类型需求是模糊的,预先定义需求的策略对于某些类型的软件系统是适用的。但是,对于数量占多数的一些应用系统,其需求往往难以预先准确地指定。面向过程编程的总结面向过程编程的总结 面向过程编程的思维方式易于理

5、解、条理清晰,曾被广泛应用,但随着软件系统规模的扩大和性能要求的提高,面向过程编程的缺陷日益明显。软件系统规模的扩大,使得模块的分解难度加大,模块之间的联系也更加复杂,软件的可靠性难以提高,可维护性差。为了提高软件系统的稳定性、可修改性、可重用性。人们在实践中逐渐创造出软件开发的新途径:面向对象的程序设计方法面向对象编程所谓面向对象就是在处理问题时,从该问题所存在的事物本身出发,以类及对象作为基本构造单元,逐步认识事物的属性和行为特征。面向对象编程产生产生1主要概念2编程思想编程思想3特点特点4面向对象编程的产生结构化程序设计方法的可重用性差,使用面向过程的方法来开发和维护此类软件将非常困难。

6、因此提出了面向对象编程。面向对象编程的概念概念概念6大基本概念对象(对象(bject)类(类(lass)抽象(抽象(bstract)封装(封装(ncapsulation)继承(继承(nheritance)多态(多态(olymorphism)面向对象编程思想面向对象编程的中心思想是: 软件模块的分解并不是从功能上, 或是从处理问题的算法上出发, 而是从系统的组成上考虑。 优点 稳定性好 可重用性 可扩展性支持多线程编程 可管理性面向对象编程的总结总体来说,较面向过程编程相比,面向对象编程可以描述更复杂、更接近现实的系统,描述方法灵活,具备良好的可重用性和可扩展性,提高了软件系统的质量和开发效率,

7、保证了对系统项目的有效管理。面向方面编程在软件术语中,面向方面的编程能够独立于任何继承层次结构而应用改变类或对象行为的方面。缺点代码散乱和代码纠缠使得面向对象编程的系统结构混乱,难以维护和扩展,降低了软件系统的质量。面向方面编程的产生面向方面编程()的概念是regoriczaes 在eroxarc 团队于 世纪 年代后期提出的,ilman 与riedman年在关于分离关注点的讨论会上给出了得到公认的面向方面的定义。虽然面向方面编程还处于不完善的阶段,但它已经受到了广泛的关注。面向方面编程产生产生1主要概念2编程思想编程思想3特点特点4面向方面编程的概念6大基本概念 关注点(关注点(oncern

8、) 方面(方面(spect) 通知(通知(dvice) 切入点(切入点(ointcut) 连接点(连接点(oinpoint) 织入(织入(eaving)面向方面编程的思想对所分解的关注点的实现,核心关注点可以采用面向对象编程技术,横切关注点可以采用面向方面编程技术将软件系统分解为核心关注点和横切关注点通过创建方面来制定制定关注点之间的实施规则,从而得到最终的系统方面分解关注点实现织入面向方面编程的特点方面的设计使得系统的松散耦合性更强,代码冗余小,系统易维护、易扩充。优点及缺点切入点与基础程序的耦合性较强,基础程序结构的变化就可能导致意外的连接点丢失面向方面编程的总结较面向对象编程相比降低了系

9、统实施的难度,解决了代码散乱和代码纠缠的问题。但其本身存在的问题也给使用带来了一定的困难。目前在开发过程中,面向方面编程技术只作为面向对象编程技术的补充加以运用。面向过程VS面向对象以一辆汽车为例: 用面向过程的思想去考虑它应该是这样的:如何启动汽车、如何起步、加速、刹车、熄火等一个个操作。而汽车在这里并不是我们所关心的。 而面向对象则以汽车为对象,一切由汽车开始,以上的可用操作,即功能是汽车这个对象本身所具有的,做任何操作只要告诉汽车就可以。面向过程VS面向对象使用面向过程的语言,你需要告诉电脑要做什么,怎么做,一步步教它。使用面向对象的语言,你只需要告诉它要做什么,不用告诉它过程。面向过程

10、VS面向对象 又例如五子棋,面向过程的设计思路就是首先分析问题的步骤: 1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。 把上面每个步骤用分别的函数来实现,问题就解决了。 而面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为: 1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。 面向过程VS面向对象功能上的统一保证了面向对象设计的可扩展性。因此,就实际编程情况来说在大多时候面向对象更为实际。程序设计语言的变化及发展1 机器语言机器语言2 汇编语

11、言3 高级语言、算法语言高级语言、算法语言4 非过程化语言非过程化语言5 智能性语言语言的发展语言的发展机器语言机器语言是计算机诞生和发展初期使用的语言,表现为二进制的编码形式,是由CPU可以直接识别的一组由0和1序列构成的指令码。机器语言例如,下面列出的一串二进制编码 011011 000000 000000 000001 110101 命令计算机硬件完成清除累加器,然后把内存地址为117的单元内容与累加器的内容相加的操作。 可以看出,使用机器语言编写程序是很不方便的,它要求用者熟悉计算机的所有细节,程序的质量完全决定于个人的编程水平。汇编语言汇编语言开始于20世纪50年代初期,它是用助记符

12、来表示每一条机器指令的。例如,机器指令可以表示为 CLA 00 017高级语言、算法语言高级语言起始于20世纪50年代中期,它允许人们用熟悉自然语言和数学语言编写程序代码,可读性强,编程方便。例如,在高级语言中写出如下语句: X(A+B)/(C+D)与之等价的汇编语言程序如下: CLA C ADD DSTD M CLA A ADD B DIV MSTD X非过程化语言用户在使用这种语言时,不必关心问题的解法和处理过程的描述,只需说明所要完成的工作目标及工作条件,就能得到所要的结果,而其他的工作都由系统来完成。非过程化语言例如,用户想检索出满足一定条件的学生名单,只要通过SQL语言的SELECT语句告诉计算机查询的范围(查学生信息表)、查询内容(查出姓名和年龄)和检索条件(查年龄小于18岁的学生)即可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论