软件库及其复用:熵、柯克莫尔复杂性与齐夫定律
软件工程
2016-08-31 v3 信息论
编程语言
math.IT
摘要
我们从信息论和柯克莫尔复杂性的角度分析软件复用,评估通过以库中复用组件表达式程序来“压缩”程序的能力。软件复用文献中常见的主题是:若能建立正确的环境——正确的工具、正确的抽象、经济激励和“复用文化”——软件复用将迅速增长,进而提升生产力和软件质量。本文的分析呈现了不同图景:软件复用的程度是问题域的内在属性,若该域本身对复用天然抗性,更好的工具和文化仅能对复用率产生有限影响。我们定义了问题域的熵参数,衡量程序多样性,并据此推导出代码复用上限以及可使用的组件规模。对于熵接近0的“低熵”域,程序高度相似,该域适合组件化软件工程(CBSE)的构想,即通过组合大规模组件进行编程。对于熵接近1的域,程序需要大量新代码,仅有少量应用由复用、小规模组件组成。来自Unix平台的初步实证结果支持了模型的一些预测。
引用
@article{arxiv.cs/0508023,
title = {Software Libraries and Their Reuse: Entropy, Kolmogorov Complexity, and Zipf's Law},
author = {Todd L. Veldhuizen},
journal= {arXiv preprint arXiv:cs/0508023},
year = {2016}
}