软件发展历史(时间轴)
共 4038字,需浏览 9分钟
·
2021-09-16 09:37
1、“计算机"理论阶段:20 世纪三、 四十年代——理论
计算机出现之前,就已经有很多数学家为计算机软件的出现打下了坚实的数学理论基础,最著名的是“阿兰. 图灵”,在 20 世纪三、 四十年代就创建立了“图灵机”理论, 从理论上解决了计算机软件和核心——“计算复杂性”以及“算法表示”问题。
正是有了这样的数学理论作为基础,加上当时电子技术的突飞猛进,二者相结合,才产生了计算机这样一个划时代的伟大产物。
2、第一台电子管计算机:1946 年——硬件
美国宾夕法尼亚大学经过几年的艰苦努力,研制出世界上第一台电子计算机,是电子管计算机,结构上以CPU为中心,使用机器语言,速度慢、存储量小,主要用于数值计算。
计算机都是按照“冯 . 诺依曼”体系设计的, 其运行的基本原理, 可以简单概括为“程序存储、集中控制”,“约翰 . 冯. 诺依曼”被称为“计算机之父”。
3、打孔纸带“编程”——语言
计算机的内部处理的全都是1 和 0 的二进制数字, 表示“开”和“关”.
而计算机刚刚发明出来的时候, 操作人员就必须用很多真正的“开关”来操作计算机,进步一点以后, 出现了“机器语言”的概念,使用例如在纸带上打孔的方式,把一些原来需要人手工拨动开关的操作序列,变成按照某种规则在纸带上的一系列孔的序列。
这种打着孔的纸带可以被看作是今天的鼠标、键盘、打印机、显示器、磁盘这些东西的总和,这些东西在当年,“打孔纸带”一个人就全包了。
今天我们分分钟编好一个程序,并且可以多语言混合编写。然而你能想象最初的编程竟然是通过打控纸写程序。
打孔卡(punch card)编程时期:20 世纪 60 年代,IBM 并为打孔卡设立了标准。
基本原理是通过打孔纸带上的圆孔或方孔,透光,则表示1,其他表示0。通过纸带输入老式计算机中,进行程序控制。
4、早期的“程序猿”
伴随着第一台电子计算机的问世诞生了。以写软件为职业的人也开始出现,他们多是经过训练的数学家和电子工程师,硬件通常用来执行一个单一的程序,而这个程序又是为一个特定的目的而编制的。
早期当通用硬件成为平常事情的时候,软件的通用性却是很有限的。大多数软件是由使用该软件的个人或机构研制的,软件往往带有强烈的个人色彩。
早期的软件开发也没有什么系统的方法可以遵循,软件设计是在某个人的头脑中完成的一个隐藏的过程。而且, 除了源代码往往没有软件说明书等文档。
5、机器语言——>“汇编语言”
机器语言通常称为“第一代语言”,其后又产生了“汇编语言”,即“第二代语言”。
汇编语言实际上就是机器语言,区别就是汇编语言中用一些符号代替0 和1 的序列, 仅仅是便于记忆。
此外,有少量的扩展功能,比如可以通过定义“宏”来产生类似于“子程序”这样的逻辑概念,通过编写汇编语言程序产生机器代码,效率提高了很多, 但是它依然是紧密依赖于机器的,和后来被广泛使用的高级语言是完全不同的。
6、Fortran——第一个高级语言:1954 年
1954 年,“约翰 . 巴科斯”建立了高级语言的思想,并设计出了世界上第一个真正意义上(至今广泛应用)的高级语言,第一个完全脱离机器硬件的高级语言—Fortran问世。
7、典型的操作系统FMS:1955
1955-,典型的操作系统是FMS (FORTRAN Monitor SystemFORTRAN 监控系统)和IBSYS (IBM为7094机配备的操作系统)。
8、晶体管计算机:1958年
1958年晶体管计算机,结构上以存储器为中心,使用高级语言应用范围扩大到数据处理和工业控制。
9、第一个数据库管理系统-IDS:1961年
1961年第一个数据库管理系统- -IDS由通用电气(GE)公司的Charles Bachmar开发出 。.
10、小规模集成电路计算机:1964年
1964年中小规模集成电路计算机,结构上仍以存储器为中心,增加了多种外部设备, 软件得到一定发展,计算机处理图像、文字和资料功能加强。
11、远程联机系统:60 年代中期之前
60 年代中期之前的第一代计算机网络是以单个计算机为中心的远程联机系统。
典型应用是由一台计算机和全美范围内2 000 多个终端组成的飞机定票系统。
终端是一台计算机的外部设备包括显示器和键盘,无CPU和内存。
12、“软件危机"与”软件工程“:60 年代中期
“软件危机”于60年代中期软件开始作为- -种产品被广泛使用,出现了“软件作坊”专职应别人的需求写软件。
这一软件开发的方法基本上仍然沿用早期的个体化软件开发方式,但软件的数量急剧膨胀,软件需求日趋复杂,维护的难度越来越大,开发成本令人吃惊地高,而失败的软件开发项目却屡见不鲜。
“软件危机” 就这样开始了!
1968年北大西洋公约组织的计算机科学家在联邦德国召开的国际学术会议_上第一次提出了“软件危机”(software crisis)这个名词。
概括来说, 软件危机包含两方面问题:
一、如何开发软件,以满足不断增长,日趋复杂的需求;
二、如何维护数量不断膨胀的软件产品。
同年秋季,NATO (北约)的科技委员会召集了近50名一流的编程人员、计算机科学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。
在那次会议上第一次提出了软件工程(software engineering)这个概念。软件工程是一门研究如何用系统化、规范、数量化等工程原则和方法去进行软件的开发和维护的学科。
软件工程包括两方面内容:软件开发技术和软件项目管理。软件开发技术包括软件开发方法学、软件工具和软件工程环境。软件项目管理包括软件度量、项目估算、进度控制、人员组织、配置管理、项目计划等。
13、“生命周期模型“五步走:60 年代末
60年代末“软件危机”后出现的第一个生命周期模型。如下所示:分析→设计→编码→测试→维护,使人们认识到了文档的标准以及开发者之间、开发者与用户之间的交流方式的重要性。
一些重要文档格式的标准被确定下来,包括变量、符号的命名规则以及原代码的规范式。
14、1969年UNIX出现
1969年12月,Internet的前身--美国的ARPA网投入运行,它标志着我们常称的计算机网络的兴起。.
1969年,提出了结构化程序设计方法。
15、1970年之后
1970年,第一个结构化程序设计语言- Pascal 语言出现。标志着结构化程序设计时期的开始,即PO (面向过程的开发或结构化方法)以及结构化的分析、设计和相应的测试方法。
1971年.大、超大规模集成电路计算机,应用更加广泛,出现了微型计算机。
1972 C语言 出现
1975年的第六版UNIX 才开始走出贝尔实验室
1979年0racle公司引入了第一个商用SQL关系数据库管理系统。
1983年C+出现
1983年IBMDB数据库产品推出的。
由于各种各样的应用软件需要在各种平台之间进行移植,或者一个平台需要支持多种应用软件和管理多种应用系统,软、硬件平台和应用系统之间需要可靠和高效的数据传递或转换,使系统的协同性得以保证。
这些,都需要一种构筑于软、 硬件平台之上,同时对更上层的应用软件提供支持的软件系统,而中间件正是在这个环境下应运而生。
1984年Tuxedo作为第-一个严格意义上的中间件产品由AT&T的贝尔实验室开发完成
1985年Windows 1. 0正式推出。之前软件结构体系也是Mainframe结构,该结构下客户、数据和程序被集中在主机上。
随着PC个人微机应用的推广,PC 联网的需求也随之增大,各种基于PC互联的微机局域网纷纷出台。
16、20世纪80年代
20世纪80年代中期出现了Client/Server结构。此结构把数据库内容放在远程的服务器上,而在客户机上安装相应软件。C/S软件一般采用两层结构。
1986年Eiffel出现。
80年代末面向对象的分析、设计方法(00A和00D)的出现,随之而来的是面向对象建模语言(以UML为代表)、软件复用、基于组件的软件开发等新的方法和领域。与之相应的是从企业管理的角度提出的软件过程管理。
17、20世纪90年代
90年代,中间件技术才开始迅速发展,建立在计算机和网络技术基础上的计算机网络技术得到了迅猛的发展。
1993年美国宣布建立国家信息基础设施NII后,全世界许多国家纷纷制定和建立本国的NII,从而极大地推动了计算机网络技术的发展,使计算机网络进入了一个崭新的阶段。
目前,全球以美国为核心的高速计算机互联网络即Internet已经形成。
1994年PHP出现
1995年Java出现
1996年JavaScript出现
18、2000年之后
2000年C#出现
业务基础平台作为一个新的软件层级尤为引人注目。业务基础平台是以业务导向和驱动的、可快速构建应用系统的软件平台。
2005年,ERP厂商再度引发“平台热”,金碟、SAP都在此时高调推出平台战略。
2006年被炒得沸沸扬扬的SOA (Service-0riented Architecture 作为下一代软件架构,主要用于解决传统对象模型中无法解决的异构和耦合问题。
……
总结
软件的发展史其实就是在裸机(硬件)和终端用户之间不断沉淀(平台化)的过程。
当与裸机接近的某个层次发展成熟后,与这个层次相关的创新和成果会明显减少,而从这个层次更靠近终端用户业务的层次的创新和成果会增多。就这样不断不断的沉淀形成平台,不断的向用户和业务领域靠拢。
电商商品搜索:需求方案和实现原理(“搜索产品经理”传送门)
B端产品经理 对接第三方API,可能有多坑!