Reliability prediction for component-based software architectures

  • Authors:
  • Ralf H. Reussner;Heinz W. Schmidt;Iman H. Poernomo

  • Affiliations:
  • Distributed Systems Technology Center, Melbourne, Australia;School of Computer Science and Software Engineering, Monash University, 900 Dandenong Road, 3145 Caulfield, Vic., 3800, Australia;Distributed Systems Technology Center, Melbourne, Australia

  • Venue:
  • Journal of Systems and Software - Special issue on: Software architecture - Engineering quality attributes
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

One of the motivations for specifying software architectures explicitly is the use of high level structural design information for improved control and prediction of software system quality attributes. In this paper, we present an approach for determining the reliability of component-based software architectures.Our method is based on rich architecture definition language (RADL) oriented towards modem industrial middleware platforms, such as Microsoft's. NET and Sun's EJB. Our methods involve parameterised contractual specifications based on state machines and thus permits efficient static analysis.We show how RADL allows software architects to predict component reliability through compositional analysis of usage profiles and of environment component reliability. We illustrate our approach with an e-commerce example and report about empirical measurements which confirm our analytical reliability prediction through monitoring in our reliability test-bed. Our evaluation confirms that prediction accuracy for software components necessitates modelling the behaviour of binary components and the dependency of provided services on required components. Fortunately, our measurements also show that an abstract protocol view of that behaviour is sufficient to predict reliability with high accuracy. The reliability of a component most strongly depends on its environment. Therefore, we advocate a reliability model parameterized by required component reliability in a deployment context.