软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而验证正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。20世纪60年代中期,“软件危机”的出现,促使了“软件工程”这门学科的出现。具体讲,它是从管理和技术两方面研究如何更好地开发和维护计算机软件。其目的就是为了消除软件危机。
计算机科学,是研究计算机及其周围各种现象和规律的科学,亦即研究计算机系统结构、程序系统(即软件)、人工智能以及计算本身的性质和问题的学科。它包含了各种各样与计算和信息处理的相关内容,从抽象的算法分析到形式化的语法等,到更具体的编程语言、程序设计、软件和硬件等等。
软件工程与计算机科学的关系:软件工程是计算机科学研究的一个领域,即计算机科学包含软件工程。
两者的区别:计算机科学专注于抽象、逻辑和数学方面的计算,是偏理论的,它的内容范围更广,硬件和软件都是它研究的内容;而软件工程是根据使用需求,用程序代码、算法和相关工具设计封装成各种设备上运行的,供我们人使用的软件。它是偏于实际的应用,更专业化。