Automated Reliability Prediction from Formal Architectural Descriptions

Quantitative assessment of quality attributes (i.e., non-functional requirements, such as performance, safety or reliability) of software architectures during design supports important early decisions and validates the quality requirements established by the stakeholder. In current practice, these quality requirements are most often manually checked, which is time-consuming and error-prone due to the overwhelmingly complex designs. We propose an automated approach to assess the reliability of software architectures. It consists in extracting a Markov model from the system specification written in an Architecture Description Language (ADL). Our approach translates the specified architecture to a high-level probabilistic model-checking language, supporting system validation and quantitative reliability prediction against usage profile, component arrangement and architectural styles. We validate our approach by applying it to different architectural styles and comparing those with two different quantitative reliability assessment methods presented in the literature: the composite and the hierarchical methods.

[1]  Robert J. Allen A formal approach to software architecture , 1997 .

[2]  Katerina Goseva-Popstojanova,et al.  Large empirical case study of architecture-based software reliability , 2005, 16th IEEE International Symposium on Software Reliability Engineering (ISSRE'05).

[3]  Mary Shaw,et al.  An Introduction to Software Architecture , 1993, Advances in Software Engineering and Knowledge Engineering.

[4]  Nenad Medvidovic,et al.  Early prediction of software component reliability , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[5]  Dmitri Bronnikov A practical adoption of partial redundancy elimination , 2004, SIGP.

[6]  Dai Pan,et al.  Architecture-based software reliability modeling , 2006, J. Syst. Softw..

[7]  Ralf H. Reussner,et al.  Reliability prediction for component-based software architectures , 2003, J. Syst. Softw..

[8]  Hany H. Ammar,et al.  Scenario-based reliability analysis of component-based software , 1999, Proceedings 10th International Symposium on Software Reliability Engineering (Cat. No.PR00443).

[9]  Steffen Becker,et al.  Automatically improve software architecture models for performance, reliability, and cost using evolutionary algorithms , 2010, WOSP/SIPEW '10.

[10]  Katerina Goseva-Popstojanova,et al.  Architecture-based approach to reliability assessment of software systems , 2001, Perform. Evaluation.

[11]  David Garlan,et al.  Acme: an architecture description interchange language , 2010, CASCON.

[12]  Jan Friso Groote,et al.  Specification Guidelines to Avoid the State Space Explosion Problem , 2011, FSEN.

[13]  Jean-Claude Laprie,et al.  Software reliability and system reliability , 1996 .

[14]  Bojan Cukic,et al.  Early reliability assessment of UML based software models , 2002, WOSP '02.

[15]  B. Littlewood Software Reliability Model for Modular Program Structure , 1979, IEEE Transactions on Reliability.

[16]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[17]  Swapna S. Gokhale,et al.  Architecture-Based Software Reliability Analysis: Overview and Limitations , 2007, IEEE Transactions on Dependable and Secure Computing.

[18]  Roger C. Cheung,et al.  A User-Oriented Software Reliability Model , 1978, IEEE Transactions on Software Engineering.

[19]  David Garlan,et al.  Acme: architectural description of component-based systems , 2000 .

[20]  Katerina Goseva-Popstojanova,et al.  Software reliability estimation under certainty: generalization of the method of moments , 2004, Eighth IEEE International Symposium on High Assurance Systems Engineering, 2004. Proceedings..

[21]  Ahmed Abd-Allah,et al.  Extending Reliability Block Diagrams to Software Architectures , 2009 .

[22]  Peter H. Feiler,et al.  The Architecture Analysis & Design Language (AADL): An Introduction , 2006 .

[23]  David Garlan,et al.  Acme: an architecture description interchange language , 1997, CASCON.

[24]  Eila Niemelä,et al.  Survey of reliability and availability prediction methods from the viewpoint of software architecture , 2007, Software & Systems Modeling.

[25]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[26]  Heiko Koziolek,et al.  Reliability prediction for fault-tolerant software architectures , 2011, QoSA-ISARCS '11.

[27]  Qian Yang,et al.  A survey of coverage based testing tools , 2006, AST '06.

[28]  Charles M. Grinstead,et al.  Introduction to probability , 1999, Statistics for the Behavioural Sciences.

[29]  Swapna S. Gokhale,et al.  Reliability prediction and sensitivity analysis based on software architecture , 2002, 13th International Symposium on Software Reliability Engineering, 2002. Proceedings..

[30]  Marta Z. Kwiatkowska,et al.  PRISM: probabilistic model checking for performance and reliability analysis , 2009, PERV.

[31]  David Garlan,et al.  A Formal Approach to Software Architectures , 1992, IFIP Congress.