Formal Aspects of Free and Open Source Software Components

A Short Survey
  • Roberto Di Cosmo
  • Ralf Treinen
  • Stefano Zacchiroli

Abstract

Free and Open Source Software (FOSS) distributions are popular solutions to deploy and maintain software on server, desktop, and mobile computing equipment. The typical deployment method in the FOSS setting relies on software distributions as vendors, packages as independently deployable components, and package managers as upgrade tools. We review research results from the past decade that apply formal methods to the study of inter-component relationships in the FOSS context. We discuss how those results are being used to attack both issues faced by users, such as dealing with upgrade failures on target machines, and issues important to distributions such as quality assurance processes for repositories containing tens of thousands, rapidly evolving software packages.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abate, P., Boender, J., Di Cosmo, R., Zacchiroli, S.: Strong dependencies between software components. In: ESEM 2009: 3rd International Symposium on Empirical Software Engineering and Measurement, pp. 89–99 (2009)Google Scholar
  2. 2.
    Abate, P., Di Cosmo, R.: Predicting upgrade failures using dependency analysis. In: Abiteboul, S., Böhm, K., Koch, C., Tan, K.L. (eds.) Workshops Proceedings of the 27th International Conference on Data Engineering, ICDE 2011, Hannover, Germany, April 11-16, pp. 145–150. IEEE (2011)Google Scholar
  3. 3.
    Abate, P., Di Cosmo, R., Treinen, R., Zacchiroli, S.: Mpm: a modular package manager. In: CBSE 2011: 14th International ACM SIGSOFT Symposium on Component Based Software Engineering, pp. 179–188. ACM (2011)Google Scholar
  4. 4.
    Abate, P., Di Cosmo, R., Treinen, R., Zacchiroli, S.: Dependency solving: a separate concern in component evolution management. Journal of Systems and Software 85(10), 2228–2240 (2012)CrossRefGoogle Scholar
  5. 5.
    Abate, P., Di Cosmo, R., Treinen, R., Zacchiroli, S.: Learning from the future of component repositories. In: CBSE 2012: 15th International ACM SIGSOFT Symposium on Component Based Software Engineering, pp. 51–60. ACM (2012)Google Scholar
  6. 6.
    Abate, P., Di Cosmo, R., Treinen, R., Zacchiroli, S.: Learning from the future of component repositories. Science of Computer Programming (2012) (to appear)Google Scholar
  7. 7.
    Abate, P., Di Cosmo, R., Treinen, R., Zacchiroli, S.: A modular package manager architecture. Information and Software Technology 55(2), 459–474 (2013)CrossRefGoogle Scholar
  8. 8.
    Albert, R., Jeong, H., Barabási, A.L.: Error and attack tolerance of complex networks. Nature 406(6794), 378–382 (2000)CrossRefGoogle Scholar
  9. 9.
    Argelich, J., Le Berre, D., Lynce, I., Marques-Silva, J., Rapicault, P.: Solving Linux upgradeability problems using boolean optimization. In: LoCoCo: Logics for Component Configuration. EPTCS, vol. 29, pp. 11–22 (2010)Google Scholar
  10. 10.
    Artho, C.V., Di Cosmo, R., Suzaki, K., Zacchiroli, S.: Sources of inter-package conflicts in debian. In: LoCoCo 2011 International Workshop on Logics for Component Configuration (2011)Google Scholar
  11. 11.
    Artho, C.V., Suzaki, K., Di Cosmo, R., Treinen, R., Zacchiroli, S.: Why do software packages conflict? In: MSR 2012: 9th IEEE Working Conference on Mining Software Repositories, pp. 141–150. IEEE (2012)Google Scholar
  12. 12.
    Bézivin, J.: On the unification power of models. SOSYM 4(2), 171–188 (2005)CrossRefGoogle Scholar
  13. 13.
    Boender, J.: Efficient computation of dominance in component systems (Short paper). In: Barthe, G., Pardo, A., Schneider, G. (eds.) SEFM 2011. LNCS, vol. 7041, pp. 399–406. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  14. 14.
    Cicchetti, A., Di Ruscio, D., Pelliccione, P., Pierantonio, A., Zacchiroli, S.: A model driven approach to upgrade package-based software systems. In: Maciaszek, L.A., González-Pérez, C., Jablonski, S. (eds.) ENASE 2008/2009. CCIS, vol. 69, pp. 262–276. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  15. 15.
    Clayberg, E., Rubel, D.: Eclipse Plug-ins, 3rd edn. Addison-Wesley Professional (December 2008)Google Scholar
  16. 16.
    Clements, P., Northrop, L.: Software product lines. Addison-Wesley (2002)Google Scholar
  17. 17.
    Cosmo, R.D., Boender, J.: Using strong conflicts to detect quality issues in component-based complex systems. In: Padmanabhuni, S., Aggarwal, S.K., Bellur, U. (eds.) ISEC, pp. 163–172. ACM (2010)Google Scholar
  18. 18.
    Crameri, O., Knezevic, N., Kostic, D., Bianchini, R., Zwaenepoel, W.: Staged deployment in mirage, an integrated software upgrade testing and distribution system. SIGOPS Oper. Syst. Rev. 41(6), 221–236 (2007)CrossRefGoogle Scholar
  19. 19.
    Davis, M., Putnam, H.: A computing procedure for quantification theory. J. ACM 7(3), 201–215 (1960)MathSciNetMATHGoogle Scholar
  20. 20.
    Des Rivières, J., Wiegand, J.: Eclipse: a platform for integrating development tools. IBM Systems 43(2), 371–383 (2004)CrossRefGoogle Scholar
  21. 21.
    Vouillon, J., Di Cosmo, R.: Broken sets in software repository evolution. In: ICSE 2013. ACM (to appear, 2013)Google Scholar
  22. 22.
    Di Cosmo, R., Di Ruscio, D., Pelliccione, P., Pierantonio, A., Zacchiroli, S.: Supporting software evolution in component-based FOSS systems. Science of Computer Programming 76(12), 1144–1160 (2011)CrossRefGoogle Scholar
  23. 23.
    Di Cosmo, R., Lhomme, O., Michel, C.: Aligning component upgrades. In: Drescher, C., Lynce, I., Treinen, R. (eds.) LoCoCo 2011 International Workshop on Logics for Component Configuration, vol. 65, pp. 1–11 (2011)Google Scholar
  24. 24.
    Di Cosmo, R., Trezentos, P., Zacchiroli, S.: Package upgrades in FOSS distributions: Details and challenges. In: HotSWUp 2008: Hot Topics in Software Upgrades. ACM (2008)Google Scholar
  25. 25.
    Di Cosmo, R., Vouillon, J.: On software component co-installability. In: Gyimóthy, T., Zeller, A. (eds.) SIGSOFT FSE, pp. 256–266. ACM (2011)Google Scholar
  26. 26.
    Di Cosmo, R., Zacchiroli, S.: Feature diagrams as package dependencies. In: Bosch, J., Lee, J. (eds.) SPLC 2010. LNCS, vol. 6287, pp. 476–480. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  27. 27.
    Di Cosmo, R., Zacchiroli, S., Zavattaro, G.: Towards a formal component model for the cloud. In: Eleftherakis, G., Hinchey, M., Holcombe, M. (eds.) SEFM 2012. LNCS, vol. 7504, pp. 156–171. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  28. 28.
    Di Ruscio, D., Pelliccione, P., Pierantonio, A., Zacchiroli, S.: Towards maintainer script modernization in FOSS distributions. In: IWOCE 2009: International Workshop on Open Component Ecosystem, pp. 11–20. ACM (2009)Google Scholar
  29. 29.
    Dolstra, E., Löh, A.: NixOS: A purely functional linux distribution. In: ICFP (2008) (to appear)Google Scholar
  30. 30.
    EDOS Project: Report on formal management of software dependencies. EDOS Project Deliverables D2.1 and D2.2 (March 2006)Google Scholar
  31. 31.
    Fischer, J., Majumdar, R., Esmaeilsabzali, S.: Engage: a deployment management system. In: Vitek, J., Lin, H., Tip, F. (eds.) PLDI, pp. 263–274. ACM (2012)Google Scholar
  32. 32.
    Galindo, J., Benavides, D., Segura, S.: Debian packages repositories as software product line models. towards automated analysis. In: Dhungana, D., Rabiser, R., Seyff, N., Botterweck, G. (eds.) ACoTA. CEUR Workshop Proceedings, vol. 688, pp. 29–34. CEUR-WS.org (2010)Google Scholar
  33. 33.
    Gonzalez-Barahona, J., Robles, G., Michlmayr, M., Amor, J., German, D.: Macro-level software evolution: a case study of a large software compilation. Empirical Software Engineering 14(3), 262–285 (2009)CrossRefGoogle Scholar
  34. 34.
    Janota, M.: Do SAT solvers make good configurators? In: SPLC: Software Product Lines Conference, vol. 2, pp. 191–195 (2008)Google Scholar
  35. 35.
    Järvisalo, M., Berre, D.L., Roussel, O., Simon, L.: The international SAT solver competitions. AI Magazine 33(1) (2012)Google Scholar
  36. 36.
    Jenson, G., Dietrich, J., Guesgen, H.W.: An empirical study of the component dependency resolution search space. In: Grunske, L., Reussner, R., Plasil, F. (eds.) CBSE 2010. LNCS, vol. 6092, pp. 182–199. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  37. 37.
    LaBelle, N., Wallingford, E.: Inter-package dependency networks in open-source software. CoRR cs.SE/0411096 (2004)Google Scholar
  38. 38.
    Lau, K.K., Wang, Z.: Software component models. IEEE Trans. Software Eng. 33(10), 709–724 (2007)CrossRefGoogle Scholar
  39. 39.
    Le Berre, D., Parrain, A.: On SAT technologies for dependency management and beyond. In: SPLC 2008: Software Product Lines Conference, vol. 2, pp. 197–200 (2008)Google Scholar
  40. 40.
    Le Berre, D., Rapicault, P.: Dependency management for the Eclipse ecosystem. In: IWOCE 2009: International Workshop on Open Component Ecosystems, pp. 21–30. ACM (2009)Google Scholar
  41. 41.
    Lengauer, T., Tarjan, R.E.: A fast algorithm for finding dominators in a flowgraph. ACM Trans. Program. Lang. Syst. 1(1), 121–141 (1979)MATHCrossRefGoogle Scholar
  42. 42.
    Maillart, T., Sornette, D., Spaeth, S., von Krogh, G.: Empirical tests of zipf’s law mechanism in open source linux distribution. Phys. Rev. Lett. 101, 218701 (2008), http://link.aps.org/doi/10.1103/PhysRevLett.101.218701 CrossRefGoogle Scholar
  43. 43.
    Mancinelli, F., Boender, J., Di Cosmo, R., Vouillon, J., Durak, B., Leroy, X., Treinen, R.: Managing the complexity of large free and open source package-based software distributions. In: ASE 2006: Automated Software Engineering, pp. 199–208. IEEE (2006)Google Scholar
  44. 44.
    Michel, C., Rueher, M.: Handling software upgradeability problems with MILP solvers. In: LoCoCo 2010: Logics for Component Configuration. EPTCS, vol. 29, pp. 1–10 (2010)Google Scholar
  45. 45.
    OSGi Alliance: OSGi Service Platform, Release 3. IOS Press, Inc. (2003)Google Scholar
  46. 46.
    Quinton, C., Rouvoy, R., Duchien, L.: Leveraging feature models to configure virtual appliances. In: Proceedings of the 2nd International Workshop on Cloud Computing Platforms, CloudCP 2012, pp. 2:1–2:6. ACM, New York (2012), http://doi.acm.org/10.1145/2168697.2168699
  47. 47.
    Raymond, E.S.: The cathedral and the bazaar. O’Reilly (2001)Google Scholar
  48. 48.
    Ruscio, D.D., Pelliccione, P., Pierantonio, A.: EVOSS: A tool for managing the evolution of free and open source software systems. In: Glinz, M., Murphy, G.C., Pezzè, M. (eds.) ICSE, pp. 1415–1418. IEEE (2012)Google Scholar
  49. 49.
    Steuer, R.E.: Multiple Criteria Optimization: Theory, Computation and Application. Wiley (1986)Google Scholar
  50. 50.
    Szyperski, C.: Component Software. Beyond Object-Oriented Programming. Addison-Wesley (1998)Google Scholar
  51. 51.
    Treinen, R., Zacchiroli, S.: Solving package dependencies: from EDOS to Mancoosi (2008)Google Scholar
  52. 52.
    Treinen, R., Zacchiroli, S.: Common upgradeability description format (CUDF) 2.0. Technical Report 3, The Mancoosi Project (November 2009), http://www.mancoosi.org/reports/tr3.pdf
  53. 53.
    Treinen, R., Zacchiroli, S.: Expressing advanced user preferences in component installation. In: IWOCE 2009: International Workshop on Open Component Ecosystems, pp. 31–40. ACM (2009)Google Scholar
  54. 54.
    Trezentos, P., Lynce, I., Oliveira, A.: Apt-pbo: Solving the software dependency problem using pseudo-boolean optimization. In: ASE 2010: Automated Software Engineering, pp. 427–436. ACM (2010)Google Scholar
  55. 55.
    Tucker, C., Shuffelton, D., Jhala, R., Lerner, S.: OPIUM: Optimal package install/uninstall manager. In: ICSE 2007: International Conference on Software Engineering, pp. 178–188. IEEE (2007)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Roberto Di Cosmo
    • 1
  • Ralf Treinen
    • 1
  • Stefano Zacchiroli
    • 1
  1. 1.PPS, UMR 7126, CNRSUniv Paris Diderot, Sorbonne Paris CitéFrance

Personalised recommendations