二看《人月神话》,摘录一些理解的句子,算是阅读的总结吧。
1)要成为系统构建,程序必须按照一定要求来来编制。输入输出在语法和语义上与精确定义的接口一致。
精确定义的接口:符合支持实际的 应用情景。
输入输出:很明确,简单的输出。与 函数功能单一性统一。
2)功能模块的相互交互产生 bug。交互包含错误,边界极值的情况,引起bug。
功能模块 不应该依赖模块以外的逻辑,依赖接口(抽象的使用)。
3)当意识到项目进度偏移时,增加人手犹如汽油灭火。
4)无论多少个母亲,孕育生命都需要十个月。次序上不能分解的软件也具有这个特征
5)可分解任务的软件工程增加人手。带来培训成本,相互交流成本
培训:项目目标,总体策略上培训。无关编程经验
交流成本:即沟通成本。每个部分与其他部分协作,即增加了沟通n*(n-1)。人越多需要的沟通成本越多。
6) 软件经验法则:1/3计划时间,1/6编程时间,1/4构件测试,1/4系统测试。
系统测试非常重要。
7)向落后的项目中增加人手,只会增加项目的滞后。
人员数量取决于子任务数量。
8)外科手术队伍。客观上的概念统一性非常重要
大型工程观点不一致由外科医生统一决策。概念的统一
清晰的划分 体系结构设计 和 实践 的界线,使工作易于管理。
9)概念的统一性,反应了一系列的连贯的设计思路
概念的完成性决定了使用的容易程度