Dijkstra曾经提到:“Software engineering, of course,presents itself as another worthy cause,but that is eyewash: if you carefully read its literature and analyse what its devotees actually do,you will discover that software engineering has accepted as its charter ‘How to program if you cannot.’”[i]
软件工程是不是教那些不怎么会写程序的人开发软件? 你怎么看?
首先看一下,软件工程产生的背景:随着计算机的应用的逐步扩大,软件需求迅速增加,规模也日益增长,出现了软件危机。其具体表现为:大型软件系统十分复杂;很难理解和维护;软件开发周期过长;大型软件系统的可靠性差;软件费用往往超出预算。软件工程正是在这一背景下在1986年北大西洋公约组织在联邦德国召开的一次会议上提出的。由软件工程的产生背景就可发现它并不是教那些不怎么会写程序的人开发软件,否者软件工程在计算机应用的开始就应该出现。
然后再了解一下,软件工程的研究的基本内容主要包括软件开发过程、软件开发和维护的方法与技术、软件开发和维护工具系统、质量评价和质量保证、软件管理和软件开发环境。这些内容显然不是教那些不怎么会写程序的人开发软件,而是帮助软件开发人员更快更好的开发软件。
总的来说,软件工程是把软件当作一种工业产品,要求采用工程化的原理和方法对软件进行计划、开发和维护。软件工程的目的不仅是为了实现按预期进度和经费完成软件生成计划,也是为了提高软件的生产率和可靠性。软件工程的目标是:在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。
参考资料:软件工程——原理、方法与应用