软件工程是什么?
在读这本书以前,我对软件工程的概念几乎为零。在我的认知中,所有用那些计算机解决,或者说使它更加方便的问题,无非就是一些程序合在一起,越复杂的问题,程序越多罢了。但是在读了《构建之法》的前三章之后,我刷新了对软件工程作为一门工程,是如何与计算机理论,或者程序理论有着显著的不同的。
个人对于软件工程的定义是“完成某款软件的设计的过程”,然而读完第一章以后才发现其中涉及的问题很多,并没有我想象中的那么简单。书中分别定义“软件”和“工程”,“软件=软件+软件工程”,正是因为对软件开发活动(构建管理、源代码管理、软件设计、软件测试、项目管理)相关的内容的完成,才能完成把整个程序转化成为一个可用的软件的过程。,工程定义“创造性地运用科学原理,实现和设计建筑、机器、装置或生产过程;或者是在实践中使用一个或多个上述实体;或者是实现这些实体的过程。”经查询资料,软件工程具体定义为“软件工程概念实际存在两层含义,从狭义概念看,软件工程着重体现在软件过程中所采用的工程方法和管理体系,例如,引入成本核算、质量管理和项目管理等,即将软件产品开发看作是一项工程项目所需要的系统工程学和管理学。从广义概念看,软件工程涵盖了软件生命周期中所有的工程方法、技术和工具,包括需求工程、设计、编程、测试和维护的全部内容,即完成一个软件产品所必备的思想、理论、方法、技术和工具”。