Architecture-based performance and reliability analysis of concurrent software applications

Date of Completion

January 2008


Computer Science




Architecture-based performance and reliability analysis of software applications has been the focus of several recent research efforts, as these applications have grown in size and complexity. Prevalent research in the area of architecture-based performance analysis considers concurrency only implicitly, while efforts in the area of architecture-based reliability analysis have focus primarily on sequential applications. Concurrency, however, may be common in modern software applications that are developed using the object-oriented software development paradigm. Thus, performance and reliability analysis considering concurrency within the context of the application architecture is necessary for such applications. ^ This research describes an integrated performance and reliability analysis methodology for concurrent software applications. Central to this methodology is a state space approach, based on Discrete Time Markov Chains (DTMCs) to represent the architecture of a concurrent application. Further, we derive analytical expressions for the expected application performance and reliability, based on the average execution times and constant failure rates of the components and architectural statistics of the application obtained from the solution of the DTMC model representing the application architecture, for both terminating and continuously running applications. We extend our research by relaxing the assumption that the component's execution time is exponentially distributed and consider non-exponential distributions (i.e. hypoexponential and hyperexponential distributions). To enable the application of the methodology to real-life software applications, we further describe how the application architecture may be extracted from UML specification of the application and application's source code. We illustrate the value of the methodology we present a various set of illustrations including (1) illustrative numerical examples, (2) application emulation for terminating and consciously running applications and (3) a case study of a Multithreaded RSS (MRSS) news ticker application. Finally we discuss different solutions for the state-space explosion problem that could arise form our model. ^