第8章 胸有成竹

来源:互联网 发布:c语言中字符串的定义 编辑:程序博客网 时间:2024/06/03 18:07

第8章 胸有成竹

标签: 人月神话

实践是最好的老师。 ————普布利乌斯
实践是最好的老师,但智者还能从其他的地方有所收获————《穷理查年鉴》


    • 第8章 胸有成竹
      • Portman的数据
      • Aron的数据
      • Harr的数据
      • OS360的数据
      • Corbato的数据


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

 先前,我推荐了计划进度、编码、构件测试和系统测试的比率。首先,需要指出的是,仅仅通过对编码部分的估计,然后应用上述比率,是无法得到对整个任务的估计的。编码大约只占了问题的1/6左右,编码估计或者比率的错误可能会导致不合理的荒谬结果。
 第二,必须声明的是,构建独立小型程序的数据不适用于编程系统产品。

 Nanus和Farr在System Development公司所做的研究,结果表明这个指数为1.5

工作量 = 常数 * 指令的数量 ^ 1.5

编程工作量是程序规模的函数
此处输入图片的描述

Portman的数据

  • Charles Portman 发现他的编程队伍落后进度的大约1/2,每项工作花费的时间大约是估计的2倍。
  • 日志显示,他的团队仅用了50%的工作周进行实际的编程和调试,估算上的失误完全可以由该情况解释。其余的时间包括机器的当机时间、高优先级的无关琐碎的工作、会议、文字工作、公司业务、疾病、事假等。

Aron的数据

  • Joel Aron根据程序员(和系统部分)之间的交互划分这些系统,得到了如下的生产率:
    非常少的交互        10000指令每人年    少量的交互          5000    较多的交互          1500

Harr的数据

  • 生产率同样地被划分为两个类别:控制程序的生产率大约是600指令每人年,语言翻译大约是2200指令每人年。

OS/360的数据

  • 就控制程序组的经验而言,生产率的范围大约是600~800(经过调试的指令)/人年,语言翻译小组所达到的生产率是2000~3000(经过调试的指令)/人年。

&emspAron、Harr和OS/360的数据都证实,生产率会根据任务本身复杂度和困难程度表现出显著差异。其指导原则是:编译器的复杂度是批处理程序的3倍,操作系统的复杂度是编译器的3倍。

Corbato的数据

  • 意味着两个重要的结论:
    1. 对常用的编程语句而言,生产率似乎是固定的。这个固定的生产率包括了编程中需要注释并可能存在错误的情况。
    2. 使用适当的高级语言,编程的生产率可以提高5倍。
0 0