构建之法读书笔记01

1、软件=程序+软件工程;程序=数据结构+算法。

   (1)程序,在这里指的是源程序,就是一行行的代码,是建立在数据结构上的一些算法。程序要对数据进行操作,其中数据包括静态的和动态的。

   (2)软件的构建过程:构件不仅仅是cc和link命令,一个复杂的软件不但要有合理的软件构架、软件设计与实现,还要有各种文件和数据来描述各个程序文件之间的依赖关系、编译参数、链接参数等等。

   (3)软件工程的核心部分:构建管理、源代码管理、软件设计、软件测试、项目管理。

          一个扩展的推论:软件企业=软件+商业模式。

          程序(算法、数据结构)是基本功,但是在算法和数据结构之上,软件工程决定了软件的质量,商业模式决定了一个软件企业的成败。

   (4)软件开发的不同阶段(与航天产业做对比):

          1)玩具阶段(所给的示例中,纸飞机、航模飞机和真飞机一样,都体现了某些基本的理论);

          2)业余爱好阶段;

          3)探索阶段;

          4)成熟的产业阶段;

   (5)一些用户有极小概率使用到的功能,但自身也要很好的去完成并不厌其烦的为用户去讲解这些功能,就比如飞机上的安全措施,这些用到的概率都是极小的,但是几乎却没有任何乘客愿意搭乘一架没有安全措施的飞机。

2、软件工程是什么?

   (1)软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。

          软件工程包括下列领域:软件需求分析、软件设计、软件构建、软件测试和软件维护。

   (2)软件的特殊性:复杂性、不可见性、易变性、服从性、非连续性。

          软件是可以运行在计算机以及电子设备中的指令和数据的有序集合,主要有一下形式:系统软件、应用软件、恶意软件。

   (3)工程:创造性的运用科学原理,设计和实现建筑、机器、装置或生产过程;或者是在实践中使用一个或多个上述实体;或者是实现这些实体的过程。

          与数理化这样的学科相比,计算机科学是一门相当年轻的学科。

   (4)不同项目的不同特点:Build To Learn、Build To Show、Build To Serve、Build To Win。

   (5)软件工程涉及到了很多的知识领域,其中三大类基础知识领域:计算基础、数学基础和工程基础。

   (6)软件工程的目标—创造“足够好”的软件(bug数量少的软件),Bug的多少可以直接衡量一个软件的开发效率、用户满意度、可靠性和可维护性。

3、构建之法所倡导的教学和目标

   (1)研发出符合用户需求的软件;

   (2)通过一定的软件流程,在预计的时间内发布“足够好”的软件;

   (3)能证明所开发的软件是可以维护和继续发展的。

          阅读完第一小节,大概了解到了构建之法这本书的内容,其中书中的内容还是讲述的很生动的,有些问题都是用故事的形式来描述,对于不同的问题则创造了不同的环境,恰当的将相应的问题提了出来,接下来自己会去阅读剩下的章节,让自己在其中学到应学的知识。

posted on 2017-02-05 16:07  田会  阅读(131)  评论(0编辑  收藏  举报