程序设计阶段:生产方式是个体手工劳动,带有强烈的个人色彩,程序通用性很差,没有软件说明书等文档,基本上只有程序、程序设计概念,不重视程序设计方法,主要是用于科学计算,规模很小,采用简单的工具(基本上采用低级语言),硬件的存储容量小,运行可靠性差。
软件设计阶段:作坊式的小集团合作生产,生产工具是高级语言,开发方法仍就是个人技巧,但开始出现结构化方法,硬件特征是速度、容量、工作可靠性有明显提高,价格降低,销售有爆炸性增长。软件特征是程序员数量猛增,但开发技术没有新的突破,软件需求日趋复杂,维护的难度越来越大,开发成本非常高,开发人员的开发技术不适应规模大、结构复杂的软件开发,失败的项目越来越多,导致软件危机的产生。
软件工程阶段:计算机硬件向超高速、大容量、微型化以及网络化方向发展,软件方面出现了第三、第四代计算机语言,数据库、开发工具、开发环境、网络、分布式、面向对象技术等工具和方法都得到应用。软件生产出现了专业化、产品化、系列化、工程化、标准化为特征的产业集团,取消了软件生产的个体化特征。软件设计有了可以遵循的软件工程化的设计原则、方法和标准,也出现了结构化设计方法和面向对象的设计方法,尤其是面向的方法和技术在近些年取代了传统的软件开发方法和技术,占据了软件开发的主导地位