Performance and reliability prediction for evolving service-oriented software systems
Conventional approaches to analyze the behavior of software applications are black box based, that is, the software application is treated as a whole and only its interactions with the outside world are modeled. The black box approaches ignore information about the internal structure of the application and the behavior of the individual parts. Hence they are inadequate to model the behavior of a realistic software application which is likely to be made up of several interacting parts. Architecture–based analysis, which seeks to assess the behavior of a software application taking into consideration the behavior of its parts and the interactions among the parts is thus essential. Most of the research in the area of architecture–based analysis has been devoted to developing analytical models, with very little if any effort being devoted to how these models might be applied to real software applications. In order to apply these models to software applications, methods must be developed to extract the parameters of the analytical models from information collected during the execution of the application. In this paper we present an experimental approach to extract the parameters of architecture–based models from code coverage measurements obtained during the execution of the application. To facilitate this we use a coverage analysis tool called ATAC (Automatic Test Analyzer in C), which is a part of Telcordia Software Visualization and Analysis Toolsuite (TSVAT) developed at Telcordia Technologies. We demonstrate the approach by predicting the performance and reliability of an application called SHARPE (Symbolic Hierarchical Automated Reliability Predictor), which has been widely used to solve stochastic models of reliability, performance and performability.