Predicting the reliability of component-based software systems during early development stages can identify components mostly contributing to the system reliability and provide software architects hints for improving their architectures. Several researchers have used Markov chains to model the control flow through component-based software architectures and incorporated reliability properties into them. The reliability of individual components can for example be determined with reliability growth modeling, statistical testing, or fault injection. Predictions based on the model provide expected system failure probabilities and can help to support design decisions quantitatively.
Introductory papers on architectural reliability engineering:
- R.C. Cheung: A User-Oriented Software Reliability Model (1980)
- K. Goseva-Popstojanova and K. Trivedi: Architecture-based approach to reliability assessment of software systems (2001)
- R. Reussner et al.: Reliability prediction for component-based software architectures (2003)
- M. Lyu: Software reliability engineering: A roadmap (2007)
My research in this area is conducted as part of the Q-ImPrESS project and is concerned with creating reliability models for industry-sized systems. Together with Franz and Bara, I have been extending the Palladio Component Model for reliability predictions.
Selected contributions with my participation:
- Parameterized reliability prediction for component-based software architectures
(QoSA-Paper, 2010, LNCS)
- A Large-Scale Industrial Case Study on Architecture-based Software Reliability Analysis
(ISSRE-Paper, 2010, IEEE)
- Architecture-based reliability prediction with the palladio component model
(IEEE Transactions on Software Engineering 2012)