Creol is an executable, formally defined modeling language with advanced object-oriented features, tailored for modeling software systems consisting of physically distributed components, each running on its own processor and communicating by means of asynchronous method calls. Creol is oriented towards qualitative analysis, abstracting away from underlying software and hardware system properties. In this paper we propose a probabilistic extension of Creol, oriented towards quantitative analysis, called PCreol, and give its operational semantics by means of probabilistic rewrite theories. This extension is motivated by the need to model a) communication over networks of different quality, b) software components running randomized algorithms, c) independent processor speeds, d) process scheduling, and e) an open environment exhibiting probabilistic behavior. The syntax of PCreol therefore includes means for modeling random expressions, a probabilistic choice operator, random assignment, call statements with priorities, and object creation statements that set an object's computation speed, as well as its quality of communication with other objects. We give details on the implementation of a prototype PCreol interpreter--on top of the existing one for Creol--which is executable in Maude. Furthermore, we integrate PCreol with the VeStA tool, to support probabilistic reasoning of PCreol models by statistical model checking and quantitative analysis. By probabilistic modeling of independent processor speeds, representative runs of a PCreol model are obtained using discrete-event simulation, and the model checking problem of large models becomes feasible. We provide concrete examples of PCreol models and show how VeStA can be used to reason about them.
['Lucian Bentea', 'Olaf Owe']
A probabilistic framework for object-oriented modeling and analysis of distributed systems