Reliability Analysis of Software Architecture Evolution

Software engineers and practitioners regard software architecture as an important artifact, providing the means to model the structure and behavior of systems and to support early decisions on dependability and other quality attributes. Since systems are most often subject to evolution, the software architecture can be used as an early indicator on the impact of the planned evolution on quality attributes. We propose an automated approach to evaluate the impact on reliability of architecture evolution. Our approach provides relevant information for architects to predict the impact of component reliabilities, usage profile and system structure on the overall reliability. We translate a system's architectural description written in an Architecture Description Language (ADL) to a stochastic model suitable for performing a thorough analysis on the possible architectural modifications. We applied our method to a case study widely used in research in which we identified the reliability bottlenecks and performed structural modifications to obtain an improved architecture regarding its reliability.

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

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

[3]  Olivier Barais,et al.  Software Architecture Evolution , 2008, Software Evolution.

[4]  Bradley R. Schmerl,et al.  Architecture-Based Run-Time Fault Diagnosis , 2011, ECSA.

[5]  M M Lehman,et al.  Software Evolution , 2002 .

[6]  Paul Clements,et al.  Software Architecture in Practice: Addison-Wesley , 1998 .

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

[8]  Mário Zenha Rela,et al.  Automated Reliability Prediction from Formal Architectural Descriptions , 2012, 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture.

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

[10]  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).

[11]  Swapna S. Gokhale,et al.  Analytical Models for Architecture-Based Software Reliability Prediction: A Unification Framework , 2006, IEEE Transactions on Reliability.

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

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

[14]  Ivica Crnkovic,et al.  A systematic review of software architecture evolution research , 2012, Inf. Softw. Technol..

[15]  Paola Inverardi,et al.  Proceedings of the joint ACM SIGSOFT conference -- QoSA and ACM SIGSOFT symposium -- ISARCS on Quality of software architectures -- QoSA and architecting critical systems -- ISARCS , 2011, CBSE 2011.

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

[17]  Kishor S. Trivedi Probability and Statistics with Reliability, Queuing, and Computer Science Applications , 1984 .

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

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

[20]  Murali Sitaraman,et al.  Foundations of component-based systems , 2000 .

[21]  Xiaoqing Li,et al.  A ten-year survey of software architecture , 2010, 2010 IEEE International Conference on Software Engineering and Service Sciences.

[22]  Meir M. Lehman Programs, Cities, Students— Limits to Growth? , 1978 .

[23]  Neil R. Storey,et al.  Safety-critical computer systems , 1996 .

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

[25]  M M Lehman J F Ramil,et al.  Evolution as a Noun and Evolution as a Verb , 2000 .

[26]  Serge Demeyer,et al.  Software Evolution , 2010 .

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

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

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