Dependency solving: A separate concern in component evolution management

作者:Abate Pietro; Di Cosmo Roberto; Treinen Ralf; Zacchiroli Stefano*
来源:Journal of Systems and Software, 2012, 85(10): 2228-2240.
DOI:10.1016/j.jss.2012.02.018

摘要

Maintenance of component-based software platforms often has to face rapid evolution of software components. Component dependencies, conflicts, and package managers with dependency solving capabilities are the key ingredients of prevalent software maintenance technologies that have been proposed to keep software installations synchronized with evolving component repositories. We review state-of-the-art package managers and their ability to keep up with evolution at the current growth rate of popular component-based platforms, and conclude that their dependency solving abilities are not up to the task. %26lt;br%26gt;We show that the complexity of the underlying upgrade planning problem is NP-complete even for seemingly simple component models, and argue that the principal source of complexity lies in multiple available versions of components. We then discuss the need of expressive languages for user preferences, which makes the problem even more challenging. %26lt;br%26gt;We propose to establish dependency solving as a separate concern from other upgrade aspects, and present CUDF as a formalism to describe upgrade scenarios. By analyzing the result of an international dependency solving competition, we provide evidence that the proposed approach is viable.

  • 出版日期2012-10
  • 单位INRIA