A Model Driven Approach to Upgrade Package-Based Software Systems

  • Antonio Cicchetti
  • Davide Di Ruscio
  • Patrizio Pelliccione
  • Alfonso Pierantonio
  • Stefano Zacchiroli
Part of the Communications in Computer and Information Science book series (CCIS, volume 69)


Complex software systems are often based on the abstraction of package, brought to popularity by Free and Open Source Software (FOSS) distributions. While helpful as an encapsulation layer, packages do not solve all problems of deployment, and more generally of management, of large software collections. In particular upgrades, which can affect several packages at once due to inter-package dependencies, often fail and do not hold good transactional properties. This paper shows how to apply model driven techniques to describe and manage software upgrades of FOSS distributions. It is discussed how to model static and dynamic aspects of package upgrades—the latter being the more challenging to deal with—in order to be able to predict common causes of upgrade failures and undo residual effects of failed or undesired upgrades.


Model-driven engineering Software change and configuration management Metamodeling Open source Package 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Cicchetti, A., Di Ruscio, D., Pelliccione, P., Pierantonio, A., Zacchiroli, S.: Towards a model driven approach to upgrade complex software systems. In: Proceedings of ENASE (2009)Google Scholar
  2. 2.
    Spinellis, D., Szyperski, C.: How is open source affecting software development. IEEE Computer 21(1), 28–33 (2004)Google Scholar
  3. 3.
    Szyperski, C.: Component Software. Beyond Object-Oriented Programming. Addison-Wesley, Reading (1998)Google Scholar
  4. 4.
    Szyperski, C.: Component technology: what, where, and how? In: Proceedings of ICSE 2003. ACM, New York (2003)Google Scholar
  5. 5.
    Di Cosmo, R., Zacchiroli, S., Trezentos, P.: Package upgrades in FOSS distributions: details and challenges. In: HotSWUp 2008, pp. 1–5. ACM, New York (2008)Google Scholar
  6. 6.
    EDOS Project: Report on formal management of software dependencies. EDOS Project Deliverable D2.1 and D2.2 (March 2006)Google Scholar
  7. 7.
    Jackson, I., Schwarz, C.: Debian policy manual (2008),
  8. 8.
    Mancinelli, F., Boender, J., Cosmo, R.D., Vouillon, J., Durak, B., Leroy, X., Treinen, R.: Managing the complexity of large free and open source package-based software distributions. In: ASE 2006, Tokyo, Japan, September 2006, pp. 199–208. IEEE CS Press, Los Alamitos (2006)Google Scholar
  9. 9.
    Tucker, C., Shuffelton, D., Jhala, R., Lerner, S.: Opium: Optimal package install/uninstall manager. In: ICSE 2007, pp. 178–188. IEEE Computer Society, Los Alamitos (2007)Google Scholar
  10. 10.
    Mens, T., Straeten, R.V.D., D’Hondt, M.: Detecting and resolving model inconsistencies using transformation dependency analysis. In: Nierstrasz, O., Whittle, J., Harel, D., Reggio, G. (eds.) MoDELS 2006. LNCS, vol. 4199, pp. 200–214. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  11. 11.
    Cicchetti, A., Di Ruscio, D., Pierantonio, A.: Managing model conflicts in distributed development. In: Czarnecki, K., Ober, I., Bruel, J.-M., Uhl, A., Völter, M. (eds.) MODELS 2008. LNCS, vol. 5301, pp. 311–325. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  12. 12.
    Schmidt, D.C.: Guest Editor’s Introduction: Model-Driven Engineering. IEEE Computer 39(2), 25–31 (2006)CrossRefGoogle Scholar
  13. 13.
    Bézivin, J.: On the Unification Power of Models. SOSYM 4(2), 171–188 (2005)Google Scholar
  14. 14.
    Di Ruscio, D., Pelliccione, P., Pierantonio, A., Zacchiroli, S.: Towards maintainer script modernization in foss distributions. In: IWOCE 2009, pp. 11–20. ACM, New York (2009)Google Scholar
  15. 15.
    Di Ruscio, D., Pelliccione, P., Pierantonio, A., Zacchiroli, S.: Metamodel for describing system structure and state. Mancoosi Project deliverable D2.1 (January 2009),
  16. 16.
    Dolstra, E., Hemel, A.: Purely functional system configuration management. In: USENIX 2007, San Diego, CA, pp. 1–6 (2007)Google Scholar
  17. 17.
    Olin Oden, J.: Transactions and rollback with rpm. Linux Journal 121, 1 (2004)Google Scholar
  18. 18.
    Trezentos, P., Di Cosmo, R., Lauriere, S., Morgado, M., Abecasis, J., Mancinelli, F., Oliveira, A.: New Generation of Linux Meta-installers. In: Research Track of FOSDEM (2007)Google Scholar
  19. 19.
    Dolstra, E., Löh, A.: NixOS: A purely functional linux distribution. In: ICFP (2008) (to appear)Google Scholar
  20. 20.
    McQueen, R.: Creating, reverting & manipulating filesystem changesets on Linux. Part II Dissertation, Computer Laboratory, University of Cambridge (May 2005)Google Scholar
  21. 21.
    Xie, Y., Aiken, A.: Static detection of security vulnerabilities in scripting languages. In: USENIX-SS 2006, pp. 179–192 (2006)Google Scholar
  22. 22.
    Mazurak, K., Zdancewic, S.: Abash: finding bugs in bash scripts. In: PLAS 2007, pp. 105–114. ACM, New York (2007)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Antonio Cicchetti
    • 1
  • Davide Di Ruscio
    • 1
  • Patrizio Pelliccione
    • 1
  • Alfonso Pierantonio
    • 1
  • Stefano Zacchiroli
    • 2
  1. 1.Dipartimento di InformaticaUniversità degli Studi dell’AquilaItaly
  2. 2.Université Paris Diderot, PPS, UMR 7126France

Personalised recommendations