如何评估一个Linux发行版的总体成本(2)
欲计算该发行版的开发成本,我们从美国劳工统计局查阅了计算机程序员的基本工资概况。根据美国劳工统计局的数据,2008 年 7 月美国程序员的平均工资为 75,662.08 美元。 10 这也是我们的 SLOCCount 运行中使用的工资金额。(当然,如今大多数软件开发都是全球性的,因此使用仅限美国的工资数字有点以偏概全。然而这时一个值得我们持续探索的主题,在未来我们要找到一个途径来确定全球平均工资,将之作为生产成本的基准。) 还应该指出的是,薪水本身并不是软件开发成本的唯一决定因素。在他的文章中,Wheeler 提及了 SLOCCount 中的开销参数,其中包括测试成本、设备、公司运营成本以及开发人员的总赔偿金。这些参数被称之为总包比例。 要知道这些总包比例的增长是非常之迅速的,在美国,专业员工的平均薪酬百分比(病假、休假、保险福利)为 29.0%。11 因此,虽然我们刚才所提及的美国劳工统计局给出的数据是程序员的平均工资为 75,662.0810 美元,但是企业主实际要付的数字为 97,604.08 美元。而且这只是总包比例的一部分。 Wheeler 当年的评估将总包比例的值设为 2.4。虽然这个数字明显因公司和地区而异,但进一步的研究显示,没有任何重要证据表明这个数字需要在我们所测试中进行调整。 源代码和估计成本结果根据前面所示的所有假设,Fedora 9 的 SLOC 和估计产量值如下。 旁注:最初的 SLOCCount 年薪数字是 2000 年 $56,286 美元,有心人可以看到我们对此进行了相应的转换。为了实现它,我们将总费用乘以 2008 年美元(10,784,484,309 美元)的 0.744,这是 SLOCCount 通常使用的 2000 年程序员工资($56,286)与我们发现的 2008 年 7 月工资($ 75,662.08)之间的比率。结果是 2000 年开发 Fedora 9 的成本超过 80 亿美元。这使读者很好地了解了这六年中 Linux 发行版中添加了多少代码和功能。 聚焦 Linux内核,及其增强 COCOMO 模型正如本文的研究覆盖的内容,聪明的读者一定发现了,并非所有 Linux 系统中所有的组件都需要得到同等的对待。根据 COCOMO 模型,一些项目的性质和复杂性需要不同的考虑。 这一点在 Wheeler 自己的 2002 年文章的后续行动中更为明显,他强调了对 Linux 内核就应该使用的不同估计模型。12 在这篇新文章中,Wheeler 坚持认为,由于 Linux 内核代码通常比“普通”应用程序更复杂 —— 特殊的除外 —— 它需要的分析超出了基本的 COCOMO 模型。例如,像 Mozilla 这样的用户空间应用程序更容易逐行编码,因为它在更高的层次上被抽象,并且只需要处理更少的任务。然而,现代企业级操作系统内核则需要同时执行大量极其复杂的操作,也就是说技术含量更高、难度也更大。 所以 Wheeler 解释说,发行版中的组件不能使用同一种标准的方法来进行分析,就内核来说就应该使用增强 COCOMO 模型来进行衡量。增强的 COCOMO 模型有更多的参数供选择,因此,应该更准确地分析一个复杂的软件本身。在 2004 年的文章中,他详述了他对这些参数的评估细节,即调整整体的净效应,将 SLOCCount 中的工作因子值从默认值 3 到 4.64607,同时,-effort 指数值也变为 1.12,在增强的 COCOMO 软件估算模型下,这是分配给半分离软件项目的值。 基于这些新的参数,针对 Linux 内核做了一个单独的评估(Fedora 9 的内核版本是 linux-2.6.25.i686): 本研究方法的局限性和优势没有完美的方法来估计像 Linux 那样复杂和不断发展的软件项目的价值。虽然我们认为这种方法是最好的方法,但它可能过度计算价值的某些方面,而低估了其他方面。以下是我们认为该方法存在限制的部分:
Linux 是如何增长的本研究还没有考虑逐步更新和扩展 Linux 代码库的年度开发成本。基于这些数字(或任何人对 Linux 发行版的直接经验),很容易看出 Linux 发行版中包含的功能在过去六年中是如何以爆炸般的形式发展的。 (编辑:ASP站长网) |