面向过程方法学开发软件的特点

分类: 设计模式 软件工程2014-02-22 22:53 887人阅读 评论(0) 收藏 举报
面向过程 数据结构

面向过程方法学开发软件的特点:

1.程序=数据结构(模型)+算法(解决问题所需的一系列逻辑步骤)

2.数据结构作为模型,是对数据的封装

3.将程序分解为一系列相互之间独立(独立性强弱由开发者决定)的子程序(函数或过程),主程序按逻辑步骤调用各个子程序

4.以过程为中心,而非以事物为中心(面向对象方法学的关注点),严重依赖条件分支结构(if...else...或者switch...case),需求发生变动时,习惯于修改条件分支结构

5.数据结构的作用域通常很大,很容易与其他模块共享数据,修改时也很容易对其他模块造成影响

6.程序通常以函数库的形式进行组织,函数量巨大,很容易造成记忆负担(和面向对象相比,三千个函数可能只需对应大约三百个类)

7.面向过程方法通常用流程图来进行系统的分析与设计,当系统功能少,简单的情况下,流程图还可以胜任、但是当系统功能逐渐增加后,流程图复杂无比,流程很容易变的混乱不堪,在这种情况下,很容易出现潜在的设计缺陷。当然很多的系统分析和设计人员,尤其是业务人员都爱用它,因为它简单,学习不需要花成本。

8.尽管面向过程使用子程序来分解功能,但是不得不说面向过程方法仍是一种只想今天不想未来的短视设计和开发方法

9.使用面向对象的语言并不保证一定进行面向对象试的开发,如果你每天大部分时间都是在程序中用面向对象语言在固定位置编写相似的代码,每个任务都是用流程图。今天开发了功能,过几天再去无所顾忌的修改的话,那么恭喜你,你很可能是在进行面向过程的开发

面向过程方法学开发软件的特点相关推荐

  1. java面向过程编程怎么写_从面向过程到面向对象,我的编程之路

    也许现在新一代的程序员一开始涉足的就是c++,C#,Java这类面向对象的语言,如果这样,这篇文章可能得不到他们的认同. 这里,我只想写写我从面向过程到面向对象开发成长中的一些感想而已. 我最初学习的 ...

  2. 面向对象与面向过程区别

    面向对象:用线性的思维.与面向过程相辅相成.在软件开发过程中,宏观上,用面向对象来把握事物间复杂的关系,分析系统.微观上,仍然使用面向过程. "面向过程"是一种是事件为中心的编程思 ...

  3. 心得 : 面向对象和面向过程的区别【分享】

    面向对象:用线性的思维.与面向过程相辅相成.在软件开发过程中,宏观上,用面向对象来把握事物间复杂的关系,分析系统.微观上,仍然使用面向过程. "面向过程"是一种是事件为中心的编程思 ...

  4. 面向过程(PO)和面向对象(OO)的区别(思维导图)

    面向对象: 是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙       某个事物在整个解决问题的步骤中的行为.(主要语言:c++,c#,java) 面向对象的程序设计 ...

  5. 浅谈面向对象和面向过程

    1.面向对象   面向过程和面向对象都是对软件分析.设计和开发的一种思想,它指导着人们以不同的方式去分析.设计和开发软件.早期先有面向过程思想,随着软件规模的扩大,问题复杂性的提高,面向过程的弊端越来 ...

  6. 心得 : 面向对象和面向过程的区别

    http://www.cnblogs.com/dbEssay/p/6358253.html  面向对象:用线性的思维.与面向过程相辅相成.在软件开发过程中,宏观上,用面向对象来把握事物间复杂的关系,分 ...

  7. python语言的特点有没有面向过程_Python 入门基础之面向对象过程-面向过程概述...

    首先说明一下,python既是面向过程的语言,也是面向对象的语言,所以说python很灵活. 一句话简单说一下什么叫做面向对象编程OOP(object-oriented programing):面向对 ...

  8. 面向过程与面向对象有什么区别

      目录   一.什么是面向过程 1.面向过程的缺点 2.面向过程的优点 补:简单介绍代码与代码之间的耦合度 二.什么是面向对象 三.面向过程与面向对象有什么区别 一.什么是面向过程 面向过程主要的特 ...

  9. 什么是软件危机?软件危机的主要表现是什么?什么是软件?什么是软件工程?什么是软件过程?软件过程与软件工程方法学有何关系?​​​​​​​什么是软件开发方法?软件开发方法主要有哪些?

    软件危机:在软件的开发和维护过程中所遇到的一系列严重问题. 软件危机主要包含两方面的问题: 1.如何开发软件,以满足对软件日益增长的需求 2.如何维护数量不断膨胀的已有软件. 软件危机的消除途径: 软 ...

最新文章

  1. 永州科技学院有计算机专业吗,永州科技学院有哪些专业
  2. 编写同时在PyTorch和Tensorflow上工作的代码
  3. 活动报名 | 第四范式AI与异构硬件优化最新成果分享
  4. 拾取物品怎么实现_这样的物品品质设定,一眼便知是“欧”还是“非”
  5. supersocket缓冲区_使用Socket从Client传输文件到Server对文件缓冲区大小有限制么?...
  6. nodejs通过响应回写的方式渲染页面资源
  7. (12)System Verilog随机变量
  8. Vue的v-if与v-show的区别
  9. [转]我对CTO的理解
  10. 【水果识别】基于matlab GUI形态学水果识别【含Matlab源码 1364期】
  11. java混淆加密_源代码部分加密混淆方案
  12. python数据结构之匿名函数lambda
  13. 微软雅黑的问题(for silverlight)
  14. 合并excel多个工作表
  15. 【小工具】用js自动生成pdf目录索引
  16. 域名转入需要经过“命名审核”状态
  17. 4.6 linux文件系统-虚拟文件系统VFS
  18. swoole 连接mysql_swoole教程:用swoole4操作mysql连接池之读写分离
  19. 苹果微信多开_怎样才能下载两个微信
  20. [project X] tiny210(s5pv210)上电启动流程(BL0-BL2)

热门文章

  1. 用c语言描述单链表的数据类型,数据结构—单链表(类C语言描述)
  2. 软考高项之学习笔记——质量成本概念
  3. java http 上传_Java使用HttpURLConnection上传文件
  4. 洛谷——P2590 [ZJOI2008]树的统计(树链剖分模板练手)
  5. [ CodeForces 865 D ] Buy Low Sell High
  6. 2017寒假第一篇随笔(寒假作业一)
  7. iOS开发打电话的功能
  8. php中获取网站访客来源的关键词方法
  9. SQL Case When Then 条件判断
  10. Flash/Flex学习笔记(53):利用FMS快速创建一个文本聊天室