软件开发的发展历程

上传人:枫** 文档编号:512771347 上传时间:2023-12-16 格式:DOCX 页数:3 大小:12.23KB
返回 下载 相关 举报
软件开发的发展历程_第1页
第1页 / 共3页
软件开发的发展历程_第2页
第2页 / 共3页
软件开发的发展历程_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《软件开发的发展历程》由会员分享,可在线阅读,更多相关《软件开发的发展历程(3页珍藏版)》请在金锄头文库上搜索。

1、1. 软件开发的发展历程从计算机发明到现在,出现了多种软件开发方法,19世纪60年代的发生的软件危 机促使了 “软件工程”这个概念的诞生。但是目前软件开发的现状如何呢?毫无疑 问,现在的软件开发方法论目前也在迅速的发展。每天,我们都能够从各类信息渠 道获得新的软件开发方法或者新的程序开发语言,每一种开发方法或者开发语言都 号称着有着相当的进步,都声称着能简化开发过程,缩短开发时间。从编程语言的层面上来说,机器语言、汇编语言、C语言、C 、JAVA、C#、 Python、Ruby、JavaScript等等这么多的编程语言,每种语言都有着它自己的特 点以及存在的理由,其中,有号称无所不能的通用编程

2、语言,如C、C 、JAVA等 等,也有着为了特定的目标而实现特定的功能的语言,如JavaScript、Ruby等 等。各种编程语言之间的相互吸收和相互竞争同时又促进了这种编程语言的不断进 步与发展。于是,各类编程语言都不断出现自己的最新版本,理所当然的,最新的 版本肯定是比前面的版本要先进得多,功能要强大得多。从编程的方法论上来说,从一开始的机器语言和汇编语言直接对机器码进行编程, 到后面,“结构化”的编程方法开始出现并流行起来;而后,“软件危机”的出现 最终导致“面向对象”的编程方法大行其道,而“软件工程”的概念则试图将软件 开发当作一个系统的工业化工程进行管理;到后来,人们发现,软件的发展

3、实在是 太迅速了,软件系统是越做越大,功能是越来越强,而其中出现的问题同时也是越 来越多,于是,可复用的软件方法论开始流行,“面向构件”进行编程的理论开始 出现;而后,在这基础上,IBM的“SOA理论”则试图去解决一个大型系统内部的 各大功能模块或者子系统之间以及几个大系统的整合以及相互连接的问题。当然, 这些理论都只是一部分,在这过程中,还出现了更多的号称能够(其实也确实能 够)简化编程工作的方法论出现,如“设计模式”、“AOP面向切片编程”、“敏 捷程序开发”等等。就目前来说,现在的软件开发处于百家争鸣的状态,无论从理论上还是实际的应用 上,没有哪种开发方法和开发语言是能够一统天下的。当年

4、,JAVA出现的目的就 是为了简化开发,代替C语言,然而,现实的情况却是JAVA的体系架构越来越 复杂,越来越庞大。而后,python、ruby等号称更简单的语言出现了,虽然这些 语言确实简化了很多的开发工作,但是,我们却惊奇的发现,没有一种语言能够完 全取代另外一种。好笑的是,每种语言都有一批强烈而偏激的支持者,经常听说两 种语言的支持者相互贬低对方,争得面红耳赤,甚至大打出手的。更奇怪的是,每 一种语言的版本也在不断的更新,而更新的内容似乎我们永远都用不到(如C语 言,现在就没有哪个编译环境是完全100%的支持其最新的国际标准的)。2. 越来越复杂的软件开发随着软件开发理论的发展和开发语言

5、、开发环境的进步,我们程序员写代码似乎是 应该越来越轻松,而现在的实际情况似乎也确实是如此,以前用汇编语言需要写几 百行的代码,用C语言可能只需要写几十行甚至几行,用python语言等最新的编 程语言则代码量还会更少得多。各式各样的开发理念的出现同时也指导者我们如何 去编写更可靠,更高效,更容易理解和重构的代码。但是,实际的情况却并非完全如此,抛开学习这些编程语言、理论知识的复杂度来 说,就算是我们完全的掌握了这些编程语言和理论知识,完全的能够在实践中轻松 的应用这些理论以及语言,我们还是发现,在实际的开发中,编程的复杂度还是越 来越高。这似乎非常的令人迷惑,但确实是真实存在的。也许这是因为现

6、在的信息社会发展 越来越快,对信息系统的各种要求(功能性、稳定性、效率性、可用性等等)越来 越高,所以导致以前很简单的系统现在变得非常之复杂。例如大家都知道的 windows系统,从win95到现在最新的vista,其安装文件从100M扩大到了 4G, 扩大了 40倍。vista的系统功能,界面美观性以及系统稳定程度,都是win95所 无法望其项背的。在windows 95的时代,写一个vista这样的系统,其代码量和 代码复杂程度是难以想象的。系统越来越复杂,开发难度越来越大。这正是现在的这么多乱七八糟的开发方法、 开发语言、开发平台出现的原因,但是这些新生的事物却远远没有达到程序员所期 望

7、的目标。3. 每天都在学习的程序员每天,我们程序员都会在专业杂志上看到一个新的概念,一种新的语言,一个新的 软件开发的研究成果。我们已经不胜其烦,疲于奔命,只要有几个月的时间我们偷 懒而不去学习的话,我们就会沮丧的发现,自己已经远远的落后于时代了。而更可 悲的是,我们费尽精力去学完了一新知识的时候却发现我们实际能够应用这种知识 的时间要比学习这种知识的时间要少得多,而最大的收获却是在和同行们吹牛的时 候能够吸引到别人的眼球。软件行业是一个高复杂性、高逻辑性和高创新性的行业,我们程序员则毫无疑问的 是世界上最聪明,最好学,同时也是工作得最累的人。经常可以看见,程序员加班 加点的开发软件赶进度,疲

8、于奔命的调试程序来解决程序BUG,没日没夜的进行系 统升级与割接。同时,每天还得不断的学习各种新的知识,进行自我充电。4. 和其它行业相比的软件业这是一个很奇怪的现象,在现代化的工业社会,除了软件行业以外的各行各业大都 有自己非常成熟的行业标准。和这些行业相比,软件行业的发展是太过于迅速还是 太过于缓慢呢? 一方面,软件行业的天才牛人层出不穷,各种新知识新概念新技术 新语言爆炸式的增长,软件的体积越来越膨大,功能越来越强大。从这方面看,软 件业的发展确实是太过于迅速了。但是,从另外一方面看,这些新知识,新技术, 新语言的快速出现,快速发展,却没有根本的解决编程复杂化的问题,都是一个一 个的解决

9、问题,并没有实质性的变革。我们发现,编程还是越来越复杂,系统bug 越来越多,而且还只能是发现一个解决一个。一个能够得到广泛认可的工业化标准 一直都无法出现。5. 下一代的软件业发展方向,向工业化进军?我们也在幻想,什么时候编程能够像搭建积木一样的,用各种零件,可以搭成飞 机,楼房等等。就像是工业化的生成汽车,飞机一样的,在设计好以后,像生产线 一样的,将各类的零件搭建在一起,组成各种组件,然后再将这些组件组合起来, 就生产出了一个汽车和飞机,不再需要每个零件都单独进行制造,零件接口都单独 进行设计。也许很多人会认为,这和软件的灵活性是相冲突的,一个软件如果这样进行开发, 必然会使其效率降低,

10、功能不灵活。然而,历史上的任何一种工业技术都出现过类 似的问题,1765年,英国人瓦特发明了蒸汽机,但是在当时,这个工业化的始祖 机器并没有得到任何的实际应用,其原因就是这个蒸汽机在效率、功率和稳定性上 遇到了非常多的技术性的难题,面对嘲笑和讽刺,瓦特并没有放弃,而这些问题, 最终都得到了完善的解决。所以说,我们可以这样认为,效率性和灵活性都只是简 单而暂时的技术性问题,都可以得到完善的解决。下一代的软件开发应该是怎么样的呢?通用接口(SOA),可复用模块(居于构件 理论),从设计到开发快速成型这肯定不会是一个简单而短时间内就能达到 的目标,但是终究会实现的。也许,到时候,软件开发会变成这样子

11、:底层构件(或者说是中间件或者组件)开 发者开发底层的构件;系统架构师设计整个系统的架构;然后二次开发者将这些构 件组装成一个完整的系统软件。或许,整个软件行业的统一工业标准永远都不会出现,出现了以后其也会反过来制 约软件业的发展。更何况目前各大公司相互竞争,谁都认为自己的是最好的。各大 牛人也都是谁都不服谁,今天你发明一种新语言,明天我发明一种的。但是,简化开发过程,快速开发软件毕竟是绝大多数程序员的理想与目标(担心开 发的复杂度降低会减少收入的程序员除外,呵呵),也是社会生产力发展的必然趋 势。现在,每个公司,每个人都希望软件开发能够更简单,更方便。从天才牛人到普通 的程序员,每个人都在尝试,都在努力的改进软件开发的过程。而各种新的开发语 言、开发方法、开发平台也是层出不穷。在这无比混乱的局面中,软件开发理论在不停的缓慢的进步。我相信,这些慢慢积 累起来的量变,最终会转化为质变,工业化的软件开发最终是将会来临的。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号