之前在我的印象中,软件工程和计算机科学以及写程序是一样的。但是看了第一章的内容,对软件工程有一个新的了解也发现它们之间有些许不同。它们包括的范围不一样,关注的侧重点也不一样。软件工程重点关注如何以高效的、可控的、系统的开发和维护可靠的软件,而计算机科学则更关注计算机原理、理论的研究。换言之计算机科学是对于理论的探索,软件工程则是对理论的应用。软件工程涉及的范围不仅包括计算机科学原理,还需要应用到大量的数学基础知识、工程的思想以及高效的管理理念,而我们所写的程序则是属于软件工程管理、测试和维护的对象。把不同的代码以合理有效的方式组织起来,通过一些工具保证程序的正确性和可执行性,并对其中的问题进行修改以及对代码的管理和团队的协调成为了软件工程的重点。
步入信息化时代,学习软件工程也不再是软件学院或者计算机学院学生的特权,作为机械学院的学生也有必要去了解和学习软件工程的相关知识。因为在信息化时代各学科之间的交叉和融合已经成为大趋势,机械也已经不再是单纯的机械。比如说最近国家提出的智能制造2025就是机械制造、自动化和网络技术的融合。软件可以帮助处理一些复杂的计算问题,在机械制造、设计过程中起到辅助工具的作用,可以大大提高我们的工作效率,同时可以大大提高准确度。比如说制造自动化,所谓制造自动化就是不需要或者仅需要极少的人参与就能完成整个加工过程。而加工过程中我们需要控制机器的各个时间点的运动位置,甚至有时候还要实时控制,而人的计算速度是远远不能满足对机器进行实时控制的要求的,因此借软件程序和计算机的运算就能够快速的计算出机器的运动位置,通过把位置信息传输到电机或者驱动器达到自动控制的目的。因此借助软件可以做到一些人力无法完成的工作,而且能保证执行过程中的每一次循环的效果基本一致。通过软件的辅助是的整个制造周期大大缩短,节省大量的时间,并且能保证制造产品的质量。就像化学反应中的催化剂一样,它不是反应所必须的物质,但却能使反应过程成千上百倍的提高。
软件工程和机械工程一样主要的都是面向工程应用,都讲究熟能生巧,在实践中才能积累经验。不管是软件工程的开发和机械工程的开发,都需要积累大量的相关专业的理论知识,其次是对于数学知识、管理的积累,开发过程也大都雷同,都涉及到调研、整体框架设计、具体的功能实现、测试以及产品维护。但是相对于机械软件功能的修改更容易实现,所能实现的功能也更为复杂。因而在学习软件工程的过程中除了要熟悉相应的概念,了解整个软件的开发流程,更多的实践编程,还要学会充分的利用相应的工具协助开发和管理代码。