The challenges of open-world software

  • Authors:
  • Carlo Ghezzi

  • Affiliations:
  • Politecnico di Milano, Milano, Italy

  • Venue:
  • WOSP '07 Proceedings of the 6th international workshop on Software and performance
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Software has been evolving from pre-defined, monolithic, centralized architectures to decentralized, distributed, dynamically composed federations of components whose goal is to provide useful services. Software processes have been evolving along similar lines, from pre-specified sequential work- flows to decentralized and multi-organization endeavors. The organizations to which software solutions are targeted have also been evolving from highly structured to agile and networked enterprises. All this is affecting the way software is engineered (i.e., conceived, architected, and produced).Software applications increasingly live in an open world: They are embedded in dynamically evolvable environments and must adapt to continuous and even unpredictable change. Accordingly, software architectures need to evolve dynamically and must support reconfiguration and self-organizing features to respond to change requirements. Programming languages and their underlying support infrastructure, in turn, must provide specific features to support this level of dynamism. The traditional approaches followed to ensure software quality, which focus exclusively on pre-runtime validation, are inadequate in this new context. Continuous validation becomes necessary: validation must extend to after the system is deployed and running.The talk surveys the main architectural styles that support dynamic software compositions, the language and infrastructure requirements, and provides a view of the validation process for dynamically evolvable software systems.