什么是软件工程
软件由文档、代码和数据组成,用于特定服务。
工程指用于指导产品开发的科学方法。
软件工程是指导软件产品开发的科学方法。
软件进化
软件和现实中的大楼有个很大的区别。
大楼一般在开始建造前就已经有了建造方案,在建造过程中方案也不会发生变化。
但随着技术和需求的不断变化,软件的设计方案需要进行相应的改动,即使在编码过程中。
软件危机
计算机发展初期,软件规模较小,改动起来复杂度相对不高。
但随着计算机硬件的发展,软件的规模也逐渐变大,复杂度随之增大。
软件复杂度增大带来了一系列问题,包括:
- 软件开发进度难以预测
- 软件开发成本难以控制
- 软件产品质量无法保证
- 软件产品难以维护
这种现象被称为软件危机(Software Crisis)
软件工程的目的
为了缓解软件危机,人们提出了软件工程(Software Engineering)这门学科。
软件工程研究软件开发的客观规律,总结指导软件开发的优秀实践,其目的有三个:
- 降低软件生产成本
- 改进软件产品质量
- 提高软件生产效率