RMPI-SerComp: Enhanced Integration Support for Reliability Prediction

Introduction

RMPI-SerComp /ɑ:r 'em pi: sə: kɔmp/ offers enhanced integration support into service composition frameworks for RMPI, our recent model-based software reliability prediction technique. With RMPI-SerComp, the standard service composition process of service composition frameworks can be enhanced to become a reliability-aware service composition process, which includes reliability prediction for composed services as well as supports the decision between different composition alternatives. RMPI-SerComp offers a public API and a plug-in architecture for flexible and reusable integrations into service composition frameworks. RMPI-SerComp is realized via a set of components and their interactions.

Case study

Publications


RMPI: Reliability Modeling, Prediction, and Improvements for Component-based Software Systems

Introduction

One of the most important quality attributes of a software system beyond its functional attributes is its reliability. Techniques for predicting reliability of a software system based on the design models can help software architects in evaluating the impact of their design decisions on the system reliability. This can help to make the system more reliable and avoid costs for fixing the implementation.

Our approach offers (1) a reliability modeling schema which supports component developers to model component reliability specifications and software architects to model system reliability models, and (2) a reliability prediction tool for an automated transformations from models based on the schema into Markov models for reliability predictions and sensitivity analyses. Our approach has been validated in three case studies by modeling their reliability, conducting reliability predictions and sensitivity analyses, and demonstrating its ability to support design decisions aiming at reliability improvements.

In contrast to software reliability growth models which treat software systems as black boxes, our approach belongs to the field of component-based software reliability modeling and prediction which treats software systems as a composition of software components. While our approach receives benefits from the experiences gained in the field, it also presents unique features that enhance the state of the art, including (1) a combined consideration of error propagation for sequential, parallel, and fault tolerance execution models, (2) an explicit and flexible expressiveness of reliability-relevant behavioral aspects (i.e. error detection and error handling) of fault tolerance mechanisms, and (3) the consideration of concurrently present errors.

Methodology

component_based_reliability_prediction.png

Our approach follows repetitively six steps as in the figure. In Step 1, component developers create component reliability specifications. In Step 2, software architects create a system reliability model. Step 1 and 2 are supported by our reliability modeling schema which includes all necessary modeling elements. In Step 3, the system reliability model, combined with the component reliability specifications, is transformed automatically into Markov models. In Step 4, by analyzing the Markov models, a reliability prediction and sensitivity analyses can be deduced. To support Step 3 and 4, our approach provides a reliability prediction tool. If the predicted reliability does not meet the reliability requirement, Step 5 is performed. Otherwise, Step 6 is performed. In Step 5, there are several possible options: component developers can revise the components; software architects can revise the system architecture and the usage profile. Sensitivity analyses can be used as a guideline for these options, e.g. to identify the most critical parts of the system architecture which should receive special attention during revising. In Step 6, the modeled system is deemed to meet the reliability requirement, and software architects assemble the actual component implementations following the system architecture model.

Case studies

Publications

  1. T.-T. Pham, X. Defago, and Q.-T. Huynh, "Reliability prediction for component-based software systems: Dealing with concurrent and propagating errors," Science of Computer Programming, vol. 97, Part 4, no. 0, pp. 426 – 457, 2015.
  2. Thanh-Trung Pham, Francois Bonnet, and Xavier Defago. Reliability prediction for component-based software systems with architectural-level fault tolerance mechanisms (Extended version). Journal of Wireless Mobile Networks, Ubiquitous Computing, and Dependable Applications, 5(1):4-36, 2014..
  3. Thanh-Trung Pham and Xavier Defago. Reliability prediction for component-based software systems with architectural-level fault tolerance mechanisms. In Proceedings of the 8th International Conference on Availability, Reliability and Security (ARES'13), pages 11-20, Regensburg, Germany, September 2013. IEEE.
  4. Thanh-Trung Pham, Quyet-Thang Huynh, and Xavier Defago. Making reliability modeling of component-based systems usable in practice (Fast abstract). In Local Proceedings of The 18th IEEE Pacific Rim International Symposium on Dependable Computing (PRDC'12), Niigata, Japan, November 2012.
  5. Thanh-Trung Pham and Xavier Defago. Reliability prediction for component-based systems: Incorporating error propagation analysis and different execution models. In Proceedings of the 12th International Conference on Quality Software (QSIC'12), pages 106-115, Xi'an, Shaanxi, China, August 2012. IEEE.