Software of the Future Is the Future of Software?

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


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 user’s performance requirements and needs. Moreover, due to its pervasiveness, Softure must 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 I will discuss some of these challenges, what is new 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 Graph Grammar Execution Context 
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.
    PLASTIC IST STREP Project: Home page on line at:
  2. 2.
    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
  3. 3.
    IFIP WG 10.4 on Dependable Computing And Fault Tolerancs
  4. 4.
    Allen, R., Garlan, D.: A Formal Basis for Architectural Connection. ACM Transactions on Software Engineering and Methodology 6(3), 213–249 (1997)CrossRefGoogle Scholar
  5. 5.
    Magee, J., Kramer, J.: Concurrency: State models & java programs. Wiley publisher, Chichester (1999)zbMATHGoogle Scholar
  6. 6.
    Caporuscio, M., Carzaniga, A., Wolf, A.L.: Design and evaluation of a support service for mobile, wireless publish/subscribe applications. IEEE Transactions on Software Engineering (December 2003)Google Scholar
  7. 7.
    Carzaniga, A., Rosenblum, D.S., Wolf, A.L.: Design and Evaluation of a Wide-Area Event Notification Service. ACM Transactions on Computer Systems 19(3), 332–383 (2001)CrossRefGoogle Scholar
  8. 8.
    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
  9. 9.
    Balsamo, S., Di Marco, A., Inverardi, P., Simeoni, M.: Model-based Performance Prediction in Software Development: A Survey IEEE Transaction on Software Engineering (May 2004)Google Scholar
  10. 10.
    Inverardi, P., Mancinelli, F., Marinelli, G.: Correct Deployment and Adaptation of Software Applications on Heterogenous (Mobile) Devices. In: ACM Proceedings Workshop on Self-Healing Software (2002)Google Scholar
  11. 11.
    Mancinelli, F., Inverardi, P.: Quantitative resource-oriented analysis of Java (adaptable) application. In: ACM Proceedings Workshop on Software Performance (2007)Google Scholar
  12. 12.
    Necula, G.C.: Proof-Carrying Code. In: Jones, N.D. (ed.) Proceedings of the Symposium on Principles of Programming Languages, pp. 106–119. ACM Press, Paris, France (1997)Google Scholar
  13. 13.
    Necula, G.C., Lee, P.: Proof-Carrying Code. Technical Report CMU-CS-96-165, School of Computer Science, Carnegie Mellon University (September 1996)Google Scholar
  14. 14.
    Necula, G.C., Lee, P.: Safe kernel extensions without run-time checking. In: Proceedings of the Symposium on Operating System Design and Implementation, Seattle, Washington, pp. 229–243 (October 1996)Google Scholar
  15. 15.
    Necula, G.C., Lee, P.: Efficient Representation and Validation of Logical Proofs. In: Pratt, V. (ed.) Proceedings of the Symposium on Logic in Computer Science, pp. 93–104. IEEE Computer Society Press, Indianapolis, Indiana (1998)Google Scholar
  16. 16.
    Necula, G.C., Lee, P.: Safe, untrusted agents using proof-carrying code. In: Vigna, G. (ed.) Mobile Agents and Security. LNCS, vol. 1419, pp. 61–91. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  17. 17.
    Caporuscio, M., Di Marco, A., Inverardi, P.: Model-based system reconfiguration for dynamic performance management. Journal of Systems and Software (2006) (to appear)Google Scholar
  18. 18.
    Itu telecommunication standardisation sector, itu-t reccomendation z.120. Message Sequence Charts (msc 1996), Geneva (1996)Google Scholar
  19. 19.
    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, Vienna (2001)Google Scholar
  20. 20.
    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), Toronto, Canada (May 2001)Google Scholar
  21. 21.
    Inverardi, P., Tivoli, M.: A compositional synthesis of failure-free connectors for correct components assembly. In: proceedings of the 6th ICSE Workshop on Component-Based Software Engineering (CBSE6): Automated Reasoning and Prediction at 25th ICSE 2003, Portland, Oregon, USA (May 3-10, 2003)Google Scholar
  22. 22.
    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
  23. 23.
    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
  24. 24.
    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
  25. 25.
    Metayer, D.L.: Describing software architecture styles using graph grammars. IEEE Trans. Software Engineering 24(7), 521–533 (1998)CrossRefGoogle Scholar
  26. 26.
    Taentzer, G., Goedicke, M., Meyer, T.: Dynamic change management by distributed graph transformation: Towards onfigurable distributed systems. In: Ehrig, H., Engels, G., Kreowski, H.-J., Rozenberg, G. (eds.) TAGT 1998. LNCS, vol. 1764, Springer, Heidelberg (2000)Google Scholar
  27. 27.
    Baresi, L., Heckel, R., Thne, S., Varr, D.: Style-Based Refinement of Dynamic Software Architectures. WICSA, 155–166 (2004)Google Scholar
  28. 28.
    Aldrich, J., Chambers, C., Notkin, D.: ArchJava: Connecting Software Architecture to Implementation. In: proceedings of ICSE 2002 (May 2002)Google Scholar
  29. 29.
    Aldrich, J.: Using Types to Enforce Architectural Structure. University of Washington Ph.D. Dissertation (August 2003)Google Scholar
  30. 30.
    Barthe, G.: Mobius, securing the next generation of java-based global computers. ERCIM News (2005)Google Scholar
  31. 31.
    SeCSE Project,
  32. 32.
    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, Springer, Heidelberg (2005)Google Scholar
  33. 33.
    Autili, M., Cortellessa, V., Marco, A.D., Inverardi, P.: A conceptual model for adaptable context-aware services. In: Proc. of International Workshop on Web Services Modeling and Testing (WS-MaTe2006) (2006)Google Scholar
  34. 34.
    Autili, M., Inverardi, P., Navarra, A., Tivoli, M.: SYNTHESIS: a tool for automatically assembling correct and distributed component-based systems Proc. of International Conference on Software Engineering (ICSE 2007) - Tool Demos Session (to appear, 2007)Google Scholar
  35. 35.
    Inverardi, P., Tivoli, M.: Formal Methods for the Design of Computer, Communication and Software Systems: Software Architecture. In: Bernardo, M., Inverardi, P. (eds.) SFM 2003. LNCS, vol. 2804, Springer, Heidelberg (2003)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Paola Inverardi
    • 1
  1. 1.Dipartimento di Informatica, Università dell’Aquila 

Personalised recommendations