JACK: A Framework for Process Algebra Implementation in Java - Freitas, Leonardo; Sampaio, Augusto; Cavalcanti, Ana (Anais do Simpósio Brasileiro de Engenharia de Software (SBES), 2002)
The construction of concurrent programs is especially complex due mainly to the inherent non-determinism of their execution, which makes it difficult to repeat test scenarios. Process algebras have been used to design and reason about these programs. This paper presents an approach to developing concurrent programs using a set of process algebra constructs implemented as an object-oriented framework in Java, called JACK. The main objective of the framework is the design and implementation of process algebra constructs that provides as naturally as possible, the algebraic idiom as an extension package to Java. This work emphasises the use of design patterns and pattern languages to properly build frameworks like this, achieving desired software engineering properties and software quality requirements. The user of the JACK framework is able to describe its process specification in Java.