Predicting Performance Properties for Open Systems with KAMI

  • Authors:
  • Carlo Ghezzi;Giordano Tamburrelli

  • Affiliations:
  • Dipartimento di Elettronica e Informazione, Deep-SE Group, Politecnico di Milano, Milano, Italy 20133;Dipartimento di Elettronica e Informazione, Deep-SE Group, Politecnico di Milano, Milano, Italy 20133

  • Venue:
  • QoSA '09 Proceedings of the 5th International Conference on the Quality of Software Architectures: Architectures for Adaptive Software Systems
  • Year:
  • 2009

Quantified Score

Hi-index 0.01

Visualization

Abstract

Modern software systems are built to operate in an open world setting. By this we mean software that is conceived as a dynamically adaptable and evolvable aggregate of components that may change at run time to respond to continuous changes in the external world. Moreover, the software designer may have different degrees of ownership, control, and visibility of the different parts that compose an application. In this scenario, design-time assumptions may be based on knowledge that may have different degrees of accuracy for the different parts of the application and of the external world that interacts with the system. Furthermore, even if initially accurate, they may later change after the system is deployed and running. In this paper we investigate how these characteristics influence the way engineers can deal with performance attributes, such as response time. Following a model-driven approach, we discuss how to use at design time performance models based on Queuing Networks to drive architectural reasoning. We also discuss the possible use of keeping models alive at run time. This enables automatic re-estimation of model parameters to reflect the real behavior of the running system, re-execution of the model, and detection of possible failure, which may trigger a reaction that generates suitable architectural changes. We illustrate our contribution through a running example and numerical simulations that show the effectiveness of the proposed approach.