Architecture based analysis of performance, reliability and security of software systems

With software systems becoming more complex, and handling diverse and critical applications, the need for their thorough evaluation has become ever more important at each phase of software development. With the prevalent use of component-based design, the software architecture as well as the behavior of the individual components of the system needs to be taken into account when evaluating it. In recent past a number of studies have focused on architecture based reliability estimation. But areas such as security and cache behavior still lack such an approach. In this paper we propose an architecture based unified hierarchical model for software reliability, performance, security and cache behavior prediction. We define a metric called the vulnerability index of a software component for quantifying its (in)security. We provide expressions for predicting the overall behavior of the system based on the characteristics of individual components, which also takes into account second order architectural effects for providing an accurate prediction. This approach also facilitates the identification of reliability, performance, security and cache performance bottlenecks. In addition we illustrate how the approach could be applied to software systems by case studies and also provide expressions to perform sensitivity analysis.

[1]  W. W. Everett,et al.  Software component reliability analysis , 1999, Proceedings 1999 IEEE Symposium on Application-Specific Systems and Software Engineering and Technology. ASSET'99 (Cat. No.PR00122).

[2]  Aditya P. Mathur,et al.  On the estimation of reliability of a software system using reliabilities of its components , 1997, Proceedings The Eighth International Symposium on Software Reliability Engineering.

[3]  J. R. Horgan,et al.  A data flow coverage testing tool for C , 1992, [1992] Proceedings of the Second Symposium on Assessment of Quality Software Development Tools.

[4]  Douglas W. Clark,et al.  Performance of the VAX-11/780 translation buffer: simulation and measurement , 1985, TOCS.

[5]  Jean-Claude Laprie,et al.  Dependability Evaluation of Software Systems in Operation , 1984, IEEE Transactions on Software Engineering.

[6]  Peter Kubat,et al.  Assessing reliability of modular software , 1989 .

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

[8]  Connie U. Smith,et al.  Performance Engineering of Software Systems , 1990, SIGMETRICS Perform. Evaluation Rev..

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

[10]  Harold S. Stone,et al.  Footprints in the cache , 1986, SIGMETRICS '86/PERFORMANCE '86.

[11]  Sharad Malik,et al.  Cache miss equations: an analytical representation of cache misses , 1997, ICS '97.

[12]  Errol C. Caby Elements of Applied Stochastic Processes , 2003, Technometrics.

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

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

[15]  Dorina C. Petriu,et al.  Software Performance Models from System Scenarios in Use Case Maps , 2002, Computer Performance Evaluation / TOOLS.

[16]  Aditya P. Mathur,et al.  Comparison of architecture-based software reliability models , 2001, Proceedings 12th International Symposium on Software Reliability Engineering.

[17]  Kateriana Goýeva-Popstojanova,et al.  Many architecture-based software reliability modelsComparison of Architecture-Based Software Reliability Models , 2001 .

[18]  Bev Littlewood,et al.  A Reliability Model for Systems with Markov Structure , 1975 .

[19]  Swapna S. Gokhale,et al.  An analytical approach to architecture-based software reliability prediction , 1998, Proceedings. IEEE International Computer Performance and Dependability Symposium. IPDS'98 (Cat. No.98TB100248).

[20]  Kishor S. Trivedi,et al.  Performance And Reliability Analysis Of Computer Systems (an Example-based Approach Using The Sharpe Software , 1997, IEEE Transactions on Reliability.

[21]  Keith W. Miller,et al.  Defining an adaptive software security metric from a dynamic software failure tolerance measure , 1996, Proceedings of 11th Annual Conference on Computer Assurance. COMPASS '96.

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

[23]  James Ledowc Availability Modeling of Modular Software , 1999 .

[24]  Gerald S. Shedler,et al.  Locality in Page Reference Strings , 1972, SIAM J. Comput..

[25]  Kishor S. Trivedi,et al.  Evaluating performance attributes of layered software architecture , 2005, CBSE'05.

[26]  Gururaj S. Rao,et al.  Performance Analysis of Cache Memories , 1978, JACM.

[27]  Wen-Hann Wang,et al.  Efficient trace-driven simulation methods for cache performance analysis , 1991, TOCS.

[28]  Andrew P. Moore,et al.  Can We Ever Build Survivable Systems from COTS Components? , 2002, CAiSE.

[29]  Martin L. Shooman,et al.  Structural models for software reliability prediction , 1976, ICSE '76.

[30]  Harold S. Stone,et al.  A Model of Workloads and Its Use in Miss-Rate Prediction for Fully Associative Caches , 1992, IEEE Trans. Computers.

[31]  Gregory K. Miller,et al.  Elements of Applied Stochastic Processes , 1972 .

[32]  Mark Horowitz,et al.  An analytical cache model , 1989, TOCS.

[33]  Claes Wohlin,et al.  An additive reliability model for the analysis of modular software failure data , 1995, Proceedings of Sixth International Symposium on Software Reliability Engineering. ISSRE'95.