On software component co-installability

  • Authors:
  • Jérôme Vouillon;Roberto Di Cosmo

  • Affiliations:
  • CNRS, PPS, UMR 7126, Univ Paris Diderot, Sorbonne Paris Cité, Paris, France;Univ Paris Diderot, Sorbonne Paris Cité, PPS, UMR 7126, CNRS, INRIA, Paris, France

  • Venue:
  • ACM Transactions on Software Engineering and Methodology (TOSEM) - Testing, debugging, and error handling, formal methods, lifecycle concerns, evolution and maintenance
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

Modern software systems are built by composing components drawn from large repositories, whose size and complexity is increasing at a very fast pace. A fundamental challenge for the maintainability and the scalability of such software systems is the ability to quickly identify the components that can or cannot be installed together: this is the co-installability problem, which is related to boolean satisfiability and is known to be algorithmically hard. This article develops a novel theoretical framework, based on formally certified semantic preserving graph-theoretic transformations, that allows us to associate to each concrete component repository a much smaller one with a simpler structure, that we call strongly flat, with equivalent co-installability properties. This flat repository can be displayed in a way that provides a concise view of the co-installability issues in the original repository, or used as a basis for various algorithms related to co-installability, like the efficient computation of strong conflicts between components. The proofs contained in this work have been machine checked using the Coq proof assistant.