12.1 项目经理应该制订一套策略,以及为通用工具的开发分配资源,与此同时,他还必须意识到专业工具的需求。
12.2 开发操作系统的队伍需要自己的目标机器,进行调试开发工作。相对于最快的速度而言,它更需要最大限度的内存,还需要安排一名系统程序员,以保证机器上的标准软件是即时更新和实时可用的。
12.3 同时还需要配备调试机器或者软件,以便在调试过程中,所有类型的程序参数可以被自动计数和测量。
12.4 目标机器的使用需求量是一种特殊曲线:刚开始使用率非常低,突然出现爆发性的增长,接着趋于平缓。
12.5 同天文工作者一样,系统调试总是大部分在夜间完成。
12.6 抛开理论不谈,一次分配给某个小组连续的目标时间块被证明是最好的安排方法,比不同小组的穿插使用更为有效。
12.7 尽管技术不断变化,这种采用时间块来安排匮乏计算机资源的方式仍得以延续20年[在1975年],是因为它的生产率最高。[在1995年依然如此]
12.8 如果目标机器是新产品,则需要一个目标机器的逻辑仿真装置。这样,可以更快地得到辅助调试平台。即使在真正机器出现之后,仿真装置仍可提供可靠的调试平台。
12.9 主程序库应该被划分成(1)一系列独立的私有开发库;(2)正处在系统测试下的系统集成子库;(3)发布版本。正式的分离和进度提供了控制。
12.10 在编制程序的项目中,节省最大工作量的工具可能是文本编辑系统。
12.11 系统文档中的巨大容量带来了新的不理解问题[例如,看看Unix],但是它比大多数未能详细描述编程系统特性的短小文章更加可取。
12.12 自顶向下、彻底地开发一个性能仿真装置。尽可能早地开始这项工作,仔细地听取 “它们表达的意见”。
高级语言
12.13 只有懒散和惰性会妨碍高级语言和交互式编程的广泛应用。[如今它们已经在全世界使用。]
12.14 高级语言不仅仅提升了生产率,而且还改进了调试:bug更少,以及更容易寻找。
12.15 传统的反对意见——功能、目标代码的尺寸、目标代码的速度,随着语言和编译器技术的进步已不再成为问题。
12.16 现在可供合理选择的语言是PL/I。[不再正确。]
交互式编程
12.17 某些应用上,批处理系统决不会被交互式系统所替代。[依然成立。]
12.18 调试是系统编程中很慢和较困难的部分,而漫长的调试周转时间是调试的祸根。
12.19 有限的数据表明了系统软件开发中,交互式编程的生产率至少是原来的两倍。