中文

软件库及其复用:熵、柯克莫尔复杂性与齐夫定律

软件工程 2016-08-31 v3 信息论 编程语言 math.IT

摘要

我们从信息论和柯克莫尔复杂性的角度分析软件复用,评估通过以库中复用组件表达式程序来“压缩”程序的能力。软件复用文献中常见的主题是:若能建立正确的环境——正确的工具、正确的抽象、经济激励和“复用文化”——软件复用将迅速增长,进而提升生产力和软件质量。本文的分析呈现了不同图景:软件复用的程度是问题域的内在属性,若该域本身对复用天然抗性,更好的工具和文化仅能对复用率产生有限影响。我们定义了问题域的熵参数H[0,1]H \in [0,1],衡量程序多样性,并据此推导出代码复用上限以及可使用的组件规模。对于熵接近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}
}