第一章 概论
本章主要讲了一些概念性的东西。我认为比较重要的可能是以下三个公式:程序=算法+数据结构;软件=程序+软件工程;软件企业=软件+商业模式。对于这三个公式,我有些自己的想法:
首先就“程序=算法+数据结构”而言:从该公式我们就可以发现程序的终归目的还是数据的处理和存储。算法的本质就是为了更有效地处理从输入到输出这一系列动作下的数据流;而数据结构则不仅仅是完成简单的数据组织和存储功能,还可能更多是扮演辅助和润色算法的角色。
接着就是“软件=程序+软件工程”:软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程,包括软件需求分析、软件设计、软件构建、软件测试和软件维护等领域。软件开发过程中的复杂性、不可见性、易变性、服从性、非连续性等本质特性让软件工程颇具挑战和魅力。
最后“软件企业=软件+商业模式”:软件的商业模式和职业道德规范与软件开发活动(构件管理、源代码管理、软件设计、软件测试、项目管理)相关的内容,是软件工程的核心部分。程序(算法、数据结构)是基本功,但是在算法和数据结构之上,软件工程决定了软件的质量,而商业模式却决定了一个软件企业的成败。
程序对人与人关系的涉及较少,而软件和软件企业对人和人与人关系的探寻则是越来越多。软件从业人员和软件企业的道德操守直接影响软件用户的利益和软件开发的最终理想程度。归根到底是人与人、企业与企业之间的博弈。