构建之法阅读笔记01

        软件=程序+软件工程,程序就是算法和数据结构,而软件工程包括构建管理软件,源代码的管理,软件的设计,对软件质量测试的软件测试,项目管理,以及用户体验和用户界面设计等。程序是软件的基础,而软件工程决定了软件的质量。

        软件的本质决定了其特性:复杂性,不可见性,易变性,服从性,非连续性等。

        软件工程和计算机科学是不同的,很多人都认为他们区别不大,毕业后都是写程序的,恰恰相反,他们区别很大,计算机科学与数学、离散数学、数学逻辑密切相关;而软件工程则与人息息相关,软件是根据人的需求来设计的,而软件的参与者有用户、开发人员等;从这一点上来看,前者和后者大不相同。但其实,他们也是相辅相成的,计算机理论的进展(比如对程序正确的分析)会帮助软件工程,而软件工程的进展(快捷有效的工具)也会让计算机科学家更有效率的进行实验和探索。科学是去发现,工程是去构建,正如专家所归纳的那样,科学家的宗旨是:我发现,故我在;而工程师的宗旨是:我构建,故我在;

        什么是好的软件,我们都知道编写程序的时候有时候会出现各种各样的bug,那么就可以说存在bug的软件就是不好的软件吗?在我看来,bug不仅仅是程序中的错误,还能看作是与用户需求间的差距。好的软件应该是符合用户需求的,可以维护与继续发展的。

原文地址:https://www.cnblogs.com/liyuchao/p/10665233.html