人月神话(四)削足适履、提纲挈领、未雨绸缪

第8章 胸有成竹

系统编程需要花费多长的时间?需要多少的工作量?如何进行估计?

① 先前,我推荐了用于计划进度、编码、构件测试和系统测试的比率

(1) 需要指出的是,仅仅通过对编码部分的估计,然后应用上述比率,是无法得到对整个任务的估计的。

(2) 必须声明的是,构建独立小型程序的数据不适用于编程系统产品计划、编制文档、测试、系统集成和培训的时间必须被考虑在内

② 在将上述观点抛开之前,尽管不是为了进行严格的比较,即使在不考虑相互交流沟通,开发人员仅仅回顾自己以前工作的情况下, 这些数字仍然显示出工作量是规模的幂函数。

Part 1 Portman的数据

项目估算对每个人年的技术工作时间数量做出了不现实的假设

日志显示事实上他的团队仅用了50%的工作周,来进行实际的编程和调试,估算上的失误完全可以由该情况来解释。其余的时间包括机器的当机时间、 高优先级的无关琐碎工作、会议、文字工作、公司业务、疾病、事假等等。

Part 2 Aron的数据

大型项目(简要地说,大型意味着程序员的数目超过 25 人,将近 30,000 行的指令)

Part 3 Harr的数据

Part 4 OS/360的数据

① 控制程序组的经验而言,生产率的范围大约是 600800(经过调试的指令)/人年。语言翻译小组所达到的生产率是20003000(经过调试的指令)/人年。这包括了小组的计划、代码构件测试、系统测试和一些支持性活动。

② 生产率会根据任务本身复杂度和困难程度表现出显著差异。 在复杂程度估计这片“沼泽” 上的指导原则是: 编译器的复杂度是批处理程序的三倍,操作系统复杂度是编译器的三倍

Part 5 Corbato的数据

① 高级语言系统编程平均生产率是 1200 行经调试的 PL/I 语句(大约在 1 2 百万指令之间)/人年。

② 意味着两个重要的结论

(1)对常用编程语句而言。生产率似乎是固定的。这个固定的生产率包括了编程中需要注释,并可能存在错误的情况。

2)使用适当的高级语言,编程的生产率可以提高 5 倍。

作者总结

8.1 仅仅通过对编码部分的估计, 然后乘以任务其他部分的相对系数, 是无法得出对整项工作的精确估计的。

8.2 构建独立小型程序的数据不适用于编程系统项目。

8.3 程序开发呈程序规模的指数增长。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值