构建之法笔记1

一开始,书中就给出了一个观念,软件=程序+软件工程,程序=数据结构+算法。程序我倒是有点体会,从入学到现在,就是不停地在程序中度过,先是初步的学习算法,然后数据结构,但是这些东西让我觉得没什么用处,都是别人实现的东西,自己无法创造什么。软件应该是程序的放大版,程序是一行行的代码,而一个复杂的软件不但要有合理的架构、软件设计与实现,还要有各种文件和数据来描述各个程序文件之间的依赖关系、编译参数、链接参数等等,这些都是构建的过程。软件工程的核心部分有:构建管理、源代码管理、软件设计、软件测试、项目管理。所以就有了:软件=程序+软件工程,一个扩展的推论是:软件企业=软件+商业模式。

程序(算法、数据结构)是基本功,在算法和数据结构之上,软件工程决定了软件的质量。

“写程序”相当于是在构建软件。如同所有事物的发展,软件开发也有不同的阶段,从懵懵懂懂到逐步完善,从一开始的一个幻想到功能的实现。书中讲了一个例子很有意思,一个功能使用率是百万分之一,那么还需要做这个功能吗?这是飞机的安全功能,意外发生的概率很小,但我们还是需要做好对应措施,谁也不想自己的生命有危险。同样,在软件中,发生异常也需要相应的安全保护措施,保障我们的数据不被破坏。可见,做程序需要细心严谨、考虑周全。

软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。软件是可以运行在计算机及电子设备中的指令和数据的有序集合。软件开发过程有几个难题:复杂性、不可见性、易变性、服从性、非连续性。软件工程的研究目标应该是人,这些人可以是项目需求的提供者,可以是软件的开发人员,还可以是软件的用户。

软件工程的目标:创造“足够好”的软件。希望在学习完这本书后,能够足够好。

原文地址:https://www.cnblogs.com/youknownothing/p/8282622.html