Parametric Performance Contracts for QML-specified Software Components

The performance of a software component heavily depends on the environment of the component. As a software component only justifies its investment when deployed in several environments, one can not specify the performance of a component as a constant (e.g., as a single value or distribution of values in its interface). Hence, classical component contracts allowing to state the component's performance as a post-condition, if the environment realises a specific performance stated in the precondition, do not help. This fixed pair of pre- and postcondition do not model that a component can have very different performance figures depending on its context. Instead of that, parametric contracts are needed for specifying the environmental dependency of the component's provided performance. In this paper we discuss the specification of dependencies of external calls for the performance metric response time. We present an approach using parametric contracts to compute the statistical distribution of response time as a discrete distribution in dependency of the distribution of response times of environmental services. We use the Quality of Service Modeling Language (QML) as a syntax for specifying distributions.

[1]  Gabriel A. Moreno,et al.  Packaging Predictable Assembly , 2002, Component Deployment.

[2]  Ralf H. Reussner,et al.  Reliability prediction for component-based software architectures , 2003, J. Syst. Softw..

[3]  Svend Frølund,et al.  Quality-of-service specification in distributed object systems , 1998, Distributed Syst. Eng..

[4]  MeyerBertrand,et al.  Design by Contract , 1997 .

[5]  Ralf H. Reussner,et al.  Reasoning about Software Architectures with Contractually Specified Components , 2003, Component-Based Software Quality.

[6]  Liam Murphy,et al.  A Methodology for Predicting the Performance of Component-Based Applications , 2003 .

[7]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[8]  Wilhelm Hasselbring,et al.  Towards a Generic Framework for Evaluating Component-Based Software Architectures , 2004, AKA.

[9]  Steffen Becker,et al.  Parametric Performance Contracts for Software Components and their Compositionality , 2004 .

[10]  Ralf H. Reussner Using Parameterised Contracts to Predict Properties of Component Based Software Architectures , 2002 .

[11]  Jan Oyvind Aagedal,et al.  Quality of Service Support in Development of Distributed Systems , 2001 .

[12]  Xin Wang,et al.  From UML Descriptions of High-Level Software Architectures to LQN Performance Models , 1999, AGTIVE.

[13]  Ralf Reussner,et al.  Contracts and Quality Attributes of Software Components , 2003 .

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

[15]  Raffaela Mirandola,et al.  CB-SPE Tool: Putting Component-Based Performance Engineering into Practice , 2004, CBSE.

[16]  M. Sitaraman,et al.  Modular Verification of Performance Constraints , 2003 .

[17]  David J. DeFatta,et al.  Digital Signal Processing: A System Design Approach , 1988 .

[18]  Ralf Reussner,et al.  Automatic component protocol adaptation with the CoConut/J tool suite , 2003, Future Gener. Comput. Syst..

[19]  Marta Simeoni,et al.  Deriving Performance Models from Software Architecture Specifications , 2001 .