何为软件危机?
软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
软件危机产生的原因
- 软件开发无计划性
- 软件需求不充分
- 软件开发过程无规范
- 软件产品无评测手段
软件危机的表现
- 超出预算时间和成本
- 客户对生产出的软件不满意
- 软件有残存的错误
- 软件产品不可维护
- 文档资料不完整
- 软件生产率的提高跟不上硬件的发展速度
如何解决软件危机?
解决软件危机的最好方法:软件工程。
软件工程的概念:
1968年秋季,北大西洋公约组织的科技委员会召开了一次会议,在此次会议上提出了软件工程的概念。
软件工程是一门研究工程化方法构建和维护有效,实用和高质量的软件的学科,它涉及程序设计语言,数据库,软件开发工具,系统平台,标准,设计模型等方面。
软件工程的定义:
软件工程一直以来都缺乏一个统一的定义,有许多版本。
- Boehm(美国著名工程专家)——运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
- IEEE(美国电气电子工程学会)——软件工程是开发、运行、维护和修复软件的系统方法。
- Fritz Bauer(计算机科学家)——建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。
- 目前一种较为认可定义:
软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来 。
软件工程的基本原理
- 用分阶段的生命周期计划严格管理
- 坚持进行阶段评审
- 实行严格的产品控制
- 采用现代程序设计技术 (结构化分析设计技术,面向对象分析设计技术)
- 结果应能清楚地审查
- 开发小组的人员应该少而精
- 承认不断改进软件工程实践的必要性