Skip to main content

Formal Aspects of Free and Open Source Software Components

A Short Survey

  • Chapter
Formal Methods for Components and Objects (FMCO 2012)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 7866))

Included in the following conference series:

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.

Work partially supported by Aeolus project, ANR-2010-SEGI-013-01, and performed at IRILL, center for Free Software Research and Innovation in Paris, France, www.irill.org

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

eBook
USD 16.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 16.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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. 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. 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. 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)

    Article  Google Scholar 

  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. 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. Abate, P., Di Cosmo, R., Treinen, R., Zacchiroli, S.: A modular package manager architecture. Information and Software Technology 55(2), 459–474 (2013)

    Article  Google Scholar 

  8. Albert, R., Jeong, H., Barabási, A.L.: Error and attack tolerance of complex networks. Nature 406(6794), 378–382 (2000)

    Article  Google Scholar 

  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. 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. 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. Bézivin, J.: On the unification power of models. SOSYM 4(2), 171–188 (2005)

    Article  Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  15. Clayberg, E., Rubel, D.: Eclipse Plug-ins, 3rd edn. Addison-Wesley Professional (December 2008)

    Google Scholar 

  16. Clements, P., Northrop, L.: Software product lines. Addison-Wesley (2002)

    Google Scholar 

  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. 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)

    Article  Google Scholar 

  19. Davis, M., Putnam, H.: A computing procedure for quantification theory. J. ACM 7(3), 201–215 (1960)

    MathSciNet  MATH  Google Scholar 

  20. Des Rivières, J., Wiegand, J.: Eclipse: a platform for integrating development tools. IBM Systems 43(2), 371–383 (2004)

    Article  Google Scholar 

  21. Vouillon, J., Di Cosmo, R.: Broken sets in software repository evolution. In: ICSE 2013. ACM (to appear, 2013)

    Google Scholar 

  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)

    Article  Google Scholar 

  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. 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. 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. 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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  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. Dolstra, E., Löh, A.: NixOS: A purely functional linux distribution. In: ICFP (2008) (to appear)

    Google Scholar 

  30. EDOS Project: Report on formal management of software dependencies. EDOS Project Deliverables D2.1 and D2.2 (March 2006)

    Google Scholar 

  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. 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. 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)

    Article  Google Scholar 

  34. Janota, M.: Do SAT solvers make good configurators? In: SPLC: Software Product Lines Conference, vol. 2, pp. 191–195 (2008)

    Google Scholar 

  35. Järvisalo, M., Berre, D.L., Roussel, O., Simon, L.: The international SAT solver competitions. AI Magazine 33(1) (2012)

    Google Scholar 

  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)

    Chapter  Google Scholar 

  37. LaBelle, N., Wallingford, E.: Inter-package dependency networks in open-source software. CoRR cs.SE/0411096 (2004)

    Google Scholar 

  38. Lau, K.K., Wang, Z.: Software component models. IEEE Trans. Software Eng. 33(10), 709–724 (2007)

    Article  Google Scholar 

  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. 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. Lengauer, T., Tarjan, R.E.: A fast algorithm for finding dominators in a flowgraph. ACM Trans. Program. Lang. Syst. 1(1), 121–141 (1979)

    Article  MATH  Google Scholar 

  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

    Article  Google Scholar 

  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. 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. OSGi Alliance: OSGi Service Platform, Release 3. IOS Press, Inc. (2003)

    Google Scholar 

  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. Raymond, E.S.: The cathedral and the bazaar. O’Reilly (2001)

    Google Scholar 

  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. Steuer, R.E.: Multiple Criteria Optimization: Theory, Computation and Application. Wiley (1986)

    Google Scholar 

  50. Szyperski, C.: Component Software. Beyond Object-Oriented Programming. Addison-Wesley (1998)

    Google Scholar 

  51. Treinen, R., Zacchiroli, S.: Solving package dependencies: from EDOS to Mancoosi (2008)

    Google Scholar 

  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. 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. 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. 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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Di Cosmo, R., Treinen, R., Zacchiroli, S. (2013). Formal Aspects of Free and Open Source Software Components. In: Giachino, E., Hähnle, R., de Boer, F.S., Bonsangue, M.M. (eds) Formal Methods for Components and Objects. FMCO 2012. Lecture Notes in Computer Science, vol 7866. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-40615-7_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-40615-7_8

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-40614-0

  • Online ISBN: 978-3-642-40615-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics