Dijkstra关于“软件工程” Dijkstra on “Software Engineering”
“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.’’ 翻译:软件工程是不是教会不怎么会写程序的人开发软件? 你的观点呢?
软件工程是一个复杂的系统,不仅仅只是编写一个程序这么简单(当然,这是基本功),其课程目标是通过系统的学习,了解软件开发从项目确定到需求分析,再到概要及详细设计、代码实现、开发后的软件测试这一完整软件开发过程。在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。
软件工程不仅仅是教那些不会写程序的人开发软件,在我看来,软件工程是从整体到细节,不同于传统的写程序,软件工程是用工程化的方法对软件进行研究与分析,包括软件需求的获取,软件测试,软件开发等众多环节,它不仅仅可以教会不会写程序的人对软件进行构架,它同样也可以教会不会编写程序的人对软件进行整体的分析与研究,软件工程是一项工程,它不仅仅从技术层面对软件进行研究,更多的是从软件的整体来规划软件,如软件的模型,框架等。因此,即使有人不会写程序,但他仍然可以学会开发软件,他学会的不是具体到开发软件的代码,而是开发软件的步骤,方法等一个整体的开发框架。