第一次接触软件工程是在大一的时候,此前对软件工程这一门专业并没有很深的了解,经过了一段时间的学习,逐步对软件工程有了新的理解与认识。读了《构建之法-现代软件工程》(邹欣 著 第二版)这本书,感觉学习到了很多有用的知识和以前不理解的方面。书中一开始给出了一个定式“软件=程序+软件工程”,几乎所有的程序员都知道这句名言,但是真正能够在实际的学习和工作中运用到,却会有许多疑问。
从第一章中,我学到了程序,在这里指的就是源程序,就是一行行的代码,它们是建立在数据结构上的一些算法。程序要对数据进行操作,这些数据有些是静态的有些是动态的,我们还要把他们建为机器能懂的可执行代码。一个复杂的软件不但要有合理的软件架构、软件设计与实现,还要有各种文件和数据来描述各个程序文件之间的依赖关系、编译参数、链接参数等等,这些都是软件构建的过程。软件团队体的成员每天都在修改各种代码,这样就产生了一个问题——怎么保证软件在修改的过程中质量不断提高,或者说至少要维持以前的质量。我们需要一系列的工具、流程和文档来保证程序的正确性,这些工具、流程应该达到很高的质量,才能保证开发出来的软件的质量。这就是质量保障,具体的验证过程叫做软件测试。软件有软件的生命周期,包括问题定义、可行性研究、需求分析、开发阶段、软件维护。构建管理、源代码管理、软件设计、软件测试、项目管理,是软件工程的核心内容,可以由推论“软件=程序+软件工程”扩展成“软件企业=软件+商业模式”。、
软件工程的概念是1968年第一次提出来的,是一个比较年轻的产业,它经过了很多的阶段——玩具阶段、业余爱好阶段、探索阶段和成熟的产业阶段。软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程,包括下列领域——软件需求分析、软件设计、软件构建、软件测试和软件维护。我们需要一系列的工具来保证思想体系能够在事件中有效率地运作。软件开发有什么问题呢?对此问题总结出了以下五点:1.复杂性;2。不可见性;3.易变性;4.服从性;5.非连续性。软件工程的目标——创建“足够好”的软件,“Bug”的多少可以直接衡量一个软件的开发效率、用户满意度、可靠性和可维护性。
读了《构建执法》这本书使我受益匪浅,收获颇深,对现代软件工程有了更深一步的了解。