第6章-贯彻执行
即使是大型的设计团队,设计结果也必须由一个或两个人来完成,以确保这些决定是一致的。
必须明确定义体系结构中与先前定义不同的地方,重新定义的详细程度应该与原先的说明一致。
出于精确性的考虑,我们需要形式化地设计定义;同样,我们需要记叙性定义来加深理解
必须采用形式化定义和记叙性定义中的一种作为标准,另一种作为辅助措施;它们都可以作为表达的标准。
设计实现,包括模拟仿真,可以充当一种体系结构的定义;这种方法有一些严重的缺点
直接整合是一种强制推行软件的结构性标准的方法。(硬件上也是如此—考虑内建在ROM中的 Mac WIMP接口。)
“如果起初至少有两种以上的实现,(体系结构)定义会更加整洁和规范。”
允许体系结构师对实现人员的询问做出电话应答解释是非常重要的,并且必须进行日志记录和整理发布。(电子邮件是现在可选的介质。)
“项目经理最好的朋友就是他每天要面对的对手—独立的产品测试机构/小组。”
第7章-为什么巴比伦塔会失败
巴比伦塔项目的失败是因为缺乏交流以及交流的结果—一组织。
第8章-胸有成竹
仅仅通过对编码部分时间的估计,然后乘以其他部分的相对系数,是无法得出对整项工作的精确估计的。
构建独立小型程序的数据不适用于编程系统项目。
程序开发随程序规模的大量增长而增长
一些发表的研究报告显示,指数约为1.5。( Boehm的数据并不完全一致,在1.05和1.2之间变化。)
Portman的ICL数据显示,相对于其他活动,全职程序员仅将50%的时间用于编程和调试。
Aron的IBM的数据显示,生产率是系统各个部分交互的函数, 在1.5千代码行/人年至10千代码行/-年的范围内变化。
Harr的Bel’实验室数据显示,对于已完成的产品,操作系统类的生产率大约是0.6千LOC/人年,编译类工作的生产率大约为22千LOC/人年
Brooks的Os/360数据与Har的数据一致:操作系统0.60.8千LOC/人-年,编译器23千LOC/人年。
Corba6的MIT项目 MULTICS数据显示,在操作系统和编译器混合类型上的生产率是1.2千LOC/年,但这些是PL的代码行,而其他所有的数据是汇编代码行。
在基本语句级别,生产率看上去是一个常数
当使用适当的高级语言时,程序编制的生产率可以提高5倍。