软件库及其重用:熵、Kolmogorov复杂性和Zipf定律
Software Libraries and Their Reuse: Entropy, Kolmogorov Complexity, and Zipf's Law
摘要:
我们从信息论和Kolmogorov复杂性的角度来分析软件重用,评估我们的能力,“压缩”的程序,通过表达他们的软件组件重用库。软件复用文献中的一个共同主题是,如果我们能够获得正确的环境-正确的工具,正确的概括,经济激励,“复用文化”-那么软件复用将飙升,从而提高生产力和软件质量。在本文中开发的分析描绘了一个不同的画面:在何种程度上,软件重用可以发生的问题域的内在属性,更好的工具和文化可以只有边际影响重用率,如果域是固有的抵抗重用。我们定义了一个熵参数$H \in [0,1]$的问题域,措施程序的多样性,并推导出代码重用的上限和规模的组件,我们可以工作。对于$H$接近0的“低熵”域,程序彼此高度相似,并且该域可以通过组成大规模组件来实现基于约束的软件工程(CBSE)的编程梦想。对于$H$接近1的问题域,程序需要大量的新代码,只有适度比例的应用程序由重用的小规模组件组成。来自Unix平台的初步经验结果支持我们模型的一些预测。
英文摘要:
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.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。