一、软件危机与软件工程
软件危机与软件工程是计算机科学发展中密切相关的两个概念。
1.软件危机(Software Crisis)
背景:20世纪60年代至80年代,随着计算机硬件性能提升,软件规模与复杂度剧增,传统开发方法难以应对,导致大量项目失败。
表现:
- 成本失控:开发周期长、预算超支。
- 质量低劣:软件漏洞多、可靠性差。
- 需求偏差:交付后不符合用户实际需求。
- 维护困难:代码混乱,难以扩展或修复。
根源:
- 缺乏系统化的开发方法。
- 轻视需求分析与设计,过度依赖“手工作坊”模式。
- 团队协作与文档管理不足。
2.软件工程(Software Engineering)