Skip to main content
QUICK REVIEW

[论文解读] Software Libraries and Their Reuse: Entropy, Kolmogorov Complexity, and Zipf's Law

Todd L. Veldhuizen|arXiv (Cornell University)|Aug 3, 2005
Spreadsheets and End-User Computing参考文献 23被引用 20
一句话总结

本文提出一个理论模型,将软件重用与信息论联系起来,定义了一个熵参数 $ H \in [0,1] $,用于量化问题领域固有的多样性。基于柯尔莫哥洛夫复杂度和齐夫定律,研究表明可重用代码的最大比例为 $ 1 - H $,其中 $ H \to 0 $ 时可实现大规模组件重用,而 $ H \to 1 $ 时重用仅限于极小的代码片段。

ABSTRACT

We analyze software reuse from the perspective of information theory and Kolmogorov complexity, assessing our ability to ``compress'' programs by expressing them in terms of software components reused from libraries. A common theme in the software reuse literature is that if we can only get the right environment in place-- the right tools, the right generalizations, economic incentives, a ``culture of reuse'' -- then reuse of software will soar, with consequent improvements in productivity and software quality. The analysis developed in this paper paints a different picture: the extent to which software reuse can occur is an intrinsic property of a problem domain, and better tools and culture can have only marginal impact on reuse rates if the domain is inherently resistant to reuse. We define an entropy parameter $H \in [0,1]$ of problem domains that measures program diversity, and deduce from this upper bounds on code reuse and the scale of components with which we may work. For ``low entropy'' domains with $H$ near 0, programs are highly similar to one another and the domain is amenable to the Component-Based Software Engineering (CBSE) dream of programming by composing large-scale components. For problem domains with $H$ near 1, programs require substantial quantities of new code, with only a modest proportion of an application comprised of reused, small-scale components. Preliminary empirical results from Unix platforms support some of the predictions of our model.

研究动机与目标

  • 探究软件重用是否本质上受问题领域内在多样性的制约,而非受工具或文化影响。
  • 利用信息论与柯尔莫哥洛夫复杂度,构建一个理论框架,以量化代码重用的极限。
  • 定义一个熵参数 $ H \in [0,1] $,用于衡量问题领域内程序的多样性,并预测重用潜力。
  • 证明高熵领域在本质上抗拒大规模重用,即使工具或开发实践得到改进亦无法改变。
  • 通过 Unix 平台的数据进行实证验证,表明组件重用模式与理论预测一致。

提出的方法

  • 基于程序相似性分布与组件使用频率,定义领域熵参数 $ H \in [0,1] $。
  • 应用柯尔莫哥洛夫复杂度,通过将程序表示为可重用组件的组合来评估其可压缩性。
  • 使用信息论熵建模领域内程序的平均描述长度,并将其与组件重用潜力关联。
  • 利用齐夫定律对组件重用进行建模,假设常见组件被频繁使用,并服从幂律分布。
  • 推导出可重用代码的上界为 $ 1 - H $,其中 $ H $ 为领域的熵率。
  • 使用来自 Unix 系统的实证数据验证预测结果,分析真实软件项目中组件的数量与分布模式。

实验结果

研究问题

  • RQ1在独立于工具或文化背景的前提下,软件重用在多大程度上受问题领域内在多样性的限制?
  • RQ2如何利用信息论与柯尔莫哥洛夫复杂度来建模代码重用的理论上限?
  • RQ3齐夫定律在表征软件库中可重用组件频率分布方面发挥何种作用?
  • RQ4熵参数 $ H $ 是否能够准确预测现实世界软件项目中可重用代码的比例?
  • RQ5该模型如何解释理想化组件化软件工程与现实世界重用率之间存在的显著差距?

主要发现

  • 从库中可重用的代码最大比例受 $ 1 - H $ 限制,其中 $ H \in [0,1] $ 为问题领域的熵。
  • 对于 $ H \to 0 $ 的领域,程序高度相似,可实现大规模高层组件重用。
  • 对于 $ H \to 1 $ 的领域,程序高度多样化,即使使用最优工具,可重用代码的比例也趋近于零。
  • 来自 Unix 系统的实证数据表明,组件使用模式与齐夫定律一致,并支持模型对重用分布的预测。
  • 库可通过利用领域内普遍存在的共性来压缩不可压缩的程序,但由于领域固有的多样性,仍无法实现完全压缩。
  • 该模型表明,改善工具或文化无法显著提升高熵领域中的重用率,因为重用本质上受 $ H $ 的制约。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。