论面向过程的思想与方法.doc_第1页
论面向过程的思想与方法.doc_第2页
论面向过程的思想与方法.doc_第3页
论面向过程的思想与方法.doc_第4页
论面向过程的思想与方法.doc_第5页
全文预览已结束

下载本文档

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

文档简介

论面向过程的编程思想和方法1、 概念理解 面向过程就是分析解决问题所需要的步骤,然后用函数把这些步骤一步步实现. 面向过程化程序设计是先确定算法,再确定数据结构。 对此我的理解是确定流程是最关键的,决定用什么流程,并一步步划分成若干个模块,然后把每个模块划分成更小的模块,来实现业务需求.比如,盖一座大楼,你想到的是楼怎么盖,哪里要有柱子,哪里要有梁,哪里楼梯等等(这就是面向对象),至于柱子该怎么建,用什么建,方的圆的,等等,这就是面向过程。 过程如图所示:2、 面向过程的编程思想“面向过程”是一种以过程为中心的编程思想。结构化方法的基本思想主要体现在以下三方面.v 自顶向下,逐步求精:把程序看成是一个逐步演化的过程。把一个系统与程序看成是一层一层的。例如:户籍管理系统可以划分为:户籍迁入迁出,人员迁入迁出,户籍注销,人员注销等几个子系统,而每个子系统又划分为接收用户信息,实施处理,提供返回信息等等部分.v 模块化:即将几个系统分成几个模块,每个模块实现特定的功能,最终整个系统由这些模块组成。模块跟模块之间通过接口传递信息,模块最重要的特点就是独立性,模块之间还有上下层的关系,上层模块调用下层模块来实现一些功能。整个项目经过这样的模块化后,开发人员就可以开始有目的的逐个模块、逐个函数的去实现,进而完成整个项目。v 语句结构化:顺序结构、分支结构、循环结构,都是常用的语句结构。3、 面向过程的编程方法v 过程分析,功能分解:面向过程方法认为每个小系统都有着明确的开始和明确的结束,开始和结束之间有着严谨的因果关系。所以如果我们要分析这个世界,并用计算机来模拟它,首要的工作是将这个过程描绘出来,把它们的因果关系都定义出来;再通过结构化的设计方法,将这些过程进行细化,形成可以控制的、范围较小的部分。通常,面向过程的分析方法是找到过程的起点,然后顺藤摸瓜,分析每一个部分,直至达到过程的终点。这个过程中的每一部分都是过程链上不可分割的一环。l 结构化分析的步骤如下:1 分析当前的情况,做出反映当前物理模型的DFD;2 推导出等价的逻辑模型的DFD;3 设计新的逻辑系统,生成数据字典和基元描述;4 建立人机接口,提出可供选择的目标系统物理模型的DFD;5 确定各种方案的成本和风险等级,据此对各种方案进行分析;6 选择一种方案;7 建立完整的需求规约。l 设计原则:1 使每个模块执行一个功能(坚持功能性内聚)2 每个模块用过程语句(或函数方式等)调用其他模块与3 模块间传送的参数作数据用与4 模块间共用的信息(如参数等)尽量少 v 有科学家提出程序=算法+数据结构.这个公式很好地诠释了面向过程程序设计方法的核心思想-数据和算法.面向过程,都是通过函数实现的。其设计方法的重点在于如何实现细节过程,将函数与数据分开。它主要是以:主模块 + 若干子模块(mian()+子函数)的形式展开的。每一个程序的功能、动作都以相应的函数方法去实现,然后再由主函数以此调用完成相应动作。面向过程的方法的另一种表述是组成程序的若干函数方法。也就是说,一个程序是由若干个函数组成的。其实本质上,面向过程的编程方法都是基于一系列处理函数的,无论是自上而下、逐步细化的思想,还是模块化、结构化的思想,他们最后的落脚点都是一系列的处理函数。所以说,面向过程的编程方法实际上就是组成程序的若干函数的实现方法。4、 面向过程编程的优缺点v 优点 : 面向过程的编程(OPP)优点是程序顺序执行,流程清晰明了。其次面向过程的性能比面向对象要高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。所以当我们开发一个不是很复杂的程序,同时对性能方面又有比较高要求,这时候面向过程就显得十分高效了。v 缺点 : 面向过程的缺点主要体现在主控程序承担了太多的任务,各个模块都需要主控程序进行控制和调度,主控和模块之间的承担的任务不均衡。另一方面,面向过程定义的函数无法方便扩展,重用性低,没有面向对象易维护、易复用、易扩展。第三,在面向过程程序中,许多重要的数据被放置在全局数据区,这样它们可以被所有的函数访问。这种结构很容易造成全局数据在无意中被其他函数改动,因而程序的正确性不易保证。面向过程的方式,其思想和方法布局注重深度, 其调用链形成一棵链条很长的树(纵向联系),上级节点和下级节点互为上下文,上级节点单独抽出去无法完成任何工作,越核心的功能依赖层次越低的下层实现。联系太紧密,所以很难重用,从而导致修改时的链条也很长。5、 发展情况如图所示,计算机通过数据来记录这个过程的变迁。过程中每一步都会产生、修改或读取一部分数据。每一个环节完成后,数据将顺着过程链传递到下一部分。当我们需要的最终结果在数据中被反映出来,即达到预期状态的时候,我们认为这个过程结束了。从中也可以看出,销售定单数据是这个过程的核心。为了能很好地分析这样的过程,DFD 图被广泛应用。DFD 图表达了“( 从上一步)输入数据(在这一步)功能计算(向下一步)输出数据”这样一个基础单元。例如图中的“销售定单”单元,它读取客户请求,创建了销售定单数据;而“财务处理”单元则读取定购的商品信息,写入财务数据直到“物流”单元将货物送到消费者手中并将数据写入销售定单后,这个过程才宣告结束。由于数据是如此重要,因此数据的正确性和完备性对系统成功与否至关重要。为了更好地管理数据,不至于让系统运行紊乱,人们通过定义主键、外键等手段将数据之间的关系描绘出来,结构化地组织它们,利用关系理论,即数据库的三大范式来保证它们的完备性和一致性。在面向过程成为主要的软件方法之后,关系型数据库得到了极大的发展,针对数据的分析方法ER 模型也深入人心,被极为广泛地使用。然而随着需求越来越复杂,系统越来越庞大,功能点越来越多,一份数据经常被多个过程共享,这些过程对同一份数据的创建和读取要求越来越趋于复杂和多样,经常出现相矛盾的数据需求,因此分析和设计也变得越来越困难。尽管有非常管用的方法,但面向过程的困难并没有从根本上解决。好方法只是使得困难暂时得以缓解。本质的问题出在认识方法上。将世界视为过程的这个方法本身蕴涵着一个前提假设,即这个过程是稳定的,这样我们才有分析的基础,所有的工作成果都依赖于对这个过程的步步分析。同时,这种步步分析的过程分析方法还导致另一个结果,即过程中的每一步都是预设好的,有着严谨的因果关系。只可惜我们这个世界从来都不是一成不变的,尤其到了信息化时代,一切都无时无刻不在发生着变化,系统所依赖的因果关系变得越来越脆弱。 面向过程已经面临了太多的困难,世界的复杂性和频繁变革已经不是面向过程可以轻易应付的了,面向对象的方法也就应运而生.但面向过程也非完全不好

温馨提示

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

评论

0/150

提交评论