{'fraction_non_alphanumeric': 0.0273972602739726, 'fraction_numerical': 0.0112079701120797, 'mean_word_length': 4.826086956521739, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Applying refinement calculi to software process modelling

A refinement calculus provides a number of advantages to program development, besides correctness, like clarification of the goals of the program and effective documentation of the design choices. We provide evidence that the same advantages are gained also for those programs known as enactable process models. The evidence is put forward by means of an example, a small concurrent engineering problem inspired by the ISPW-7 problem (D. Heimberger and M. Kellner, 1991). We assume that the enactment is done by rules in tuple spaces, and use a refinement calculus based on a temporal logic that builds on K.M. Chandy and J. Misra's (1988) Unity. Finally, we show how the approach may lead to seamless integration with existing process engines.