[第一章]一、面向对象思想的发展
1 面向机器编程
最初的编程是面向机器编程;编程采用机器语言来编写,用二进制表示机器能识别的指令和数据,也就是直接使用0和1表示。这种编程方式写起来困难、出错了也难以调试。后面出现了汇编语言,利用助记符来帮助程序员记忆一些机器指令的操作码,地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在一定程度上简化了编程的难度,但开发人员仍然要精确掌握CPU指令、寄存器、段地址等底层硬件的细节。
2 面向过程编程
面向过程的语言不再将精力放在关注底层硬件的操作指令、存储等方面。而是关注问题一步步解决的步骤,即问题解决的过程。面向过程相比面向机器是一次思想上的飞跃。将程序员从复杂的机器操作和运行细节中解放出来,转而去关注具体要解决的问题本身。面向过程语言不再与具体的机器绑定,提高了通用性和移植性。
软件危机
软件危机其原因,衔接到硬件的整体复杂度,与软件开发流程。危机表现在几个方面:
- 项目运行超出预算。
- 项目运行超过时间。
- 软件质量低落。
- 软件通常不匹配需求。
- 项目无法管理,且代码难以维护。
为了解决软件危机提出了“软件工程”和“结构化程序设计”的概念来解决软件危机的问题。(结构化程序设计主要特点是GOTO语句有害论,主张放弃GOTO语句,采取自定而下、逐步细化、模块化)。软件工程和结构化程序设计在一定程度上降低了软件开发的复杂度,是面向过程设计思想的一次改进。
3 面向对象编程
结构化编程一定程度上缓解了软件危机,但随着硬件的快速发展,业务需求的不断增长,应用范围的不断扩展,出现了第二次软件危机。相对于第一次危机体现在软件复杂性上,第二次危机体现在软件的可扩展性、可维护性上。面向对象和面向过程一样不是解决软件危机的银弹,面向对象思想是软件设计思想上的又一次飞跃,更一步缓解了软件危机的负面影响。
转载于:https://www.cnblogs.com/mysic/p/8448688.html
[第一章]一、面向对象思想的发展相关推荐
- 第一章 人工智能的研究和发展《2022年斯坦福AI指数报告》中文全解读
斯坦福大学的人工智能机构 Stanford Institute for Human-Centered Artificial Intelligence (HAI)发布的这第五版<AI指数报告> ...
- 马克思 第一章 世界的物质性及其发展规律
1.恩格斯认为,全部哲学,特别是近代哲学的重大的基本问题是(C) A. 哲学与人类生存活动之间的内在联系问题 B. 人与周围世界的基本联系问题 C. 思维和存在的关系问题 D. 关于人的本质问 ...
- 第一章 Borland的诞生和发展
一直想写篇文章,讲述我个人在过去10多年来工作中经历的一些事情,以及这些日子 中那些我心目中的伟大的工程师们对于信息界的贡献.如果读者和我的年龄差不多, 那对于这些内容可能会更有兴趣,因为它们揭示了当 ...
- 第一章:摄像起源与发展,中国人是始祖
慧眼网 邓林供稿 编者按:我们将推出由行业资深专家Louis编写的摄像头系列经典教材.该套教材分十余篇,介绍了摄像头的起源发展.基础知识.关键器件及专项技术等,以平实的语言系统介绍手机摄像头的相关知识 ...
- python全栈开发中级班全程笔记(第三模块、第一章(1.面向对象基础))
python全栈开发笔记第三模块 第一部分 第一章 :面向对象(类) 一.面向过程编程1.面向过程编程:主要是过程二字,所谓过程,就是指解决问题的步骤,也可以说是设计一套流水线(机 ...
- ASP.NET MVC 3 Framework之旅 第一章
第一章 伟大的思想 ASP.NET MVC是来自于微软的整合了有效性的和整洁的模式-视图-控制器(MVC)架构的一种Web开发框架,它的最新的思想和技术来自于敏捷性开发,是最好的ASP.NET平台.A ...
- 开始C++的学习(第一章)~美少女战士,加油!
第一阶段所用书籍:<C++轻松入门> 王浩著 人民邮电出版社 参考书籍:<Absolute C++>中英文版 (亦为第二阶段主打书籍) 接下来的blog,更倾向于学习笔记,好了 ...
- WSN(1):第一章 绪论
目录 第一章 绪论 传感器网络的发展历史 什么是无线传感器网络 无线网络的分类: WSN的标准定义: WSN的目的: WSN特点以及对应技术: 传感器网络节点的组成模块: 传感器网络的组成体系: 传 ...
- 《深入理解Java虚拟机》-周志明 -第3版-第一章摘记
第一章讲了java的发展和变迁,在章节末作者讲到了编译openjdk源码和调试源码 java发展史 java的诞生起因史1991年4月,James Gosling博士领导的绿色计划(Green Pro ...
最新文章
- 微众银行AI团队开源联邦学习框架,并发布《联邦学习白皮书1.0》
- GANs笔记(1) - 初步了解 GANs
- 用户名 不在 sudoers文件中,此事将被报告
- MySQL数据库“十宗罪”(十大经典错误案例)
- HDU1524(博弈--有向无环图SG函数)
- Leetcode 动态规划 Trapping Rain Water
- mysql 5.6.22编译_saltstack全编译安装mysql5.6.22
- IBM、Google、Oracle三巨头的公有云之殇(下)
- 【安全牛学习笔记】COCAT
- python 关于反射和类的特殊成员方法
- 1.7.05:输出亲朋字符串
- 数据饕餮,盛夏旋风!天善学院SVIP冰点促最后一波!
- CMS3.0——初次邂逅express
- linux leach仿真数据传输图性能,基于OMNeT-+-+的Leach协议的仿真研究.pdf
- java 阴阳历,Java基础-有意思的阴阳历互换的算法
- k2.第一章 基于kubeadm安装kubernetes v1.20 -- 集群部署(二)
- EOS dice移到1.8版本的修改汇总
- LiteFlowNet:用于光流估计的轻量级卷积神经网络
- 一个创业小公司老板的管理经验
- Linux安装和使用Xftp6和Xshell6教程