The Future of Software: Adaptation and Dependability

  • Paola Inverardi
  • Massimo Tivoli
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5413)


Software in the near ubiquitous future (Softure) will need to cope with variability, as software systems get deployed on an increasingly large diversity of computing platforms and operates in different execution environments. Heterogeneity of the underlying communication and computing infrastructure, mobility inducing changes to the execution environments and therefore changes to the availability of resources and continuously evolving requirements require software systems to be adaptable according to the context changes. Softure should also be reliable and meet the users performance requirements and needs. Moreover, due to its pervasiveness and in order to make adaptation effective and successful, adaptation must be considered in conjunction with dependability, i.e., no matter what adaptation is performed, the system must continue to guarantee a certain degree of Quality of Service (QoS). Hence, Softure must also be dependable, which is made more complex given the highly dynamic nature of service provision. Supporting the development and execution of Softure systems raises numerous challenges that involve languages, methods and tools for the systems thorough design and validation in order to ensure dependability of the self-adaptive systems that are targeted. However these challenges, taken in isolation are not new in the software domain. In this paper we will discuss some of these challenges and possible solutions making reference to the approach undertaken in the IST PLASTIC project for a specific instance of Softure focused on software for Beyond 3G (B3G) networks.


Software Architecture Service Level Agreement Execution Environment Service Consumer Graph Grammar 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Arnold, A.: Finite Transition Systems. International Series in Computer Science. Prentice Hall International, UK (1989)zbMATHGoogle Scholar
  2. 2.
    Autili, M., Inverardi, P., Navarra, A., Tivoli, M.: Synthesis: A tool for automatically assembling correct and distributed component-based systems. In: 29th International Conference on Software Engineering (ICSE 2007), Minneapolis, MN, USA, pp. 784–787. IEEE Computer Society, Los Alamitos (2007), CrossRefGoogle Scholar
  3. 3.
    Autili, M., Mostarda, L., Navarra, A., Tivoli, M.: Synthesis of decentralized and concurrent adaptors for correctly assembling distributed component-based systems. Journal of Systems and Software (2008),
  4. 4.
    Finkel, A.: The minimal coverability graph for Petri nets. In: Proc. of the 12th APN. LNCS, vol. 674. Springer, Heidelberg (1993)Google Scholar
  5. 5.
    IFIP WG 10.4 on Dependable Computing and Fault Tolerance,
  6. 6.
    Inverardi, P.: Software of the future is the future of Software? In: Montanari, U., Sannella, D., Bruni, R. (eds.) TGC 2006. LNCS, vol. 4661, pp. 69–85. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  7. 7.
    Inverardi, P., Tivoli, M.: Deadlock-free software architectures for com/dcom applications. Elsevier Journal of Systems and Software - Special Issue on component-based software engineering 65(3), 173–183 (2003)Google Scholar
  8. 8.
    Inverardi, P., Tivoli, M.: Software Architecture for Correct Components Assembly. In: Bernardo, M., Inverardi, P. (eds.) SFM 2003. LNCS, vol. 2804, pp. 92–121. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  9. 9.
    ITU Telecommunication Standardisation sector, ITU-T reccomendation Z.120. Message Sequence Charts. (MSC 1996). GenevaGoogle Scholar
  10. 10.
    Keller, R.: Formal verification of parallel programs. Communications of the ACM 19(7), 371–384 (1976)MathSciNetCrossRefzbMATHGoogle Scholar
  11. 11.
    Milner, R.: Communication and Concurrency. Prentice Hall, New York (1989)zbMATHGoogle Scholar
  12. 12.
    Murata, T.: Petri nets: Properties, analysis and applications. Proceedings of the IEEE 77(4) (1989)Google Scholar
  13. 13.
    PLASTIC IST Project,
  14. 14.
    Ramadge, P., Wonham, W.: The control of discrete event systems. Proceedings of the IEEE 1(77) (1989)Google Scholar
  15. 15.
    Schilit, B., Adams, N., Want, R.: Context-aware computing applications. In: IEEE Workshop on Mobile Computing Systems and Applications, Santa Cruz, CA, US (1994)Google Scholar
  16. 16.
    Tivoli, M., Autili, M.: SYNTHESIS, a Tool for Synthesizing Correct and Protocol-Enhanced Adaptors. RSTI L Objet journal 12(1), 77–103 (2006)CrossRefGoogle Scholar
  17. 17.
    Tivoli, M., Fradet, P., Girault, A., Goessler, G.: Adaptor synthesis for real-time components. In: Grumberg, O., Huth, M. (eds.) TACAS 2007. LNCS, vol. 4424, pp. 185–200. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  18. 18.
    Tivoli, M., Inverardi, P.: Failure-free coordinators synthesis for component-based architectures. Science of Computer Programming 71(3), 181–212 (2008), MathSciNetCrossRefzbMATHGoogle Scholar
  19. 19.
    Uchitel, S., Kramer, J.: A workbench for synthesising behaviour models from scenarios. In: Proceeding of the 23rd IEEE International Conference on Software Engineering (ICSE 2001) (2001)Google Scholar
  20. 20.
    Uchitel, S., Kramer, J., Magee, J.: Detecting implied scenarios in message sequence chart specifications. In: ACM Proceedings of the joint 8th ESEC and 9th FSE. ACM press, New York (2001)Google Scholar
  21. 21.
    Inverardi, P., Mancinelli, F., Nesi, M.: A Declarative Framework for adaptable applications in heterogeneous environments. In: Proceedings of the 19th ACM Symposium on Applied Computing (2004)Google Scholar
  22. 22.
    Mancinelli, F., Inverardi, P.: Quantitative resource-oriented analysis of Java (adaptable) applications. In: ACM Proceedings Workshop on Software Performance (2007)Google Scholar
  23. 23.
    Necula, G.C.: Proof-Carrying Code. In: Jones, N.D. (ed.) Proceedings of the Symposium on Principles of Programming Languages, Paris, France, January 1997, pp. 106–119. ACM Press, New York (1997)Google Scholar
  24. 24.
    Le Métayer, D.: Describing Software Architecture Styles Using Graph Grammars. IEEE Transaction on software engineering 24(7) (1998)Google Scholar
  25. 25.
    Aldrich, J., Chambers, C., Notkin, D.: ArchJava: Connecting Software Architecture to Implementation. In: Proceedings of ICSE 2002 (May 2002)Google Scholar
  26. 26.
    Aldrich, J., Chambers, C., Notkin, D.: Architectural Reasoning in ArchJava. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374. Springer, Heidelberg (2002)Google Scholar
  27. 27.
    Hirsch, D., Inverardi, P., Montanari, U.: Graph grammars and constraint solving for software architecture styles. In: Proc. of the 3rd Int. Software Architecture Workshop (ISAW-3), pp. 69–72. ACM Press, New York (1998)CrossRefGoogle Scholar
  28. 28.
    Georgiadis, I., Magee, J., Kramer, J.: Self-organising software architectures for distributed systems. In: Proc. of the 1st Work. on Self-Healing Systems (WOSS 2002), pp. 33–38. ACM Press, New York (2002)CrossRefGoogle Scholar
  29. 29.
    Magee, J., Kramer, J.: Dynamic structure in software architectures. In: Proc. of the 4th ACM SIGSOFT Symp. On Foundations of Software Engineering (FSE-4), pp. 3–14. ACM Press, New York (1996)CrossRefGoogle Scholar
  30. 30.
    Taentzer, G., Goedicke, M., Meyer, T.: Dynamic change management by distributed graph transformation: Towards configurable distributed systems. In: Ehrig, H., Engels, G., Kreowski, H.-J., Rozenberg, G. (eds.) TAGT 1998. LNCS, vol. 1764, pp. 179–193. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  31. 31.
    Baresi, L., Heckel, R., Thöne, S., Varró, D.: Style-Based Refinement of Dynamic Software Architectures. In: WICSA 2004, pp. 155–166 (2004)Google Scholar
  32. 32.
    Allen, R., Garlan, D.: A Formal Basis for Architectural Connection. ACM Transactions on Software Engineering and Methodology 6(3), 213–249 (1997)CrossRefGoogle Scholar
  33. 33.
    Barthe, G.: Mobius, securing the next generation of java-based global computers. ERCIM News (2005)Google Scholar
  34. 34.
    Inverardi, P., Mostarda, L.: DESERT: a decentralized monitoring tool generator. In: IEEE Proceeding of ASE 2007, tool demo (2007)Google Scholar
  35. 35.
    Cortellessa, V., Di Marco, A., Inverardi, P., Mancinelli, F., Pelliccione, P.: A framework for integration of functional and non-functional analysis of software architectures. ENCS 116, 31–44 (2005)Google Scholar
  36. 36.
    PLASTIC IST Project,
  37. 37.
    SeCSE Project,
  38. 38.
    Colombo, M., Di Nitto, E., Di Penta, M., Distante, D., Zuccalà, M.: Speaking a common language: A conceptual model for describing service-oriented systems. In: Benatallah, B., Casati, F., Traverso, P. (eds.) ICSOC 2005. LNCS, vol. 3826, pp. 48–60. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  39. 39.
    Jouault, F., Kurtev, I.: Transforming Models with ATL. In: Bruel, J.-M. (ed.) MoDELS 2005. LNCS, vol. 3844, pp. 128–138. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  40. 40.
    ModelWare, IST European project 511731,
  41. 41.
    Budinsky, F., Steinberg, D., Merks, E., Ellersick, R., Grose, T.J.: Eclipse Modeling Framework. Addison-Wesley, Reading (2003)Google Scholar
  42. 42.
    Di Marco, A., Mascolo, C.: Performance Analysis and Prediction of Physically Mobile Systems. In: WOSP 2007 (2007)Google Scholar
  43. 43.
    Eclipse project. Model Development Tools UML2,

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Paola Inverardi
    • 1
  • Massimo Tivoli
    • 1
  1. 1.Dip. InformaticaUniversity of L’AquilaL’AquilaItaly

Personalised recommendations