现代社会离不开软件。

国家基础设施和公共建设都是由基于计算机的系统控制,大多数的电子产品都有计算机和控制软件。工业制造和金融系统已经完全计算机化了。娱乐业,包括音乐产业、计算机产业、电影和电视产业,也都是软件密集型的产业。因此,软件工程对于一个国家和整个国际社会的运转都是必不可少的。

现在仍有很多有关软件项目出问题和“软件失败”的报道,除开软件测试遗漏的一些致命性或严重性或严重影响用户体验的问题外,软件工程因不能充分支持现代软件的开始而遭非议。然而,在我看来,这些所谓的软件失败主要源于以下两方面的原因:

1) 不断增长的需求:由于新的软件工程技术可以帮助我们构建更大更复杂的系统,用户的需要因而在发生改变。系统必须更快速地构建并交付;需要更大更复杂的系统;系统必须具备在以前看来不可能实现的功能。现有的软件工程方法已经不能应对新形势,而新的软件工程技术还有待于进一步发展。

2) 期望值太低:不采用软件工程的方法和技术区编写计算机程序相对来讲要容易一些。很多公司因为他们的产品和服务在逐步发展而在软件开发中随波逐流。他们通常不使用软件工程方法,结果导致他们的软件比预计的费用高且不可靠。

因此我们需要更好的软件工程教育和实践来解决此类问题。