On software component co-installability

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 paper develops a novel theoretical framework, based on formally certified. semantic preserving graph-theoretic transformations, that allows to associate to each concrete component repository a much smaller one with a simpler structure, but with equivalent co-installability properties. This smaller repository can be represented graphically, giving 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 in Coq.

[1]  Jean H. Gallier,et al.  Linear-Time Algorithms for Testing the Satisfiability of Propositional Horn Formulae , 1984, J. Log. Program..

[2]  Roberto Di Cosmo,et al.  Aligning component upgrades , 2011, LoCoCo.

[3]  Giorgio Ausiello,et al.  Minimal Representation of Directed Hypergraphs , 1986, SIAM J. Comput..

[4]  Adam A. Porter,et al.  Effective and scalable software compatibility testing , 2008, ISSTA '08.

[5]  Liuba Shrira,et al.  Modular Software Upgrades for Distributed Systems , 2006, ECOOP.

[6]  Emden R. Gansner,et al.  Graphviz - Open Source Graph Drawing Tools , 2001, GD.

[7]  Ricardo Bianchini,et al.  Staged deployment in mirage, an integrated software upgrade testing and distribution system , 2007, SOSP.

[8]  Roberto Di Cosmo,et al.  On software component co-installability , 2013, TSEM.

[9]  Nachiappan Nagappan,et al.  Predicting defects using network analysis on dependency graphs , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[10]  Giorgio Ausiello,et al.  Graph Algorithms for Functional Dependency Manipulation , 1983, JACM.

[11]  Andreas Zeller,et al.  Predicting vulnerable software components , 2007, CCS '07.

[12]  Wolfgang Reisig,et al.  Petri Nets: Applications and Relationships to Other Models of Concurrency , 1986, Lecture Notes in Computer Science.

[13]  Paola Inverardi,et al.  Failure-free coordinators synthesis for component-based architectures , 2008, Sci. Comput. Program..

[14]  Sorin Lerner,et al.  OPIUM: Optimal Package Install/Uninstall Manager , 2007, 29th International Conference on Software Engineering (ICSE'07).

[15]  Carl A. Gunter Abstracting dependencies between software configuration items , 1996, SIGSOFT '96.

[16]  Roberto Di Cosmo,et al.  Strong dependencies between software components , 2009, 2009 3rd International Symposium on Empirical Software Engineering and Measurement.

[17]  Paola Inverardi,et al.  Static checking of system behaviors using derived component assumptions , 2000, TSEM.

[18]  Roberto Di Cosmo,et al.  Feature Diagrams as Package Dependencies , 2010, SPLC.

[19]  Roberto Di Cosmo,et al.  MPM: a modular package manager , 2011, CBSE '11.

[20]  Stephen McCamant,et al.  Predicting problems caused by component upgrades , 2003, ESEC/FSE-11.

[21]  Adam A. Porter,et al.  Direct-dependency-based software compatibility testing , 2007, ASE.

[22]  Inês Lynce,et al.  Apt-pbo: solving the software dependency problem using pseudo-boolean optimization , 2010, ASE.

[23]  Josep Argelich,et al.  Solving Linux Upgradeability Problems Using Boolean Optimization , 2010, LoCoCo.

[24]  Roberto Di Cosmo,et al.  Using strong conflicts to detect quality issues in component-based complex systems , 2010, ISEC.

[25]  Sandeep K. Shukla,et al.  HORNSAT, Model Checking, Verification and games (Extended Abstract) , 1996, CAV.

[26]  Roberto Di Cosmo,et al.  Learning from the future of component repositories , 2012, CBSE '12.

[27]  Martin Gebser,et al.  aspcud: A Linux Package Configuration Tool Based on Answer Set Programming , 2011, LoCoCo.

[28]  Hans K. Buning,et al.  Propositional Logic: Deduction and Algorithms , 1999 .

[29]  Chang Liu,et al.  Term rewriting and all that , 2000, SOEN.

[30]  Ivica Crnkovic,et al.  Using dependency model to support software architecture evolution , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering - Workshops.

[31]  Hugo Herbelin,et al.  The Coq proof assistant : reference manual, version 6.1 , 1997 .

[32]  Thomas A. Henzinger,et al.  Interface automata , 2001, ESEC/FSE-9.

[33]  R. Hanneman Introduction to Social Network Methods , 2001 .

[34]  Gordon D. Plotkin,et al.  Configuration structures , 1995, Proceedings of Tenth Annual IEEE Symposium on Logic in Computer Science.

[35]  Stephen McCamant,et al.  Early Identification of Incompatibilities in Multi-component Upgrades , 2004, ECOOP.

[36]  Roberto Di Cosmo,et al.  Dependency solving: A separate concern in component evolution management , 2012, J. Syst. Softw..

[37]  Glynn Winskel,et al.  Event Structures , 1986, Advances in Petri Nets.

[38]  Nachiappan Nagappan,et al.  Using Software Dependencies and Churn Metrics to Predict Field Failures: An Empirical Case Study , 2007, First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007).

[39]  Roberto Di Cosmo,et al.  Managing the Complexity of Large Free and Open Source Package-Based Software Distributions , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[40]  Harvey P. Siy,et al.  Predicting Fault Incidence Using Software Change History , 2000, IEEE Trans. Software Eng..

[41]  Daniele Frigioni,et al.  Decremental Maintenance of Reachability in Hypergraphs and Minimum Models of Horn Formulae , 1997, ISAAC.

[42]  Roberto Di Cosmo,et al.  Maintaining large software distributions: new challenges from the FOSS era. , 2006 .

[43]  Ralf Treinen,et al.  Solving package dependencies: from EDOS to Mancoosi , 2008, ArXiv.

[44]  Daniel Le Berre,et al.  On SAT Technologies for Dependency Management and Beyond , 2008, SPLC.