软件行业仍然有很大的发展前景。
虽然目前的情况喜忧参半,但只要软件行业抓住合适的机会,努力提升自己,改进不足,就能慢慢走出瓶颈。
软件开发行业的现状和前景2
一、“软件技术”发展历史
第一是软件技术发展早期(20世纪50和60年代);第二是结构化程序和对象技术发展时期(70和80年代);第三是从90年代到现在,软件工程技术发展新时期。
1、软件技术发展早期
在计算机发展早期,应用领域较窄,主要是科学与工程计算,处理对象是数值数据。
1956年在J.Backus领导下为IBM机器研制出第一个实用高级语言Fortran及其翻译程序。
此后,相继又有多种高级语言问世,从而使设计和编制程序的功效大为提高。
这个时期计算机软件的巨大成就之一,就是在当时的水平上成功地解决了两个问题:一方面从Fortran及Algol60开始设计出了具有高级数据结构和控制结构的高级程序语言,另一方面又发明了将高级语言程序翻译成机器语言程序的自动转换技术,即编译技术。
然而,随着计算机应用领域的逐步扩大,除了科学计算继续发展以外,出现了大量的数据处理和非数值计算问题。
为了充分利用系统资源,出现了操作系统;为了适应大量数据处理问题的需要,开始出现数据库及其管理系统。
软件规模与复杂性迅速增大。
当程序复杂性增加到一定程度以后,软件研制周期难以控制,正确性难以保证,可靠性问题相当突出。
为此,人们提出用结构化程序设计和软件工程方法来克服这一危机。
软件技术发展进入一个新的阶段。
2、结构化程序和对象技术发展时期
从70年代初开始,大型软件系统的出现给软件开发带来了新问题。
大型软件系统的研制需要花费大量的资金和人力,可是研制出来的产品却是可靠性差、错误多、维护和修改也很困难。
一个大型操作系统有时需要几千人年的工作量,而所获得的系统又常常会隐藏着几百甚至几千个错误。
程序可靠性很难保证,程序设计工具的严重缺乏也使软件开发陷入困境。
结构程序设计的讨论导致产生了由Pascal到Ada这一系列的结构化语言。
这些语言具有较为清晰的控制结构,与原来常见的高级程序语言相比有一定的改进,但在数据类型抽象方面仍显不足。
面向对象技术的兴起是这一时期软件技术发展的主要标志。
“面向对象”这一名词在80年代初由Smalltalk语言的设计者开始提出,而后逐渐流行起来。
面向对象的程序结构将数据及其上作用的操作一起封装,组成抽象数据或者叫做对象。
具有相同结构属性和操作的一组对象构成对象类。
对象系统就是由一组相关的对象类组成,能够以更加自然的方式模拟外部世界现实系统的结构和行为。
对象的两大基本特征是信息封装和继承。
通过信息封装,在对象数据的外围好像构筑了一堵“围墙”,外部只能通过围墙的“窗口”去观察和操作围墙内的数据,这就保证了在复杂的环境条件下对象数据操作的安全性和一致性。
通过对象继承可实现对象类代码的可重用性和可扩充性。
可重用性使能处理父、子类之间具有相似结构的对象共同部分,避免代码一遍又一遍的重复。
可扩充性使能处理对象类在不同情况下的多样性,在原有代码的基础上进行扩充和具体化,以求适应不同的需要。
传统的面向过程的软件系统以过程为中心。
过程是一种系统功能的实现,而面向对象的软件系统是以数据为中心。
与系统功能相比,数据结构是软件系统中相对稳定的部分。
对象类及其属性和服务的定义在时间上保持相对稳定,还能提供一定的扩充能力,这是十分重要的事情,这样就可大为节省软件生命周期内系统开发和维护的开销。
就像建筑物的地基对于建筑物的寿命十分重要一样,信息系统以数据对象为基础构筑,其系统稳定性就会十分牢固。
到20世纪80年代中期以后,软件的蓬勃发展更来源于当时两大技术进步的推动力:一是微机工作站的普及应用,另一是高速网络的出现。
其导致的直接结果是:一个大规模的应用软件,可以由分布在网络上不同站点机的软件协同工作去完成。